簡體   English   中英

使用量子整數作為其種子生成的隨機數被認為是偽隨機還是真正隨機?

[英]Are random numbers generated using a quantum integer as its seed considered pseudo-random or truly random?

我總是聽說量子計算機產生的隨機數被認為是“真正隨機的”,而經典計算機產生的隨機數被認為是“偽隨機”

如果要使用量子整數作為種子生成隨機數,那么從該種子生成的數字會被視為“偽隨機”還是真正的隨機數 在任何地方都找不到此說明,歡迎任何解釋。

import random
random.seed(get_my_quantum_number()) #Some quantum integer generated from an API.
random.random() #Is this "pseudo-random" or "truly random" ?

random.random()使用偽隨機數生成器 (PRNG),它根據定義使用確定性算法並在數學上擴展其輸入。 因此,它生成的數字是偽隨機的,即使它是由量子隨機數生成器或其他一些非確定性源的輸出播種的。

種子是初始化 PRNG 的值,PRNG 可以生成的可能序列的數量取決於 PRNG 的狀態大小和種子的大小。 例如,如果種子或狀態只有 32 位長,那么該 PRNG 最多可能有 2 32 個不同的偽隨機數序列,而不管種子來自何處。

另請參閱以下問題:


在任何情況下,“偽隨機”和“真正隨機”數字之間的區別並不是應用程序關心的(並且您沒有真正指定您想到的應用程序類型)。 相反,一般來說:

  • 安全應用程序關心數字是否難以猜測; 在這種情況下,只有加密 RNG 才能滿足這一要求(即使是依賴於偽隨機數生成器的)。 Python 示例是secrets模塊或random.SystemRandom
  • 科學模擬關心這些數字的行為是否像獨立的均勻隨機數,並且通常關心這些數字在以后是否可重現。 Python 示例是numpy.random.Generator

例如, random.random()使用的偽隨機數生成器,Mersenne Twister,不適用於密碼學或信息安全; 它產生的數字並非設計為難以猜測,無論該生成器是如何播種的(無論是通過量子隨機數生成器還是其他方式),情況都是如此。

相比之下,為信息安全設計的偽隨機生成器通常涉及加密哈希函數、分組密碼或流密碼——特別是因為一個目標是使未來的偽隨機數難以猜測,即使生成器的輸出是已知的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM