流密码的剖析与应用:从 RC4 到 Salsa20
1. RC4 流密码的缺陷
RC4 流密码存在明显的缺陷,其前 256 个密钥流字节均存在偏差。2011 年的研究发现,这些字节中某个字节为零的概率等于 1/256 + c/256²,其中常数 c 的取值范围在 0.24 到 1.34 之间,而且这种偏差并非仅针对零字节,其他字节值也存在。这表明 RC4 在生成均匀分布的伪随机字节方面表现不佳,而许多非加密的伪随机数生成器(PRNG)却能做到这一点。
即使是最弱的攻击模型也能利用 RC4 在 TLS 实现中的漏洞。基本思路是收集密文并寻找明文,而非密钥。但这需要收集大量使用不同密钥对同一明文进行加密的密文,这种攻击模型也被称为广播模型。
例如,若要解密通过截取同一消息的不同密文获得的多个密文字节中的明文 P1,前四个密文字节可表示为:
[
\begin{align }
C_{11}&=P_1\oplus KS_{11}\
C_{12}&=P_1\oplus KS_{12}\
C_{13}&=P_1\oplus KS_{13}\
C_{14}&=P_1\oplus KS_{14}
\end{align }
]
由于 RC4 的偏差,密钥流字节 (KS_{1i}) 比其他字节值更有可能为零,所以 (C_{1i}) 字节比其他值更有可能等于 (P_1)。为了确定 (P_1),只需统计每个字节值的出现次数,并将出现最频繁的字节作为 (P_1)。不过,由于统计偏差非常小,需要数百万个值才能确定正确的结果。
这种攻击可以扩展到恢复
超级会员免费看
订阅专栏 解锁全文
13

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



