- 主题:刚注意到取小于某个数的随机数, 用随机数取余并不随机
原理是啥?比如我要生成一万以内的随机数,下指令的前后一毫秒,都没有任何高能粒子进来,怎么办?就算进来了,不就一个哔声吗?怎么转换成一万以内的随机数?
【 在 Giwatron 的大作中提到: 】
: 用盖格计数器的irq中断
: 高能粒子击中盖格管是真随机的
: 所以得到的是真随机数
: ...................
--
FROM 125.119.236.*
那这个硬件生成的种子,跟我运行代码时取的系统时间戳当种子,有啥区别?运行到那一句代码的时刻本来就是随机的
【 在 philbloo 的大作中提到: 】
: 硬件生成一个种子 然后用 aes/sha2/sha3 来生成prng。种子需要定时补充,但不需要随时更新
:
--
FROM 125.119.236.*
如果频繁到需要考虑时间戳的线性相关,那盖格计数器有那么多的高能粒子捕获事件可用?
还有,如果时间戳是线性相关的,那就取它的MD5值,再映射成种子,这样总没有线性相关了吧?
【 在 philbloo 的大作中提到: 】
: 用timestamp做的种子显然是相关的 而且一般来说是线性相关的 有些应用里需要的entropy非常频繁且多 甚至比原始数据还多 用时间戳的话相关性太强 因为1)种子是线性相关的 2) linear transform(aes)也是
:
--
FROM 125.119.236.*