LFSR——二進制下線性反饋移位寄存器與Berlekamp-Massey算法
轉載自:元暑期學校課件(侵刪)
線性反饋移位寄存器(LFSR)
給定一個線性反饋移位寄存器(LFSR)的n個初始值a0,a1,...,an−1,不斷地加移位脈衝,n級LFSR就會輸出一序列
a0,a1,a2,...
ai∈F2={0,1}.
其中ai+n滿足等式
ai+n=j=1∑ncjai+n−j,cj∈F2.
我們把這樣的序列稱爲 (n級)線性反饋移位寄存器(LFSR)。
特徵 多項式與聯接多項式
n級LFSR的**特徵多項式(Characteristic Polynomial)**爲
f(x)=xn+i=1∑ncixn−i,
其**聯接多項式(Reciprocal Polynomial/Joint Polynomial)**爲
f(x)=xnf(x1)=1+i=1∑ncixi.
將滿足遞推關係式(2)的n級LFSR序列稱爲由f(x)產生的序列。
G(f):由f(x)產生的所有序列的全體組成的集合。
極小多項式
設a是F2上的一個週期序列,存在F2上唯一的首一多項式f(x)使得a∈G(h(x))當且僅當f(x)∣h(x)。這個多項式f(x)稱作a的極小多項式。
Berlekamp-Massey算法
Berlekamp-Massey算法(簡稱BM算法):在已知二元序列的情況下求解其極小多項式和階數。
(1) 設n0是一個非負整數,滿足
a0=a1=⋯=an0−1=0,an0̸=0.
取
d0=d1=⋯=dn0−1=0,dn0=an0,
令
f1(x)=f2(x)=⋯=fn0(x)=1,
l1=l2=⋯=ln0=0.
令
fn0+1(x)=1−dn0xn0+1,ln0+1=n0+1.
(2) 假設(fi(x),li),1≤i≤n≤N 已經求得。而
l1=l2=⋯=ln0<ln0+1≤ln0+2≤⋯≤ln
根據fn(x)=1+cn,1x+⋯+cn,lnxln,並計算
dn=an+cn,1an−1+⋯+cn,lnan−ln.
如果dn=0,則取
fn+1(x)=fn(x),ln+1=ln;
若dn̸=0,這時一定存在1≤m<n,使
lm<lm+1=lm+2=⋯=ln,
取
fn+1(x)=fn(x)−dndm−1xn−mfm(x),
ln+1=max{ln,n+1−ln}.
例 求週期爲8的序列a(8)=00101101的極小多項式和階數。
解 a0=0,a1=0,a2=1,a3=0,a4=1,a5=1,a6=0,a7=1. 首先n0=2,因此
d0=d1=0,d2=1,
f1(x)=f2(x)=1,f3(x)=1−x3,
l1=l2=1,l3=3.
計算d4=a4−a1=1−0=1̸=0,這時l2<l3=l4,因此m=2,
f5(x)=f4(x)−d4d2−1x4−2f2(x)=1−x3−x2=1+x2+x3,
l5=max{l4,4+1−l4}=3.
計算d5=a5+a3+a2=1+0+1=0,因此
f6(x)=f4(x)=1+x2+x3,l6=l5=3.
計算d6=a6+a4+a3=0+1+0=1̸=0, 這時l2<l3=l4=l5,因此m=2,
f7(x)=f6(x)−d6d2−1x6−2f2(x)=1+x2+x3−x4=1+x2+x3+x4,
l7=max{l6,7−l6}=4.
計算d7=a7+a5+a4+a3=1+1+1+0=1̸=0,這時l6<l7,因此m=6,
f8(x)=f7(x)−d7d6−1x7−6f6(x)=1+x2+x3+x4−x(1+x2+x3)=1+x+x2,
l8=max{l7,8−l7}=4.
所以a(8)=00101101的極小生成多項式爲1+x+x2,階數爲4。