Stream-Cipher
那是什麼意思,A5/1 有時鐘?
那是什麼意思,A5/1 有時鐘?如果時鐘位與多數位一致,會發生什麼?
時鐘術語來自電子工程;在每個時鐘中,LFSR(觸發器)的單元被計時並且數據移動。在移位寄存器中,數據沿一個方向從一個移動到另一個。從下面我們可以看出,每個觸發器都有一個時鐘輸入,每個觸發器都有相同的時鐘。
在 LFSR(線性回饋移位寄存器)中,還有從所選抽頭點計算的回饋被饋入開始。
通常,LFSR 為每個時鐘計時,以便計算新的回饋,並移動 LFSR 以便形成新的輸出。**如果您不計時,則不會計算新的回饋,也不會發生移位。**舊輸出仍然有效。為了在電子設備中實現這一點,時鐘也由邏輯控制。在程式中更容易(見底部)。
考慮第一個 LFSR(索引名稱可以自由選擇並反映)
當計時它會變成;
看到單元格的數據向右移動,左側的新值是從活動抽頭計算的回饋值。
嚴重損壞的 A5/1 具有三個 LFSR,其中每個都有時鐘位,(8,10,10) 在維基百科的圖像上顯示為橙色。在每個時鐘,大多數都是由這些值形成的。
大多數的_ $ n $ 二進制變數表示出現次數最多的值。對於三位,只需計算個數 $ c $ 如果 $ c > 1 $ 那麼多數是**一*(即1的數量>零的數量)並且多數位是 $ 1 $ ,否則多數位是 $ 0 $ .
如果多數位與 LFSR 的時鐘位匹配,則 LFSR 被計時,否則不被計時。
每個 LFSR 的簡單程式碼可以描述為
majority = (L1[8] AND L2[10]) xor (L1[8] AND L3[10]) XOR (L2[10] AND L3[10]) def clockLFSR1(majority): if L[8] == majority: self.applyClock() def clockLFSR2(majority): if L[10] == majority: self.applyClock() def clockLFSR3(majority): if L[10] == majority: self.applyClock()