PRNG需要的建议

时间:2011-06-02 15:39:23

标签: random prng

我正在寻找能够产生随机128位/ 256位数的伪随机数生成算法。安全性和加密完整性并不重要;简单性和性能最重要。理想情况下,该算法可用于现代移动电话平台。你能推荐这样的算法吗?这可行吗?提前谢谢!

3 个答案:

答案 0 :(得分:0)

您应该尝试SFMT:面向SIMD的快速Mersenne Twister 该PRNG旨在利用处理器提供的向量指令生成128位整数。

有关此PRNG的更多信息,请通过向SFMT提出建议,查看我回答的另一篇文章:best pseudo random number generator

有关完整说明,请参阅官方页面,您也可以在其中下载SFMT:http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html

答案 1 :(得分:0)

如果简单性是您的首要任务,请查看this article中的生成器。生成器的核心只有两行代码。它不像Mersenne Twister这样的先进技术,但它更简单,仍然具有良好的统计特性。

答案 2 :(得分:0)

http://burtleburtle.net/bob/rand/smallprng.html

这是很小的(128位状态)并且很快并且通过了此时可用的每个通用统计测试。到目前为止,在此处的响应中链接的每个其他PRNG都无法快速测试 - 基于MWC的PRNG在许多测试中失败,而SFMT仅通过二进制矩阵秩/线性复杂度类型测试。

正如其他人所说,获得128位只是连接顺序32位输出。不要强行从PRNG状态中提取其正常输出函数产生的更多位 - 这通常会降低输出质量,有时会大幅降低输出质量。