[翻译] Java 各种乱数产生器的弱点

楼主: PsMonkey (痞子军团团长)   2013-03-31 01:38:17
原文网址:http://www.javacodegeeks.com/2013/03/
weaknesses-in-java-pseudo-random-number-generators-prngs.html
译文网址:http://blog.dontcareabout.us/2013/03/java-prng.html
BBS 版以 markdown 格式撰写
______________________________________________________________________
这是 Kai Michaelis、Jorg Schwenk 还有我在 [RA Conference 2013] 的
Cryptographers' Track 发表论文的总结。
你可以取得我演讲时的[投影片]、还有[论文全文]。
我们对常见 Java library 所产生的乱数序列进行分析,
这些 Java library 用了 PRNG
(Pseudo Random Number Generator,通常是 SecureRandom),
我们发现在特定条件下有明显的弱点。
为了让这篇文章尽可能简短,各种 PRNG 所用的算法、详细的 bug 描述、
统计检验的结果都略过不提,但是论文里头都有。
我们的调查涵盖 PRNG 本身、以及它们用来作 seed 的 entropy collector
(例如没有可用的实数产生器时)。
**底线:需要品质良好的乱数时,不要使用 PRNG!**
[RA Conference 2013]: https://ae.rsaconference.com/US13/connect/
sessionDetail.ww?SESSION_ID=3386&tclass=popup
[投影片]: https://ae.rsaconference.com/US13/connect/fileDownload/
session/85EEC4CC0848A5E7793DDEC27550D7A6/CRYP-W25.pdf
[论文全文]: http://link.springer.com/chapter/10.1007%2F978-3-642-36095-4_9
有很多测量品质的方式。首先,我们分析程式码,
然后试图(且成功地)发现导致缺陷的明显程式错误。
再者,我们对产生出来的乱数序列进行统计检验。
最后,我们在特定情况下(高系统负载、某些 component 无法使用...... 等等)
对算法作压力测试。
[Apache Harmony]
================
虽然已经退休了(译注:原文是 although retried,应该是 typo),
但是 Apache Harmony 仍然活在 Android source code 中
(参见[这里][Harmony Wikipedia])、
是几百万台机器的一部分。
[Apache Harmony]: http://harmony.apache.org/
[Harmony Wikipedia]: http://en.wikipedia.org/wiki/
Apache_Harmony#Use_in_Android_SDK
弱点

Links booklink

Contact Us: admin [ a t ] ucptt.com