流密码 CryptMT3 与 Dragon 的技术剖析
1. CryptMT3 流密码概述
CryptMT3 是一种流密码,其输出的 8 位整数序列用 (h_0, h_1, h_2, \cdots) 表示。若将其视为 64 位整数生成器,其输出 (z_0, z_1, z_2, \cdots) 与 (h_0, h_1, h_2, \cdots) 存在如下关系:
[
\begin{align }
z_0 &= (h_{13}, h_{12}, h_9, h_8, h_5, h_4, h_1, h_0)\
z_1 &= (h_{15}, h_{14}, h_{11}, h_{10}, h_7, h_6, h_3, h_2)\
z_2 &= (h_{29}, h_{28}, h_{25}, h_{24}, h_{21}, h_{20}, h_{17}, h_{16})\
z_3 &= (h_{31}, h_{30}, h_{27}, h_{26}, h_{23}, h_{22}, h_{19}, h_{18})\
&\cdots
\end{align }
]
从这些关系可以看出,(z_0, z_2, z_4, \cdots) 中对应短周期位(每个有 8 位)的周期不是 (Q) 的倍数,这意味着 (z_0, z_1, z_2, z_3, \cdots) 中对应的 8 位的周期也不是 (Q) 的倍数。通过相关定理可以证明,(z_i) 中任意两位作为 2 位整数序列的周期是 (Q) 的倍数。
1.1 时间 - 内存权衡攻击
对于
超级会员免费看
订阅专栏 解锁全文
30

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



