TMAC:双密钥CBC消息认证码
1 引言
1.1 背景
CBC MAC是一种基于分组密码生成消息认证码(MAC)的知名方法。对于固定长度为mn(n为底层分组密码E的块长度)的消息,CBC MAC的安全性已得到证明。然而,当消息长度可变时,CBC MAC并不安全。
为解决可变长度消息的问题,RACE项目开发了加密MAC(EMAC)。EMAC通过使用新密钥K2对CBC MAC值再次加密得到,即 EMACEK1 ,EK2(M) = EK2(CBCEK1(M)) 。当消息长度是n的倍数时,EMAC被证明是安全的。
处理任意长度消息的简单方法是在消息M后添加最小的 10i 填充,使长度成为n的倍数。但这种方法存在两个问题:一是当消息长度已经是n的倍数时,底层分组密码E会多调用一次;二是需要为两个密钥K1和K2进行两次密钥调度。
Black和Rogaway提出了FCBC和XCBC来解决上述问题。FCBC需要三个分组密码密钥K1、K2、K3,根据消息长度是否为n的倍数,使用K2或K3对最后一个块进行加密。XCBC在FCBC的基础上,将最后一个块的加密替换为在加密前与K2或K3进行异或操作。XCBC的密钥长度总共为(k + 2n)位,其中k是底层分组密码E的密钥长度。
1.2 贡献
本文提出了TMAC(双密钥CBC消息认证码),它是XCBC的改进版本。TMAC只需要两个密钥,而XCBC需要三个密钥。具体来说,TMAC只需要(k + n)位密钥,而XCBC需要(k + 2n)位密钥。
与XCBC类似,TMAC的定义域为
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



