失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 密码编码学初探——消息认证码

密码编码学初探——消息认证码

时间:2024-04-11 05:25:24

相关推荐

密码编码学初探——消息认证码

消息认证 HMAC MAC:DAA CMAC

消息认证:用来验证消息完整性的一种机制或者服务。消息仍正确保收到

的数据确实和发送时的一样,且发送方声称的身份是有效的。

对称密码在那些互相共享密钥的用户间提供认证

消息认证码:一种需要使用密钥的算法,以可变程度的消息和密钥作为输入,产生一个认证码。拥有密钥的接收方能够计算验证码验证消息的完整性。

消息认证函数:

1.Hash函数

2.消息加密:加密后发送,公钥认证、签名

3.消息认证码:用密钥生成一个固定长度短数据块(与明/密文捆绑加密)

消息认证码:

MAC:HMAC:以hash函数为初始值的消息验证码

MAC:DAA:数据认证算法,仅能处理固定长度为mn的消息

数据认证算法(DAA) Data Authentication Algorithm

DAA建立在DES之上,该算法比较陈旧,人们已经发现了这个算法的安全弱点,目前已经被废止。

DAA采用DES运算的CBC工作模式,其初始向量为0,需要认证的数据分成连续的64位分组D1,D2,…,DN,若最后分组不足64位,则在其后填充0补足。

DAA的安全隐患

给定一个消息分组X的CBC MAC码,如T = MAC(K , X),则攻击者马上就知道对于两个消息分组 X || (T⊕X) 的CBC MAC码还是T。显然,对于短消息,攻击者可以很容易就找到符合条件的M’使得MAC(K , M’) = MAC(K , M)。

基于密码的消息认证吗(CMAC)Cipher-based Message Authentication Code

CMAC的加密对于AES和3DES都适用。

为消除DAA存在的安全隐患,CMAC在DAA基础上做了一个改进,在最后一步加密的前后均作了数学处理

Cn = E(K , [Mn⊕Cn-1⊕K1])

T = MSBTlen(Cn)

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)的一次和二次多项式

如果觉得《密码编码学初探——消息认证码》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。