资源简介
Berlekamp-Massey算法(简称BM算法):在已知二元序列的情况下求解其极小多项式和阶数。 用于解密LFSR(线性反馈移位寄存器)
代码片段和文件信息
‘‘‘
Berlekamp-Massey算法(简称BM算法):在已知二元序列的情况下求解其极小多项式和阶数。
‘‘‘
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的系数
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中最大的数
if(L[m]==L[n]):
m-=1
if(L[m] break;
f_n=F[n] #先把f_n拿出来
评论
共有 条评论