密码学第五章习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.6习题

一.判断题

1~5

二.选择题

1~5 ACBDE

6~10 BCA

三.填空题

1. vernam算法

2.驱动部分组合部分

3.如何将一小段的比特串(密钥)扩展成足够长的密钥

4.同步和自同步

5. 移位寄存器反馈函数

6.参数n 种子密钥

7.2的n次方减1 n

8.奇数互素本原的

四.简答题

(1)简述序列密码算法和分组密码算法的不同。

(2)密钥序列生成器是序列密码算法的核心,请说出至少5点关于密钥序列生成器的基本要求。

①种子密钥K的长度足够大,一般应在128位以上;

②KG生成的密钥序列{ki}具极大周期;

③{ki}具有均匀的n元分布;

④利用统计分析方法由{ki}提取关于KG结构或K的信息在计算上不可行;

⑤混乱性,即{ki}的每一比特位均与K的大多数比特有关;

⑥扩散性,即K 的任一比特的改变要引起{ki }在全貌上的变化;

⑦序列密钥{ki }不可预测,密文和相应明文的部分信息,不能确定整个{ki }。

(3)已知序列密码的密文串1010110110和相应的明文串010*******,而且还已知密钥流是使用3级线性反馈移位寄存器产生的,试破译该密码系统。

解:由()12341423,,,1f a a a a a a a a =⊕⊕⊕,初态为 ()()1234,,,1,1,0,1a a a a =。线性递归可得:511101a =⊕⊕⊕=

611101a =⊕⊕⊕=

701111a =⊕⊕⊕=

811110a =⊕⊕⊕=

910111a =⊕⊕⊕=

1011101a =⊕⊕⊕=

可以得到输出序列为()1101111011,周期为5p =。

(4)简述RC4算法的实现过程。 RC4算法的原理很简单,包括初始化算法和伪随机子密码生成算法两大部分。假设S-box 长度和密钥长度均为n 。先来看看算法的初始化部分(用类C 伪代码表示):

for (i=0; i<n; i++) {

s[i]=i;

}

j=0;

for (i=0; i<n; i++)

{

j=(j+s[i]+k[i])%n;

swap(s[i], s[j]);

}

在初始化的过程中,密钥的主要功能是将S-box搅乱,i 确保S-box的每个元素都得到处理,j保证S-box的搅乱是随机的。而不同的S-box在经过伪随机子密码生成算法的处理后可以得到不同的子密钥序列,并且,该序列是随机的:i=j=0;

while (明文未结束)

{

++i%=n;

j=(j+s)%n;

swap(s, s[j]);

sub_k=s((s+s[j])%n);

}

得到的子密码sub_k用以和明文进行xor运算,得到密文,解密过程也完全相同。

(5)简述A5算法的实现过程。

A5算法由三个线性反馈移位寄存器(LFSR)R1、R2、R3

组成,寄存器的长度分别是n1=19,n2=22和n3=23。所有的

反馈多项式系数都比较少。三个LSFR的异或值作为输出。

A5用不同的时钟控制。每一个寄存器由基于它自己中间位的时钟控制,并且三个寄存器的中间位的反向门限函数相异或。通常,在每一轮中时钟驱动两个LFSR。

有一种直接攻击需要240次加密:先猜测前两个LFSR的内容,然后试着通过密钥序列决定第三个LFSR。(这种攻击实际上是是否可行尚待讨论,但是目前一个硬件密钥搜索机正在设计中,并且将解决这个问题。)

总之,有一点可以明确,那就是A5的基本思路是好的,它的效率非常高。它能通过所有已知的统计测试,它已知的仅有的弱点是寄存器太短而不能抗穷举攻击。带较长寄存器和稠密反馈多项式的A5的变型是安全的。

(6)简述SEAL算法的实现过程。

给定一个160位密钥k和一个32位的n值,SEAL算法会根据密钥k将n扩展到一个L位的串k(n),L可以被赋值为小于64KB的任何值。密钥k首先进入制表阶段,然后S 盒T的部分字节连同密钥表R,预先输入整数值以及32位比特字n进入算法初始化过程。SEAL算法通过64次迭代,来

改变内部寄存器ABCD的值,每个迭代包含8轮。

(7)简述WAKE算法的实现过程。详见176页。

它每次产生一个32位密钥字与明文字进行异或形成密文。WAKE工作在CFB模式下,即用前一个密文字产生下一个密钥字。它也使用了一个包含256个32位数据的S盒。首先,从密钥中产生S盒的一项Si,然后用密钥初始化4个寄存器,产生一个32位密钥序列字,密文字Ci是明文字Pi与Ki异或的结果。

(8)简述PKZIP算法的实现过程。

PKZIP处理的是一种压缩文件,按字节加密,可变密钥长度的算法。PKZIP算法最重要的部分称为密钥更新,在进行加密计算时,首先选定12B的头信息,将明文信息附在头信息之后作为输入字节流,随后将每一个输入字节与当前计算出的K3进行异或,同时根据输入的字节执行密钥更新的过程,计算出新的K3用于下一字节的加密。

(9)简述FCSR算法的实现过程。

带进位的反馈移位寄存器,称作FCSR,有一个移位寄存器和一个反馈函数,FCSR有一个进位寄存器。它不是把抽头序列中所有的位异或,而是把所有的位相加,并与进位寄存器

的值相加,将结果模2可得到bn的新值,将结果除2就得到进位寄存器新的值。

相关文档
最新文档