加密算法 DES、AES 和 RSA 的原理和特點

今天主要總結下常用的對稱性加密算法 DES 和 AES,非對稱性加密算法 RSA。

1.DES 含義

DES 全稱爲 Data Encryption Standard,即數據加密標準,是一種使用密鑰加密的塊算法,1977 年被美國聯邦政府的國家標準局確定爲聯邦資料處理標準(FIPS),並授權在非密級政府通信中使用,隨後該算法在國際上廣泛流傳開來。

DES 是對稱性加密裏常見的一種,是一種使用祕鑰加密的塊算法。祕鑰長度是 64 位(bit), 超過位數祕鑰被忽略。所謂對稱性加密,加密和解密祕鑰相同。對稱性加密一般會按照固定長度,把待加密字符串分成塊。不足一整塊或者剛好最後有特殊填充字符。

常見的填充模式有:'pkcs5'、'pkcs7'、'iso10126'、'ansix923'、'zero' 類型,包括 DES-ECB、DES-CBC、DES-CTR、DES-OFB、DES-CFB。

2. DES 算法原理

DES 算法的入口參數:Key、Data、Mode。

Key 爲 8 個字節共 64 位,是 DES 算法的工作祕鑰;

Data 也爲 8 個字節 64 位,是要被加密或解密的數據;

Mode 爲 DES 的工作方式,有兩種:加密或解密。

3.DES 加密原理

DES 使用一個 56 位的密鑰以及附加的 8 位奇偶校驗位,產生最大 64 位的分組大小。這是一個迭代的分組密碼,使用稱爲 Feistel 的技術,其中將加密的文本塊分成兩半。

使用子密鑰對其中一半應用循環功能,然後將輸出與另一半進行 “異或” 運算;接着交換這兩半,這一過程會繼續下去,但最後一個循環不交換。DES 使用 16 個循環,使用異或,置換,代換,移位操作四種基本運算。

4.DES 算法特點

分組比較短、祕鑰太短、密碼生命週期短、運算速度較慢。

02

 AES 加密算法

1.AES 含義

AES,高級加密標準,在密碼學中又稱 Rijndael 加密法,是美國聯邦政府採用的一種區塊加密標準。這個標準用來替代原先的 DES,已經被多方分析且廣爲全世界所使用。

嚴格地說,AES 和 Rijndael 加密法並不完全一樣(雖然在實際應用中二者可以互換),因爲 Rijndael 加密法可以支持更大範圍的區塊和密鑰長度:AES 的區塊長度固定爲 128 比特,密鑰長度則可以是 128,192 或 256 比特;

而 Rijndael 使用的密鑰和區塊長度可以是 32 位的整數倍,以 128 位爲下限,256 比特爲上限。包括 AES-ECB,AES-CBC,AES-CTR,AES-OFB,AES-CFB。

2.AES 加密原理

AES 加密過程涉及到 4 種操作,分別是字節替代、行移位、列混淆和輪密鑰加。解密過程分別爲對應的逆操作。由於每一步操作都是可逆的,按照相反的順序進行解密即可恢復明文。加解密中每輪的密鑰分別由初始密鑰擴展得到。算法中 16 個字節的明文、密文和輪密鑰都以一個 4x4 的矩陣表示。

3.AES 算法特點

運算速度快,安全性高,資源消耗少

03

 RSA 加密算法

1.RSA 含義

RSA 加密算法是一種非對稱加密算法,這種算法非常可靠,密鑰越長,它就越難破解。根據已經披露的文獻,目前被破解的最長 RSA 密鑰是 768 個二進制位。

也就是說,長度超過 768 位的密鑰,還無法破解(至少沒人公開宣佈)。因此可以認爲,1024 位的 RSA 密鑰基本安全,2048 位的密鑰極其安全。

2.RSA 算法原理

在瞭解 RSA 算法原理之前,先了解一下非對稱加密的過程:

非對稱加密是通過兩個密鑰(公鑰 - 私鑰)來實現對數據的加密和解密的。公鑰用於加密,私鑰用於解密。對於非對稱的加密和解密爲什麼可以使用不同的密鑰來進行,這些都是數學上的問題了。不同的非對稱加密算法也會應用到不同的數學知識。接下來就來看看 RSA 算法是怎麼來對數據進行加密的。

下面是 RSA 算法的加密算法流程圖:

3.RSA 算法特點

常見的幾種加密算法先總結到這,如果大家對加密的具體過程感興趣的話,可以自己上網瞭解更多算法知識~

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/jhHh1GiEtTnROioKxK05ug