资源描述
4.6习题
一.判断题
1~5 OPPPO
6~10 OOPPP
11 P
二.选择题
1~5 CBBAA
6~10 DCCC
三.填空题
1. 混乱 扩散
2.源于密钥空间的限制,容易被穷举攻破
3.安全性 速度 灵活性
4.扩展置换 非线性代换 线性置换
5. 256
6.56 互补
7.字节代换 S盒
8.2001
9.128 128 192 256
10.AES密钥长度可变DES不可变 DES面向比特运算AES面向字节运算。
四.简单题
(1)分组密码的设计应满足的要求是什么?
答:
①分组要足够长。假设n为分组长度,则要使分组代换字母表中的元素个数2n足够大,以防止明文穷举攻击。
②密钥长度要足够长,以防止密钥穷举攻击。但密钥又不能过长,这不利于密钥的管理且影响加解密的速度。
③由密钥确定的置换算法要足够复杂,足以抵抗各种已知的攻击,如查分攻击和线性攻击等,使攻击者除了利用穷举攻击外,无其他更好的攻击方法。
④加密解密运算简单,易于软件和硬件的快速实现。为了便于软件编程和通过逻辑电路实现,算法中的运算应尽量简单,如二进制加法或移位运算,参与运算的参数长度也应选择在8的整数倍,可以充分发挥计算机中字节运算的优势。
⑤一般无数据扩展,即明文和密文长度相同。在采用同态置换和随机话加密技术时可引入数据扩展。
⑥差错传播尽可能的小。
设计密码时,①②③的安全性为必要条件,同时还需考虑④⑤⑥。
归纳起来,一个分组密码在实际应用中需要在安全性和实用性之间寻求一种平衡,使算法在足够安全的同时,又具有尽可能短的密钥,尽可能小的存储空间以及尽可能快的运行速度。
(2)简述分组密码设计的准则。
答:
①分组长度
分组长度越长意味着安全性越高,但是会影响加密解密的速度。1977年之后,由于计算速度和分析技术的提高,建议使用分组长度128位。
②密钥长度
密钥越长同样意味着安全性越高,但会影响加密和解密的速度。现在一般认为64位的密钥是不安全的,通常使用的密钥长度为128位。
③轮函数F
轮函数F通常之迭代分组密码中单轮加密解密算法的实现部分,是分组密码结构的核心,由其实现数据的混乱和扩散。在设计中,轮函数要遵循雪崩效应准则和位独立准则。评价轮函数实际质量的指标有安全性,速度和灵活性。
④迭代的轮数
迭代分组密码的本质是单轮不能提供足够的安全性而多伦迭代增强其安全性。一般而言,迭代轮数越多,密码分析越困难,但过多的迭代会使输入和输出的关系复杂化,影响加解密速度,而安全性增强不明显,一般而言,决定迭代轮数的准则是:是密码分析的难度大于简单穷举攻击的难度。
⑤子密钥的生成方法
理论设计目标是子密钥的统计独立性和密钥更换的有效性。包括:实现简单,便于硬件实现,子密钥的生成不影响迭代轮函数的执行;不存在简单关系;种子密钥的所有比特对每个子密钥比特影响大致相同;没有弱密钥或弱密钥容易避开;保证密钥和密文符合位独立准则和雪崩效应。
(3)简述DES算法中S盒的特点?
答: S盒是DES中唯一的非线性部分,DES的安全强度主要取决于S盒的安全强度。DES中8个S盒,输入均为6位,输出为4位。有以下特点:
①具有良好的非线性,即输出地每一个比特与全部输入比特有关;
②每一行包括所有16种4位二进制。
③两个输入相差1bit比特时,输出相差2bit。
④如果两个输入刚好在中间2个比特上不同,则输出至少有2个比特不同。
⑤如果两个输入前2位不同而最后2位相同,则输出一定不同。
⑥相差6bit的输入共32对,在这32对中有不超过8对的输出相同。
(4)DES算法具有互补性,而这个特性会使DES在选择明文攻击下所需的工作量减半。简要说明原因。
答:
在选择明文攻击下,
C1=Ek(m), (1)
C2= Ek() (2)
根据互补性, =E(m) (3)
根据(1)式穷举搜索密钥k时,入输出密文是C1,则加密密钥就是多应用的密钥;若输出密文是,根据(3)可知加密密钥是多应用的密钥的补,这样,利用一个密钥的加密尝试,能够检测两个密钥是否为真正的加密密钥。因此,DES的互补性会使DES在选择明文攻击下所需的工作量减半。
(6)简述利用差分分析攻击DES算法的基本过程。
答:过程如下:首先攻击者选择具有固定差分(在DES分析中,“差分”定义为异或运算)的一对明文,这两个明文可以随机选取,攻击者甚至不必知道他们的值,但要求它们符合特定的差分条件;然后,使用输出密文中的差分,分析可能的密钥;随着分析的密文对越来越多有一个的概率明显增大,它就是正确的密钥。
(7)简述线性攻击的基本原理。
答:基本原理是寻求明文、密文和密钥间有效的线性逼近,当该逼近的线性偏差足够大时,就可以由一定量的明密文对推测出部分密钥信息。线性分析的关键是确定有效线性方程的线性偏差和线性组合系数。
(8)简述AES算法的正变换矩阵比逆变换矩阵简单的原因。
答:逆S盒比S盒复杂,需要将逆S盒中的每个字节映射到它在有限域GF(28)中的逆。输出值不能通过一个简单的函数变换输入值所得到。S盒必须是可逆的,即S[S[a]]=a,而S[a]=S-1[a]不成立,在这个意义上S盒不是自逆的。
(9)简述AES的子密钥生成过程
答:AES首先将初始密钥输入到一个4*4矩阵中。这个4*4矩阵的每一列的4个字节组成一个字,矩阵4列的4个字依次命名为w[0]w[1]w[2]和w[3]。它们构成了一个以字为单位的数组w。
接着,对w数组扩充40个新列,构成总共44列的扩展密码数组。新列以如下的递归方式产生:
(1) 如果i不是4的倍数,那么第i列由如下等式确定:
w[i]=w[i-4] ⊕w[i-1]
(2) 如果i是4的倍数,那么第i列由如下等式确定:
w[i]=w[i-4] ⊕T(w[i-1])
其中,T是一个复杂的函数。
函数T由三个部分组成:自循环、字节代换和轮常量异或,这三部分的作用分别如下:
(1) 字循环:将1个字中的4个字节循环左移1个字节。
(2) 字节代换:对字循环的结果使用S盒进行字节代换。
(3) 轮常量抑或:将前两步的结果同轮常量Rcon[j]进行异或,其中J表示轮数。
(10)简述DES与AES的相同之处
答:①二者的轮函数都是由3层构成,非线性层、线性混合层、子密钥异或,只是顺序不同。
②AES的子密钥异或对应于DES中S盒之间的子密钥异或。
③AES的列混合运算的目的是让不同的字节相互影响,和DES中F函数的输出与左边一半数据相加也有类似的效果。
④AES的非线性运算是字节代换,对应于DES中唯一的非线性运算S盒。
⑤行移位运算保证了每一行的字节不仅仅影响其他行对应的字节,而且影响其他行所有的字节,这与DES中置换P相似。
(11)简述实际分组密码的工作模式应遵循的基本原则。
答:①工作模式的运行应当简单;
②工作模式应当不会损害算法的安全性;
③工作模式应当不会明显的降低基本密码的效率;
④工作模式应易于实现。
展开阅读全文