數據認證算法(DAA) Data Authentication Algorithm算法
DAA創建在DES之上,該算法比較陳舊,人們已經發現了這個算法的安全弱點,目前已經被廢止。安全
DAA採用DES運算的CBC工做模式,其初始向量爲0,須要認證的數據分紅連續的64位分組D1,D2,...,DN,若最後分組不足64位,則在其後填充0補足。加密
DAA的安全隱患spa
給定一個消息分組X的CBC MAC碼,如T = MAC(K , X),則攻擊者立刻就知道對於兩個消息分組 X || (T⊕X) 的CBC MAC碼仍是T。顯然,對於短消息,攻擊者能夠很容易就找到符合條件的M'使得MAC(K , M') = MAC(K , M)。3d
基於密碼的消息認證嗎(CMAC) Cipher-based Message Authentication Codeblog
CMAC的加密對於AES和3DES都適用。ip
爲消除DAA存在的安全隱患,CMAC在DAA基礎上作了一個改進,在最後一步加密的先後均做了數學處理
數學
Cn = E(K , [Mn⊕Cn-1⊕K1])it
T = MSBTlen(Cn)io
Tlen是T的長度,MSBs(X)是取位串X最左邊的s位
兩位n位的密鑰K1和K2由K按照以下方式導出:
L = E(K , 0n) //將分組密碼應用到一個全0分組上
K1 = L • x
K2 = L • x2 = (L • x) • x
乘法(•)在域GF(2n)內進行,x和x2是域GF(2n)的一次和二次多項式