现代密码学-第5章Hash函数与消息认证习题与解答-20091202
- 格式:doc
- 大小:137.00 KB
- 文档页数:4
《现代密码学习题》答案第一章判断题×√√√√×√√选择题1、1949年,(A )发表题为《保密系统的通信理论》的文章,为密码系统建立了理论基础,从此密码学成了一门科学。
A、ShannonB、DiffieC、HellmanD、Shamir2、一个密码系统至少由明文、密文、加密算法、解密算法和密钥5部分组成,而其安全性是由(D)决定的。
A、加密算法B、解密算法C、加解密算法D、密钥3、计算和估计出破译密码系统的计算量下限,利用已有的最好方法破译它的所需要的代价超出了破译者的破译能力(如时间、空间、资金等资源),那么该密码系统的安全性是(B )。
A无条件安全B计算安全C可证明安全D实际安全4、根据密码分析者所掌握的分析资料的不通,密码分析一般可分为4类:唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击,其中破译难度最大的是(D )。
A、唯密文攻击B、已知明文攻击C、选择明文攻击D、选择密文攻击填空题:5、1976年,W.Diffie和M.Hellman在密码学的新方向一文中提出了公开密钥密码的思想,从而开创了现代密码学的新领域。
6、密码学的发展过程中,两个质的飞跃分别指1949年香农发表的保密系统的通信理论和公钥密码思想。
7、密码学是研究信息寄信息系统安全的科学,密码学又分为密码编码学和密码分析学。
8、一个保密系统一般是明文、密文、密钥、加密算法、解密算法5部分组成的。
9、密码体制是指实现加密和解密功能的密码方案,从使用密钥策略上,可分为对称和非对称。
10、对称密码体制又称为秘密密钥密码体制,它包括分组密码和序列密码。
第二章判断题:×√√√选择题:1、字母频率分析法对(B )算法最有效。
A、置换密码B、单表代换密码C、多表代换密码D、序列密码2、(D)算法抵抗频率分析攻击能力最强,而对已知明文攻击最弱。
A仿射密码B维吉利亚密码C轮转密码D希尔密码3、重合指数法对(C)算法的破解最有效。
一、古典密码(1,2,4)解:设解密变换为m=D(c)≡a*c+b (mod 26)由题目可知密文ed 解密后为if,即有:D(e)=i :8≡4a+b (mod 26) D(d)=f :5≡3a+b (mod 26) 由上述两式,可求得a=3,b=22。
因此,解密变换为m=D(c)≡3c+22 (mod 26)密文用数字表示为:c=[4 3 18 6 8 2 10 23 7 20 10 11 25 21 4 16 25 21 10 23 22 10 25 20 10 21 2 20 7] 则明文为m=3*c+22 (mod 26)=[8 5 24 14 20 2 0 13 17 4 0 3 19 7 8 18 19 7 0 13 10 0 19 4 0 7 2 4 17]= ifyoucanreadthisthankateahcer4. 设多表代换密码C i≡ AM i + B (mod 26) 中,A是2×2 矩阵,B是0 矩阵,又知明文“dont”被加密为“elni”,求矩阵A。
解:dont = (3,14,13,19) => elni = (4,11,13,8)二、流密码 (1,3,4)1. 3 级 线 性 反 馈 移 位 寄 存 器 在 c 3=1 时 可 有 4 种 线 性 反 馈 函 数 , 设 其 初 始 状 态 为 (a 1,a 2,a 3)=(1,0,1),求各线性反馈函数的输出序列及周期。
解:设反馈函数为 f(a 1,a 2,a 3) = a 1⊕c 2a 2⊕c 1a 3当 c1=0,c2=0 时,f(a 1,a 2,a 3) = a 1,输出序列为 101101…,周期为 3。
当 c1=0,c2=1 时,f(a 1,a 2,a 3) = a 1⊕a 2,输出序列如下 10111001011100…,周期为 7。
当 c1=1,c2=0 时,f(a 1,a 2,a 3) = a 1⊕a 3,输出序列为 10100111010011…,周期为 7。
分组密码体制1.设算法中盒的输入为,求其输出。
2.(1)设是的逐比特取补,证明在中,如果对明文分组和加密密钥都逐比特取补,那么得到的密文也是原密文的逐比特取补,即如果那么提示:对任意两个长度相等的比特串和,证明。
(2)对进行穷搜索时,需要在由个密钥构成的密钥空间进行。
能否根据(1)的结论减小穷搜索攻击时所用的密钥空间。
3.证明的解密变换是加密变换的逆。
4.计算上的多项式乘法(1)(2)(3)(4)5.设算法分组长度为,输入的明文和密钥分别为求的第轮输出。
6.在的模式中,如果在密文分组中有一个错误,解密后仅相应的明文分组受到影响。
然而在模式中,将有错误传播。
例如在图3-11中中的一个错误明显影响到和的结果。
(1) 后的分组是否受到影响?(2) 设加密前的明文分组中有一个比特的错误,问这一错误将在多少个密文分组中传播?对接收者产生什么影响?7.在比特模式中,如果在密文字符中出现比特的错误,问该错误能传播多远?Hash 函数1.指出强抗碰撞函数与弱抗碰撞函数之间的区别。
2.考虑函数。
设、是两个素数,,是的生成元。
作为公钥,与作为签名者的私钥。
对任意消息,其摘要定义为(1) 令,。
分别计算消息,的摘要。
(2) 证明:如果得到了两个碰撞的消息,那么就可以求出的分解。
(3) 证明:如果得到了的分解,那么就可以找到碰撞的消息。
3.设是一个素数,、是的两个生成元,使得离散对数的计算是困难的。
对任意消息,定义函数的摘要为(1) 设,,。
分别计算消息,的摘要。
(2) 证明:求解函数的碰撞等价于计算离散对数。
4.设是一个从到的函数,这里,。
对任意整数,按下述方法定义一个从到的函数:对任意,设其中,定义假设是抗碰撞的,试证也是强抗碰撞的。
5.考虑用公钥加密算法构造函数。
假设使用公钥加密算法,首先将消息进行分组;用加密第个分组;将加密结果与第个分组作异或,再对其进行加密;一直进行下去。
例如,如果消息被分成两个分组和,则其值为。
1、是非判断题(10分)1.差分分析是一种攻击迭代密码体制的选择明文攻击方法,所以,对于DES和AES都有一定的攻击效果。
(对)2.反馈移位寄存器输出序列生成过程中,抽头位对输出周期长度的影响起着决定性的作用,而初态对输出周期长度没影响。
(对)3.被撤销的公钥证书都需放入到证书撤销列表中,但证书撤销列表长度不一定会增加。
(对)4..非保护代理者的代理签名和保护代理者的代理签名之间的差别在于是否具有不可伪造性。
(错:可识别性)(非保护代理者的代理签名:验证者不能识别出代理者的身份)5.SSL协议是指在网络层之上提供的一种用于客户端浏览器和Web服务器之间的安全连接技术。
(错)(工作在传输层和应用层之间,与应用层协议无关)6.零知识证明是指证明者能够在不向验证者提供任何有用的信息的情况下,使验证者能相信某个论断是正确的。
(对)7.SET协议是一个应用层协议,在相关应用中比SSL协议具有更多优点,也是更复杂的密码应用协议。
(对)8.公钥证书应用于用户身份的鉴别,而属性证书应用于用户权限的管理。
(对)2、选择题(15分)1.公钥密码体制至少能抵御的攻击是(C.选择明文攻击)2.适合文件加密,而且有少量错误时不会造成同步失败,是软件加密的最好选择,这种分组密码的操作模式是指(D.输出反馈模式)3.按目前的计算能力,RC4算法的密钥长度至少应为(C.128)位才能保证安全强度。
4.密钥在其生命生命周期中处于不同的状态,每种状态包含若干时期,那么密钥备份时期是密钥处于(B.使用状态)5.SSL协议中,(A)具体实施客户端和服务器之间通信信息的保密。
A.记录协议(为高层协议提供基本的安全服务,记录层封装各种高层协议,具体实施加解密、计算和校验MAC等与安全有关的操作)B.修改密码规程协议(切换状态,把密码参数设置为当前状态。
在握手协议中,当安全参数协商一致后,发送此消息)C.告警协议(显示信息交换过程中所发生的错误)D.握手协议(会话密钥的协商)6.量子密码更适合实现下面哪项密码技术。
《现代密码学》练习题(含答案)一、填空题(每空1分,共7分)1. 加密算法的功能是实现信息的保密性。
2. 数据认证算法的功能是实现数据的完整性即消息的真实性。
3. 密码编码学或代数中的有限域又称为伽罗华(Galois)域。
记为GF(pn)4. 数字签名算法可实现不可否认性即抗依赖性。
信息安全基本要求:可用性、保密性、完整性、不可否认性、可控性、真实性。
5. Two-Track-MAC算法基于带密钥的RIPEMD-160。
密钥和输出MAC值都是20B6. AES和Whirlpool算法是根据宽轨迹策略设计的。
7. 序列密码的加密的基本原理是:用一个密钥序列与明文序列进行叠加来产生密文。
8. Rabin密码体制是利用合数模下求解平方根的困难性构造了一种非对称/公钥/双钥密码体制。
1. 现代对称密码的设计基础是:扩散和混淆。
2. 加密和解密都是在密钥控制下进行的。
3. 在一个密码系统模型中,只截取信道上传送信息的攻击方式被称为被动攻击。
4. Caesar密码体制属于单表代换密码体制。
(字母平移)5. 尽管双重DES不等价于使用一个56位密钥的单重DES,但有一种被称为中途相遇攻击的破译方法会对它构成威胁。
(成倍减少要解密的加密文本)6. 设计序列密码体制的关键就是要设计一种产生密钥流的方法。
2. 椭圆曲线密码是利用有限域GF(2n)上的椭圆曲线上点集所构成的群上定义的离散对数系统,构造出的公钥/非对称密码体制。
3. 在公钥密码体制中,加密密钥和解密密钥是不一样的,加密密钥可以公开传播而不会危及密码体制的安全性。
2. 密码学上的Hash函数是一种将任意长度的消息压缩为某一固定长度的消息摘要的函数。
3. 数字签名主要是用于对数字消息进行签名,以防止消息的伪造或篡改,也可以用于通信双方的身份认证。
2. CTR/计数器加密模式与CBC认证模式组合构成CCM模式;GMAX算法与CTR加密模式组合构成GCM模式。
第5章 Hash 函数与消息认证习题及参考答案1. 指出强抗碰撞Hash 函数与弱抗碰撞Hash 函数之间的区别。
答:弱抗碰撞Hash 函数是任给一个消息x,寻找另一个不同的消息x ,使得他们的Hash 函数值相等是不可行;强抗碰撞Hash 函数是同时寻找两个不同的消息使得他们的Hash 函数值相等是计算上不看行的,可以看出强抗碰撞Hash 函数一定是弱抗碰撞的。
2. 考虑Gibson Hash 函数h 。
设p 、q 是两个素数,N =p ⨯q ,g 是(Z N )*的生成元。
N 作为公钥,p 与q 作为签名者的私钥。
对任意消息m ,其摘要定义为:h (m )= g m mod N 。
(1) 令N =4897,g =2231。
分别计算消息m =132748,m '=75676的摘要。
(2) 证明:如果得到了两个碰撞的消息,那么就可以求出N 的分解。
(3) 证明:如果得到了N 的分解,那么就可以找到碰撞的消息。
解:(1)由h (m )= g m mod N 。
所以h (132748)=2231132748mod4897=2611 h(75676)=2611(2)证明:若h (m)= h (m ')则有g m mod N= g m ' mod N假设 N 的分解为 N=p*q 所以代入 然后根据中国剩余定理可以解得 p ,q 。
3. 设p 是一个素数,g 1、g 2是(Z p )*的两个生成元,使得离散对数 p g g mod log 21的计算是困难的。
对任意消息m =(m 1, m 2),定义Hash 函数h 的摘要为:p g g m m h m m mod ),(212121⨯=。
(1) 设p =65867,g 1=11638,g 2=22770。
分别计算消息m =(33123, 11789),m '=(55781, 9871)的摘要。
(2) 证明:求解Hash 函数h 的碰撞等价于计算离散对数p g g mod log 21。
现代密码学课后题整理目录chap 1 (3)信息安全中常用的攻击分别指什么?分别使用什么密码技术能抵御这些攻击? (3)简述密码学和信息安全的关系。
(3)简述密码发展史。
(3)公钥密码体制与对称密码体制相比有哪些优点和不足? (3)简述密码体制的原则。
(4)简述保密系统的攻击方法。
(4)chap 2 (4)多表代换密码体制的分析方法 (4)Kasiski测试法 (4)重合指数法 (5)chap 3 (5)欧拉定理 (5)费马定理 (5)Blum整数 (5)chap 4 (5)分组密码的设计应满足的要求是什么? (5)简述分组密码设计的准则。
(6)简述DES算法中S盒的特点。
(6)DES算法具有互补性,而这个特性会使DES在选择明文攻击下所需的工作量减半。
简要说明原因。
(6)为什么二重DES并不像人们想象的那样可提高密钥长度到112bit,而相当57bit?请简要说明原因。
(6)简述利用差分分析攻击DES算法的基本过程。
(7)简述线性攻击的基本原理。
(7)简述AES算法的正变换矩阵比逆变换矩阵简单的原因。
(7)简述AES的子密钥生成过程。
(7)简述DES与AES的相同之处和不同之处。
(7)简述设计分组密码的工作模式应遵循的基本原则。
(8)chap 5 (8)简述序列密码算法和分组密码算法的不同 (8)密钥序列生成器是序列密码算法的核心,请说出至少5点关于密钥序列生成器的基本要求 (8)chap 6 (9)MD5在MD4基础上做了哪些改进,其改进目的是什么? (9)简述利用生日攻击方法攻击Hash函数的过程 (9)chap 7 (9)与RSA密码体制和ElGamal体制相比,简述ECC密码体制的特点。
(9)Chapter 8 (9)1简述数字签名的特点。
(9)2为什么对称密码体制不能实现消息的不可否认性? (10)4 计算不考 (10)5 ElGamal、Schnorr、DSA这3种签名方案的联系与区别。
现代密码学-第6章数字签名习题与解答-20091202第6章数字签名习题及参考答案(注意:由于本章习题数字较大,所以需要调用大数库进行计算。
但由于期末考试题中的数字都是较小的数,且要求手算,所以希望大家参考书中例题和习题的题型代入一些2、3位的数进行手算练习)1. 对于RSA数字签名体制,假设p=839,q=983,N=p×q=824737。
已知私钥d=132111,计算公钥e和对消息m=23547的签名。
解:由RSA签名体制可以得e=d-1modφ(N)=132111-1mod882916=26959,对消息m的签名为s= m d mod N=23547132111mod824737=266749。
2. 对于RSA数字签名体制,假设模N=824737,公钥e=26959。
(1) 已知消息m的签名是s=8798,求消息m。
(2) 数据对(m, s)=(167058, 366314 )是有效的消息?签名对吗?(3) 已知两个有效的消息?签名对(m, s) = (629489, 445587)与(m′, s′) = (203821, 229149),求m×m′的签名。
解:(1) 由公式可得:m = s e mod N = 879826959mod824737 = 123456(2) 因为m’= s e mod N = 36631426959mod824737 = 167058 = m,所以是有效的消息?签名对。
(3) m×m’的签名为:y = (m×m’)d mod N = s×s’mod N = 4455587×229149mod824737 = 75915。
3. 在ElGamal数字签名体制中,假设p=19,g=13。
如果签名者A选取的私钥为x=10,试计算公钥。
设签名者A要对消息M=15进行签名,且选取随机数k=11,求签名者A 对M=15的签名。
第5章 Hash 函数与消息认证
习题及参考答案
1. 指出强抗碰撞H ash 函数与弱抗碰撞H ash 函数之间的区别。
答:弱抗碰撞H ash 函数是任给一个消息x,寻找另一个不同的消息x ,
使得他们的H ash 函数值相等是不可行;强抗碰撞Hash 函数是同时寻找两个不同的消息使得他们的Hash 函数值相等是计算上不看行的,可以看出强抗碰撞Hash 函数一定是弱抗碰撞的。
2. 考虑Gibson Hash 函数h 。
设p 、q 是两个素数,N =p ⨯q ,g 是(Z N )*的生成元。
N 作为公钥,p 与q 作为签名者的私钥。
对任意消息m ,其摘要定义为:
h (m )= g m mod N 。
(1) 令N =4897,g =2231。
分别计算消息m =132748,m '=75676的摘要。
(2) 证明:如果得到了两个碰撞的消息,那么就可以求出N 的分解。
(3) 证明:如果得到了N 的分解,那么就可以找到碰撞的消息。
解:(1)由h (m )= g m mod N 。
所以h (132748)=2231
132748
mod4897=2611 h(75676)=2611
(2)证明:若h (m)= h (m ')则有g m mod N= g m ' mod N
假设 N 的分解为 N=p*q 所以代入 然后根据中国剩余定理可以解得 p ,q 。
3. 设p 是一个素数,g 1、g 2是(Z p )*
的两个生成元,使得离散对数
p g g mod log
21
的计算是困难的。
对任意消息m =(m 1, m 2),定义H ash 函数h 的摘要为:
p g g m m h m m mod ),(2
1
2
1
21⨯=。
(1) 设p =65867,g 1=11638,g 2=22770。
分别计算消息m =(33123, 11789),m '=(55781, 9871)的摘要。
(2) 证明:求解H ash 函数h 的碰撞等价于计算离散对数p g g mod log
21。
解:(1)由p g g m m h m m mod ),(2
1
2121⨯=并把题中数据代入公式中 得 h(33123,11789)=56381 h (55781,9871)=15899
(2)证明:求解Hash 函数h 的碰撞,即寻找m 和m ',使得)'()(m H m H =,也即
使得:p g g p g g m
m
m m mod mod '
2
'
12
1212
1⨯=⨯
两边同时在关于模p 求以1g 为底的对数,整理后得到:
p g m m m m g mod log
)'()'(2
22111
-=-,
这里就涉及到计算离散对数p g g mod log 21。
因此,求解H ash 函数h 的碰撞等价于
计算离散对数p g g mod log
21。
4. 设H 1是一个从(Z 2)2n 到(Z 2)n 的Hash 函数,这里n ≥1,Z 2={0, 1}。
对任意整数i ≥2,按下述方式定义一个从n
i
22)
(Z 到(Z 2)n 的H ash 函数H i :
对任意n i
x 22)(Z ∈,设
x = x 1||x 2,
其中n
-i x x 1
2
221)
(Z ,∈,定义
H i (x )= H 1(H i -1(x 1) || H i -1(x 2) )。
假设H 1是强抗碰撞的。
试证H i 也是强抗碰撞的。
证明:根据定义))(||)(()(21111x H x H H x H i i i --=, 以此类推:))(||)(()(122112111x H x H H x H i i i ---=, ……
))(||)(()(121111111112 x H x H H x H =。
我们不妨假设i H 不是强抗碰撞的,则找得到'x 和已知的)(x H i 碰撞,即有
)'()(x H x H i i =,根据以上推导,可以找到1H 的一对碰撞111' x 和111 x ,这与1H 是
强抗碰撞是矛盾的。
因此,如果H 1是强抗碰撞的那么H i 也是强抗碰撞的。
5. 考虑用公钥加密算法构造Hash 函数。
假设使用公钥加密算法RSA ,首先将消息进行分组;用RSA 加密第一个分组;将加密结果与第二个分组作异或,再对其进行加密;一直进行下去。
例如,如果消息M 被分成二个分组B 1和B 2,则其H ash 值为H (B 1,
B 2)=RSA (RSA(B 1)⊕ B 2)。
证明对任一分组
C 1,可找到分组C 2,使得H (C 1, C 2)=H (B 1, B 2)。
进一步证明用这种攻击方法,可攻击该Hash 函数。
证明:
我们先来证明可以找到2C ,使得在已知1C 的情况下使得),(),(2121B B H C C H =。
在RSA 密码体制下,设加密密钥是e 。
则),(),(2121B B H C C H =即为
e
e
e e
B B
C C )()(2121⊕=⊕,我们这里不妨令2121B B C C e
e ⊕=⊕, 则e
e C B B C 1122⊕⊕=,这里的2C 总是能找到的,并且它就满足题目要求,使得H (C 1, C 2)=H (B 1, B 2)。
在多个分组的情况下,利用证明的方法,总是能找到满足要求的分组消息,即实现对该H ash 函数的攻击。
6. 参考利用分组密码构造H ash 函数的方法,试利用公钥加密算法RSA 构造一个Hash 函数,并分析其安全性能。
解:上题即是一个基于RSA 算法构造的H ash 函数,其安全性不能好,在实际应用中必须加以改进。
7. 设E k 是一个分组长度为n 的分组密码的加密算法,密钥为k 。
假设密钥长度也为n 。
对于任意消息x ,首先对x 进行分组,每组长度为n 。
如果x 的长度不是n 的倍数,则在x 的最后适当添加一些数据使得x 的长度恰好是n 的倍数。
设
x = x 1 x 2…x l ,
其中x i ∈GF(2)n (1≤i ≤ l )。
任选IV ∈GF(2)n 作为初始向量,令y 0=IV ,按下面四个不同的公式分别计算y i (1≤i ≤ l ),最后定义H (x )= y l 。
试分析四个H ash 函数H 的安全性。
,)(,)(1-⊕⊕=⊕=i i i k i i i k i y x x E y x x E y
.
)(,)(111---⊕⊕⊕=⊕⊕=i i i i k i i i i k i y x y x E y x y x E y
解:H ash 函数一的安全性依赖于分组密码加密的安全性。
Hash 函数二的安全性依赖反馈序列的安全性和分组加密的安全性。
Hash 函数三的安全性依赖于加密密钥的复杂度。
Hash 函数四的安全性依赖于序列的安全性以及加密密钥的安全性。
8. 为什么在密钥公开的条件下,基于分组密码的CBC 工作模式和CFB 工作模式的Hash 函数H 是不安全的?对于任意给定的消息x ,试寻找一个与x 不同的消息x ',使得H (x ')=H (x )。
答案参见第5题。
9.实现MD5-MAC,设密钥K=“001122…99aabb…ff”。
分别对消息x=“”,“abc”,“abc…xyz”,求出MD5-MAC(x)。
答略
10.对于SHA,计算W16,W17,W18和W19。
答略
11.用高级语言编写实现SHA-1算法的程序。
略。