基于移位寄存器的序列密码
深入淺出密碼學2.3
線性反饋移位寄存器(LFSR)
一個LFSR由若干時鐘儲存元件(觸發器)和一個反饋路徑組成。儲存元件的數目給出了LFSR的度。反饋網絡計算移位寄存器中某些觸發器的XOR和,并將其作為上一個觸發器的輸入。
簡單LFSR
例如一個度m=3,有三個觸發器FF2、FF1、FF0。且反饋路徑如圖:
內部狀態由si表示,在每個時鐘滴答內,內部狀態位會向右移動一位。最右邊的狀態位為當前輸出位。最左邊的狀態位則是在反饋路徑中計算的,它是前面時鐘周期中一些觸發器值的XOR和。
由實例得出,度為3的LFSR輸出的周期長度為7,且當初始狀態位為s0,s1,s2時,有si+3≡si+1+si mod 2。
LFSR的數字描述
度為m,初始值為sm-1,…,s0、反饋系數為pi的通用LFSR(線性反饋移位寄存器)形式為:
此LFSR擁有m個觸發器和m個可能的反饋位置,反饋路徑的活躍取決于反饋系數p。
當pi=1時開關被關閉,那么反饋就是活躍的,而如果pi=0時開關打開,此時觸發器的輸出就不會被反饋。
假設某個LFSR初始加載的值為s0,…,sm-1,則LFSR的下一個輸出位sm=sm-1pm-1+sm-2pm-2+…+s0p0 mod 2。
定理:度為m的LFSR可以產生的最大序列長度為2m-1。
因為一個m位狀態向量只能得到2m-1個非零狀態,所以在出現重復之前的最長序列長度位為2m-1。
注意,必須排除所有為零的狀態。如果一個LFSR全零,它就會陷入這個狀態,也就是之后的數也都是0了。
只有特定位置(p0,…,pm-1)才能得到最大長度的LFSR。
總結
以上是生活随笔為你收集整理的基于移位寄存器的序列密码的全部內容,希望文章能夠幫你解決所遇到的問題。