《密码学第五章习题.docx》由会员分享,可在线阅读,更多相关《密码学第五章习题.docx(5页珍藏版)》请在三一办公上搜索。
1、密码学第五章习题4.6习题 一.判断题 15 POPPO 二.选择题 15 ACBDE 610 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。 已知序列密码的密文串1010110110
3、和相应的明文串0100010001,而且还已知密钥流是使用3级线性反馈移位寄存器产生的,试破译该密码系统。 解:由f(a1,a2,a3,a4)=a1a41a2a3,初态为 (a1,a2,a3,a4)=(1,1,0,1)。线性递归可得:a5=1110=1 a6=1110=1 a7=0111=1 a8=1111=0 a9=1011=1 a10=1110=1 可以得到输出序列为(1101111011),周期为p=5。 简述RC4算法的实现过程。 RC4算法的原理很简单,包括初始化算法和伪随机子密码生成算法两大部分。假设S-box长度和密钥长度均为n。先来看看算法的初始化部分: for (i=0; i
4、n; i+) si=i; j=0; for (i=0; in; i+) j=(j+si+ki)%n; swap(si, sj); 在初始化的过程中,密钥的主要功能是将S-box搅乱,i确保S-box的每个元素都得到处理,j保证S-box的搅乱是随机的。而不同的S-box在经过伪随机子密码生成算法的处理后可以得到不同的子密钥序列,并且,该序列是随机的: i=j=0; while (明文未结束) +i%=n; j=(j+s)%n; swap(s, sj); sub_k=s(s+sj)%n); 得到的子密码sub_k用以和明文进行xor运算,得到密文,解密过程也完全相同。 简述A5算法的实现过程。
5、A5算法由三个线性反馈移位寄存器R1、R2、R3组成,寄存器的长度分别是n1=19,n2=22和n3=23。所有的反馈多项式系数都比较少。三个LSFR的异或值作为输出。A5用不同的时钟控制。每一个寄存器由基于它自己中间位的时钟控制,并且三个寄存器的中间位的反向门限函数相异或。通常,在每一轮中时钟驱动两个LFSR。 有一种直接攻击需要2次加密:先猜测前两个LFSR的内容,然后试着通过密钥序列决定第三个LFSR。 总之,有一点可以明确,那就是A5的基本思路是好的,它的效率非常高。它能通过所有已知的统计测试,它已知的仅有的弱点是寄存器太短而不能抗穷举攻击。带较长寄存器和稠密反馈多项式的A5的变型是安
6、全的。 简述SEAL算法的实现过程。 给定一个160位密钥k和一个32位的n值,SEAL算法会根据密钥k将n扩展到一个L位的串k,L可以被赋值为小于64KB的任何值。密钥k首先进入制表阶段,然后S盒T的部分字节连同密钥表R,预先输入整数值以及32位比特字n进入算法初始化过程。SEAL算法通过64次迭代,来40改变内部寄存器ABCD的值,每个迭代包含8轮。 简述WAKE算法的实现过程。详见176页。 它每次产生一个32位密钥字与明文字进行异或形成密文。WAKE工作在CFB模式下,即用前一个密文字产生下一个密钥字。它也使用了一个包含256个32位数据的S盒。首先,从密钥中产生S盒的一项Si,然后用
7、密钥初始化4个寄存器,产生一个32位密钥序列字,密文字Ci是明文字Pi与Ki异或的结果。 简述PKZIP算法的实现过程。 PKZIP处理的是一种压缩文件,按字节加密,可变密钥长度的算法。PKZIP算法最重要的部分称为密钥更新,在进行加密计算时,首先选定12B的头信息,将明文信息附在头信息之后作为输入字节流,随后将每一个输入字节与当前计算出的K3进行异或,同时根据输入的字节执行密钥更新的过程,计算出新的K3用于下一字节的加密。 简述FCSR算法的实现过程。 带进位的反馈移位寄存器,称作FCSR,有一个移位寄存器和一个反馈函数,FCSR有一个进位寄存器。它不是把抽头序列中所有的位异或,而是把所有的位相加,并与进位寄存器的值相加,将结果模2可得到bn的新值,将结果除2就得到进位寄存器新的值。