为了账号安全,请及时绑定邮箱和手机立即绑定

使用量子整数作为其种子生成的随机数被认为是伪随机还是真正随机?

使用量子整数作为其种子生成的随机数被认为是伪随机还是真正随机?

三国纷争 2023-06-27 18:03:48
我总是听说量子计算机产生的随机数被认为是“真正的随机”,而经典计算机产生的随机数被认为是“伪随机”。如果要使用量子整数作为种子生成随机数,那么从该种子生成的数字会被视为“伪随机”还是真正的随机?在任何地方都找不到此说明,欢迎任何解释。import randomrandom.seed(get_my_quantum_number()) #Some quantum integer generated from an API.random.random() #Is this "pseudo-random" or "truly random" ?
查看完整描述

1 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

random.random()使用伪随机数生成器 (PRNG),该生成器根据定义使用确定性算法并在数学上扩展其输入。因此,它生成的数字是伪随机的,即使它是由量子随机数生成器或某些其他不确定源的输出播种的。

种子是初始化 PRNG 的值,PRNG 可以生成的可能序列的数量取决于 PRNG 的状态大小和种子的大小。例如,如果种子或状态只有 32 位长,则该 PRNG 最多可能有 2 32 个不同的伪随机数序列,无论种子来自何处。


无论如何,“伪随机”和“真正随机”数字之间的区别不是应用程序关心的(并且您没有真正指定您想要的应用程序类型)。相反,一般来说:

  • 安全应用程序关心这些数字是否难以猜测;在这种情况下,只有加密 RNG 可以实现这一要求(即使是依赖于伪随机数生成器的 RNG)。Python 的示例是secrets模块或random.SystemRandom.

  • 科学模拟关心这些数字是否表现得像独立的均匀随机数,并且通常关心这些数字在以后是否可重现。一个 Python 示例是numpy.random.Generator.

例如,random.random()Mersenne Twister 使用的伪随机数生成器不适合密码学或信息安全;它产生的数字并不是为了难以猜测而设计的,无论该生成器如何播种(无论是通过量子随机数生成器还是其他方式),情况都是如此。

相比之下,为信息安全而设计的伪随机生成器通常涉及加密哈希函数、分组密码或流密码,特别是因为目标之一是使未来的伪随机数难以猜测,即使生成器的输出已知。


查看完整回答
反对 回复 2023-06-27
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信