4.4 CBC-MAC

 从定理4.6和定理4.8可以得出,可以通过固定长度的伪随机函数构造任意长度message的安全MAC。其基于block ciphers,但效率较低:对于长度为 d n dn dn的message,block ciphers需要计算 4 d 4d 4d次(每个分组的长度为 n n n,但是每个 m i m_i mi的长度为 n / 4 n/4 n/4,故分组的个数为 4 d 4d 4d个);tag t的长度超过 4 d n 4dn 4dn位(每一个block的长度为 n n n,这一点和前面定理中提到的不同)。

4.4.1 The Basic Construction

CBC-MAC是在实践中应用非常广泛的standard message MAC。当message的长度固定时,CBC-MAC是安全的,具体构造方法如下:
在这里插入图片描述
 Theorem 4.12如下:
在这里插入图片描述
Theorem4.12的证明将会在后面详细描述。由Theorem4.12可以得出,construction4.11是可以处理任意长度的message,但只有sender和receiver提前商量好message长度时,MAC方案才会是安全的。

construction4.5construction4.7
construction4.11可以验证更长的固定长度的messageconstruction4.11更有效,tag仅为 n n n位( n n n是分组的长度),仅需计算 d d d

CBC-MAC vs. CBC-mode encryption

CBC-MACCBC操作模式是相似的但还是存在一些重要的区别:
  1. CBC操作模式使用的初始化向量 I V IV IV,这是其安全性的主要保证;但是CBC-MAC却没有用到 I V IV IV(使用随机向量 I V IV IV会变得不安全)。
  2.在CBC操作模式中所有的中间值 c i c_i ci都被输出作为密文的一部分;而CBC-MAC则只输出最终的tag t d t_d td d d d是分组数)。如果CBC-MAC输出每一个 t i t_i ti则就不再安全。
 在Exercise 4.14中将会对上面所说的修改进行证明。

Secure CBC-MAC for arbitrary-length messages

 接下来将要介绍的是任意长度messages的CBC-MAC,这是基于construction4.11进行的修改(假设所有的messages都是 n n n的倍数, n n n是block的长度)。修改主要由以下两点:
  1.把初始化随机向量 I V IV IV修改为 ∣ m ∣ |m| m,具体参考Figure4.2;注: ∣ m ∣ |m| m后置会使得CBC-MAC不再安全。(破坏prefix-free这个条件? m + ∣ m ∣ m+|m| m+m形式中,短的 m m m可能是长的 m m m的前缀,而 ∣ m ∣ + m |m|+m m+m形式则不会,因为前 n n n位就不同)
  2.分别定义两个密钥 k 1 , k 2 , k_1,k_2, k1,k2,其中 t = M a c k 1 ( m ) , t ^ = F k 2 ( t ) t=Mac_{k_1}(m),\hat{t}=F_{k_2}(t) t=Mack1(m),t^=Fk2(t)
在这里插入图片描述

4.4.2 *Proof of Security

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值