Information reconciliation又稱資訊協調,源自於古典資訊處理的奇偶校驗的延伸,透過級聯協議實現(Cascade Protocol)。
奇偶校驗技術可以透過驗證奇偶校驗位元來確保接收到的字串的正確性。
奇偶校驗位是我們在發送到接收方之前在初始字串末尾添加的一位附加位。
對於給定的一組位,我們將計算有多少位值為「1」:
假設
如果成功傳輸
如果傳輸失敗
然而,奇偶校驗仍然會遇到到一定比例的錯誤。
假設您只想傳送一位訊息: 1。您可以新增奇偶校驗位 11並發送訊息。
如果頻道中存在噪聲,接收者可能會收到(以一定機率),
透過查看奇偶校驗位,接收者將得出結論:
級聯協議的想法是執行多輪傳輸,在每輪中將兩個密鑰分為區塊並比較這些區塊的奇偶校驗。
通常的方法是先隨機化錯誤的位置,因此 Asja 和 Balvis 同意隨機排列並重新排序其位元串。
因此會導入下方的隨機排列
#Performing random permutation
import random #importing randomizing library
list1=['a', 'b', 'c']
list2=[1, 2, 3]
permutation = list(zip(list1, list2)) #map the index of multiple lists
random.shuffle(permutation) #performing permutation
list1, list2 = zip(*permutation) #unpacking values
print(list1)
print(list2)
輸出結果有可能是下面的結果或是其他排列方式
('c', 'a', 'b')
(3, 1, 2)
級聯協定由多個通道組成。在每次傳遞之前,Asja 和 Balvis 都會執行隨機排列並重新排序其位元。
3rd PASS 將重複 2nd PASS!
Asja 和 Balvis 將重複2nd PASS,直到找到並修正所有錯誤。
級聯協議有一定的Threshold。如果 QBER ≥ 0.25,則 Cascade 協議揭露的內容超過𝑛位,因此可能是完整的原始密鑰。
子區塊大小𝑤取決於迭代。而初始區塊大小應選擇可以容許區塊中出現一個錯誤的大小。因此,我們可以再次使用 QBER 值來估計𝑤值!
例如: first pass, 𝑤1=0.73/QBER
然而,如果傳輸過程中出現偶數個錯誤,奇偶校驗的方式就會失效。
因此,Asja和Balvis應該轉向BICONF策略。
BICONF 策略背後的想法是 Asja 和 Balvis 將重複比較整個位元串中隨機選擇的子集的奇偶性(這有點繞口(´・_・`) ):
我們可以再次使用 QBER 值來估計區塊長度
QBER 值越小,區塊大小越大。
透過這一系列操作,我們將可以完整實現BB84協議
明天將會放上完整實做的程式
參考資料: womanium 教材