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

第1章 绪论

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

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

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

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

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

密码学尽管在网络信息安全中具有举足轻重的作用,但密码学绝不是确保网络信息安全的唯一工具,它也不能解决所有的安全问题。密码编码与密码分析是一对矛和盾的关系。 1-5 安全机制是什么?主要的安全机制有哪些? 答题要点:

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

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

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

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

1-8 什么是主动攻击和被动攻击,各有何特点? 答题要点:

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

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

第2章 密码学基础

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

答:密码学的五元组是指:{明文、密文、密钥、加密算法、解密算法}。

明文:是作为加密输入的原始信息,即消息的原始形式,通常用m或表示。 密文:是明文经加密变换后的结果,即消息被加密处理后的形式,通常用c表示。 密钥:是参与密码变换的参数,通常用k表示。

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

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

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

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

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

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

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

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

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

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

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

第3章 古典密码

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-8 用Vigenere算法加密明文“We are discovered save yourself”,密钥是:deceptive。 解:密文应为:zi cvt wqngrzgvtw avzh cqyglmgj。

第4章 密码学数学引论

4-7 求?(100)。

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

??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-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,?,mi划分成长为L位的组m??m0,m1,m2,L的分组分别在密钥,Lm??1,各个长为

k??k0,k1,k2,列c??c0,c1,c2,,kt?1?(密钥长为t)的控制下变换成与明文组等长的一组密文输出数字序,cL?1?。L通常为64或128。解密过程是加密的逆过程。

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)

,n)

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

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

第6章 非对称密码体制

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

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

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是配对使用的。

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

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

Diffie-Helllman密钥交换算法的有效性依赖于计算有限域中离散对数的困难性。 6-10 选择p=7,q=17,e=5,试用RSA方法对明文m=19进行加密、解密运算、给出签名和验证结果(给出其过程),并指出公钥和私钥各为什么? 解:加密: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,该签名是真实的。

d77第7章 HASH函数和消息认证

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

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

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

h?M?是容易的。

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

③对于任意两个不同的消息M和M?,它们的散列值不可能相同(即抗强碰撞性)。 7-4 HASH函数的主要应用有哪些?

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

第8章 数字签名

8-4 数字签名的基本原理什么?

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

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

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

第9章 密钥管理

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

答:按照所加密内容的不同,密钥可以分为用于一般数据加密的密钥(即会话密钥)和用于

密钥加密的密钥,密钥加密密钥又可分为一般密钥加密密钥和主密钥。 9-6 密钥的分发方法有哪些?如何实现?

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

10章 序列密码

10-3 简述密钥流生成器在序列密码中的重要作用。

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

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

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

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

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