其他分享
首页 > 其他分享> > 消息认证码(MAC)

消息认证码(MAC)

作者:互联网

目录

消息认证码

定义

将通信双方共享的密钥K和消息m作为输入,生成一个关于K和m的函数值MAC,将其作为认证标记(Tag)。发送时,将消息和认证码同时发送给接收方,若接收方用消息和共享密钥生成相同的消息认证码,则认证通过。

消息认证码用于保证数据的完整性。即防止数据被非授权用户篡改。需要注意的是:仅加密是无法保证数据的完整性的(如对ECB模式的攻击),因此需要认证。常见的消息认证码包括以下几类:

认证的安全性模型

攻击者选择消息发送给MAC,MAC将相应的Tag值返回,通过该方法可以得到任意消息的认证码。若攻击者可以另外找一个其他的消息,并能够伪造其认证码,则攻击成功,MAC被攻破。

标准MAC算法

基于分组密码的MAC

CBC-MAC

对消息使用CBC模式进行加密,取密文的最后一块作为认证码(相当于用异或操作进行了压缩)

EMAC

EMAC为CBC-MAC的改进。利用1或0对明文消息进行填充,从而可以处理变长消息。

XCBC->TMAC->OMAC

XCBC、TMAC、OMAC均为对CBC-MAC和EMAC的改进,结合了两者的优点。若消息为整分组,则采取下图左边的方案;若消息不是整分组,则采取下图右边的方案。

CMAC=OMAC1

下图中,\((K_1,K_2)=(L\cdot u,L\cdot u^2)\),\(L=E_K(0^n)\)

基于泛哈希函数(Universal Hash Function)的MAC

基于泛哈希函数的MAC

Almost Universal(AU) Hash Function 和 Almost Xor Universal(AXU) Hash Function

Almost Xor Universal hash function(AXU) 的定义如下图,即保证输出异或值的随机性

AXU函数举例

Almost Universal(AU):只要保证对于不同输入,输出相同值的概率很低即可,不必保证输出异或值的均匀性。也就是上图中的式子无需对任意C成立,只要C=0时成立即可。AU性质要比AXU弱一些。

Wegman-Carter方案

如果AU后面直接用PRF处理而不是生成随机值后一次一密异或处理(例如用分组密码处理生成MAC) 就不用使用AXU,满足AU性质即可。

128-EIA3是基于流密码ZUC的消息认证码,采用Wegman-Carter方案。它是由中国提出的国际算法标准(3GPP标准LTE的完整性算法,EEA3为同步提出的机密性算法)。

标签:认证码,AXU,MAC,密钥,哈希,消息
来源: https://www.cnblogs.com/rookieveteran/p/13430602.html