出品:科普中國

作者:王琛(中國科學(xué)院計算技術(shù)研究所在讀博士)

監(jiān)制:中國科普博覽

你有沒有過這樣的經(jīng)歷:在和朋友玩桌游時忘了帶骰子,只好用手機中的虛擬骰子來代替;在游戲中抽卡、開箱時,期待能夠獲得頂級裝備;用手機號登錄賬戶時,系統(tǒng)會發(fā)送一條驗證碼。這些結(jié)果都來自于計算機生成的隨機數(shù),看起來毫無規(guī)律,似乎是隨機決定的。但你有沒有想過,計算機生成的隨機數(shù)真的隨機嗎?

(圖片來源:AI生成)

最近,美國國家標準與技術(shù)研究院(NIST)和科羅拉多大學(xué)的研究人員在《自然》雜志上發(fā)表了他們的一項最新研究成果。他們搭建了一套新的可信隨機數(shù)生成系統(tǒng),用以生成既不可預(yù)測又可以被驗證的隨機數(shù)。

這套系統(tǒng)以量子物理為基礎(chǔ),從自然界的根本不確定性中提取隨機性。同時,研究人員還設(shè)計了一種機制,讓整個生成過程公開、透明、無法被篡改。目前,這個系統(tǒng)已經(jīng)上線,人們可以通過網(wǎng)絡(luò)來實時獲得系統(tǒng)生成的隨機數(shù)。同時,隨機數(shù)生成的整個過程也會被完整記錄以備查驗。

不過,我們?yōu)槭裁葱枰@樣一套復(fù)雜的系統(tǒng)?為了理解這項工作的重要意義,我們還得從一個更基礎(chǔ)的問題說起:我們平時使用的隨機數(shù)究竟是怎么來的?

計算機是怎么“裝出”隨機的?

盡管我們在生活中早已習(xí)慣使用各種隨機數(shù),但計算機本身并不會真正地產(chǎn)生隨機數(shù)。計算機是按照預(yù)設(shè)算法精確運行的機器,給定相同的輸入,每一次都會給出完全相同的結(jié)果。

為了產(chǎn)生隨機數(shù),工程師們設(shè)計了一類“偽隨機數(shù)生成”算法。這類算法依靠特定的數(shù)學(xué)公式,生成一串看起來毫無規(guī)律的數(shù)字。為了避免每次都得到相同的結(jié)果,算法還會引入一個額外的輸入?yún)?shù),這被稱為隨機數(shù)“種子”。這樣生成的隨機數(shù),在不知道公式和“種子”的情況下,很難得到其內(nèi)部的規(guī)律,因此已經(jīng)可以在一些場景中被當(dāng)做隨機數(shù)使用。

比如,當(dāng)你在用手機擲一個虛擬骰子的時候,程序并不是真的在擲,而是根據(jù)某個輸入值計算出投擲的結(jié)果。這個輸入值可能是現(xiàn)在的時間、手機的一些狀態(tài)等。因為這些因素會不斷地改變,所以每次擲骰子的結(jié)果也會不一樣,使其看起來是隨機的。但是當(dāng)你知道輸入值和算法的時候,你就可以預(yù)知骰子的結(jié)果。

骰子

(圖片來源:維基百科)

這正是它們被稱為“偽隨機數(shù)”的原因。它們看起來是隨機的,但實際上只是我們暫時不知道預(yù)測它們所需的全部信息。

使用“偽隨機數(shù)”有何影響?

事實上,偽隨機數(shù)的應(yīng)用已經(jīng)非常廣泛。例如在電子游戲中,敵人掉落道具、攻擊、暴擊等的結(jié)果幾乎都是通過生成偽隨機數(shù)來實現(xiàn)的。在這些場景下,隨機的目的是使得游戲結(jié)果具有不確定性。有些游戲甚至還會刻意修改結(jié)果,在你連續(xù)未獲得稀有物品的時候自動提升概率來吸引玩家。在這種情況下,雖然隨機數(shù)并不是真的隨機,但作為一種產(chǎn)生不確定性的手段已經(jīng)足夠了。

不過,在一些更敏感的場景中,偽隨機數(shù)可能會帶來問題。比如手機驗證碼,如果攻擊者可以預(yù)測系統(tǒng)即將發(fā)送的驗證碼,用戶的賬戶就可能被盜用。除此之外,密碼學(xué)、網(wǎng)絡(luò)安全、金融交易等多種系統(tǒng)往往也將隨機性作為安全性的核心基礎(chǔ)。如果隨機性本身無法保證的話,我們使用的密碼可能會被猜出,我們發(fā)送的信息可能會被竊取,甚至我們的資金安全也可能會受到威脅。

偽隨機數(shù)是一種高效的技術(shù)手段,但它只能在不需要絕對安全的地方發(fā)揮作用。當(dāng)我們真正需要不可預(yù)測、無法操控的隨機性時,僅靠算法偽裝就不夠用了。

我們能制造真正的“隨機”嗎?

那么,如果計算機本身不能產(chǎn)生真正的隨機數(shù),我們有沒有可能制造出真正意義上的隨機數(shù)?答案可以從自然界中尋找。

在自然界中,確實存在著一些現(xiàn)象,它們的結(jié)果具有不可預(yù)測性。比如原子核的衰變時間、光子在測量時的偏振方向、分子的無規(guī)則熱運動等。現(xiàn)代量子物理的理論指出,有些事件在發(fā)生之前并沒有確定的結(jié)果,也就無從被預(yù)測。

通過各種傳感器,我們可以從這些自然現(xiàn)象中采集數(shù)據(jù),真正得到不依賴任何算法、完全無法預(yù)測的隨機數(shù)。例如電路中的熱噪聲、放射性粒子的衰變間隔、或者大氣的擾動。這些物理信號可以被轉(zhuǎn)換為數(shù)字,用于輸出真正的隨機數(shù)。

USB可插拔真隨機數(shù)生成器

(圖片來源:維基百科)

不過,即使這些自然現(xiàn)象本身具備不可預(yù)測性,隨機數(shù)的生成過程依然可能會受到外界因素的干擾,甚至人為的操控。對于用戶來說,僅憑一串?dāng)?shù)字,很難判斷它是不是真的隨機。

因此,要生成真正可靠的隨機數(shù),我們不僅需要從物理原理上保證隨機性,還必須設(shè)計一種機制,保證這個生成過程不會被外界篡改,而且可以被驗證。這正是科研人員研發(fā)新的隨機數(shù)生成系統(tǒng)的核心目標。

新系統(tǒng):借助量子物理生成真正的隨機數(shù)

要從物理上生成真正的隨機數(shù)并不難,難的是讓它可以被驗證。在沒有絕對可信第三方的情況下,怎樣證明一組隨機數(shù)確實來自不可預(yù)測的自然過程?這是隨機數(shù)生成真正的難題。

NIST和科羅拉多大學(xué)提出的新系統(tǒng)關(guān)鍵在于,它并不是由某一臺設(shè)備單獨完成的,而是由多個獨立的節(jié)點共同協(xié)作完成。其中一方通過量子糾纏實驗從物理世界中獲取真正的隨機性,其它節(jié)點則負責(zé)對數(shù)據(jù)進行處理、記錄和驗證。實驗產(chǎn)生的測量結(jié)果本身不可預(yù)測,經(jīng)過數(shù)學(xué)提取和驗證后可用于生成高質(zhì)量的隨機數(shù)。

為了記錄和驗證整個過程,他們設(shè)計了一種稱為“交織哈希鏈”的結(jié)構(gòu),這是一種區(qū)塊鏈的變種,由多個哈希鏈交叉引用構(gòu)成。這種結(jié)構(gòu)的優(yōu)勢在于,只要其中任何一方嘗試篡改內(nèi)容,其它節(jié)點的記錄就會立即產(chǎn)生沖突,從而暴露異常,大大提升了系統(tǒng)的可信性。

交織哈希鏈

(圖片來源:參考文獻[1])

更重要的是,整個驗證過程所需的信息是公開的,任何人都可以下載原始數(shù)據(jù),獨立完成驗證。這就是“可驗證的隨機性”,在確保結(jié)果不可預(yù)測的同時,也提供了公開、透明、可復(fù)查的驗證機制。

結(jié)語

我們習(xí)以為常的隨機數(shù),其實背后隱藏著許多問題:它是不是真的隨機?能不能被預(yù)測甚至偽造?這不僅是一個數(shù)學(xué)問題,更關(guān)系到我們在數(shù)字世界的信息安全。

這項由NIST和科羅拉多大學(xué)實現(xiàn)的系統(tǒng),展示了一種新的路徑:結(jié)合自然界的隨機性和可驗證的機制,可以提供一套公開、可信的隨機數(shù)生成方式。也許在不遠的將來,這樣的系統(tǒng)會成為數(shù)字基礎(chǔ)設(shè)施中不可或缺的一部分,為加密通信、數(shù)據(jù)保護乃至整個網(wǎng)絡(luò)世界提供可靠的隨機性支持。

參考文獻:

[1]Kavuri G A, Palfree J, Reddy D V, et al. Traceable random numbers from a non-local quantum advantage[J]. Nature, 2025: 1-6.

來源: 中國科普博覽

內(nèi)容資源由項目單位提供