随机数(RNG)主要分为两大类:伪随机与物理随机数。
伪随机是由各种算法产生的,本质上是决定论的,就是你输入同一个初值,结果是确定的。当然这不是我们想要的。
物理随机数是由物理过程产生的。分为三小类。Noise,chaos,quantum。
Noise和chaos是由经典物理过程产生的,也是决定论的。比如我们知道小球的初始条件,我们就可以预测小球未来的运动情况。这也不是我们想要的。
真随机数是由量子过程产生的,其原理是基于uncertain principle。举个Z简单的例子,当单个光子经过分束器BS的时候,有两条路径可以选择,用任何理论都无法预测which way(隐变量理论除外),所以通过测量光子走了哪条路就可以产生真正的随机数。当然这里要求探测设备和发射源是被信任的。如果被坏人操作,其实也产生不了随机数。
那么就不存在真随机数吗?No,device independent quantum random number(DI-QRNG)就可以实现。DI-QRNG是通过观察贝尔不等式的违背来产生随机数,这个过程是不依赖探测设备和源的,所以由DI-QRNG产生的真随机数可以抵抗恶意攻击。