具有大状态空间的快速流密码解析
1. 乘法滤波器示例
1.1 模 2³² 奇数乘法滤波器
设 (I = S) 为模 (2^{32}) 的整数环 (\mathbb{Z}/2^{32}) 中的奇数集。定义函数 (f : I × S → S) 为模 (2^{32}) 的整数乘法,这构成一个拟群(实际上是环 (\mathbb{Z}/2^{32}) 的乘法群)。选择 (o_F : S → O_F = B) 为从 32 位整数中提取 8 个最高有效位(MSBs)的函数。
1.2 32 位整数的拟群结构
将 32 位整数 (x) 对应到模 (2^{33}) 的 33 位奇数 (2x + 1),由乘法公式 ((2x + 1) × (2y + 1) = 2(2xy + x + y) + 1) 可得到 32 位整数集上的拟群结构 (\tilde{×} : (x, y) \mapsto x\tilde{×}y := 2xy + x + y \mod 2^{32})。此时可考虑对应的乘法滤波器,其中 (I = S) 为 32 位整数集。现代 CPU 通常对 32 位整数有快速的整数乘法。
1.3 CryptMT1 生成器
选择如 (1) 中描述的线性反馈移位寄存器(LFSR)作为母生成器 (A_M),其中 (O_M = \mathbb{F}_2^w)。可选择其参数使周期为大梅森素数 (Q = 2^p - 1)(例如 (p = 19937),如 MT19937)。通过将 (O_M) 视为 (w) 位整数集,可使用上述示例 3 中的乘法滤波器 (A_F),此生成器称为带乘法滤波器的 MT19937,其输出函数 (o_F : S_F →
超级会员免费看
订阅专栏 解锁全文
2万+

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



