求解3级LFSR特征多项式及判断是否为m序列
假设该3级线性反馈移位寄存器的状态为$(s_1, s_2, s_3)$,则其输出的密钥流为$s_1 \oplus s_2 \oplus s_3$。根据已知的明文流和密文流,可以列出以下方程组:
$$
\begin{cases}
s_1 \oplus s_2 = 1 \\
s_2 \oplus s_3 = 1 \\
s_1 \oplus s_3 = 0 \\
\end{cases}
$$
通过解方程组,可以得到$s_1=1, s_2=0, s_3=1$。因此,该线性反馈移位寄存器的初始状态为$(1,0,1)$。
接下来,可以通过反推特征多项式来判断该线性反馈移位寄存器是否为m序列。假设特征多项式为$f(x)=x^3+a_2x^2+a_1x+a_0$,则其对应的状态转移方程为:
$$
s_i = s_{i-3} \oplus a_0s_{i-1} \oplus a_1s_{i-2} \oplus a_2s_{i-3}
$$
将初始状态代入状态转移方程,可以得到该线性反馈移位寄存器的输出序列为:
$$
1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, \dots
$$
通过观察输出序列,可以发现其周期为7,而不是$2^3-1=7$,因此该线性反馈移位寄存器不是m序列。
最后,可以通过已知的初始状态和状态转移方程,求解特征多项式。将输出序列转化为二进制数列,可以得到:
$$
10111001011100011011\dots
$$
将其转化为十进制数列,可以得到:
$$
\begin{aligned}
& 1, 2, 5, 7, 15, 14, 12, 25, 18, 37, 43, 86, 77, 56, 113, 210, \\
& 181, 98, 197, 391, 782, 781, 563, 1127, 2194, 2195, \dots
\end{aligned}
$$
根据线性反馈移位寄存器的特性,其输出序列的特征多项式为其输出序列的最小多项式。因此,可以使用Berlekamp-Massey算法求解最小多项式。经过计算,可以得到特征多项式为:
$$
f(x) = x^3 + x^2 + 1
$$
因此,该线性反馈移位寄存器的特征多项式为$x^3+x^2+1$,不是m序列。
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。