• 大小: 2KB
    文件类型: .py
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: Python
  • 标签: LFSR  

资源简介

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拿出来
     

评论

共有 条评论

相关资源