第三章 分组密码体制 —— 现代密码学(杨波)复习题

发布时间 2023-12-14 18:59:27作者: 3cH0_Nu1L

第三章 

一、填空

1. 分组密码中的代换是一种从明文空间到密文空间的一一映射,如果明密文的长度均为n比特则不同的可逆代换有多少个_______

2. 从易于实现、提高速度和节省软硬件资源的角度看,加解密算法应具有什么样的特性____

3. 一般情况下,一个n bit 代换结构其密钥量是_________________bit

4. 扩散的目的是_________________混淆的目的是__________________________

5. 就代换和置换两类组件而言,采用______变换能够达到扩散目的,采用______变换能实现混淆

6. 乘积密码指顺序地执行两个或多个基本密码系统,如果采用相同的基本密码系统,则这样的乘积密码称为___________,其典型结构是______________

7. 在Feistel网络结构的密码中,加解密极其相似,加密和解密算法的唯一不同之处在于______。

8. DES的密钥长度_______分组长度_______输出密文长度________加密轮数__________

9. DES解密时子密钥的产生有两种方式,对于存储空间受限的环境,采用哪种方式更合适_______

10. DES的初始置换和扩展置换如表所示,则长为64比特的明文分组其第1、9、17、47个比特在置换后分别位于哪个位置____________________,DES加密某轮的右32比特中第1、28比特在经过扩展置换后的位置是___________________

(a)初始置换

(b)扩展置换E

 

11. DES密码的S盒定义如下表,如果输入是101011,则输出是________

 

0    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15

S

0

1

2

3

14   4    13   1    2   15    11   8    3    10   6   12    5    9    0    7

0    15   7    4   14   2     13   1   10    6   12   11    9    5    3    8

4    1    14   8   13   6     2   11   15    12   9    7    3   10    5    0

15   12   8    2    4   9     1    7    5    11   3   14   10    0    6   13

12. EDE的密钥长度_______分组长度_______输出密文长度___________加密轮数__________

13. DES加密每一轮的子密钥的长度是___________,EDE加密中一共有____个不同的子密钥

14. 在四种攻击中,差分密码分析属于_______  线性密码分析属于__________

15. 已知一个3轮特征: a0, a1, a2, a3,则3轮特征概率为___________________

a0   L0'= 4008000016    R0'=0400000016

a1   L1'= 0400000016    R1'=0000000016         p1=1/4

a2   L2'= 0000000016    R2'=0400000016          p2=1

a3   L3'= 0400000016    R3'=4008000016         p3=1/4

16. CFB-8的一个比特的密文错误,会导致____个比特的错误传播?在CFB-12中,如果一个密文的倒数第二个比特发生了错误,则会导致___________个分组的错误传播。(注意,不包括发生密文错误的分组)

17. 在IDEA中,02=________,215*8=_______,215+215=_______,215 *215=__________

18. IDEA的密钥长度___分组长度____输出密文长度_____加密迭代轮数_____子密钥个数___

19. IDEA中8的乘法逆元是多少___________,加法逆元是多少_____________

20. 如图乘加结构,则解密时Z5对应的解密子密钥可表示为_________

21. AES的最小的密钥长度_______分组长度_______输出密文长度_______加密迭代轮数________

22. 12轮AES算法中,如果密钥长度k,分组长度为b,子密钥一共需要_______个比特

23. (x4+x+1)mod m(x)=x8+x4+x3+x+1的逆元是__________________________

24. AES的状态在明文输入时第n个字节放在状态阵列的位置(i,j)上,则第13个字节所对应的状态阵列的位置(i,j)=_______________

二、选择

1. 从古典密码的角度看,分组密码属于_________________

  A. 单表代换密码  B. 多表代换密码  C. 单表置换密码  D. 多表置换密码

2. 分组密码可以用于实现下述那些功能______________

  A. 加密,  B. 产生伪随机数,   C. 产生密钥流序列     D. 产生MAC    E. 数字签名

3. 实现扩散的方法是________________

  A. 置换       B. 代换       C. 先置换再代换    D. 先代换再置换

4. 下面这些密码算法中,属于Feistel结构密码的有_____________

   A. AES       B. IDEA        C. RSA           D. DES

5. 利用DES的取反特性进行的攻击,应属于哪一类密码攻击_____________

   A. 惟密文攻击   B. 已知明文攻击    C. 选择明文攻击   D. 选择密文攻击

6. 下列算法中,哪一个是现行国际分组加密标准_____________

    A. DES    B. RSA     C.IDEA      D.AES

7. 下列运行模式中,哪一种模式的错误传播最小?_______哪一种模式可将分组密码转换为自同步流密码_______,哪些模式可实现随机读取_______

   A. ECB     B.CBC     C.CFB       D.OFB   E. CTR

8. 如上题,AES状态阵列的第(2,5)位置上的元素对应明文的第_________个字节

A. 22       B. 7        C. 13      D. 10

三、判断

1. 分组密码用于加密时,其明文和对应密文的长度可以相同,也可以不同。      (     )

2. CFB运行模式下的分组密码可以等效为一个同步流密码。                    (     )

3. OFB只需要DES的加密算法。                                           (     )

4. 在AES的解密算法中,所有密钥都要先进行逆向列混合,再进行轮密钥加     (     )

5. DES算法是一种多轮迭代密码                                            (     )

四、简答与计算

1. 分组密码在设计时,为什么会要求其加解密算法相似?

2. 试描述Feistel密码的结构

3.在Feistel密码中,如果第i轮的输入是Li-1,Ri-1,输出是Li,Ri,试用输出表示输入,其中轮函数设为F(Ri-1,Ki)

4. 试画出S盒的结构,并说明其工作原理,即如何由输入得到输出

5. 已知DES满足取反特性,试说明在对DES进行选择明文攻击时工作量会减少一半。

6. 一个用单重DES加密的密文C,密钥为k,如何用EDE算法解密?

7. 两个密钥的二重DES的中途相遇攻击是如何实现的?

8. 三个密钥的三重DES算法结构,如何用该算法解密一重DES产生的密文

9. 什么是ECB模式,为什么不适合于加密长消息,如果明文长度不是分组的整数倍怎么办?

10. 画出CBC模式的逻辑图,并回答其初始向量IV为什么要保密?

11. 试分析一下CBC、CFB、OFB运行模式的错误传播情况。

12. CFB和OFB哪一个适合有扰信道,为什么?试画出逻辑图

13. 什么是CTR模式?为什么可以并行计算和对密文进行随机存取?

14. Rijndael算法是建立在GF(28)有限域上的,且模多项式为m(x)=x8+x4+x3+x+1,试计算(x6+x2+x+1)×(x4+x+1) mod m(x),该计算用x乘来表示时,试给出计算过程。

15. 系数在GF(28)的mod x4+1的乘法a(x)=‘01’x2, c(x)=‘03’x3+‘01’x2+‘01’x+‘02’ 试计算a(x)´c(x)。

16. CFB-64和CBC的区别是什么?

17. 某攻击者要破译所截获的某n个密文分组,采用穷搜索攻击,试分析以下两种攻击的区别

1) 假设攻击者控制加密机,搜索所有可能的明文并加密,看是否等于截获的密文,从而实现对密文的破译。

2) 已知一些明密文对,搜索所有可能的密钥,然后再用该密钥对密文解密。

18. 以DES为例,试分析迭代密码中基本函数的子密钥相同和不同的区别。

五、证明题

1. 已知DES满足取反特性,试证EDE、3个密钥的3DES都具有取反特性。

2. 试说明AES的轮结构中行移位和字节代换的顺序可以互换。

3. 试证明:在Feistel结构密码中解密过程第1轮的输出等于加密过程最后一轮输入左右两半交换值。

六、综合题

某人要做一个密码芯片,该芯片要实现以下功能:对数据流加密、MAC认证、产生随机数。为节省硬件资源,如果仅有一重及多重DES可用,试分析分别采用何种模式、标准或结构能够实现这些功能

参考答案

四、简答与计算

4.11. 试分析一下CBC、CFB、OFB运行模式的错误传播情况。

CBC的错误传播只影响当前分组和下一分组的解密

CFB的错误传播影响当前分组的对应bit解密和后续的ë64/j û或ë64/j û+1个分组的解密

OFB的错误传播只影响当前分组的对应比特解密,无错误传播

4. 14. Rijndael算法是建立在GF(28)有限域上的,且模多项式为m(x)=x8+x4+x3+x+1,试计算(x6+x2+x+1)×(x4+x+1) mod m(x),该计算用x乘来表示时,试给出计算过程。

解:上述乘法即求’47’ ×’13’

     ’47’ ×’02’=xtime(47)=’8E’    //×x

     ’47’ ×’04’=xtime(8E)=’07’    //×x2

     ’47’ ×’08’=xtime(07)=’0E’    //×x3

     ’47’ ×’10’=xtime(0E)=’1C’    //×x4

     而’13’=’01’+ ’02’+ ’10’

     所以’47’ ×’13’=’47’ ×(’01’+ ’02’+ ’10’)= ’47’+ ’8E’+ ’1C’=’D5’

     即(x6+x2+x+1)×(x4+x+1) mod m(x)= x7+ x6+ x4+x2+1

五、证明题

5.3 试证明:在Feistel结构密码中解密过程第1轮的输出等于加密过程最后一轮输入左右两半交换值

证明:假设加密过程的最后一轮输入左右两半分别表示为LE15,RE15,输出的左右两半分别表示为LE15,RE15,第16轮子密钥为K16

解密过程取密文作为同一算法的输入,由于加密最后一轮输出后又进行了左右交换,所以解密第1轮输入是RE16‖LE16 

在加密过程中: 

LE16=RE15 ;     RE16=LE15ÅF(RE15, K16)

在解密过程中 

LD1=RD0=LE16=RE15 

RD1=LD0ÅF(RD0, K16)=RE16ÅF(RE15, K16)

=[LE15ÅF(RE15, K16)] ÅF(RE15, K16)=LE15

证毕#