跳到主要内容

6.1.3. Traditional Pseudo-random Sequences (传统伪随机序列)

6.1.3. Traditional Pseudo-random Sequences (传统伪随机序列)

传统技术用于生成通过某些统计测试的伪随机数量。早在1951年, 一个广泛用于科学计算的技术是线性同余生成器 [KNUTH]。它仍然被广泛用于非安全应用程序。它迭代一个简单的函数, 该函数可以表示如下:

X     =  ( a * X  + b ) mod c
n+1 n

其中X sub 0是种子。在至少一个通用编程语言库中, 在随机产生的种子发生之前, 它被固定为1, 因此为攻击者所知! 而且这个库使用了值a = 1,103,515,245, b = 12,345, 和c = 2^32。因此, 即使使用好的种子, 此生成器中的密钥空间最多为2^32, 并且可以在几分钟内的PC时间内搜索。通常通过取X的一些比特子集来产生数字。它具有相当好的随机性属性, 但对于加密密钥生成而言太简单了 [KNUTH]。

其他常用的生成器虽然也许略好一些, 但同样不适合生成安全的数量。它们可以产生输出, 该输出在某些统计测试下通过为"随机", 但实际上对于需要真正不可猜测性的安全应用来说过于可预测。