AES加密算法是密碼學(xué)中的高級加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES),又稱Rijndael加密法,是美國聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。這個標(biāo)準(zhǔn)用來替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。經(jīng)過五年的甄選流程,高級加密標(biāo)準(zhǔn)由美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)于2001年11月26日發(fā)布于FIPS PUB 197,并在2002年5月26日成為有效的標(biāo)準(zhǔn)。
aes加密_AES加密算法 -概述
AES加密算法AES加密算法即密碼學(xué)中的高級加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES),又稱Rijndael加密法,是美國聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。這個標(biāo)準(zhǔn)用來替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。經(jīng)過五年的甄選流程,高級加密標(biāo)準(zhǔn)由美國國家標(biāo)準(zhǔn)與技術(shù)研究院 (NIST)于2001年11月26日發(fā)布于FIPS PUB 197,并在2002年5月26日成為有效的標(biāo)準(zhǔn)。2006年,高級加密標(biāo)準(zhǔn)已然成為對稱密鑰加密中最流行的算法之一。該算法為比利時密碼學(xué)家Joan Daemen和Vincent Rijmen所設(shè)計,結(jié)合兩位作者的名字,以Rijndael之命名之,投稿高級加密標(biāo)準(zhǔn)的甄選流程。(Rijdael的發(fā)音近于 "Rhinedoll"。)
aes加密_AES加密算法 -沿革
Rijndael是由Daemen和Rijmen早期所設(shè)計的Square改良而來;而Square則是由SHARK發(fā)展而來。
不同于它的前任標(biāo)準(zhǔn)DES,Rijndael使用的是代換-置換網(wǎng)絡(luò),而非Feistel架構(gòu)。AES在軟件及硬件上都能快速地加解密,相對來說較易于實作,且只需要很少的存儲器。作為一個新的加密標(biāo)準(zhǔn),目前正被部署應(yīng)用到更廣大的范圍。
aes加密_AES加密算法 -形成過程
1997年4月15日,美國ANSI發(fā)起征集AES(advancedencryptionstandard)的活動,并為此成立了AES工作小組。
1997年9月12日,美國聯(lián)邦登記處公布了正式征集AES候選算法的通告。對AES的基本要求是:比三重DES快、至少與三重DES一樣安全、數(shù)據(jù)分組長度為128比特、密鑰長度為128/192/256比特。
1998年8月12日,在首屆AES候選會議(firstAEScandidateconference)上公布了AES的15個候選算法,任由全世界各機(jī)構(gòu)和個人攻擊和評論。
1999年3月,在第2屆AES候選會議(secondAEScandidateconference)上經(jīng)過對全球各密碼機(jī)構(gòu)和個人對候選算法分析結(jié)果的討論,從15個候選算法中選出了5個。分別是RC6、Rijndael、SERPENT、Twofish和MARS。
2000年4月13日至14日,召開了第3屆AES候選會議(thirdAEScandidateconference),繼續(xù)對最后5個候選算法進(jìn)行討論。
2000年10月2日,NIST宣布Rijndael作為新的AES。經(jīng)過3年多的討論,Rijndael終于脫穎而出。
Rijndael由比利時的JoanDaemen和VincentRijmen設(shè)計。算法的原型是Square算法,它的設(shè)計策略是寬軌跡策略(widetrailstrategy)。算法有很好的抵抗差分密碼分析及線性密碼分析的能力。
aes加密_AES加密算法 -基本內(nèi)容
AES加密算法流程圖對稱密碼體制的發(fā)展趨勢將以分組密碼為重點(diǎn)。分組密碼算法通常由密鑰擴(kuò)展算法和加密(解密)算法兩部分組成。密鑰擴(kuò)展算法將b字節(jié)用戶主密鑰擴(kuò)展成r個子密鑰。加密算法由一個密碼學(xué)
上的弱函數(shù)f與r個子密鑰迭代r次組成?;靵y和密鑰擴(kuò)散是分組密碼算法設(shè)計的基本原則。抵御已知明文的差分和線性攻擊,可變長密鑰和分組是該體制的設(shè)計要點(diǎn)。AES是美國國家標(biāo)準(zhǔn)技術(shù)研究所NIST旨在取代DES的21世紀(jì)的加密標(biāo)準(zhǔn)。
AES的基本要求是,采用對稱分組密碼體制,密鑰長度的最少支持為128、192、256,分組長度128位,算法應(yīng)易于各種硬件和軟件實現(xiàn)。1998年NIST開始AES第一輪分析、測試和征集,共產(chǎn)生了15個候選算法。1999年3月完成了第二輪AES2的分析、測試。2000年10月2日美國政府正式宣布選中比利時密碼學(xué)家Joan Daemen 和 Vincent Rijmen 提出的一種密碼算法RIJNDAEL 作為 AES. 在應(yīng)用方面,盡管DES在安全上是脆弱的,但由于快速DES芯片的大量生產(chǎn),使得DES仍能暫時繼續(xù)使用,為提高安全強(qiáng)度,通常使用獨(dú)立密鑰的三級DES。但是DES遲早要被AES代替。流密碼體制較之分組密碼在理論上成熟且安全,但未被列入下一代加密標(biāo)準(zhǔn)。
AES加密數(shù)據(jù)塊大小最大是256bit,但是密鑰大小在理論上沒有上限。AES加密有很多輪的重復(fù)和變換。大致步驟如下:1、密鑰擴(kuò)展(KeyExpansion),2、初始輪(Initial Round),3、重復(fù)輪(Rounds),每一輪又包括:SubBytes、ShiftRows、MixColumns、AddRoundKey,4、最終輪(Final Round),最終輪沒有MixColumns。
aes加密_AES加密算法 -算法原理
AES算法基于排列和置換運(yùn)算。排列是對數(shù)據(jù)重新進(jìn)行安排,置換是將一個數(shù)據(jù)單元替換為另一個。AES 使用幾種不同的方法來執(zhí)行排列和置換運(yùn)算。
AES是一個迭代的、對稱密鑰分組的密碼,它可以使用128、192 和 256 位密鑰,并且用 128 位(16字節(jié))分組加密和解密數(shù)據(jù)。與公共密鑰密碼使用密鑰對不同,對稱密鑰密碼使用相同的密鑰加密和解密數(shù)據(jù)。通過分組密碼返回的加密數(shù)據(jù)的位數(shù)與輸入數(shù)據(jù)相同。迭代加密使用一個循環(huán)結(jié)構(gòu),在該循環(huán)中重復(fù)置換和替換輸入數(shù)據(jù)。

aes加密_AES加密算法 -加密模式
ECB模式
C語言實現(xiàn)AES加密算法優(yōu)點(diǎn):
1.簡單;
2.有利于并行計算;
3.誤差不會被傳送;
缺點(diǎn):
1.不能隱藏明文的模式;
2.可能對明文進(jìn)行主動攻擊;
CBC模式
優(yōu)點(diǎn):1.不容易主動攻擊,安全性好于ECB,適合傳輸長度長的報文,是SSL、IPSec的標(biāo)準(zhǔn)。
缺點(diǎn):
1.不利于并行計算;
2.誤差傳遞;
3.需要初始化向量IV
CFB模式
優(yōu)點(diǎn):1.隱藏了明文模式;
2.分組密碼轉(zhuǎn)化為流模式;
3.可以及時加密傳送小于分組的數(shù)據(jù);
缺點(diǎn):
1.不利于并行計算;
2.誤差傳送:一個明文單元損壞影響多個單元;
3.唯一的IV;
ofb模式
優(yōu)點(diǎn):1.隱藏了明文模式;
2.分組密碼轉(zhuǎn)化為流模式;
3.可以及時加密傳送小于分組的數(shù)據(jù);
缺點(diǎn):
1.不利于并行計算;
2.對明文的主動攻擊是可能的;
3.誤差傳送:一個明文單元損壞影響多個單元;
愛華網(wǎng)本文地址 » http://www.klfzs.com/a/8103300103/50101.html
愛華網(wǎng)



