密码学练习题1new 下载本文

内容发布更新时间 : 2024/5/12 3:14:38星期一 下面是文章的全部内容请认真阅读。

试题一:密码分析可分为哪几类,它们的含义是什么?

答:根据密码分析者可能取得的分析资料的不同,密码分析(或称攻击)可分为下列四类:

1)唯密文分析(攻击),密码分析者取得一个或多个用同一密钥加密的密文; 2)已知明文分析(攻击),除要破译的密文外,密码分析者还取得一些用同一密钥加密的明密文对; 3)选择明文分析(攻击),密码分析者可取得他所选择的任何明文所对应的密文(当然不包括他要恢复的明文),这些明密文对和要破译的密文是用同一密钥加密的; 4)选择密文分析(攻击),密码分析者可取得他所选择的任何密文所对应的明文(要破译的密文除外),这些密文和明文和要破译的密文是用同一解密密钥解密的,它主要应用于公钥密码体制。

?118?试题二:假设Hill密码加密使用密钥K???37??,试对密文DHFL解密。

???718?答:密钥矩阵K的逆矩阵是?(d,h)=(3,7)解密后变为(3,7)?2311??,所以,

???718??718??? 同理(F,L)=(5,11) 解密后变为(5,11)???2311??=(0,1)=(a,b);?2311??=(2,3)= ????(c,d)。所以,密文(DHFL)经过Hill密码解密后,恢复的明文是(abcd)。

试题三:考虑Z23上的一个椭圆曲线y2=x3+11x+18。请你(1)验证P=(6,1)和Q=(9,15)确实是该椭圆曲线上的两个点;(2)请计算出P+Q=?和2P=? 答:(1)直接验证P=(6,1)和Q=(9,15)确实满足方程式y2=x3+11x+18,因此,P和Q都是该椭圆曲线上的点。

(2)直接计算后得到P+Q=(17,9)和2P=(15,4)。对Zp上的椭圆曲线E上的两个点P=(x1,y1)?E和Q=(x2,y2)?E。若 x1=x2且y1=-y2,那么 P+Q=O;否则P+Q=(x3,y3) ,这里的x3=?2-x1-x2,y3=?(x1-x3)-y1。

?y2?y1?x?x如果P?Q? ?=?2213x?a?1如果P?Q?2y1?对于所有的P?E,定义P+O=O+P=P。

试题四:(1)在实用中,如何利用杂凑(HASH)函数来对长消息进行数字签名?

(2)如果所用的杂凑函数有一个碰撞,那么“黑客”能够伪造一个假签名吗?请具体给出一种伪造方法。 答:(1)在签名端:首先对长消息进行HASH,将其压缩成为一个短消息,然后再对短消息进行签名,并以该短签名来作为对长消息的签名。在验证端:首先对长消息进行HASH,得到压缩消息。然后,验证所获得的签名是否是该压缩消息的签名。如果是,那么签名被验证;否则,签名有假。

(2)设所用的HASH函数有一个碰撞,比如,找到了两个不同的长消息m和n,他们经过该HASH后,被压缩成为同一个短消息k。那么,黑客可以根据对消息m的签名(m,p)伪造出对消息n的签名(n,p)。

试题五:密码系统安全性的定义有几种?它们的含义是什么?

答:现有两种定义“安全性”的方法。一种是基于信息论的方法(经典方法)。另一种是基于计算复杂性理论的方法(现代方法)。

基于信息论的定义是用密文中是否蕴含明文的信息作为标准。不严格地说,若密文中不含明文的任何信息,则认为该密码体制是安全的,否则就认为是不安全的。

基于计算复杂性理论的安全性定义则不考虑密文中是否蕴含明文的信息,而是考虑这些信息是否能有效地被提取出来。换句话说,把搭线者提取明文信息的可能性改为搭线者提取明文信息的可行性,这种安全性称为有条件安全性,即搭线者在一定的计算资源条件下,他不能从密文恢复出明文。

试题六:(1)请利用著名的RSA公钥密码算法设计一个数字签名算法(称为RSA签名算法)。(2)由于RSA签名算法每次只能对一个固定长度(比如N比特)的消息进行签名,为了对任意长度的消息进行签名,有人建议了这样一种处理方法:首先将长消息切割成固定长度N比特的数据块,然后用RSA签名算法对每个数据块进行签名,最后将这些签名块拼接起来就得到了长消息的签名。请问这种切割处理方法所获得的签名算法安全吗?为什么? 答:(1)RSA签名算法的系统参数可设为n=pq,且p和q是两个大素数,则 M=A=Zn,定义К={(n,d,p,q,e)}这里e和d 满足ed?1(modΦ(n))( Φ()是欧拉函数)。公开密钥 n,d;私有密钥 p,q,e; 签名算法为SigK2 (x)=xe mod n;签名验证算法为 Ver(x,y)=TRUE?x?yd(modn). (x,y)?Zn?Zn。更直观地说,用RSA解密算法作为签名,用RSA的加密作为验证,于是,只有合法用户自己才能签名,而任何人都可以验证签名的真实性。其实,基于任何一个加、解密算法顺序可交换的密码算法都可用于设计一个数字签名算法,只需要以解密做签名,以加密做验证就行了。

(2)切割和拼接处理方法所获得的签名算法不安全。因为,假如m和n是两个N比特的消息,那么,黑客可以通过已知的m和n的签名S(m)S(n),至少获得另一个消息nm的合法签名S(n)S(m)。

试题七:简述密码体制的组成及其密码体制的分类。

:密码体制就是完成加密和解密功能的密码方案或密码算法。

一个密码体制(Cryptosystem)或密码算法通常由以下5个部分构成: ① 明文空间M(全体明文的集合);② 密文空间C(全体密文的集合);③ 密钥空间K(全体密钥的集合);④ 加密器或加密变换(算法)E,由加密密钥控制的加密变换的集合,即EK(m)?c,m?M,c?C,k?K;⑤ 解密器或解密变换(算法)D,由解密密钥控制的解密变换的集合,即DK(c)?m,m?M,c?C,k?K。

密码体制的分类:

(1)根据密文数据段是否与明文数据段在整个明文中的位置有关否,可以将密码体制分为分组密码体制和序列密码体制。

(2)根据加密变换是否可逆,可以将密码体制分为单向变换密码体制和双向变换密码体制。

(3)根据在加密过程中是否引入客观随机因素,可以将密码体制分为确定型密码体制和概率密码体制。

试题八:什么是主动攻击和被动攻击,各有何特点?

答题要点:

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

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

试题九:简要描述数字签名的基本原理及过程。

数字签名的原理是:利用Hash函数计算数据消息摘要;利用发送方的私钥加密该摘要;

将该加密的摘要与原文一起发送,接收方对其进行验证,判断其真伪。

数字签名的作用是:防止对电文的否认与抵赖,发现攻击者对电文的非法篡改;保护数据完整性。

一个数字签名方案由两部分组成:签名算法和验证算法,签名者对消息使用签名算法,验证算法的结果表示了签名是否真实可靠。在一个签名体制中,签名算法或签名密钥是秘密的,只有签名人掌握;验证算法是公开的,以便于他人进行验证。 过程:见书上图

试题十:分组密码中的代换与置换的区别是什么?其中非线性函数与二者有何关系?

答:分组密码算法的安全策略中,用得最多的就是采用代换—置换网络,简称S—P网络,它是由S变换(代换)和P变换(置换或换位)交替进行多次迭代而形成的变换网络,这两个变换是分组密码中的基本构件,S变换(代换)又称为S盒变换,P变换(置换或换位)又称为P盒变换。S盒变换的作用是起到