如何找到抽取LFSR的多项式?

时间:2009-04-05 01:41:58

标签: encryption

我知道如果你对由线性反馈移位寄存器生成的系列进行抽取,你会得到一个新的系列和一个新的多项式。例如,如果您使用多项式x 4 + x + 1对LFSR生成的序列中的每个第五个元素进行采样,则会得到x 2 + x +生成的序列1。我可以通过强力找到第二个多项式(x 2 + x + 1),这对于低阶多项式是很好的。但是,对于高阶多项式,暴力破坏它所需的时间是不合理的。

所以问题是:是否有可能通过分析方法找到抽取的多项式?

2 个答案:

答案 0 :(得分:1)

最近看了这篇文章并在看到你的问题时想到了它,希望它有所帮助..:oÞ

给定GF(q)上的原始多项式,可以通过抽取从初始多项式获得的LFSR序列来获得另一个本原多项式。这在以下代码中进行了演示。

  

K:= GF(7);   C:= PrimitivePolynomial(K,2);   C;   D ^ 2 + 6 * D + 3   为了生成LFSR序列,我们必须首先将该多项式乘以适当的常数,以使尾随系数变为1.

     

C:= C *系数(C,0)^ - 1;   C;   5 * D ^ 2 + 2 * D + 1   我们现在能够生成长度为72-1的LFSR序列。初始状态可以是[0,0]以外的任何值。

     

t:= LFSRSequence(C,[K | 1,1],48);   吨;   [1,1,0,2,3,5,3,4,5,5,3,3,1,4,1,6,4,4,0,1,5,6,5,2,6] ,6,   0,5,4,2,4,3,2,2,0,4,6,3,6,1,3,3,0,6,2,1,2,5]   我们用具有属性gcd(d,48)= 1的值d对序列进行抽取。

     

t:=抽取(t,1,5);   吨;   [1,5,0,6,5,6,4,4,3,1,0,4,1,4,5,5,2,3,0,5,3,5,1,1,6] ,2,   0,1,2,1,3,3,4,6,0,3,6,3,2,2,5,4,0,2,4,2,6,6]   B:= BerlekampMassey(t);   B;   3 * D ^ 2 + 5 * D + 1   为了得到相应的本原多项式,我们乘以一个常数使其成为monic。

     

B:= B *系数(B,2)^ - 1;   B;   D ^ 2 + 4 * D + 5   IsPrimitive(B);   真

答案 1 :(得分:0)

来自these notes:“m序列c的n> 0的抽取,表示为c [n], 如果不是全零,则周期等于N / gcd(N,n) 序列,它的生成多项式g(x)具有第n个根 g(x)“

的根源