Encryption 基于LFSR的流密码的已知明文攻击

Encryption 基于LFSR的流密码的已知明文攻击,encryption,stream-cipher,Encryption,Stream Cipher,我正在读一本关于密码学的书,我陷入了一个问题。我几个星期都在努力解决这个问题。但我认为问题是我无法理解整个情况。问题是这样的: 我们对基于LFSR的流密码执行已知的明文攻击。我们知道发送的明文是: 1001 0010 0110 1101 1001 0010 0110 通过点击通道,我们观察到以下流: 1011100 0011 0001 0010 1011 0001 1- What is the degree m of the key stream generator? 2- What is th

我正在读一本关于密码学的书,我陷入了一个问题。我几个星期都在努力解决这个问题。但我认为问题是我无法理解整个情况。问题是这样的:

我们对基于LFSR的流密码执行已知的明文攻击。我们知道发送的明文是:

1001 0010 0110 1101 1001 0010 0110

通过点击通道,我们观察到以下流:

1011100 0011 0001 0010 1011 0001

1- What is the degree m of the key stream generator?
2- What is the initialization vector?
3- Determine the feedback coefficients of the LFSR.
4- Draw a circuit diagram and verify the output sequence of the LFSR.
非常感谢您帮助我理解密码学和LFSR。

您指的是什么,对吗?考虑到斯普林格是出版商,应该是合法的

我想说第二个列表是密文,即与密钥流异或的明文。然后,密钥流将是

    1001 0010 0110 1101 1001 0010 0110
XOR 1011 1100 0011 0001 0010 1011 0001
=   0010 1110 0101 1100 1011 1001 0111

分组在7位的块中。给定定理2.3.1“m阶LSFR生成的最大序列长度为(2^m)-1”,您可以猜测阶数可能为3,因为LSFR的序列长度似乎为7。请注意,次数统计LSFR的内部状态,而不是多项式的次数。根据公式(2.1),其度数为1

所以你要计算的是方程的解

p(0,0,1)=0
p(0,1,0)=1
p(1,0,1)=1
对于
p(s_0,s_1,s2)=p_0*s_0+p_1*s_1+p_2+s_2
,检查密钥流的其余部分是否也与此公式匹配。完成此操作后,您将得到以下矩阵:

0 0 1 | 0
0 1 0 | 1
1 0 1 | 1

所以
p_0=1
p_1=1
p_2=0
。该问题提供的信息不足。有多种解决方案

第一步是确定密钥流。既然你知道明文和密文,那应该很容易。只需对这两个进行xor运算

LFSR的标准方法是在仅包含两个元素(0和1)的域上使用m次本原多项式。在这种情况下,重复之前的序列长度为2^m-1。这里有28位。因此,预期的解决方案是m=3。实际上,您可以将密钥流的28位中断为前7位的3个重复实例

在m=3的假设下,密钥流的前3位是初始化向量。由此,您应该能够确定LFSR中的抽头。你可以用这样一个事实来检验你的答案:在有两个元素的域上,只有两个三次本原多项式,x^3+x^2+1和x^3+x+1

信息不足的原因是,密钥流可能是5度、6度或7度LFSR的前28位。。。。你明白了

增加
假设你的LFSR的阶数为m,初始化向量为0000…01。我在左移。现在执行LFSR的一个步骤。丢弃最左边的位,剩余的m-1位向左移位,新的最右边的位是所有抽头的异或。因此,给定初始化向量,当且仅当在最右边的单元上有抽头时,新的最右边的位为1。现在再换一班。新的最右边的位是两个最右边单元的异或的组合。从上一步中,您知道最后一个单元格上是否有点击。因此,在两次轮班后,您知道在最右边的两个单元格上是否有任何点击。继续这种方式,您可以确定所有的点击。

非常感谢您的回答。你真的为我打开了一扇门。但我仍然对反馈系数部分感到困惑。我们如何达到反馈系数?对于这个问题,我们能说p2=0,p1=1,p0=1吗?@TimTuckle:我已经扩展了我的答案。
0 0 1 | 0
0 1 0 | 1
1 0 1 | 1