基于叉积密码的伪随机数生成器:原理、构造与安全证明
在当今数字化时代,伪随机数生成器(PRNG)在众多领域中发挥着至关重要的作用,如密码学、模拟实验、游戏等。本文将深入探讨一种基于叉积密码的伪随机数生成器(FCRNG),包括其基本概念、构造方法以及安全证明。
1. 引言
我们的目标是构建一个具有高安全性和高效性的 PRNG。目标安全概念是 PRNG 的鲁棒性,即即使在状态完全已知的情况下,只要通过重新播种提供足够的熵,PRNG 就能进入不可预测的状态,这意味着它具有回溯和预测抗性。
与 CTR_DRBG 相比,FCRNG 的最终安全边界去除了几个常数因子,并完全避免了两个求和项,这使得 FCRNG 的安全性不会随着随机输入的长度或请求的伪随机输出位数的增加而降低。在效率方面,FCRNG(使用 ForkSkinny 和 FCTR - c 实例化)在生成随机位时比 CTR_DRBG(使用 AES)快 28%,并且使用 FCTRCond 冷凝器进一步提高了初始设置和重新播种算法的效率约 72%。当应用程序每请求 2000 字节的伪随机输出进行一次重新播种时,总体速度提升约 33%。此外,FCRNG 通过了 NIST 伪随机数生成器测试套件的所有测试。
2. 预备知识
2.1 符号表示
- 基本运算 :
a + b
和a * b
分别表示常规整数加法和乘法,a ⊕ b
表示两个等长比特串的按位异或。 - 取整与长度 :