《应用密码学》胡向东版习题和思考题答案

明文w位L0XORFw位R0K1L1第1轮R1KiXORFLi第i轮RiKnXORFLn第n轮RnLn+1w位密文w位Rn+1图5-6 Feistel密码结构

Feistel密码结构如图5-6所示。加密算法的输入是长为2w位的明文和密钥K,明文被均分为长度为w位的L0和R0两部分。这两部分经过n轮迭代后交换位置组合在一起成为密文。其运算逻辑关系为:

Li?Ri?1(i?1,2,?,n)

Ri?Li?1?F(Ri?1,Ki)(i?1,2,?,n)

每轮迭代都有相同的结构。代替作用在数据的左半部分,它通过轮函数F作用数据的右半部分后,与左半部分数据进行异或来完成。每轮迭代的轮函数相同,但每轮的子密钥Ki不同。代替之后,交换数据的左右部分实现置换。

Feistel结构的实现依赖的主要参数是:分组长度、密钥长度、迭代轮数、子密钥生成算法、轮函数。

5-6 简述分组密码的设计准则。

答:分组密码的设计准则主要包括S盒的设计准则、P盒的设计准则、轮函数F的设计准则、迭代的轮数以及子密钥的生成方法。

5-7 什么是分组密码的操作模式?有哪些主要的分组密码操作模式?其工作原理是什

么?各有何特点?

答:通常,分组密码算法(如典型的DES)是提供数据安全的一个基本构件,它以固定长度的分组作为基本的处理单位。分组密码的操作模式就是如何在各种各样的应用中使用这些基本构件。

主要有ECB、CBC、CTR、OFB、CFB等五种分组密码操作模式。具体原理及特点参见教材。

5-8 在8位的CFB模式中,若传输中一个密文字符发生了一位错误,这个错误将传播多远?

答:9个明文字符受影响。因为除了与密文字符相对应的一个明文字符受影响外,受影响的该明文字符进入移位寄存器,直到接下来的8个字符处理完毕后才移出。 5-9 描述DES的加密思想和F函数。

答:DES 算法的加密过程经过了三个阶段:首先,64位的明文在一个初始置换IP 后,比特重排产生了经过置换的输入,明文组被分成右半部分和左半部分,每部分32位,以L0和R0表示。接下来的阶段是由对同一个函数进行16次循环组成的,16轮迭代称为乘积变换或函数F,这个函数本身既包含有换位又包含有代替函数,将数据和密钥结合起来,最后1轮的输出由64位组成,其左边和右边两个部分经过交换后就得到预输出。最后阶段,预输出通过一个逆初始置换IP算法就生成了64位的密文结果。 F函数的变换如下图所示。

Li-1(32位)Ri-1(32位)-1

F变换扩展变换E48位+48位48位Ki密钥产生器选择压缩变换S盒代替32位置换运算P32位+Li(32位)Ri(32位)图5-18 DES算法的一轮迭代处理过程

5-10 为什么要使用3DES?

答:随着计算机处理能力的提高,只有56位密钥长度的DES算法不再被认为是安全的。因此DES需要替代者,其中一个可替代的方案是使用3DES。3DES的优点:(1)密钥长度增加

到112位或168位,可以有效克服DES面临的穷举搜索攻击;(2)相对于DES,增强了抗差分分析和线性分析的能力;(3)具备继续使用现有的DES实现的可能。 5-11 AES的主要优点是什么?

答:AES的主要优点表现为:汇聚了安全性能、效率、可实现性和灵活性等优点,最大的优点是可以给出算法的最佳差分特征的概率,并分析算法抵抗差分密码分析及线性密码分析的能力。AES对内存的需求非常低,也使它很适合用于受限制的环境中,AES的操作简单,并可抵御强大和实时的攻击。

5-12 AES的基本运算有哪些?其基本运算方法是什么?

答: AES的基本运算包括字节运算和字运算。基本运算方法(略)。 5-13 AES的基本变换有哪些?其基本的变换方法是什么?

答:AES的基本变换包括三个代替和一个混淆:(1)字节代替SubBytes:用一个S盒完成分组中的按字节的代替;(2)行移位ShiftRows:一个简单的置换;(3)列混淆MixColumns:一个利用在域GF(2)上的算术特性的代替;(4)轮密钥加AddRoundKey:一个利用当前分组和扩展密钥的一部分进行按位异或。 基本变换方法(略)。

5-14 AES的解密算法和AES的逆算法之间有何不同?

答:AES的逆算法是相对加密基本变换而言的,即存在InvSubBytes、InvShiftRows、InvMixColumns变换。

AES的解密算法是相对于加密算法而言的,它由InvSubBytes、InvShiftRows、InvMixColumns和AddRoundKey等基本变换构成。 5-15 在GF(2)上{01}的逆是什么? 答:01。

5-16 编写程序实现AES密码算法。 略。

《应用密码学》习题和思考题答案

8

8

第6章 非对称密码体制

6-1 为什么要引入非对称密码体制?

答:对称密码体制不能完全适应应用的需要,主要表现在以下三个方面:密钥管理的困难性问题、陌生人间的保密通信问题、数字签名问题,而非对称密码体制可以在这三个方面有较

好的解决方案。

6-2 对公钥密码体制的要求是什么?

答:(1)参与方B容易通过计算产生一对密钥(公开密钥KUb和私有密钥KRb)。 (2)在知道公开密钥和待加密报文M的情况下,对于发送方A,很容易通过计算产生对应

的密文:C?EKUb(M) 。

(3)接收方B使用私有密钥容易通过计算解密所得的密文,以便恢复原来的报文:

M?DKRb(C)?DKRb(EKUb(M))

(4)敌对方即使知道公开密钥KUb,要确定私有密钥KRb在计算上是不可行的。 (5)敌对方即使知道公开密钥KUb和密文C,要想恢复原来的报文M在计算上也是不可行的。

(6)两个密钥中的任何一个都可以用来加密,对应的另一个密钥用来解密(这一条不是对所有公开密钥密码体制都适用):

M?DKRb(EKUb(M))(机密性实现)

。 M?DKUb(EKRb(M))(数字签名实现)

6-3 什么是陷门单向函数?陷门单向函数有何特点?如何将其应用于公钥密码体制中?

答:陷门单向函数是满足下列条件的函数f:

(1) 正向计算容易。即如果知道了密钥pk和消息x,容易计算y?fpk(x)。

(2) 在不知道密钥sk的情况下,反向计算是不可行的。即如果只知道消息y而不知道密钥sk,则计算x?f?1sk(y)是不可行的。

(3) 在知道密钥sk的情况下,反向计算是容易的。即如果同时知道消息y和密钥sk,则计算x?f?1sk(y)是容易的。这里的密钥sk相当于陷门,它和pk是配对使用的。

特点:对于陷门单向函数而言,它是指除非知道某种附加的信息,否则这样的函数在一个方向上计算容易,在另外的方向上要计算是不可行的;有了附加信息,函数的逆就可以容易计算出来。

公钥密码体制中的公钥用于陷门单向函数的正向(加密)计算,私钥用于反向(解密)计算。

6-4 简述公钥密码体制的主要应用方向?

答:大体上说,可以将公开密钥密码系统的应用分为三类:机密性的实现(发送方用接收方的公开密钥加密报文,接收方用自已对应的私钥来解密)、数字签名即防否认性的实现(发送方用自己的私钥“签署”报文,接收方用发送方配对的公开密钥来解密以实现鉴别)和密

联系客服:779662525#qq.com(#替换为@)