作者sky800507 (B翰)
看板java
标题[问题] SecureRandom的原理是什麽?
时间Fri Jun 30 23:26:02 2017
版上的前辈们大家好
小弟目前正在研究TRNG与PRNG
目前对TRNG的了解就是收集物理现象(大气噪音、元素衰退或电脑系统中的
随机事件,像滑鼠位移、网路讯号等...)并转换成bits,最後再转换成数字,
所产生的随机数列无法被重现。Linux提供了/dev/random的随机乱数产生方式,
就是藉由蒐集系统的随机事件到Entropy Source,并将这些bits转换成数字。
而PRNG则是给定初始种子(seed),使用数学算式来产生随机乱数,与TRNG
最大的差异就在於数列是被决定好的,只要种子一样,数列就可以重现。
目前知道java.util.Random是使用线性同余(LCG)来产生随机乱数,是属於PRNG
而java.Security.SecureRandom目前是知道在Linux上是会用到/dev/random或/dev/urandom
但对於他的随机数生成原理却不太清楚,Google老半天也找不到相关的原理,
大部份都在教如何使用而已
有前辈们知道其生成的原理吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 112.211.23.169
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1498836364.A.00F.html
1F:→ ssccg: SecureRandom是JCA的一部分,实际实作要看provider 07/01 00:34
3F:→ ssccg: 基本上都是用OS提供的random当seed,再用某种PRNG展开 07/01 00:36
4F:→ sky800507: 感谢,文章很有帮助。另外想问某种PRNG是? 07/03 20:40