数据认证算法(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)的一次和二次多项式