第19章 利用QRNG進行量子加密通信 (1/3)
利用RNG進行量子加密通信
#### 第二十章:利用RNG進行量子加密通信
RNG-01的成功,像是一把鑰匙,打開了江知夏通往新世界的大門。但他很快發現,擁有“上帝的骰子”只是第一步,如何把這枚骰子擲出的結果安全地送到別人手裏,纔是更大的挑戰。
“知夏,你的RNG生成的密鑰確實很完美。”陳默看着屏幕上那一串串經過NIST測試的隨機數,“但是,你打算怎麼把這些密鑰發給別人?如果通過互聯網傳輸,黑客截獲了密鑰,你的加密還有甚麼意義?”
這句話擊中了江知夏的軟肋。
是啊,密鑰生成得再安全,如果分發過程不安全,一切都是白費。這就是密碼學中最著名的“密鑰分發問題”。
“我要做量子密鑰分發(KD)。”江知夏突然說道。
陳默正在喝水,差點噴出來:“咳咳……你瘋了?KD?那是需要量子信道、單光子探測器和糾纏源的!我們只有這個幾千塊的RNG,怎麼做KD?”
“不,我們不需要做真正的量子糾纏分發。”江知夏眼中閃爍着興奮的光芒,“我們可以做‘模擬KD’。利用RNG生成的真隨機數,結合BB84協議的邏輯,在經典信道上實現一種‘類量子’的安全通信。”
“你是說……”陳默若有所思,“用真隨機數作爲一次性密碼本(One-Time Pad)的種子?”
“對!”江知夏站起身,在實驗室裏來回踱步,“雖然我們不能在物理層面上保證不可竊聽,但我們可以通過協議設計,讓任何竊聽行爲都留下痕跡。就像真正的KD一樣,一旦發現誤碼率異常,就丟棄密鑰。”
“這聽起來很瘋狂。”陳默笑了,“但我喜歡。幹吧!”
接下來的兩週,兩人分工合作。江知夏負責編寫通信協議和加密算法,陳默負責搭建網絡傳輸模塊。
他們選擇了一個經典的場景:模擬Alice和Bob的通信。
江知夏扮演Alice,陳默扮演Bob。
第一步:基矢選擇。
江知夏的RNG生成一串隨機比特流,比如...
然後,RNG再生成一串隨機基矢:+×+××+...(+代表直角基,×代表對角基)。
根據基矢的不同,0和1被編碼成不同的偏振態(在模擬中,用不同的電壓電平表示)。
第二步:傳輸。
這些編碼後的信號,通過局域網發送給陳默。
第三步:測量。
陳默的電腦收到信號後,也利用自己的RNG生成一組隨機基矢進行測量。
第四步:基矢比對。
兩人通過電話(模擬經典信道)公開比對基矢。
“我用了+。”
“我也用了+。”
“好,保留這個比特。”
“我用了×。”
“我用了+。”
“基矢不同,丟棄。”
經過這一輪篩選,他們得到了一串相同的、只有他們兩人知道的隨機密鑰。
“這就是 sifted key(篩選密鑰)。”江知夏看着屏幕上那串逐漸變長的數字,心跳加速。
但這還不夠。真正的KD還有一個內核步驟:竊聽檢測。
“假設現在有一個黑客,叫Eve。”江知夏對陳默說,“她在傳輸過程中截獲了我的信號。因爲她不知道我用的基矢,她只能隨機猜。如果她猜錯了,她就會改變信號的狀態。”