3.5 习题
一、单项选择题
1.散列函数具有抗弱碰撞性是指( )。
A.对于任意给定的x,计算H(x)比较容易
B.对任意给定的散列值h,找到满足H(x)=h的x在计算上是不可行的
C.对任意给定的数据块x,找到满足y≠ x且H(x)=H(y)的y在计算上是不可行的
D.找到任意满足H(y)=H(x)的偶对(x,y)在计算上是不可行的
2.散列函数具有抗强碰撞性是指( )。
A.对于任意给定的x,计算H(x)比较容易
B.对任意给定的散列值h,找到满足H(x)=h的x在计算上是不可行的
C.对任意给定的数据块x,找到满足y≠ x且H(x)=H(y)的y在计算上是不可行的
D.找到任意满足H(y)=H(x)的偶对(x,y)在计算上是不可行的
3.散列函数具有单向性是指( )。
A.对于任意给定的x,计算H(x)比较容易
B.对任意给定的散列值h,找到满足H(x)=h的x在计算上是不可行的
C.对任意给定的数据块x,找到满足y≠ x且H(x)=H(y)的y在计算上是不可行的
D.找到任意满足H(y)=H(x)的偶对(x,y)在计算上是不可行的
4.在通信过程中,如果仅采用数字签名,不能解决( )。
A.数据的完整性 B.数据的抗抵赖性
C.数据的防篡改 D.数据的保密性
5.数字签名通常要先使用单向哈希函数进行处理的原因是( )。
A.多一道加密工序使密文更难破译
B.提高密文的计算速度
C.缩小签名消息的长度,加快数字签名和验证签名的运算速度
D.保证密文能正确还原成明文
6.A向B发送消息M,A利用加密技术(E为加密函数,D为解密函数,K为公共密钥,SKA为A的秘密密钥,SKB为B的秘密密钥)、散列函数(H)同时实现报文的认证、数字签名和保密性的方法是( )。
A.E(K,M||H(M||S)) B.M||D(SKA,H(M))
C.E(K,M||D(SKA,H(M))) D.E(K,M||D(SKB,H(M)))
7.采用公开密钥算法实现数字签名时,下面的描述( )是正确的。
A.发送方用其私钥签名,接收方用发送方的公钥核实签名
B.发送方用其公钥签名,接收方用发送方的私钥核实签名
C.发送方用接收方的私钥签名,接收方用其公钥核实签名
D.发送方用接收方的公钥签名,接收方用其私钥核实签名
8.A向B发送消息M,采用对称密钥密码(E为加密算法,D为解密算法,共享密钥为K)进行报文内容认证时,下列说法正确的是( )。
A.只需使用E(K,M)就可实现报文内容的认证
B.在报文M后附加M的CRC检验码后,使用E(K,M||CRC)可实现报文内容的认证
C.在报文M后附加M的CRC检验码后,使用(M||CRC)可实现报文内容的认证
D.使用对称密钥密码无法实现报文内容的认证
9.要抵御重放攻击,可以采用( )。
A.报文源认证 B.报文内容认证
C.报文顺序认证 D.报文宿认证
10.要抵御攻击者的假冒攻击,需要采用( )。
A.报文源认证
B.报文内容认证
C.报文顺序认证
D.必须同时采用报文源认证、报文内容认证和报文顺序认证
11.下列属性中,( )不是Hash函数具有的特性。
A.单向性 B.可逆性
C.抗弱碰撞性 D.抗强碰撞性
12.现代密码学中很多应用包含散列运算,下列应用中不包含散列运算的是( )。
A.消息加密
B.消息完整性保护
C.消息认证码
D.数字签名
13.MD5 算法以( )位分组来处理输入消息。
A.64 B.128 C.256 D.512
14.签名者无法知道所签消息的具体内容,即使后来签名者见到这个签名时,也不能确定当时签名的行为,这种签名称为( )。
A.代理签名 B.群签名
C.多重签名 D.盲签名
15.用户A利用公开密钥密码向用户B发送消息M(假定M是无结构的随机二进制字符串),加密函数为E,解密函数为D,散列函数为H,A的公钥为PUa,私钥为PRa,B的公钥为PUb,私钥为PRb,提供机密性、不可否认性、完整性保护的最佳方案是( )。
A.E(PUb,M||E(PRa,H(M))) B.E(PUa,M||E(PRb,H(M)))
C.E(PUb,M||H(M)) D.E(PUb,E(PRa,M))
16.用户A利用公开密钥密码向用户B发送消息M(假定M是可读的一句中文字符串),加密函数为E,解密函数为D,散列函数为H,A的公钥为PUa,私钥为PRa,B的公钥为PUb,私钥为PRb,提供机密性、不可否认性、完整性保护的最佳方案是( )。
A.E(PUb,M||E(PRa,H(M))) B.E(PUa,M||E(PRb,H(M)))
C.E(PUb,M||H(M)) D.E(PUb,E(PRa,M))
17.用户A利用对称密钥密码向用户B发送消息M(假定M是可读的一句中文字符串),加密函数为E,解密函数为D,散列函数为H,对称密钥为K,提供机密性、完整性保护的最佳方案是( )。
A.E(K,M||H(M)) B.E(K,M)
C.M||E(K,H(M)) D.E(K,M)||H(M)
18.用户A利用对称密钥密码向用户B发送消息M(假定M是无结构的随机二进制字符串),加密函数为E,解密函数为D,散列函数为H,对称密钥为K,提供机密性、完整性保护的最佳方案是( )。
A.E(K,M|| H(M)) B.E(K,M)
C.M||E(K,H(M)) D.E(K,M)||H(M)
19.在Needham-Schroeder双向鉴别协议中,第(5)步A向B发送E(Ks,f(N2))而不是E(Ks,N2)的原因是( )。
A.防重放攻击 B.没什么实际意义
C.提高速度 D.防止攻击者窃听到N2
20.若小张给小李发送一封邮件,并想让小李确信邮件是由小张发出的,则小张应该选用( )对邮件内容加密。
A.小李的公钥 B.小李的私钥
C.小张的公钥 D.小张的私钥
二、多项选择题
1.数字签名可以用于解决通信双方发生( )时引发的争端。
A.发送方不承认自己发送过某一报文
B.接收方自己伪造一份报文,并声称它来自发送方
C.网络上的某个用户冒充另一个用户发送报文
D.接收方对收到的带有签名的信息进行篡改
2.下列散列算法中,被认为不再安全的有( )。
A.MD5 B.SHA-1 C.SHA-2 D.SM3
3.下列机制可做现时(Nonce)的有( )。
A.真随机数 B.时间戳 C.序号 D.伪随机数
4.散列码经常被应用于( )等网络安全应用中。
A.数字证书 B.正版软件检测 C.用户口令保护 D.恶意代码检测
5.用户A利用公开密钥密码向用户B发送消息M(假定M是可读的一句中文字符串),加密函数为E,解密函数为D,散列函数为H,A的公钥为PUa,私钥为PRa,B的公钥为PUb,私钥为PRb,可实现机密性、不可否认性、完整性保护的方案有( )。
A.E(PUb,M||E(PRa,H(M))) B.E(PUa,M||E(PRb,H(M)))
C.E(PUb,M||H(M)) D.E(PUb,E(PRa,M))
三、简答题
1.设H(m)是一个抗碰撞的Hash函数,将任意长消息映射为定长的n位Hash值。对于所有的消息x,x’,x≠ x’,都有H(x)≠ H(x’)。上述结论是否正确?说明原因。
2.完善的数字签名体制需要满足哪些条件?
3.数字签名的工作原理是什么?请简要分析。
4.采用消息认证码技术认证报文内容与采用加密技术认证报文内容两种方法之间存在哪些区别?
5.简要说明在报文中加入序号的作用。
6.解释现时(Nonce)的含义及其作用。
7.编程实现RSA数字签名方案。
8.在基于ElGamal的数字签名方法中,为什么k必须是一次性的?
9.简要分析消息认证码和散列函数的区别。
10.简要分析MD5和SHA-1间的差异(建议从输入、输出、轮数、强度和速度等几个方面比较)。
11.什么是消息重放?有哪些方法可以抵御消息的重放攻击,各有什么优缺点?
12.对于RSA数字签名体制,假设p=839,q=983,n=p× q=824737。已知私钥d=132111,计算公钥e和对消息m=23547的签名。
13.假设在ElGamal数字签名体制中,q=31847,a=5,公钥y=25703。已知(23972,31396)是对消息M=8990的签名,(23972,20481)是对消息M=31415的签名,求随机数k和私钥x。
14.对于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′的签名。
15.在ElGamal数字签名体制中,假设q=19,a=13。
(1)如果签名者A选取的私钥为x=10,试计算公钥y。
(2)设签名者A要对消息m=15进行签名,且选取随机数k=11,计算机签名s,并验证该数字签名的有效性。
16.假定用户A和用户B之间的通信内容为无格式的二进制码消息,A和B为了防止他人监听,拟采用对称加密算法对通信内容M进行加密,接收方解密消息得到的明文记为M'。
(1)接收方能够确信M'=M吗?如果不能,请说明原因。
(2)如果通信内容为可读的中文字符串或带格式化头部的明文,重新回答问题(1),并加以详细阐释。
17.设H是一个安全的哈希函数,Alice将消息和其哈希值M||H(M)一并发送,以检测消息是否在传输过程中被篡改,问:这样做可否达到Alice的安全目标?为什么?
18.从攻击者的角度来详细说明N-S协议中,为什么必须增加第(4)和第(5)步?
19.在Kerberos协议的第(6)步中,为什么服务器(Server)不直接把通过会话进行加密的AC原样发送给客户(Client),而是把Timestamp提取出来递增后加密发送给Client?
20.Kerberos协议是在N-S协议的基础上发展而来的双向认证协议,分析Kerberos协议对N-S协议做了哪些改进?这些改进是如何提高认证协议的安全性的?
21.Kerberos协议报文中为什么要使用Timestamp?
22.Kerberos协议中,KDC为什么不直接将加密的会话密钥分别发送给Client和Server,而是只发送给Client?
23.Kerberos协议中,AS并没有真正去认证这个发送请求的Client是否真的就是他所声称的那个人,就把会话密钥发送给他,这样做会不会有什么问题?请给出理由。
24.在Kerberos协议的第(5)步中,为什么要发送两份(AC和TC,S)关于Client的信息给Server?
25.在Kerberos协议中,Client是如何判断自己在访问真正的Server?
26.Kerveros协议V5对V4的请求生存期做了哪些改进?为什么?
27.有人认为EAP协议主要功能是提供一种具体的认证方法。简要评述这种观点是否正确。
28.分析口令认证、信物认证、地址认证、用户特征认证和密码学认证的优缺点。
29.简述S/KEY协议的小数攻击原理。
30.在集中式对称密钥分配协议Needham—Schroeder中,什么是通信方A、B的主密钥?这些主密钥和会话密钥Ks各有什么用途?主密钥如何进行安全分配?会话密钥如何进行安全分配?
31.散列值和HMAC值从理论上都可以实现数据的完整性保护,HMAC值和散列值在实现上有什么不同?HMAC值除了能够保证数据的完整性,还能实现什么安全需求?在实际应用中,使用上述两种方法的哪一种能更好地实现数据的完整性?
32.S/KEY是一种一次性口令技术,回答以下问题:
(1)它是基于时间同步或事件同步的认证技术吗?那它是哪种认证技术?
(2)它能实现双向鉴别还是单向鉴别?是哪方对哪方的鉴别?