71、深入剖析CBC填充引发的安全漏洞

深入剖析CBC填充引发的安全漏洞

1. 冗余信息与生日悖论攻击

在CBC模式中,为了从 $y_{i - 1} \oplus y_{j - 1}$ 中恢复 $x_i$ 和 $x_j$,明文里存在一定冗余。不过,这种缺陷通常可忽略不计。因为密文块的分布往往与均匀分布难以区分,根据生日悖论定理,$N$ 个 $b$ 字块中出现两个相等块的概率为:
$p \approx 1 - e^{-\frac{1}{2}N^2W^{-b}}$
其中,$W$ 是可能的字的数量。当 $N$ 达到 $\sqrt{W^b}$ 数量级时,攻击会变得高效。例如,当 $b = 8$ 且 $W = 256$ 时,大约需要 235 字节(32GB)才能使该攻击的成功率达到 39%,而此攻击仅能泄露 16 字节的信息。

2. 认证限制

CBC 模式可用于创建消息认证码(MAC)。原始的 CBC - MAC(即将最后一个加密块作为 MAC)存在安全漏洞:已知三个消息 $m_1$、$m_2$、$m_3$ 的 MAC,其中 $m_2$ 是 $m_1$ 增加一个额外块得到的,那么就可以伪造第四个消息($m_3$ 增加一个额外块)的 MAC。通过对原始 CBC - MAC 进行重新加密可以修复这个问题,但新方案仍存在复杂度约为 $\sqrt{W^b}$ 的攻击。

3. 攻击方法

假设 $b$ 是块的字长,$W$ 是可能的字的数量,且 $W \geq b$,1 到 $b$ 之间的所有整数都能明确编码为字,以确保 CBC - PAD 方案可行。若一个块序列 $x_1, x_2, \cdots, x_N$ 的最后一个块 $x_N$ 以 $n$ 个值为 $n$ 的字串结尾

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值