常見加密算法DES、AES和RSA的原理和特點(diǎn)
編排 |?strongerHuang
微信公眾號(hào)?|?嵌入式專欄
1
DES加密算法
1.DES含義
DES全稱為Data Encryption Standard,即數(shù)據(jù)加密標(biāo)準(zhǔn),是一種使用密鑰加密的塊算法,1977年被美國(guó)聯(lián)邦政府的國(guó)家標(biāo)準(zhǔn)局確定為聯(lián)邦資料處理標(biāo)準(zhǔn)(FIPS),并授權(quán)在非密級(jí)政府通信中使用,隨后該算法在國(guó)際上廣泛流傳開來(lái)。
DES是對(duì)稱性加密里常見的一種,是一種使用秘鑰加密的塊算法。秘鑰長(zhǎng)度是64位(bit),?超過(guò)位數(shù)秘鑰被忽略。所謂對(duì)稱性加密,加密和解密秘鑰相同。對(duì)稱性加密一般會(huì)按照固定長(zhǎng)度,把待加密字符串分成塊。不足一整塊或者剛好最后有特殊填充字符。常見的填充模式有:'pkcs5'、'pkcs7'、'iso10126'、'ansix923'、'zero' 類型,包括DES-ECB、DES-CBC、DES-CTR、DES-OFB、DES-CFB。
2. DES算法原理
DES算法的入口參數(shù):Key、Data、Mode。 Key為8個(gè)字節(jié)共64位,是DES算法的工作秘鑰;
Data也為8個(gè)字節(jié)64位,是要被加密或解密的數(shù)據(jù); Mode為DES的工作方式,有兩種:加密或解密。
3.DES加密原理
DES 使用一個(gè) 56 位的密鑰以及附加的 8 位奇偶校驗(yàn)位,產(chǎn)生最大 64 位的分組大小。這是一個(gè)迭代的分組密碼,使用稱為 Feistel 的技術(shù),其中將加密的文本塊分成兩半。
使用子密鑰對(duì)其中一半應(yīng)用循環(huán)功能,然后將輸出與另一半進(jìn)行“異或”運(yùn)算;接著交換這兩半,這一過(guò)程會(huì)繼續(xù)下去,但最后一個(gè)循環(huán)不交換。DES 使用 16 個(gè)循環(huán),使用異或,置換,代換,移位操作四種基本運(yùn)算。
4.DES算法特點(diǎn)
分組比較短、秘鑰太短、密碼生命周期短、運(yùn)算速度較慢。?
2
1.AES含義
AES,高級(jí)加密標(biāo)準(zhǔn),在密碼學(xué)中又稱Rijndael加密法,是美國(guó)聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)用來(lái)替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。
嚴(yán)格地說(shuō),AES和Rijndael加密法并不完全一樣(雖然在實(shí)際應(yīng)用中二者可以互換),因?yàn)镽ijndael加密法可以支持更大范圍的區(qū)塊和密鑰長(zhǎng)度:AES的區(qū)塊長(zhǎng)度固定為128 比特,密鑰長(zhǎng)度則可以是128,192或256比特;
而Rijndael使用的密鑰和區(qū)塊長(zhǎng)度可以是32位的整數(shù)倍,以128位為下限,256比特為上限。包括AES-ECB,AES-CBC,AES-CTR,AES-OFB,AES-CFB。
2.AES加密原理
AES加密過(guò)程涉及到4種操作,分別是字節(jié)替代、行移位、列混淆和輪密鑰加。解密過(guò)程分別為對(duì)應(yīng)的逆操作。由于每一步操作都是可逆的,按照相反的順序進(jìn)行解密即可恢復(fù)明文。加解密中每輪的密鑰分別由初始密鑰擴(kuò)展得到。算法中16個(gè)字節(jié)的明文、密文和輪密鑰都以一個(gè)4x4的矩陣表示。
3.AES算法特點(diǎn)
運(yùn)算速度快,安全性高,資源消耗少?
3
1.RAS含義
RSA加密算法是一種非對(duì)稱加密算法,這種算法非常可靠,密鑰越長(zhǎng),它就越難破解。根據(jù)已經(jīng)披露的文獻(xiàn),目前被破解的最長(zhǎng)RSA密鑰是768個(gè)二進(jìn)制位。
也就是說(shuō),長(zhǎng)度超過(guò)768位的密鑰,還無(wú)法破解(至少?zèng)]人公開宣布)。因此可以認(rèn)為,1024位的RSA密鑰基本安全,2048位的密鑰極其安全。
2.RAS算法原理
在了解RAS算法原理之前,先了解一下非對(duì)稱加密的過(guò)程: 非對(duì)稱加密是通過(guò)兩個(gè)密鑰(公鑰-私鑰)來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的加密和解密的。公鑰用于加密,私鑰用于解密。對(duì)于非對(duì)稱的加密和解密為什么可以使用不同的密鑰來(lái)進(jìn)行,這些都是數(shù)學(xué)上的問(wèn)題了。不同的非對(duì)稱加密算法也會(huì)應(yīng)用到不同的數(shù)學(xué)知識(shí)。接下來(lái)就來(lái)看看RSA算法是怎么來(lái)對(duì)數(shù)據(jù)進(jìn)行加密的。
下面是RAS算法的加密算法流程圖:
3.RAS算法特點(diǎn)
-
不需要進(jìn)行密鑰傳遞,提高了安全性
-
可以進(jìn)行數(shù)字簽名認(rèn)證
-
加密解密效率不高,一般只適用于處理小量數(shù)據(jù)(如:密鑰)
-
容易遭受小指數(shù)攻擊
常見的幾種加密算法先總結(jié)到這,如果大家對(duì)加密的具體過(guò)程感興趣的話,可以自己上網(wǎng)了解更多算法知識(shí)~
免責(zé)聲明: 本文部分素材來(lái)源網(wǎng)絡(luò),版權(quán)歸原作者所有。如涉及作品版權(quán)問(wèn)題,請(qǐng)與我聯(lián)系刪除。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!