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

第1章 绪论

1-1 为什么会有信息安全问题的出现? 答题要点:

(1)当今知识经济社会,信息资源是重要的资源形式,大到一个国家、小至某一个人,拥有的信息资源越多、越早获取到信息资源,就在整个国家安全、经济与社会竞争中处于更有利的地位;

(2)网络自身的安全缺陷难以堵住安全漏洞; (3)网络的开放性特征为攻击者提供了方便之门;

(4)人为因素,包括人的无意失误、黑客攻击、管理不善等。 1-2 简述密码学与信息安全的关系。 答题要点:

密码技术是实现网络信息安全的核心技术,是保护数据最重要的工具之一。通过加密变换,将可读的文件变换成不可理解的乱码,从而起到保护信息和数据的作用。它直接支持机密性、完整性和非否认性。

密码学尽管在网络信息安全中具有举足轻重的作用,但密码学绝不是确保网络信息安全的唯一工具,它也不能解决所有的安全问题。密码编码与密码分析是一对矛和盾的关系。 1-3 简述密码学发展的三个阶段及其主要特点。 答题要点:密码学的发展大致经历了三个阶段:

(1)古代加密方法。特点:作为密码学发展的起始阶段,所用方法简单,体现了后来发展起来的密码学的若干要素,但只能限制在一定范围内使用。主要基于手工的方式实现。 (2)古典密码。特点:加密方法一般是文字置换,使用手工或机械变换的方式实现。古典密码系统已经初步体现出近代密码系统的雏形,它比古代加密方法更复杂,但其变化量仍然比较小。转轮机的出现是这一阶段的重要标志,传统密码学有了很大的进展,利用机械转轮可以开发出极其复杂的加密系统,缺点是密码周期有限、制造费用高等。

(3)近代密码。特点:这一阶段密码技术开始形成一门科学,利用电子计算机可以设计出更为复杂的密码系统,密码理论蓬勃发展,密码算法设计与分析互相促进,出现了大量的密码算法和各种攻击方法。另外,密码使用的范围也在不断扩张,而且出现了以DES为代表的对称密码体制和RSA为代表的非对称密码体制,制定了许多通用的加密标准,促进网络和技术的发展。

1-4 近代密码学的标志是什么?

答:1949年Claude Shannon发表论文The communication theory of secrecy systems,1976年W.Diffie和M.Hellman发表论文New directions in cryptography,以及美国数据加密标准DES的实施。

1-5 安全机制是什么?主要的安全机制有哪些? 答题要点:

所谓安全机制,是指用来保护系统免受侦听、阻止安全攻击及恢复系统的机制。OSI安全框架-X.800方案的安全机制可分为两类:特定的安全机制和通用的安全机制。 主要的安全机制(略)。

1-6 什么是安全服务?主要的安全服务有哪些? 答题要点:

安全服务就是加强数据处理系统和信息传输的安全性的一类服务,其目的在于利用一种或多种安全机制阻止安全攻击。

主要的安全服务包括:机密性(消息内容析出,通信量分析)、完整性、鉴别、非否认

性、访问控制、可用性。

1-7 简述安全性攻击的主要形式及其含义。 答题要点:

中断,即拒绝服务,它是指防止或禁止通信设施的正常使用或管理,这是对可用性的攻击。 截取,即未获授权地通过对传输进行窃听和监测,从而获取了对某个资源的访问,这是对机密性的攻击。分为析出消息内容和通信量分析。

篡改,即更改报文流,它是对通过连接的协议数据单元PDU的真实性、完整性和有序性的攻击,意味着一个合法消息的某些部分被改变,或消息被延迟或改变顺序,以产生一个未授权的效果。

伪造是一个非法实体假装成一个合法的实体,这是对真实性的攻击。伪造通常与其他主动攻击形式结合在一起才具有攻击性效果。

重放涉及一个数据单元被获取以后的后继重传,以产生一个未授权的效果。 1-8 什么是主动攻击和被动攻击,各有何特点? 答题要点:

主动攻击是指攻击者对连接中通过的PDU进行各种处理,这些攻击涉及某些数据流的篡改或一个虚假流的产生。主动攻击包括四类:中断、篡改、伪造和重放。主动攻击表现出与被动攻击相反的特点。完全防止主动攻击是相当困难的,可采取适当措施(如加密技术和鉴别技术相结合)加以检测。

被动攻击的攻击者只是观察通过一个连接的协议数据单元PDU,以便了解所交换的数据,并不干扰信息流。如搭线窃听、对文件或程序的非法复制等,以获取他人的信息。被动攻击本质上是在传输中的偷听或监视,其目的是从传输中获得信息。典型的被动攻击形式就是截获,包括析出消息内容和通信量分析。对于被动攻击,通常是难以检测的,因为它们并不会导致数据有任何变化,对付被动攻击的重点是防止而不是检测,可以采用各种数据加密技术进行数据保护。

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

第2章 密码学基础

2-1 什么是密码学?密码编码学?密码分析学?

答:密码学作为数学的一个分支,是密码编码学和密码分析学的统称。

使消息保密的技术和科学叫做密码编码学,密码编码学是密码体制的设计学,即怎样编码,采用什么样的密码体制以保证信息被安全地加密。

密码分析学就是破译密文的科学和技术。密码分析学是在未知密钥的情况下从密文推演出明文或密钥的技术。

2-2 密码学的五元组是什么?它们分别有什么含义?

答:密码学的五元组是指:{明文、密文、密钥、加密算法、解密算法}。 明文:是作为加密输入的原始信息,即消息的原始形式,通常用m或表示。 密文:是明文经加密变换后的结果,即消息被加密处理后的形式,通常用c表示。

密钥:是参与密码变换的参数,通常用k表示。

加密算法:是将明文变换为密文的变换函数,相应的变换过程称为加密,即编码的过程,通常用表示,即c?Ek?p?。

解密算法:是将密文恢复为明文的变换函数,相应的变换过程称为解密,即解码的过程,通常用D表示,即p?Dk?c?。

2-3 密码分析主要有哪些方式?各有何特点?

答:根据密码分析者对明文、密文等信息掌握的多少,可将密码分析分为以下五种情形: (1)唯密文攻击

对于这种形式的密码分析,破译者已知的东西只有两样:加密算法、待破译的密文。 (2)已知明文攻击

在已知明文攻击中,破译者已知的东西包括:加密算法和经密钥加密形成的一个或多个明文-密文对。即知道一定数量的密文和对应的明文。 (3)选择明文攻击

选择明文攻击的破译者除了知道加密算法外,他还可以选定明文消息,并可以知道对应的加密得到的密文。即知道选择的明文和对应的密文。 (4)选择密文攻击

与选择性明文攻击相对应,破译者除了知道加密算法外,还包括他自己选定的密文和对应的、已解密的原文。即知道选择的密文和对应的明文。 (5)选择文本攻击

是选择明文攻击与选择密文攻击的结合。破译者已知的东西包括:加密算法、由密码破译者选择的明文消息和它对应的密文、以及由密码破译者选择的猜测性密文和它对应的已破译的明文。

2-4 Kerchkoffs原则的基本内容是什么?

答:Kerchkoffs原则的基本内容是:密码系统中的算法即使为密码分析者所知,也无助于用来推导出明文或密钥。也就是说,密码系统的安全性不应取决于不易被改变的事物(算法),而应只取决于可随时改变的密钥。 2-5 一个密码系统实际可用的条件是什么?

答:一个密码系统实际可用的条件是:(1) 每一个加密函数和每一个解密函数都能有效地计算。(2) 破译者取得密文后将不能在有效的时间或成本范围内破解出密钥或明文。(3) 一个密码系统是安全的必要条件:穷举密钥搜索将是不可行的,即密钥空间非常大。 2-6 密码系统如何分类?

答:密码编码系统通常有三种独立的分类方式: (1) 按照明文变换到密文的操作类型可分为代替和换位。

– 代替:即明文中的每个元素(比特、字母、比特组合或字母组合)被映射为另一个元

素。该操作主要达到非线性变换的目的。

– 换位:即明文中的元素被重新排列,这是一种线性变换,对它们的基本要求是不丢失

信息(即所有操作都是可逆的)。

(2) 按照所用的密钥数量多少可分为单密钥加密和双密钥加密。

– 单密钥加密:即发送者和接收者双方使用相同的密钥,该系统也称为对称加密、秘密

密钥加密或常规加密。

– 双密钥加密:即发送者和接收者各自使用一个不同的密钥,这两个密钥形成一个密钥

对,其中一个可以公开,称之为公钥,另一个必须为密钥持有人秘密保管,称之为私钥。该系统也称为非对称加密或公钥加密。

(3) 按照明文被处理的方式不同可分为分组加密和流加密。

– 分组加密:一次处理一块(组)元素的输入,对每个输入块产生一个输出块。即一个

明文分组被当作一个整体来产生一个等长的密文分组输出,通常使用的是64位或128位的分组大小。

– 流加密:也称为序列密码,即连续地处理输入元素,并随着该过程的进行,一次产生

一个元素的输出。即一次加密一个比特或一个字节。 2-7 网络安全模型和网络访问安全模型各适用于什么场合?

答:网络安全模型和网络访问安全模型分别适用于网络传输中的信息安全(动态数据的安全)和计算机系统中的信息安全(静态数据的安全)两种场合。

2-8 什么是对称密码体制和非对称密码体制?各有何优、缺点?

答:对称密码体制的基本特征是加密密钥与解密密钥相同。对称密码体制的优缺点: (1)优点:加密、解密处理速度快、保密度高等。

(2)缺点:①密钥是保密通信安全的关键,发信方必须安全、妥善地把密钥护送到收信方,不能泄露其内容,如何才能把密钥安全地送到收信方,是对称密码算法的突出问题。对称密码算 法的密钥分发过程十分复杂,所花代价高。

②多人通信时密钥组合的数量会出现爆炸性膨胀,使密钥分发更加复杂化,N个人进行两两通信,总共需要的密钥数为CN?N?N?1?2。

2③通信双方必须统一密钥,才能发送保密的信息。如果发信者与收信人素不相识,这就无法向对方发送秘密信息了。

④除了密钥管理与分发问题,对称密码算法还存在数字签名困难问题(通信双方拥有同样的消息,接收方可以伪造签名,发送方也可以否认发送过某消息)。

非对称密码体制是加密密钥与解密密钥不同,形成一个密钥对,用其中一个密钥加密的结果,可以用另一个密钥来解密的密码体制。非对称密码体制的优缺点:

(1)优点:①网络中的每一个用户只需要保存自己的私有密钥,则N个用户仅需产生N对密钥。密钥少,便于管理。

②密钥分配简单,不需要秘密的通道和复杂的协议来传送密钥。公开密钥可基于公开的渠道(如密钥分发中心)分发给其他用户,而私有密钥则由用户自己保管。 ③可以实现数字签名。

(2)缺点:与对称密码体制相比,公开密钥密码体制的加密、解密处理速度较慢,同等安全强度下公开密钥密码体制的密钥位数要求多一些。

2-9 试从运行条件和安全条件两个方面比较常规密码体制和公开密钥密码体制。 答:

分类 运 行 条 件 安 全 条 件 常规密码体制 加密和解密使用同一个密钥和同一个算法。 公开密钥密码体制 用同一个算法进行加密和解密,而密钥有一对,其中一个用于加密,另一个用于解密。 发送方和接收方每个使用一对相互匹配、而又彼此互异的密钥中的一个。 密钥对中的私钥必须保密。 如果不掌握其他信息,要想解密报文是不可能或者至少是不现实的。 知道所用的算法、公钥和密文的样本必须不足以确定私钥。 发送方和接收方必须共享密钥和算法。 密钥必须保密。 如果不掌握其他信息,要想解密报文是不可能或至少是不现实的。 知道所用的算法加上密文的样本必须不足以确定密钥。

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

第3章 古典密码

3-1 举例说明什么是隐写术。

答:隐写术就是隐藏消息的存在,这种方法通常在一段看来无伤大雅的文字中嵌入排列一些词汇或字母隐含地表达真正的意思。例子略。 3-2 区别隐写术与密码编码学。

答:密码编码学是通过各种文本转换的方法使得消息为外部不可理解。隐写术则是隐藏消息的存在,它本质上不是一种编码加密技术,这种方法通常在一段看来无伤大雅的文字中嵌入排列一些词汇或字母隐含地表达真正的意思。

隐写术的优点在于能够被某些人使用而不容易发现他们间在进行秘密通信。而加密则很容易被发现谁与谁在进行秘密通信,这种发现本身可能具有某种意义或作用。

隐写术与加密技术相比有一些缺点:(1)它形式简单但构造费时,要求有大量的开销来隐藏相对较少的信息。(2)一旦该系统的构造方法被发现,就会变得完全没有价值。(3)隐写术一般无稳健性,如数据改动后隐藏的信息不能被恢复。 3-3 区别代替与换位。

答:代替就是将明文字符用另一个字符取代,代替密码操作的目的是制造混乱,使得确定消息和密钥是怎样转换成密文的尝试变得困难。

换位就是重新排列消息中的字母,以便打破密文的结构特性。即它交换的不再是字符本身,而是字符被书写的位置。

3-4 频率分析的基本处理方法是什么? 答:频率分析攻击的一般方法:

第一步:对密文中出现的各个字母进行统计,找出它们各自出现的频率。

第二步:根据密文中出现的各个字母的频率,和英语字母标准频率进行对比分析,做出假设,推论加密所用的公式。

第三步:证实上述假设(如果不正确,继续作其他假设)。 3-5 使用穷举搜索法,破译如下利用代替密码加密的密文: BEEAKFYDJXUQYHYJIQRYHTYJIQFBQDUYJIIKFUHCQD 解:

密B E E A K F Y D J X U Q Y H Y J I Q R Y H T Y J I Q F B Q D U Y J I I K F U H C Q D 文 -1 a d d z j e x e 1 c f f b l g 2 d g g c 3 e h h 4 f i i 5 g j j 6 h k k 7 i l l h 8 j m 9 k n n 10 l o o k u p i n t h e a i r i t s a b i r d i t s a p l a n e i t s s u p e r m a n 11 m p p 12 n q q 13 o r r n 14 p s s 15 q t t 16 r u u 17 s v v 18 t w w 19 u x x 20 v y 21 w z 22 x a 23 y b 24 z c 因此,本题的解密结果应为:Look up in the air,it’s a bird, it’s a plane, it’s superman。 提示:表中最左边一列的数字表示代替变换时字母的后移位数。

技巧:由于密文的前三个字母为“BEE”,因此根据不同的移位可先观察前三位的明文结果,判断其是否是可能的明文,如果不可能,就中止当前移位,换新的移位数。

3-6 用Playfair算法加密明文“Playfair cipher was actually invented by wheatstone”,密钥是:fivestars。

解:两个“l”间插入“x”(也可插入其他字母)。

ftdmui/jagnwvrhoxebkpysclqz字母矩阵表

fa it ve es ir va nt ma ci as ed fk ph ok by ke er vb wh xg wa ig ea ib sa ic ts cf ct ta to rm ua wt ne pi lx hz 明文 pl 密文 qk 明文 ly 密文 kz ay bw in aw 3-7 用Hill密码加密明文“pay more money”,密钥是:

?17175??

k??211821????2219??解:明文“pay more money”可编码为:15 0 24;12 14 17;4 12 14;13 4 24。 由于:

?17175???303303531mod26=[17 17 11]

211821?15024????????2219???17175???532490677mod26=[12 22 1]

211821?121417????????2219???17175??41214???211821?219???348312??2???17175??13424???211821????353341??2219??故对应的密文为:RRLMWBKASPDH。 提示:解密计算逆矩阵:

17175det?k??211821?-939mod26=23 2219k*1?111???1?M182111?219?300=14

k*???2?1M?175121?21?219??313=25

k*?3?113??1?M17531?1821?267=7

k*21???1?2?1M??212112219??357=7

k*2?222???1?M17522?219?313=1

k*???3?2231?M??175322121??252=8

k*???1?1?331M211813?22?6

k*32???1?2?3M171723??22?0

538?mod26=[10 0 18]

605?mod26=[15 3 7]

*k33???1?3?3M33?1717?-51mod26=1

211823?mod26?

?14257??k?1??718????601??所以,

?4915????15176????24017??3-8 用Vigenere算法加密明文“We are discovered save yourself”,密钥是:deceptive。 解:密文应为:zi cvt wqngrzgvtw avzh cqyglmgj。

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

第4章 密码学数学引论

4-1 编写一个程序找出100~200间的素数。 略

4-2 计算下列数值:7503mod81、(-7503)mod81、81mod7503、(-81)mod7503。 解:7503mod81=51 (-7503)mod81=30 81mod7503=81 (-81)mod7503=7422

4-3 证明:(1)?a(modm)?b(modm)?modm?(a?b)(modm)

(2)?a?(b?c)?modm??(a?b)(modm)?(a?c)(modm)?(modm)

证明:

(1)设a(modm)?ra,b(modm)?rb,则a?ra?jm(j为某一整数),b?rb?km(k为某一整数)。于是有:

?a(modm)?b(modm)?modm?(rarb)(modm)

(a?b)(modm)??ra?jm??rb?km??modm???rarb?rakm?rbjm?kjm2??modm???rarb??modm?于是有:?a(modm)?b(modm)?modm?(a?b)(modm)

(2)设a(modm)?ra,b(modm)?rb,c(modm)?rc,则a?ra?j,m(j为某一整数)

b?rb?km(k为某一整数),c?rc?im(i为某一整数)。于是有:

?a?(b?c)?modm????rb?km???rc?im??????ra?jm???(modm)????ra?jm??rb?km?rc?im???(modm)??rarb?raim?rakm?rarc?rbjm?kjm?rcjm?ijm?modm22

??rarb?rarc?modm?(a?b)(modm)?(a?c)(modm)?(modm)????ra?jm??rb?km?modm??ra?jm??rc?im?modm???modm? ??rarb?rarc?modm于是有:?a?(b?c)?modm??(a?b)(modm)?(a?c)(modm)?(modm)

4-4 编写一个程序,用扩展的欧几里德算法求gcd(4655,12075)和550mod1723。 略。

4-5 求25的所有本原元。

解:25的所有本原元是:2, 3, 8, 12, 13, 17, 22, 23。 4-6 求Z5中各非零元素的乘法逆元。

解:Z5中各非零元素分别为1、2、3、4,它们的乘法逆元(mod5)分别是:1、3、2、4。 4-7 求?(100)。

222?12?1解:??100???2?5???2?2?1?????5?5?1????40

-1

??4-8 利用中国剩余定理求解:

?x?2(mod3)??x?1(mod5) ?x?1(mod7)?解: M = 3×5×7 = 105; M/3 = 35; M/5 = 21; M/7 = 15。

35b1=1 (mod 3) 21b2= 1 (mod 5) 15b3=1 (mod 7)

因此有: b1 = 2; b2 = 1; b3 = 1。

则:x =2×2×35 + 1×1×21 + 1×1×15=176 (mod 105)=71

4-9 解释:群、交换群、有限群、有限群的阶、循环群、生成元、域、有限域、不可约多项式。

答:群由一个非空集合G组成,在集合G中定义了一个二元运算符“· ”,满足: (1) 封闭性:对任意的a,b?G,有:a?b?G;

(2) 结合律:对任何的a,b,c?G,有:a?b?c??a?b??c?a??b?c?;

(3) 单位元:存在一个元素1?G (称为单位元),对任意元素,有:a?1?1?a?a; (4) 逆元:对任意a?G,存在一个元素a?1?G (称为逆元),使得:a?a?1?a?1?a?1。

如果一个群满足交换律,则称其为交换群。 如果一个群的元素是有限的,则称该群为有限群。 有限群的阶就是群中元素的个数。

如果群中每一个元素都是某一个元素a?G的幂a?G(k为整数),则称该群是循环群。

在循环群中,认为元素a生成了群G,或a是群G的生成元。

域是由一个非空集合F组成,在集合F中定义了两个二元运算符:“+”(加法)和“· ”(乘法),并满足:

(1)F关于加法“+”是一个交换群;其单位元为“0”,a的逆元为?a。 (2) F关于乘法“· ”是一个交换群;其单位元为“1”,a的逆元为a。 (3)(分配律)对任何的a,b,c?F,有:a?(b?c)??b?c??a?a?b?a?c; (4)(无零因子)对任意的a,b?F,如果a?b?0,则a?0或b?0。 如果域F只包含有限个元素,则称其为有限域。

不可约多项式是指不能再分解为两个次数低于该多项式最高次的多项之积的多项式。 4-10 基于最优化正规基表示的GF(2)域,计算?1010?和?1101?分别等于多少?

4?1k109 解:按照最优化正规基表示的乘法计算方法,有:

?1010?10=?1010?2??1010?8=?0101???0101?=?1010? ?1101?9=?1101???1101?8=?1101???1011?=?0001?。

4-11 什么是计算复杂性?它在密码学中有什么意义?

答:计算复杂性理论提供了一种分析不同密码技术和算法的计算复杂性的方法,它对密码算法及技术进行比较,然后确定其安全性,是密码安全性理论的基础,涉及算法的复杂性和问题的复杂性两个方面,为密码算法的“实际上”安全提供了依据。

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

第5章 对称密码体制

5-1 画出分组密码算法的原理框图,并解释其基本工作原理。 答:

m?(m0,m,mL?1)1,m2,?明文分组加密算法c?(c0,c1,c2,?,cL?1)密文分组解密算法m?(m0,m,mL?1)1,m2,?明文分组k?(k0,k1,k2,?,kt?1)k?(k0,k1,k2,?,kt?1)图5-1 分组密码原理框图

分组密码处理的单位是一组明文,即将明文消息编码后的数字序列m0,m1,m2,?,miL的分组分别在密钥划分成长为L位的组m??m,,Lm0,m1,m2???1,各个长为

k??k0,k1,k2,?,kt?1?(密钥长为t)的控制下变换成与明文组等长的一组密文输出数字序

列c??c0,c1,c2,?,cL?1?。L通常为64或128。解密过程是加密的逆过程。 5-2 为了保证分组密码算法的安全强度,对分组密码算法的要求有哪些? 答:(1)分组长度足够大;(2)密钥量足够大;(3)密码变换足够复杂。 5-3 什么是SP网络?

答:SP网络就是由多重S变换和P变换组合成的变换网络,即迭代密码,它是乘积密码的一种,由Shannon提出。其基本操作是S变换(代替)和P变换(换位),前者称为S盒,后者被称为P盒。S盒的作用是起到混乱作用,P盒的作用是起到扩散的作用。 5-4 什么是雪崩效应?

答:雪崩效应是指输入(明文或密钥)即使只有很小的变化,也会导致输出发生巨大变化的现象。即明文的一个比特的变化应该引起密文许多比特的改变。

5-5 什么是Feistel密码结构?Feistel密码结构的实现依赖的主要参数有哪些? 答:

明文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 简述公钥密码体制的主要应用方向?

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

钥交换(即用常规密码体制加密需要保密传输的消息本身,然后用公钥密码体制加密常规密码体制中使用的会话密钥,将二者结合使用)。

6-5 简述Diffie-Hellman算法实现密钥交换的原理。该算法基于什么数学难题?

答:Diffie-Helllman密钥交换原理:假设用户A和用户B希望安全地交换一个密钥,他们需要先确定并都知道两个整数:一个素数q和一个整数a,这两个整数对用户A和B是共享的,但对其他人是保密的。整数a是素数q的一个本原元。用户A选择一个随机数

XA?q,并计算:YA?aXAmodq。类似地,用户B选择一个随机数XB?q,并计算:

YB?aXBmodq。

每一方都保密存放自己的随机数XA或XB(相当于私钥),并使YA或YB(相当于公钥)的值对于另一方可以公开得到。用户A计算K?(YB)用户B计算K?(YA)XBXAmodq,并将其作为自己的密钥;

modq,并将其作为自己的密钥。通过这种方式,双方共享了一个

密钥K,相当于双方交换了一个密钥。

Diffie-Helllman密钥交换算法的有效性依赖于计算有限域中离散对数的困难性。 6-6 设Diffie-Hellman方法中,公用素数q=11,本原元等于2。若用户A的公钥Ya=9,则A的私钥Xa为多少?如果用户B的公钥Yb=3,则共享的密钥K为多少? 解:YA?aXAmodq,即9=2Xamod11,经推算得Xa=6(这里在公用素数很小的情况下

得出的,实际使用时公用素数应很大,这就是离散对数的难解性问题)。 如果用户B的公钥Yb=3,则共享的密钥K=YB6-7 RSA算法的理论基础是什么? 答:大数因子分解的困难性。 6-8 编写程序实现RSA算法。 略。

6-9 设通信双方使用RSA加密体制,接收方的公开密钥是(5,35),接收到的密文是10,求明文。

解:据题意知:e=5,n=35,C=10。 因此有:??n????35????5???7??4?6?24

Xamodq?36mod11?5。

d?e?1mod??n??5?1mod24?5

所以有:M?Cmodn?10mod35?5。

6-10 选择p=7,q=17,e=5,试用RSA方法对明文m=19进行加密、解密运算、给出签名和验证结果(给出其过程),并指出公钥和私钥各为什么?

d5解:加密:n?pq?7?17?119

C?memodn?195mod119?66

解密:??n????119????7???17??6?16?96

d?e?1mod??n??5?1mod96?77

所以,m?Cmodn?66mod119?19 签名:y?mdmodn?1977mod119?66

验证:x?yemodn?665mod119?19?m,该签名是真实的。

6-11 在RSA体制中,给定某用户的公钥e=31,n?3599,那么该用户的私钥等于多少? 解:3031。

6-12 编写程序计算:1615mod4731。 程序略。

6-13 试编写程序判断2537是否为素数。 程序略。

6-14 ECC的理论基础是什么?它有何特点?

答:ECC的理论基础是椭圆曲线离散对数问题的难解性。

ECC与RSA相比的主要优点在于:它用少得多的比特大小能够取得和RSA同等强度的安全性,因此减少了处理开销,具有存储效率、计算效率和通信带宽的节约等方面的优势,特别适用于那些对计算能力没有很好支持的系统,如智能卡、手机等。

6-15 椭圆曲线E11(1,6)表示y?x?x?6mod11,求其上的所有点。对于E11(1,6)上的点G?(2,7),计算2G的值。

解:对于x的所有可能值,计算方程右边的值。

x 0 1 2 3 4 5 6 7 x3 + x + 6 mod 11 6 8 5 3 8 4 8 4 是mod p平方根? no no yes yes no yes no yes y 4, 7 5, 6 2, 9 2, 9 23d778 9 10 9 7 4 yes no yes 3, 8 2, 9 即所有点为:(2,4),(2,7),(3,5),(3,6),(5,2),(5,9),(7,2),(7,9),(8,3), (8,8),(10,2),(10,9)。

要计算 2G = (2, 7) + (2, 7), 先计算:

可得:

所以:

x3 = 82–2–2 mod 11 = 5 y3 = 8(2–5)–7 mod 11 = 2 2G = (5, 2)

? ?= (3×22 + 1)/(2×7) mod 11

= 13/14 mod 11 = 2/3 mod 11 = 8

6-16 设实数域上的椭圆曲线为y2=x3-36x,令P=(?3.5,9.5),Q?(?2.5,8.5)。计算

P?Q。

解:将 xP = –3.5, yP = 9.5, xQ = –2.5, yQ = 8.5 代入椭圆曲线加方程易得:

xR = 7、 yR = 1。

因此:P + Q = (7, 1)。

6-17 利用椭圆曲线实现ElGamal密码体制,设椭圆曲线是E11(1,6),生成元G?(2,7),接收方A的秘密密钥nA?7。求: (1)A的公开密钥PA。

(2)发送方B欲发送消息Pm?(10,9),选择随机数k?3,求密文Cm。 (3)显示接收方A从密文Cm恢复消息Pm的计算过程。 解:(1)PA?nA?G?7??2,7???7,2?。

Cm??kG,Pm?kPA???3?2,7?,?10,9??3?7,2??

(2)???8,3?,?10,9???3,5?????8,3?,?10,2??

(3)Pm??10,2??7?8,3???10,2???3,5???10,2???3,6???10,9?。

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

第7章 HASH函数和消息认证

7-1 什么是HASH函数?对HASH函数的基本要求和安全性要求分别是什么?

答:HASH函数是一种单向密码体制,即它是一个从明文到密文的不可逆映射,只有加密过程,不能解密。HASH函数可以将任意长度的输入经过变换以后得到固定长度的输出。

HASH函数的基本要求:①算法公开,不需要密钥。②有数据压缩功能,能将任意长度的输入转换成一个固定长度的输出。③容易计算。即给出消息M,要计算出该消息的散列值

h?M?是容易的。

HASH函数的安全性要求:①给定消息的散列值h?M?,要求出M是计算上不可行的。 ②给定消息M和其散列值h?M?,要找到另一个与M不同的消息M?,使得它们的散列值相同是不可能的(即抗弱碰撞性)。

③对于任意两个不同的消息M和M?,它们的散列值不可能相同(即抗强碰撞性)。 7-2 安全HASH函数的一般结构是什么? 答:安全HASH函数的一般结构如下图所示。

消息M填充,附加位长度等M1M2??MtIV即fH1f压缩函数H2??Htg输出变换H0h?M?图7-1 安全散列函数的一般结构

7-3 为什么要进行HASH填充?

答:HASH函数的处理是以分组为单位,在生成散列值之前,在对输入消息进行分组时,如果最后一块报文不足r位,就要进行填充。 7-4 HASH函数的主要应用有哪些?

答:HASH函数的主要应用有:数字签名、生成程序或文档的“数字指纹”、用于安全存储口令。

7-5 简述散列算法的设计方法及其分类。 答:散列算法的设计主要可分为三大类:

(1)基于模数运算

这种设计方法是使用公开密钥算法来设计单向散列函数。通常可以使用CBC模式基于公开密钥算法对消息进行加密,并输出最后一个密文分组作为散列值。如果丢弃用户的密钥,这时的散列值将无法解密,也就是说,它满足了散列函数的单向性要求。一般情况下它的计算速度十分的慢,实用性差。 (2)基于分组加密

就是用对称分组算法设计单向散列函数。同样可以使用对称分组算法的CBC模式或CFB模式来产生散列值。它将使用一个固定的密钥及IV加密消息,并将最后的密文分组作为散列值输出。这类设计已经提出了一些方案,如MDC-2和MDC-4等。 (3)定制的

这类单向散列函数并不基于任何假设和密码体制,而是通过直接构造复杂的非线性关系达到单向要求,设计单向散列函数。这类算法典型的有:MD2、MD4 、MD5、SHA-1、PIPEMD-160等算法。

7-6 编写程序实现SHA-1? 略。

7-7 什么是消息认证?为什么要进行消息认证?消息认证的实现方法有哪些? 答:消息认证是使目标消息接收者能够检验收到的消息是否真实的认证方法。

消息认证的目的主要有两个:第一,验证信息的来源是真实的,而不是伪造的,此为信息源认证;第二,验证信息的完整性,即验证信息在传送或存储过程中未被篡改、重放或延迟等。

任何认证系统在功能上划分为两个层次:底层的认证函数产生一个用来认证消息的认证标识,上层的认证协议基于认证标识提供了一种能使接收方验证消息真实性的机制。认证函数分为三类:

(1) 消息加密函数:用整个消息的密文作为对消息进行认证的认证标识。

(2) 消息认证码MAC:是以消息和密钥作为输入的公开函数,产生定长的输出,并以此输出值作为认证标识。

(3) 散列函数:是一个不需要密钥的公开函数,它将任意长度的输入消息映射成一个固定长度的输出值,并以此值作为认证标识。

7-8 什么是认证协议?举例说明单向认证和双向认证。

答:认证协议就是能使通信各方证实对方身份或消息来源的通信协议。 例略。

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

第8章 数字签名

8-1 数字签名有什么特殊性?

答:电子文档的物理载体表现为电磁信号、所携带的文字符号以二进制编码的逻辑形式存在,可以任意分割、复制而不被察觉,且数字信息本身没有个性特征,如果按照传统方式进行电子文档的签名,签名本身将很容易被伪造和重用,完全达不到签名的目的。 8-2 数字签名的性质是什么?

答:数字签名应该具有以下性质:

(1)签名是对文档的一种映射,不同的文档内容所得到的映射结果是不一样的,即签名与文档具有一一对应关系;(精确性)

(2)签名应基于签名者的唯一性特征(如私钥),从而确定签名的不可伪造性和不可否认性;(唯一性)

(3)签名应该具有时间特征,防止签名的重复使用。(时效性) 8-3 对数字签名的要求是什么? 答:数字签名的设计要求:

(1)签名必须是依赖于被签名信息的一个位串模板,即签名必须以被签名的消息为输入,与其绑定;

(2)签名必须使用某些对发送者是唯一的信息。对发送者唯一就可以防止发送方以外的人伪造签名,也防止发送方事后否认;

(3)必须相对容易地生成该数字签名,即签名容易生成; (4)必须相对容易地识别和验证该数字签名;

(5)伪造数字签名在计算复杂性意义上具有不可行性,既包括对一个已有的数字签名构造新的消息,也包括对一个给定消息伪造一个数字签名; (6)在存储器中保存一个数字签名副本是现实可行的。 8-4 数字签名的基本原理什么?

答:一个数字签名方案由两部分组成:带有陷门的公开签名算法和验证算法。公开签名算法是一个由密钥控制的函数。对任意一个消息x,一个密钥k,签名算法产生一个签名

y?sigk(x),算法是公开的,但密钥是保密的,这样,不知道密钥的人不可能产生正确的

签名,从而不能伪造签名。验证算法ver(x,y)也是公开的,它通过ver(x,y)?true或false来验证签名。

8-5 分类说明数字签名的实现方法及其特点。

答:最基本的数字签名有基于对称密钥密码算法和基于公开密钥密码算法两种。 (1)基于对称密钥密码算法的数字签名方法

这种方法的本质是共享密钥的验证。基本形式是:用户A与B共享对称密钥密码体制的密钥k,要签名的消息为m。则签名算法就是加密算法:

y?sigk(m)?Ek(m)

发送方向验证方发送(m,y)。 验证算法就是解密算法:

ver(m,y)?true?m?Dk(y)

或加密算法:

ver(m,y)?true?y?Ek(m)

这个方法隐含着用户A、B都知道k和m,才能验证消息。这种方法不具有“唯一性”特征,不是严格意义上的数字签名。这种签名算法主要用于防止通信双方A、B之外的人进行伪造,但对A、B间的欺骗(如伪造签名)将无能为力,因为他们共享了密钥k。 (2)基于公钥密码算法的数字签名方法

基于公钥密码算法的数字签名方法本质上是公钥密码加密算法的逆应用。此时发送方用自己的私钥对消息进行加密,接收方收到消息后用发送方的公钥进行解密,由于私钥由发送方自己保管且只有他本人知道,入侵者只知道发送者的公钥,不可能伪造签名,从而起到签名的效果。公正的第三方可以用发送方的公钥对签名的消息进行解密,从而证实消息确实来自于该发送者。

使用公钥密码体制:用户A选定私钥KRa、公钥KUa,加解密算法分别为E,D,将KRa保密,称为签名密钥;将KUa公开,称为验证密钥,则签名和验证过程为:

设用户A要向用户B发送消息m,用户A用自己的私钥加密(签名)消息m:

y?EKRa(m),向B发送(m,y);用户B用A的公钥解密 (验证)签名:

ver(m,y)?True?m?EKUa(y)

8-6 直接数字签名和可仲裁数字签名的区别是什么?

答:直接数字签名是只涉及到通信双方的数字签名。为了提供鉴别功能,直接数字签名一般使用公钥密码体制。

可仲裁数字签名在通信双方的基础上引入了仲裁者的参与。通常的做法是所有从发送方X到接收方Y的签名消息首先送到仲裁者A,A将消息及其签名进行一系列测试,以检查其来源和内容,然后将消息加上日期(时间戳由仲裁者加上),并与已被仲裁者验证通过的签名一起发给Y。仲裁者在这一类签名模式中扮演裁判的角色。前提条件:所有的参与者必须绝对相信这一仲裁机制工作正常。

8-7 当需要对消息同时进行签名和保密时,它们应以何种顺序作用于消息?为什么? 答:应先签名后加密。否则,攻击者可能伪造签名。(参考第6.3节RSA签名部分)。 8-8 DSA中,如果签名产生过程中出现s?0,则必须产生新的k并重新计算签名,为什么?

答:0元素没有逆,不能按照DSA签名算法完成签名。 8-9 举例说明DSA的签名和验证过程。 略。

8-10 编写程序实现DSA。 略。

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

第9章 密钥管理

9-1 为什么要进行密钥管理?

答:密码学中密钥作为密码变换的参数,通过加密变换操作,可以将明文变换为密文,或者通过解密变换操作,将密文恢复为明文。密钥管理就是在授权各方之间实现密钥关系的建立和维护的一整套技术和程序。密钥管理负责密钥从产生到最终销毁的整个过程,包括密钥的生成、存储、分配、使用、备份/恢复、更新、撤销和销毁等。密钥管理作为提供机密性、实体认证、数据源认证、数据完整性和数字签名等安全密码技术的基础,在整个密码学中占有重要的地位。

9-2 密钥的种类有哪些?

答:按照所加密内容的不同,密钥可以分为用于一般数据加密的密钥(即会话密钥)和用于密钥加密的密钥,密钥加密密钥又可分为一般密钥加密密钥和主密钥。 9-3 为什么在密钥管理中要引入层次式结构?

答:层次化的密钥结构意味着以少量上层密钥来保护大量下层密钥或明文数据,这样,可保证除了主密钥可以以明文的形式基于严格的管理受到严密保护外(不排除受到某种变换的保护),其他密钥则以加密后的密文形式存储,改善了密钥的安全性。层次化的密钥结构具有安全性强、可实现密钥管理的自动化的优点。

9-4 密钥管理的生命周期包括哪些阶段?

答:主要可分为:用户登记、系统和用户初始化、密钥材料的安装、密钥的生成、密钥的登记、密钥的使用、密钥材料的备份、密钥的存档、密钥的更新、密钥的恢复、密钥的恢复、密钥的撤消。

9-5 密钥安全存储的方法有哪些?

答:有两种方法:一种是基于口令的软保护,一种是基于硬件的物理保护。 9-6 密钥的分发方法有哪些?如何实现?

答:从分发途径的不同来区分,密钥的分发方法有网外分发和网内分发两种方式。网外分发方式是通过非通信网络的可靠物理渠道携带密钥分发给互相通信的各用户。网内分发方式是通过通信与计算机网络的密钥在线、自动分发方式。有两种:一种是在用户之间直接实现分配,另一种是设立一个密钥分发中心,由它负责密钥分发。后一种方法已成为使用得较多的密钥分发方法。

按照密钥分发内容的不同,密钥的分发方法主要分为秘密密钥的分发和公开密钥的分发两大类。

9-7 什么是数字证书?X.509的鉴别机制是什么?为什么要引入数字证书链?其工作原理是什么?

答:数字证书就是提供一种确保证书所携带的公钥与密钥持有人具有某种关联的可靠性以及传递这种关联和公钥本身的机制。

X.509的鉴别机制:要求在一次处理中,每一方A与一个称作认证中心CA的离线可信方相联系,A要登记他的公钥并获得CA的证书证实公钥。CA通过将A的公钥与它的身份绑定来认证A的公钥,结果生成一个证书。证书由证书管理员产生,并发给拥有相应私钥的通信方(该证书的拥有者)。通信一方通过传递证书将密钥信息传递给另一方,其他通信各方可以验证该证书确实是由证书管理者产生的来获得公钥认证。由CA产生的用户证书有两个方面的特点:一是任何有CA公开密钥的用户都可以恢复并证实用户公开密钥;二是除了CA没有任何一方能不被察觉地更改该证书。正是基于这两点,证书是不可伪造的,因此它们可以放在一个目录内,而无需对目录提供特殊的保护。

如果用户的数目巨大,让所有用户向同一个CA申请证书涉及到大数据量的管理、通信量、响应速度等问题,同时CA的公开密钥要求要能安全地提供给每个客户也有困难。于是提出了一种分布式的CA认证方式,引入多个CA,多个CA还可以形成层次关系,位于上层的CA可以对下层CA颁发数字证书,从而形成证书链。

在一个证书链中,跟随每一份证书的是该证书签发者的证书;每份证书包含证书签发者

的区别名(DN),该区别名就是证书链中下一份证书的主体的名字;每份证书都是使用签发者的私钥签发的。证书中的签名可以使用签发者证书(即证书链中的下一份证书)中的公钥加以验证。

9-8 简述X.509的三种鉴别过程。 答:1)单向鉴别

单向鉴别涉及到信息从一个用户A传送到另一个用户B,它只验证发起实体的身份,而不验证响应实体。

报文至少包括一个时间戳tA(防止报文的延迟传送)、一个不重复的随机数rA(用于检测重放攻击,并防止伪造签名)、B的身份标识。它们都用A的私钥签名。报文也可能传递一个会话密钥KAB,该密钥用B的公开密钥加密。

A→B: tA,rA,B,sgnData,EKUB?KAB?

2)双向鉴别

双向鉴别允许通信双方互相验证对方的身份。处理方式与单向鉴别相似,只是响应方要将发起方传来的随机数rA返回。

A→B:tA,rA,B,sgnData,EKUB?KAB? B→A:tB,rB,A,rA,sgnData,EKUA?KAB?

3)三向鉴别

在三向鉴别中,除了进行双向鉴别的两个传递外,还有一个从A到B的报文,它包含的是一个随机数rB的备份。这样,两个随机数都由另一方返回,每一方都可以检查返回的随机数来检测重放攻击,不再需要时间戳。因此这种方法适合没有同步时钟的应用。

A→B:tA,rA,B,sgnData,EKUB?KAB? B→A:tB,rB,A,rA,sgnData,EKUA?KAB?

A→B:?rA?

??????????第10章 序列密码

10-1 什么是序列密码?同步序列密码?自同步序列密码? 答:序列密码是以位或字节作为基本处理单元的密码。

在一个同步序列密码中,发送方和接收方必须是同步的,用同样的密钥且该密钥操作在同样的位置(态),才能保证正确地解密。

自同步序列密码的密钥流的产生与密钥和已经产生的固定数量的密文字符有关,即是一种有记忆变换的序列密码。

10-2 同步序列密码和自同步序列密码的特点分别是什么? 答:同步序列密码的特点:同步要求、无错误传播。

自同步序列密码的特点:自同步、有限的错误传播。 10-3 简述密钥流生成器在序列密码中的重要作用。

答:密钥流生成器生成的密钥流的周期、复杂度、随机(伪随机)特性等,是保证序列密码安全性的主要指标。

10-4 比较序列密码与分组密码。

答:分组密码以一定大小的分组作为每次处理的基本单元,而序列密码则是以一个元素(如一个字母或一个比特)作为基本的处理单元。

序列密码使用一个随时间变化的加密变换,具有转换速度快、低错误传播的优点,硬件实现电路更简单;其缺点是:低扩散(意味着混乱不够)、插入及修改的不敏感性。

分组密码使用的是一个不随时间变化的固定变换,具有扩散性好、插入的敏感性等优点;其缺点是:加解密处理速度慢、存在错误传播。 10-5 为什么序列密码的密钥不能重复使用?

答:序列密码是模仿的“一次一密”加密算法,其安全强度取决于密钥流生成器生成的密钥流的周期、复杂度、随机(伪随机)特性等,密钥的重复使用将导致其安全性降低。 10-6 在序列密码中为什么要使用线性反馈移位寄存器? 答:(1)LFSR非常适合硬件实现; (2)它们能产生大的周期序列;

(3)它们能产生好的统计特性的序列;

(4)它们的结构能够应用代数方法进行很好的分析。

10-7 举例说明如何在序列密码中使用线性反馈移位寄存器。 略。

10-8 简要介绍RC4实现序列密码的主要算法。

答:RC4有两个主要的算法:密钥调度算法KSA和伪随机数生成算法PRGA。

密钥调度算法的作用是将一个随机密钥(典型大小是40位-256位)变换成一个初始置换,即相当于初始化状态矢量S,然后伪随机数生成算法PRGA利用该初始置换生成一个伪随机输出序列。

伪随机数生成算法主要完成密钥流的生成。 10-9 编程测试RC4算法。 略。

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

第12章 密码学与数字通信安全

12-1 保密数字通信系统的一般组成是什么?

答:一般由以下8部分组成:信源编/译码单元、加密运算器、密码序列产生单元、密码同步控制单元、密码同步信号插入电路、密码同步信号检测与提取电路、解密运算器和信道传输设备。

12-2 对保密数字通信系统有什么要求? 答:略。

12-3 举例说明保密数字通信系统的一般模型。 答:略。

12-4 WAP是如何工作的?

答:一个安全的WAP会话通过两阶段实现:(1)WAP网关与WEB服务器间通过SSL进行安全通信,确保了保密性、完整性和服务器认证;(2)WAP网关和移动用户之间的安全通信使用WTLS协议。WAP网关将来自WEB服务器的经SSL加密的消息翻译成适合WTLS安全协议的无线网络传输格式,再传给Web浏览器(即手机);从手机发往WEB服务器的消息同样经由WAP网关将WTLS格式转换成SSL格式。 12-5 在WTLS中如何使用密码算法? 答:略。

12-6 什么是WEP?

答:WEP是无线局域网标准802.11的有线等价保密协议,提供了认证和保密两个服务以实现无线局域网的客户和访问点AP间加密通信功能。认证被用于代替有线媒体的物理连接;保密被用于提供封闭式有线媒体的机密性。WEP定义用来防止非授权用户的“意外偷听”,它使用了对称密钥加密算法和RC4序列密码体制手段用来加密位于移动单元和基站之间的无线网络连接通信。

12-7 WEP的加、解密原理是什么? 答:

IVIV密钥||种子WEPPRNG密钥序列XOR密文消息明文完整性算法ICV||图12-12 WEP加密密钥IV种子WEPPRNG密钥序列完整性算法XOR密文消息

明文ICV’比较ICV||图12-14 WEP的解密

12-9 WEP有何优、缺点? 答: WEP的优势:

1) 全部报文都使用校验和,提供了抵抗篡改的能力。

2) 通过加密来维护一定的保密性。如果没有密钥,就不能把报文解密。 3) WEP非常容易实现。

4) WEP能为无线局域网WLAN应用提供基本的保护。

5) 可以由用户定义WEP密钥,而且没有限制。不必使用预定义的密钥,可以而且应该经常

更换它们。 WEP的缺点:

1)RC4加密算法是个公开的序列加密算法。这意味着为了加密,它使用有限的密钥来试图生成无限的伪随机密钥,这是序列加密算法的基本特征。

2)一旦修改了密钥,就不得不告诉每个人,以便他们能够调整设置。告诉的人越多,信息就变得越公开。

3)如果仅仅使用WEP,并不能提供足够的无线局域网WLAN安全。 4)必须在每个客户端和每个访问点AP间实现WEP,才能生效。 12-10 IPSec如何实现通信安全? 答:略。

12-11 VPN有何优势?

答:与一般专网相比,其突出的优势表现为低廉的费用和良好的可扩展性。 12-12 PGP如何保证电子邮件的安全性?

答:基于鉴别、机密性、压缩、电子邮件的兼容性和分段五种服务,实现电子邮件的机密性和可鉴别等安全功能。

12-13 使用PGP给自己发送一封加密和签名邮件,并对其进行解密和证实。 答:略。

第13章 密码学与工业网络控制安全

13-1 工业控制网络中为什么要引入信息安全?

答:随着CIMS、透明工厂等企业信息化项目的实施,一方面,在生产企业中广泛分布使用的工业控制网络开始与车间级、企业管理级信息传输平台连接,即工业企业的生产控制网络与其管理信息网络互联在一起,如“e网到底”正在成为流行的企业生产、经营和管理决策模式;另一方面,由于企业的管理信息网络(即企业的计算机局域网络或广域网络)现在大都与Internet相联结,而且允许与工厂或企业外部的合作伙伴、客户有效地共享信息。这样,随之而来的是企业生产控制网络暴露在没有信息安全防护措施的环境中,同时面临着来自企业信息网络内部(如不满意员工)和外部(如工业间谍、竞争对手)对生产指令、关键业务数据和设计机密等敏感数据进行窃取、篡改、伪造、重放等双重安全威胁,在这种情况下,作为攻击者完全可以长驱直入地从异地基于因特网进入到工厂生产控制网络的底层,实现对控制网络中的各种仪器仪表、执行机构进行直接的访问和控制,对其“发号施令”,直接影响企业的安全生产和管理。因此,工业控制网络需要考虑信息安全问题。 13-2 工业控制网络面临的安全威胁是什么?

答:主要包括:拒绝服务、窃听、口令破解、网络和IP欺骗、数据的篡改、病毒、特洛伊木马和蠕虫等威胁。

13-3 EPA系统的安全需求有哪些?

答:可用性、完整性、身份认证、授权和访问控制、可审计性、不可否认性和保密性。 13-4 EPA的安全原则是什么?

答:主要包括使用防火墙、网络(网关)隔离、分组过滤、加密与认证、网络安全漏洞扫描和入侵检测、备份与恢复、“最小授权”原则。 13-5 EPA的通用安全模型是什么? 答:略。

13-6 如何实现EPA系统的信息安全?

答:基于信息安全模型和安全访问模型,综合应用基于密码学方法的加、解密技术,具有门卫功能的防火墙、口令等访问过滤技术以及系统内部的安全扫描等,以实现系统的整体安全。详细内容略。

13-7 简述EPA的安全数据格式。 答:略。

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

第14章 密码学与无线传感器网络感知安全

14-1 说明无线传感器网络的体系结构和节点体系结构。 答:略。

14-2 无线传感器网络的主要特点有哪些?

答:无线传感器网络一般具有以下特点:

(1)无线传感器网络具有大量而密集的节点分布特征,且网络规模可变化,不固定;缺少固定的基础设施,没有中心管理点;网络拓扑结构在分布完成之前是未知的。

(2)一般分布于恶劣环境、无人区域或敌方阵地,无人参与值守,传感器节点的物理安全不能保证。

(3)电源能量受限。 (4)计算能力有限。 (5)通信能力有限。 (6)存储空间有限。

14-3 无线传感器网络的安全需求是什么?

答:从一般意义上说,无线传感器网络的安全需求主要表现为信息安全需求和通信安全需求两个方面。

1、信息安全需求:信息安全需求就是要保证网络中传输信息的安全性。包括:机密性、完整性、真实性、可用性、新鲜性、鲁棒性和访问控制。

2、通信安全需求:通信安全就是要保证无线传感器网络通信过程的安全,涉及到传感器节点的物理安全、被动抵御入侵的能力和主动反击入侵的能力。 14-4 无线传感器网络可能受到的安全威胁有哪些?

答:节点的捕获(物理攻击)、违反机密性攻击、拒绝服务攻击、假冒的节点和恶意的数据、Sybil攻击、路由威胁等。

14-5 无线传感器网络的安全防御方法是什么? 答:略。

第15章 密码学的新进展-量子密码学

15-1 量子密码学的两个基本原理是什么?

答:量子密码学的第一个原理:对量子系统未知状态的每一次测量都不可避免地将改变系统原来的状态,除非系统与测量处于兼容的状态。也称为不可克隆原理。

量子密码学的第二个原理:在通过一个通信链接交换真正的机密消息之前, 只用量子密码方法交换一个随机的密钥。实际上这是量子密码学为了保证通信安全的一个基本处理原则。

15-2 运用量子密码理论进行密钥分配的原理及其主要步骤是什么? 答:基于量子密码学的两个基本原理,量子密码学进行密钥分配的步骤如下:

步1:A随机地生成一个比特流,根据编码方法发给B一串光子脉冲,每一个光子有四个可能的极化状态,A随机地、独立地设置每个光子的极化状态。

步2:B设置接收滤光器的序列,并读取接收到的光子序列,转换为相应的比特流,但因B不知道A的设置,故只能随机地设置,对于每一个位置,能正确接收的概率为3/4。 步3:B通过传统的非保密通道告诉A其滤光器序列的设置。 步4:A对照自己的设置,通过传统的信道告诉B设置正确的位置。 步5:B选取正确设置位置的比特,并公布部分选定的比特,一般为1/3。

步6:A检查B公布的比特与自己所发出比特的一致性,如果没有窃听行为发生,则它们应该是一致的,否则,肯定发生了窃听行为。

步7:如果没有窃听行为发生,双方可约定用剩余的2/3比特作为共享的会话密钥,从而实现了密钥的分配。A和B依此办法可获得足够多的位。 15-3 举例说明量子密码理论进行密钥分配和窃听发现的方法。 略。

15-4 为什么说“量子密码学是未来唯一安全的密码技术”?

答:将量子密钥分发协议和“一次一密”结合起来,将得到一个理论上不可破译的密码系统。量子密码的安全性具有抗击拥有无穷计算能力的攻击者,这一点区别于现有的其他密码算法,随着计算机计算能力的不断增强,可以认为量子密码学是未来唯一安全的密码技术。 15-5 与传统密码体制相比,量子密码学的主要优势是什么?

答:量子密码学克服和传统密码学的以下六个方面的问题:(1)已经实现的单向函数逆计算算法的安全性并没有得到理论证明。(2)随着计算能力的增强,所有单向函数都显得脆弱,因为计算能力的增强使蛮力攻击更可行。(3)密钥生成期间密钥的安全性不能绝对保证。(4)密钥分发期间密钥的安全性不能得到绝对保证。(5)密钥存储期间密钥的安全性不能得到绝对保障。(6)一旦一个加密受到安全威胁,安全通信的参与方不能通过一个明确的方法来发现这种威胁的发生。

15-6 量子密码学存在的技术挑战是什么?

答:量子密码学要走向真正的实用还面临着主要以下5个方面的技术挑战。

(1)光子源:BB84量子密钥协议的安全性取决于Alice和Bob生成和处理单个光子的能力。然而,要生成单个的光子并不是一件容易的事。

(2)随机数发生器:量子密钥分发协议要求随机地设置所发出的光子的极化状态。如果用一个计算机来生成随机数,由于计算机是有限状态机,计算机的这一固有属性决定了不可能取得完全的随机性。

(3)量子中继器:由于存在探测器噪声和光纤损耗,当前量子密钥分发系统只能工作于40-60英里范围内。要想扩大这个距离,传统的中断器不能使用。

(4)低传输率:传输率由每秒钟正确传输的秘密位的个数来决定,量子密钥分发协议的工作原理决定了必须牺牲部分传输位用于验证,这些位不能用作密钥,导致量子密码学的传输效率相对较低。

(5)安全性:量子密钥分发协议已被成功地证明是安全的。但一般而言,一个特定技术的

实现总是令人怀疑的。