什么是AES
“AES 是 Advanced Encryption Standard(高級加密標准)的縮寫,是密碼學中最常用的加密算法之一。這個標准用來替代原先的 DES(Data Encryption Standard),已經被多方分析且廣為世界所使用。”
分組密碼在加密時明文分組的長度是固定的,而實用中待加密消息的數據量是不定的,數據格式可能是多種多樣的。為了能在各種應用場合安全地使用分組密碼,通常對不同的使用目的運用不同的工作模式。
一、電碼本模式(ECB)
將整個明文分成若干段相同的小段,然后對每一小段進行加密。
優:操作簡單,易於實現;分組獨立,易於並行;誤差不會被傳送。——簡單,可並行,不傳送誤差。
缺:掩蓋不了明文結構信息,難以抵抗統計分析攻擊。——可對明文進行主動攻擊。
二、密碼分組鏈模式(CBC)
先將明文切分成若干小段,然后每一小段與初始塊或者上一段的密文段進行異或運算后,再與密鑰進行加密。
優點:能掩蓋明文結構信息,保證相同密文可得不同明文,所以不容易主動攻擊,安全性好於ECB,適合傳輸長度長的報文,是SSL和IPSec的標准。
缺點:(1)不利於並行計算;(2)傳遞誤差——前一個出錯則后續全錯;(3)第一個明文塊需要與一個初始化向量IV進行抑或,初始化向量IV的選取比較復雜。
初始化IV的選取方式:固定IV,計數器IV,隨機IV(只能得到偽隨機數,用的最多),瞬時IV(難以得到瞬時值)
三、輸出反饋模式(OFB)
密碼算法的輸出(指密碼key而不是密文)會反饋到密碼算法的輸入中,OFB模式並不是通過密碼算法對明文直接加密,而是通過將明文分組和密碼算法的輸出進行XOR來產生密文分組。
優點:隱藏了明文模式;結合了分組加密和流密碼(分組密碼轉化為流模式);可以及時加密傳送小於分組的數據。
缺點:不利於並行計算;需要生成秘鑰流;對明文的主動攻擊是可能的。
四 計數器模式(CTR)
完全的流模式。將瞬時值與計數器連接起來,然后對此進行加密產生密鑰流的一個密鑰塊,再進行XOR操作 。
優點:不泄露明文;僅需實現加密函數;無需填充;可並行計算。
缺點:需要瞬時值IV,難以保證IV的唯一性。
五 對比CBC和CTR
(1)CBC需要填充;CTR不用填充。
(2)CBC不可並行;CTR可並行速度快。
(3)CBC需要實現加密和解密函數;CTR實現簡單,僅需實現加密函數。
(4)魯棒性:CBC強於CTR——使用重復瞬時值,CBC會泄露初始明文塊,CTR會泄露所有信息。
如果有好的瞬時值選擇策略,采用CTR,否則采用CBC。
如加密成績單,可選用CTR,因為學號唯一。可作為瞬時值。
六 分組密碼填充
目的:將明文填充到滿足分組大小,解密后再把填充去掉。
如何填充:缺幾個字節填充幾個自己的幾(如缺5個字節,填充5個字節的5);如果不需要填充,則添加一個分組,分組中填充分組大小(如分組大小為64,填充16個字節的16)
七 分組密碼模式的安全性
任何分組密碼模式都存在信息的泄露,沒有一個是完美的,任何分組模式都可能會泄露信息,這只是一個概率的問題。
碰撞概率計算:
M個明文塊,塊長為N,以兩個塊組成一對,
不同塊的對數為:M(M-1)/2
兩個塊相等的概率為:1/2的n次方
密文塊相等的數量期望為:M(M-1)/2的n+1次方。
則當M(M-1)=2的n+1次方時候,即M約等於2的n/2次方時發生碰撞的概率約等於1。
例如:分組長度為64,則當塊數為2的32次方時,即加密數據2的32次方*64bit=256G時便會發生碰撞。
結論:分組密碼的安全不僅和秘鑰長度有關還和分組長度有關。