資源簡介
Berlekamp-Massey算法(簡稱BM算法):在已知二元序列的情況下求解其極小多項式和階數(shù)。 用于解密LFSR(線性反饋移位寄存器)
代碼片段和文件信息
‘‘‘
Berlekamp-Massey算法(簡稱BM算法):在已知二元序列的情況下求解其極小多項式和階數(shù)。
‘‘‘
file=open(‘E:\\Program?Files?(x86)\\CTF\\De1CTF\\crypto\\2.LFSR\\question\\output‘‘r‘)
output=file.read()?#LFSR輸出序列
print(output)
#output=‘0011101‘
#1.找到第一個an0!=0
D=[]#存儲di
F=[]#存儲fi
L=[]#存儲li
for?i?in?range(len(output)):
????a=int(output[i])
????D.append(a)
????F.append([1])#第i個:x**i的系數(shù)
????L.append(0)
????if(a!=0):
????????n0=i
????????break
F.append([100-D[n0]])
L.append(n0+1)
for?n?in?range(n0+1len(output)):
????d=0
????for?j?in?range(len(F[n])):
????????d^=F[n][j]*int(output[n-j])
????D.append(d)
????if(d==0):
????????F.append(F[n])
????????L.append(L[n])
????elif(d!=0):
????????m=n
????????for?j?in?range(n):
????????????#先找到l_i中最大的數(shù)
????????????if(L[m]==L[n]):
????????????????m-=1
????????????if(L[m] ????????????????break;
????????f_n=F[n]?#先把f_n拿出來
?????
評論
共有 條評論