试题一:密码分析可分为哪几类,它们的含义是什么?
答:根据密码分析者可能取得的分析资料的不同,密码分析(或称攻击)可分为下列四类:
1)唯密文分析(攻击),密码分析者取得一个或多个用同一密钥加密的密文;
2)已知明文分析(攻击),除要破译的密文外,密码分析者还取得一些用同
一密钥加密的明密文对;
3)选择明文分析(攻击),密码分析者可取得他所选择的任何明文所对应的
密文(当然不包括他要恢复的明文),这些明密文对和要破译的密文是用
同一密钥加密的;
4)选择密文分析(攻击),密码分析者可取得他所选择的任何密文所对应的
明文(要破译的密文除外),这些密文和明文和要破译的密文是用同一解
密密钥解密的,它主要应用于公钥密码体制。
试题二:假设Hill 密码加密使用密钥⎪⎪⎭
⎫ ⎝⎛=73811K ,试对密文DHFL 解密。
答:密钥矩阵K 的逆矩阵是⎪⎪⎭
⎫ ⎝⎛1123187,所以,(d,h )=(3,7)解密后变为(3,7)⨯⎪⎪⎭⎫ ⎝⎛1123187=(0,1)=(a,b); 同理(F,L )=(5,11) 解密后变为(5,11)⨯⎪⎪⎭
⎫ ⎝⎛1123187=(2,3)= (c,d)。
所以,密文(DHFL)经过Hill 密码解密后,恢复的明文是(abcd )。
试题三:考虑Z 23上的一个椭圆曲线y 2=x 3+11x+18。
请你(1)验证P=(6,1)和Q=(9,15)确实是该椭圆曲线上的两个点;(2)请计算出P+Q=?和2P=? 答:(1)直接验证P=(6,1)和Q=(9,15)确实满足方程式y 2=x 3+11x+18,因此,P 和Q 都是该椭圆曲线上的点。
(2)直接计算后得到P+Q=(17,9)和2P=(15,4)。
对Z p 上的椭圆曲线E
上的两个点P=(x 1,y 1)∈E 和Q=(x 2,y 2)∈E 。
若 x 1=x 2且y 1=-y 2,那么 P+Q=O ;否则P+Q=(x 3,y 3) ,这里的x 3=λ2-x 1-x 2,y 3=λ(x 1-x 3)-y 1。
λ=⎪⎪⎩
⎪⎪⎨⎧=+≠--Q P y a x Q x x y y 如果如果1211
21223P 对于所有的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=Z n ,定义К={(n,d,p,q,e )}这里e 和d 满足ed ≡1(mod Φ(n))( Φ()是欧拉函数)。
公开密钥 n,d ;私有密钥 p,q,e ; 签名算法为Sig 2K (x)=x e mod n ;签名验
证算法为 Ver(x,y)=TRUE ⇔x ≡y d (modn). (x,y)∈Z n ⨯Z n 。
更直观地说,用RSA 解密算法作为签名,用RSA 的加密作为验证,于是,只有合法用户自己才能签名,而任何人都可以验证签名的真实性。
其实,基于任何一个加、解密算法顺序可交换的密码算法都可用于设计一个数字签名算法,只需要以解密做签名,以加密做验证就行了。
(2)切割和拼接处理方法所获得的签名算法不安全。
因为,假如m 和n 是两个N 比特的消息,那么,黑客可以通过已知的m 和n 的签名S(m)S(n),至少获得另一个消息nm 的合法签名S(n)S(m)。
试题七:简述密码体制的组成及其密码体制的分类。
:密码体制就是完成加密和解密功能的密码方案或密码算法。
一个密码体制(Cryptosystem )或密码算法通常由以下5个部分构成:
① 明文空间M (全体明文的集合);② 密文空间C (全体密文的集合);③ 密钥空间K (全体密钥的集合);④ 加密器或加密变换(算法)E ,由加密密钥控制的加密变换的集合,即K k C c M m c m E K ∈∈∈=,,,)(;⑤ 解密器或解密变换(算法)D ,由解密密钥控制的解密变换的集合,即K k C c M m m c D K ∈∈∈=,,,)(。
密码体制的分类:
(1)根据密文数据段是否与明文数据段在整个明文中的位置有关否,可以将密码体制分为分组密码体制和序列密码体制。
(2)根据加密变换是否可逆,可以将密码体制分为单向变换密码体制和双向变换密码体制。
(3)根据在加密过程中是否引入客观随机因素,可以将密码体制分为确定型密码体制和概率密码体制。
试题八:什么是主动攻击和被动攻击,各有何特点?
答题要点:
主动攻击是指攻击者对连接中通过的PDU 进行各种处理,这些攻击涉及某些数据流的篡改或一个虚假流的产生。
主动攻击包括四类:中断、篡改、伪造和重放。
主动攻击表现出与被动攻击相反的特点。
完全防止主动攻击是相当困难的,可采取适当措施(如加密技术和鉴别技术相结合)加以检测。
被动攻击的攻击者只是观察通过一个连接的协议数据单元PDU ,以便了解所交换的数据,并不干扰信息流。
如搭线窃听、对文件或程序的非法复制等,以获取他人的信息。
被动攻击本质上是在传输中的偷听或监视,其目的是从传输中获得信息。
典型的被动攻击形式就是截获,包括析出消息内容和通信量分析。
对于被动攻击,通常是难以检测的,因为它们并不会导致数据有任何变化,对付被动攻击的重点是防止而不是检测,可以采用各种数据加密技术进行数据保护。
试题九:简要描述数字签名的基本原理及过程。
数字签名的原理是:利用Hash 函数计算数据消息摘要;利用发送方的私钥加密该摘要;
将该加密的摘要与原文一起发送,接收方对其进行验证,判断其真伪。
数字签名的作用是:防止对电文的否认与抵赖,发现攻击者对电文的非法篡改;保护数据完整性。
一个数字签名方案由两部分组成:签名算法和验证算法,签名者对消息使用签名算法,验证算法的结果表示了签名是否真实可靠。
在一个签名体制中,签名算法或签名密钥是秘密的,只有签名人掌握;验证算法是公开的,以便于他人进行验证。
过程:见书上图
试题十:分组密码中的代换与置换的区别是什么?其中非线性函数与二者有何关系?
答:分组密码算法的安全策略中,用得最多的就是采用代换—置换网络,简称S —P 网络,它是由S 变换(代换)和P 变换(置换或换位)交替进行多次迭代而形成的变换网络,这两个变换是分组密码中的基本构件,S 变换(代换)又称为S 盒变换,P 变换(置换或换位)又称为P 盒变换。
S 盒变换的作用是起到
混乱的效果,P盒变换的作用是起到扩散的效果。
混乱:是指明文和密钥以及密文之间的统计关系尽可能复杂化,使破译者无法理出相互间的依赖关系,从而加强隐蔽性。
扩散:是指让明文中的每一位(包括密钥的每一位)直接或间接影响输出密文中的许多位,或者让密文中的每一位受制于输入明文以及密钥中的若干位,以便达到隐蔽明文的统计特性。
轮变换的核心是f函数,它是非线性的,是每轮实现混乱和扩散的最关键的模块。
即在这个非线性变换中,包含了混乱和扩散。