CTF_打卡DAY3

跟着《深入浅出密码学——常用加密技术原理与应用》学
P32-P50

第2章《序列密码》

线性反馈移位寄存器(LFSR)

简单公式:假设初始状态位s0,s1,s2,则输出位
s3=s1+s0 mod 2
s4=s2+s1 mod 2
s5=s3+s2 mod 2
……
综上 s(i+3)=s(i+1) +s(i) mod 2
(或s(i+3)=s(i+1)⊕s(i))

习题

2.1
(1)解密以下密文:
bsaspp kkuosp
rsidpy dkawoa
(2)该年轻人是如何被谋杀的?
注:由于本人始终解不出来,看了答案之后倒推才勉强成功,故贴上原题,若有正着推能明白的大神不吝赐教。
CTF_打卡DAY3
以下是我的倒推过程(不明白为什么是上下对起来看的????):
CTF_打卡DAY3
x2=y2-K2=s-s=0=0 mod 26=A
x3=y3-K3=a-i=-8=18 mod 26 =S
(在写以上文字时,突然仿佛明白了。所以,这个题干的意思是:
(2)解密以下密文://
bsaspp kkuosp使用该**,求解以下密文对应的明文:
rsidpy dkawoa
合着这不是两个密文啊摔

然后,
CTF_打卡DAY3
于是,奇怪的(划掉的)知识又增加了……

2.2
下面分析由参数(c2=1,c1=0,c0=1)指定的LFSR生成的伪随机序列。
(1)初始向量(s2=1,s1=0,s0=0)生成的序列是?
在看了诸多课件,废了好几张纸之后,终于弄懂了什么是LFSR撒花~
简单来说,s(m)=s(m-1)c(m-1)+…+s1c1+s0c0 mod2
s(m+1)=s(m)c(m-1)+…+s2c1+s1c0 mod2
对于这道题来说:
c0=1,c1=0,c2=1;
s1=1,s1=0,s0=0;
s3=s2c2+s1c1+s0c0 mod 2 =1
s4=s3c2+s2c1+s1c0 mod 2 =1
s5=s4c2+s3c1+s2c0 mod 2 =0
s6=0+0+1 mod 2 =1
s7=1+0+1 mod 2 =0

该小题生成的序列为:0011101,0011101……
(2)初始向量(s2=0,s1=1,s0=1)生成的序列?
1101001,1101001……
(3)这两个序列之间有什么联系?
移位±3位后可得另一个

2.3
对一个基于LFSR的序列密码发起一次已知明文攻击,假设我们已知发送的明文为:
1001 0010 0110 1101 1001 1001 0010 0110
通过窃听可以得到以下密文:
1011 1100 0011 0001 0010 1011 0001
(1)此**生成器的度m为多少?
7
(2)初始向量是什么?
001
已知明文密文求初始向量:y(i)=(x(i)+c(i))mod2

参考文献:《深入浅出密码学——常用加密技术原理与应用》