[问题] SecureRandom的原理是什么?

楼主: sky800507 (B翰)   2017-06-30 23:26:02
版上的前辈们大家好
小弟目前正在研究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老半天也找不到相关的原理,
大部份都在教如何使用而已
有前辈们知道其生成的原理吗?
作者: ssccg (23)   2017-07-01 00:34:00
SecureRandom是JCA的一部分,实际实作要看provider刚好版上就有一篇 #1HLoCRRG基本上都是用OS提供的random当seed,再用某种PRNG展开
楼主: sky800507 (B翰)   2017-07-03 20:40:00
感谢,文章很有帮助。另外想问某种PRNG是?

Links booklink

Contact Us: admin [ a t ] ucptt.com