第五章 密钥分配与密钥管理 —— 现代密码学(杨波)复习题
第五章
一、填空:
1. 消息认证中认证符的产生有哪两大类________________和_________________
2. 消息认证码和杂凑函数的算法都是公开的,其根本区别是_________________
3. MAC与加密算法的区别在于_____________________
4. 某MAC算法输出长度为64bit,认证密钥为160bit,则对MAC的穷搜索攻击至少需要____轮
5. 采用先hash再对称加密的方法对消息进行认证,设密钥为k,hash函数为H,加密算法为E,认证的消息为M,则在考虑和不考虑消息保密性的条件下,认证消息分别可表示为__________
6. 杂凑函数的单向性是指_____________ 强单向散列函数是指__________________________
7. 已知杂凑函数的数出值为m比特,则第I类生日攻击的复杂度为_____,第II类生日攻击的复杂度为____
8. MD5算法的分组长度为______输出长度为________,轮数为_______所以用穷搜索攻击寻找具有给定消息摘要的消息的复杂度为_______以大于0.5的概率用穷搜索攻击找出具有相同消息摘要的两个不同消息的复杂度为_____________
9. SHA算法的分组长度为______输出长度为________,轮数为_______所以用穷搜索攻击寻找具有给定消息摘要的消息的复杂度为_______以大于0.5的概率用穷搜索攻击找出具有相同消息摘要的两个不同消息的复杂度为_____________
10. 假设消息的长度为x,则MD5、SHA-1、SHA-3对消息的填充算法分别是__________________
11. MD5以little-endian方式存储数据,那么十六进制数20347AB1的实际存储是_____________
12. HMAC需要调用_______次hash运算,其输出长度由____________决定。
13. 对于一个长度为n的MAC码算法CK(M),随机选取两个消息M、M¢,当Pr[CK(M)=CK(M¢)]=____时,CK(M)是均匀分布的。
二、选择
1. 以下哪些属性是消息认证能够完成的( )。
A.真实性;B.完整性;C.时间性和顺序性;D不可否认性;E保密性
2. 设杂凑函数H( )的输出长度为m比特,已知H(x),找到y¹x满足H(y)=H(x)的复杂度( ),若找到y¹x满足H(y)=H(x)的概率大于0.5则复杂度为( )。
A. O(2m) B. O(2m-1) C. O(2m/2) D. O(2m-1)
3. EK[M||H(M)]提供了哪些安全服务( )。
A. 保密性 B. 完整性 C. 认证性 D. 不可否认性
4. M||SK(H(M))提供了哪些安全服务( ),其中SK是签名私钥
A. 保密性 B. 完整性 C. 认证性 D. 不可否认性
5. EK(M||(H(M||S)))的安全性和下列哪个相当( )。
A. HMAC B. EK[M||H(M)] C. EK1[M||CK2(M)] D. M||SK(H(M))
6. SHA-3标准算法是( )。
A. MD5 B. Keccak C. HMAC D. Sponge
7. 杂凑函数的单向性是指( )。
A. 已知h,求使得H(x)=h的x在计算上是不可行的
B. 已知x,找出y(y≠x)使得H(y)=H(x)在计算上是不可行的
C. 找出任意两个不同的输入x、y,使得H(y)=H(x)在计算上是不可行的
8. 下面哪种对消息的认证方式所能提供的安全服务最多( )。
A. HMAC(M) B. EK[M||H(M)] C. EK1[M||CK2(M)] D. EK[M||SK(H(M))]
三、判断
1. 采用消息认证码MAC认证消息可以实现消息完整性认证和消息源认证 ( )
2. 杂凑码是消息中所有比特的函数,因此提供了一定的错误检测能力 ( )
3. 带密钥的杂凑函数可以作为一种消息认证码 ( )
4. 数据认证算法采用DES-CBC模式,所以算法是可逆的 ( )
5. MD5算法已经被破译,因此用于构造HMAC时也是不安全的 ( )
四、简答与计算
1. 什么是第I类生日攻击和第II类攻击
2. 采用数据认证算法对消息进行认证,如果消息为100bit,则应该怎样对消息填充?
3. 数据认证算法和DES的CBC模式的区别是什么?
4. 对消息认证码的攻击和对对称密钥算法的攻击在难度上有什么区别?
5. 试分析先加密再认证的MAC认证方式是否有被替换的可能,为什么,对安全有危害吗?
(一般没有危害,因为消息源认证是在双方共享密钥的条件下进行的,如果替换为别的密钥,收方可以检测出来,这和先加密再签名的问题不同)
6. 简述用杂凑函数来实现消息认证的三大类基本方式
7. Alice要给Bob发送消息M,为同时提供对M的保密性和认证性保护,试分别给出用消息认证码的实现方法和使用先hash再对称加密的实现方法表达式,并比较这两种方法的优劣。
8. 试分析加密密钥和认证密钥分开在安全性上的不同
9. HMAC算法如何进行预计算?
10. 试描述迭代型杂凑函数的一般结构以及SHA-3算法的sponge结构
五、证明题
1. 试证:对于基于DES-CBC的数据认证算法,如果仅将第一个分组D1取反,密钥k取反,则最后输出的MAC也取反。
六、综合题
1. A要向B发送消息M, 设共享密钥为k,消息认证码算法记为Ck( ),试回答下列问题:
(1) 若仅关心M的认证性,则A发送的消息可表示为?
(2) 若同时关心保密性和认证性,该怎么办?
(3) 如果采用的消息认证算法为数据认证算法标准,试述该算法的过程
2. 某用户A想要给用户B发送一个消息m,如果要对消息m的保密性与认证性进行保护,有四种方法,采用数据认证算法、先hash再加密、先签名再加密、HMAC
请分别给出这几种方法下认证消息m的表达式。所需符号和算法自行定义和选取。
其中安全性最强的和最弱的分别是哪一种方法,为什么
答案
四、简答与计算
4.6. 简述用杂凑函数来实现消息认证的三大类基本方式
答:
1. 先对消息计算杂凑值,在对杂凑值进行对称加密,提供认证性和完整性服务,还分为带保密性和不带保密性两种方式。
2. 先对消息计算杂凑值,再前面签名再对称加密(也可以用收方公钥加密),提供认证性、完整性和不可否认性,也分为带保密性和不带保密性两种方式
3. 连同秘密值一起对消息计算杂凑值,提供认证性和完整性,,也分为带保密性和不带保密性两种方式
六、综合题
6.2. 某用户A想要给用户B发送一个消息m,如果要对消息m的保密性与认证性进行保护,有四种方法,采用数据认证算法、先hash再加密、先签名再加密、HMAC
请分别给出这几种方法下认证消息m的表达式。所需符号和算法自行定义和选取。
其中安全性最强的和最弱的分别是哪一种方法,为什么
解:
(1)采用数据认证算法 m||CK(m),C是初始向量为0的DES-CBC算法;先hash再加密 EK{m||H(m)};先签名再加密:EK{m||Sigsk(H(m)};HMAC:m||H(k||m)
(2)安全性最强的是先签名再加密方法,它同时能提供保密性、完整性、认证性和不可否认性;最弱的是数据认证算法和HMAC,它们只提供认证性和完整性。