题目:
3级线性反馈移位寄存器C3=1时可有4种线性反馈函数,设其初始状态为(a1,a2,a3)=(1,0,1),输出由它们得到的密钥流,并分别利用生成的密钥流对明文“0x0123456789ABCDEF”进行加密,输出加密后的结果,再对密文进行解密,输出解密后的结果。
1.分析
相关题目详解:3级线性反馈移位寄存器在C3=1时可有4种线性反馈函数,设其初始状态为(a1,a2,a3)=(1,0,1),求各线性反馈函数的输出序列及周期-CSDN博客
(1)四种可能情况
情况一:C1=0 C2=1,对应反馈函数:f=a2⊕a1
情况二:C1=0 C2=0,对应反馈函数:f=a1
情况三:C1=1 C2=0,对应反馈函数:f=a3⊕a1
情况三:C1=1 C2=1,对应反馈函数:f=a3⊕a2⊕a1
(2)如何得到密钥流
以情况1为例子
解释从初始状态到第1次:
先把a(i)按照i值从大到小的顺序排好,再计算出f=a2⊕a1=0⊕1=1
此时我们把a3到a1的值往右移一位,由表看就是黄色数字转移到绿色数字的位置
原来a3的值会空出来,我们把f值填入(红色数字),以此类推:
a3 |
a2 |
a1 |
输出(a1) |
|
初始状态 |
1 |
0 |
1 |
\ |
第1次 |
1 |
1 |
0 |
1 |
第2次 |
1 |
1 |
1 |
0 |
(3)加密操作
附:题目中的0x代表16进制
密文二进制 = 密钥流与明文分别16进制转为2进制逐比特异或,得到密文流,再将密文流2进制转为16进制
例子:
附:()内是转换的原文 |
明文(16进制) |
密钥流 |
原16进制 |
23 |
34 |