今天主要總結(jié)下常用的對稱性加密算法DES和AES,非對稱性加密算法RSA。
01
DES加密算法
1.DES含義
DES全稱為Data Encryption Standard,即數(shù)據(jù)加密標準,是一種使用密鑰加密的塊算法,1977年被美國聯(lián)邦政府的國家標準局確定為聯(lián)邦資料處理標準(FIPS),并授權(quán)在非密級政府通信中使用,隨后該算法在國際上廣泛流傳開來。
DES是對稱性加密里常見的一種,是一種使用秘鑰加密的塊算法。秘鑰長度是64位(bit), 超過位數(shù)秘鑰被忽略。所謂對稱性加密,加密和解密秘鑰相同。對稱性加密一般會按照固定長度,把待加密字符串分成塊。不足一整塊或者剛好最后有特殊填充字符。
常見的填充模式有:‘pkcs5’、‘pkcs7’、‘iso10126’、‘a(chǎn)nsix923’、‘zero’ 類型,包括DES-ECB、DES-CBC、DES-CTR、DES-OFB、DES-CFB。
2. DES算法原理
DES算法的入口參數(shù):Key、Data、Mode。 Key為8個字節(jié)共64位,是DES算法的工作秘鑰;
Data也為8個字節(jié)64位,是要被加密或解密的數(shù)據(jù); Mode為DES的工作方式,有兩種:加密或解密。
3.DES加密原理
DES 使用一個 56 位的密鑰以及附加的 8 位奇偶校驗位,產(chǎn)生最大 64 位的分組大小。這是一個迭代的分組密碼,使用稱為 Feistel 的技術(shù),其中將加密的文本塊分成兩半。
使用子密鑰對其中一半應(yīng)用循環(huán)功能,然后將輸出與另一半進行“異或”運算;接著交換這兩半,這一過程會繼續(xù)下去,但最后一個循環(huán)不交換。DES 使用 16 個循環(huán),使用異或,置換,代換,移位操作四種基本運算。
4.DES算法特點
分組比較短、秘鑰太短、密碼生命周期短、運算速度較慢。
02
AES加密算法
1.AES含義
AES,高級加密標準,在密碼學(xué)中又稱Rijndael加密法,是美國聯(lián)邦政府采用的一種區(qū)塊加密標準。這個標準用來替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。
嚴格地說,AES和Rijndael加密法并不完全一樣(雖然在實際應(yīng)用中二者可以互換),因為Rijndael加密法可以支持更大范圍的區(qū)塊和密鑰長度:AES的區(qū)塊長度固定為128 比特,密鑰長度則可以是128,192或256比特;
而Rijndael使用的密鑰和區(qū)塊長度可以是32位的整數(shù)倍,以128位為下限,256比特為上限。包括AES-ECB,AES-CBC,AES-CTR,AES-OFB,AES-CFB。
2.AES加密原理
AES加密過程涉及到4種操作,分別是字節(jié)替代、行移位、列混淆和輪密鑰加。解密過程分別為對應(yīng)的逆操作。由于每一步操作都是可逆的,按照相反的順序進行解密即可恢復(fù)明文。加解密中每輪的密鑰分別由初始密鑰擴展得到。算法中16個字節(jié)的明文、密文和輪密鑰都以一個4x4的矩陣表示。
3.AES算法特點
運算速度快,安全性高,資源消耗少
03
RSA加密算法
1.RSA含義
RSA加密算法是一種非對稱加密算法,這種算法非??煽?,密鑰越長,它就越難破解。根據(jù)已經(jīng)披露的文獻,目前被破解的最長RSA密鑰是768個二進制位。
也就是說,長度超過768位的密鑰,還無法破解(至少沒人公開宣布)。因此可以認為,1024位的RSA密鑰基本安全,2048位的密鑰極其安全。
2.RSA算法原理
在了解RSA算法原理之前,先了解一下非對稱加密的過程: 非對稱加密是通過兩個密鑰(公鑰-私鑰)來實現(xiàn)對數(shù)據(jù)的加密和解密的。公鑰用于加密,私鑰用于解密。對于非對稱的加密和解密為什么可以使用不同的密鑰來進行,這些都是數(shù)學(xué)上的問題了。不同的非對稱加密算法也會應(yīng)用到不同的數(shù)學(xué)知識。接下來就來看看RSA算法是怎么來對數(shù)據(jù)進行加密的。
下面是RSA算法的加密算法流程圖:
3.RSA算法特點
不需要進行密鑰傳遞,提高了安全性
可以進行數(shù)字簽名認證
加密解密效率不高,一般只適用于處理小量數(shù)據(jù)(如:密鑰)
容易遭受小指數(shù)攻擊
編輯:jq
-
RSA算法
+關(guān)注
關(guān)注
0文章
14瀏覽量
7948 -
AES算法
+關(guān)注
關(guān)注
0文章
13瀏覽量
7918 -
DES算法
+關(guān)注
關(guān)注
0文章
8瀏覽量
7175
發(fā)布評論請先 登錄
在STM32微控制器中實現(xiàn)數(shù)據(jù)加密的方法
常見網(wǎng)絡(luò)負載均衡的幾種方式
深入解析ECC256橢圓曲線加密算法

EMMC數(shù)據(jù)加密技術(shù)與應(yīng)用
加密算法在云計算中如何應(yīng)用?
加密算法在網(wǎng)絡(luò)安全中扮演什么角色?
加密算法的選擇對于加密安全有多重要?
常見的加密算法有哪些?它們各自的優(yōu)勢是什么?
對稱加密技術(shù)在實際應(yīng)用中如何保障數(shù)據(jù)安全?
華納云:加密算法在保護網(wǎng)絡(luò)安全中扮演什么角色
aes加密的常見錯誤及解決方案
socket 加密通信的實現(xiàn)方式
安卓APP開發(fā)中,如何使用加密芯片?

評論