Stream-Cipher

那是什麼意思,A5/1 有時鐘?

  • May 19, 2021

那是什麼意思,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()

引用自:https://crypto.stackexchange.com/questions/89980