CryptMT3流密码:高速与安全的结合
1. 引言
在流密码领域,伪随机数生成器(PRNG)至关重要。我们假定PRNG以软件形式实现,运行平台为具备充足内存和快速整数乘法能力的32位CPU。我们提出将大型状态线性生成器(母生成器)与带记忆的滤波器相结合的方案。
在之前的方案中,母生成器选用Mersenne Twister,它通过F2线性递归生成32位整数序列。滤波器通过特定的函数进行状态转换和输出。这种方案形成了CryptMT版本1(CryptMT1),且尚未有针对该生成器的攻击报告。后续引入的CryptMT版本2和版本3,主要目的是提升初始化和生成的速度。
2. CryptMT3:基于128位操作的新变体
现代CPU通常具备单指令多数据(SIMD)操作能力,一般将四个32位寄存器视为一个128位寄存器。CryptMT3是对CryptMT版本1的改进,以适配高速SIMD操作。
2.1 符号说明
为了清晰表示128位整数,我们规定用粗斜体字母x表示128位整数,它由四个32位寄存器x[3]、x[2]、x[1]、x[0]从最高有效位(MSB)到最低有效位(LSB)依次拼接而成。
对于128位寄存器的操作,若针对每个32位整数执行,则用下标32表示,例如:
x +32 y := [(x[3] + y[3]), (x[2] + y[2]), (x[1] + y[1]), (x[0] + y[0])]
类似地,右移操作也有相应表示:
超级会员免费看
订阅专栏 解锁全文
47

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



