密码学题目-简答题与计算题

admin 2024年1月8日22:43:44评论76 views字数 12390阅读41分18秒阅读模式


密码学题目-简答题与计算题

主要包括解答题、计算题和课后习题。

一、简答题

1. 简要分析威胁网络安全的主要因素。

答:环境和灾害因素;人员的疏忽、黑客的主动攻击;网络中的计算机系统或网络设备因为自身的原因引发的网络安全风险。

2. 假定你是本单位的安全主管,为了提高本单位的网络安全,在制定单位的安全保障方案时,有哪些措施(包括技术和非技术的)?

答:采用IATF类似的思想。从三个方面考虑:

(1)组织管理体系,包括:组织机构,人员编制,职责分工,教育培训;

(2)技术标准体系,包括:技术法规,标准、规范;

(3)技术防护体系,包括:P2DR模型中涉及的各项技术。要列出常见的技术防护手段,边界部署防火墙,内部安全IDS;单机防护(个人防火墙,杀毒软件,口令,关闭不必要的服务);网络隔离等。

3. 简述安全机制与安全服务的区别与联系。

答:安全机制是指用来检测、阻止攻击或者从攻击状态恢复到正常状态的过程(或实现该过程的设备、系统、措施或技术),安全服务则是指加强数据处理系统和信息传输的安全性的处理过程或通信服务。联系:安全服务需要通过一种或多种安全机制对攻击进行反制来实现。

4. 有人说只要我有足够多的钱,就可以采购到自己想要的安全设备来保障本单位的网络安全不受攻击。你是否同意这一说法,为什么?

答:不同意。安全不仅仅是技术(对应到安全设备)上的问题,还涉及人和管理。此外,没有一种技术能完全阻止所有攻击,特别是一些未知攻击。

5. 什么是密码技术,它能够起到什么样的安全目的。

答:密码技术通过对信息进行变换和编码,将机密的敏感信息转换成难以读懂的乱码型信息,通过密码技术可以保护信息的机密性、完整性、真实性等。

6. 对密码分析学这一概念进行简要分析。

答:截收者在不知道解密密钥和通信者所采用的加密算法的细节条件下,对密文进行分析,试图获取机密信息、研究分析解密规律的科学。密码分析除了依靠数学、工程背景、语言学等知识外,还要依靠经验、统计、测试、眼力、直觉判断能力等因素,有时还要靠运气。

7. 对于密码系统,基于算法保密的策略有什么不足之处?

答:首先,算法泄密的代价高。加解密算法的设计非常复杂,一旦算法泄密,重新设计往往需要大量的人力、财力投入,而且时间较长。其次,不便于标准化。每个用户单位使用自己独立的加解密算法,不可能采用统一的软硬件产品进行加解密操作。第三,不便于质量控制。密码算法的开发,要求有优秀的密码专家,否则密码系统的安全性难于保障。

8. 对密码系统的设计要求进行简要阐述。

答:系统即使达不到理论上不可破解,也应当在实际上不可破解的;系统的保密性不依赖于加密体制或算法的保密,而依赖于密钥的保密;加密算法和解密算法适用于密钥空间中的所有元素;密码系统既易于实现也便于使用。

9. 简述分组密码的工作原理。

答:将明文以固定长度划分为多组,加密时每个明文分组在相同密钥的控制下,通过加密运算产生与明文分组等长的密文分组。解密操作也是以分组为单位,每个密文分组在相同密钥的控制下,通过解密运算恢复明文。

10. 请解释什么是密钥管理问题,密钥管理对于对称密钥密码系统有什么意义。

答:密钥管理包括密钥的产生、存储、分发、组织、使用、停用、更换、销毁等一系列问题,涉及每个密钥的从产生到销毁的整个生命周期。现代密码学一般采用基于密钥保护的安全策略来保证密码系统的安全,因此对密钥的保护关乎整个通信的安全保密。如果任何一个环节出现问题,均可能导致密钥的泄露,进而导致泄露。

11. 请简要评述以DES为代表的对称密钥密码系统的优点和缺点。

答:优点:对称密钥密码系统具有很高的安全性,而且,无论密码系统是以硬件实现还是以软件实现,加、解密的速度都很快。缺点:通信双方为了约定密钥往往需要付出高昂代价;在加解密涉及到多人时需要的密钥量大,管理困难。

12. 请简要评述以RSA为代表的公开密钥密码系统的优点和缺点。

答:优点:可以解决对称密钥密码系统密钥分发困难的问题,密钥管理简单。缺点:加密操作和解密操作的速度比对称密钥密码系统慢很多。

13. 简要说明3DES的中间部分为什么采用了解密而不是加密?

答: 采用DES解密算法的主要目的是确保3DES能够支持DES,使用DES加密的信息也可以通过3DES解密。

14. 关于Diffie-Hellman算法,回答以下问题:

1)Diffie和Hellman创造性提出了公开密码体制,主要体现在每个用户的密钥有什么特点?

2)从用户的密钥角度分析,为何Diffie-Hellman算法是公开加密算法?

3)作为公开加密算法,Diffie-Hellman算法安全性的数学基础具体什么?

4)结合Diffie-Hellman算法的计算公式加以分析,什么是离散对数的难解性问题?

答:1)每个用户有一对密钥,一个是公钥,一个是私钥;

2)因为Diffie-Hellman算法中,每个用户也有一对密钥,其中公钥是Y,私钥是X;

3)Diffie-Hellman算法安全性基于有限域上计算离散对数的难解性问题;

4)在两个公式中,由右边计算得到左边的YA和K都是先求指数再取模问题,计算机比较容易求解。但是,当q、a、YA、YB和K都足够大时:

• 黑客由q、a和截获的公钥YA,想得到私钥XA。

• 即使截获大量密文破解了本次K,由K、q和截获的公钥YB,想得到私钥XA。

都是求解离散对数问题,因此具有难解性。

15. 设H(m)是一个抗碰撞的Hash函数,将任意长消息映射为定长的n位Hash值。对于所有的消息x, x’, x≠x’,都有H(x)≠H(x’)。上述结论是否正确?说明原因。

答:抗碰撞性,意味着既是抗强碰撞性,也是抗弱碰撞性。明文任意长,n位只有2n种可能,所以是多对一的映射,存在两个消息映射成相同的结果,所以他们的散列结果可能相同。所谓的抗碰撞性说的只是计算上不可行,而不是说实际上不存在。

16. 完善的数字签名体制需要满足哪些条件?

答:1)签名不能伪造。签名是签名者对文件内容认同的证明,其他人无法对签名进行伪造。

2)签名不可抵赖。这是对签名者的约束,签名者对文件施行签名以后,不能否认自己的签名行为。

3)文件在签名后不可改变。在签名者对文件签名以后其他人不能再修改文件内容。

4)签名不可重复使用。可以采用增加时间标记或者序号标记的方法,防止签名被攻击者重复使用。

5)签名容易验证。对于签名的文件,一旦发生签名真伪性方面的纠纷,任何第三方都可以准确、有效地进行仲裁。

17. 数字签名的工作原理是什么,请简要分析。

答:数字签名包括签名者施加签名和用户验证签名。假设签名者A的私钥为SKA。以SIG表示施加签名的算法,以m表示被签名的数据,以s表示产生的签名信息。A使用自己的私钥SKA对数据签名,签名过程可以描述为SIG(SKA, m) = s。

验证签名的算法以VER表示,用以鉴别特定的签名s是否的确由声称的签名者A产生。验证需要使用A的公钥PKA,验证过程可以描述为VER(PKA, s)。在验证过程中,如果可以通过PKA从签名信息s中恢复被签名的数据m,或者其他能够标识m的信息,则可推断数据m源于用户A。

18. 采用消息认证码技术认证报文内容与采用加密技术认证报文内容两种方法之间存在哪些区别?

答:首先,虽然两者都要求通信双方共享密钥,但是消息认证码使用的密钥与密码系统中使用的密钥不同,其使用并不是为了控制加解密过程,而是利用这个共享密钥使得他人难以有效篡改消息认证码。其次,用于产生消息认证码的函数不需要具有可逆性,即生成消息认证码以后,不要求通过消息认证码恢复原始消息。而加密过程要求具有可逆性,对于加密得到的密文必须可以通过解密恢复成明文。因此,消息认证码的函数在设计上相对简单。

19. 简要说明在报文中加入序号的作用。

答:防重放攻击。

20. 解释现时(Nonce)的含义及其作用。

答:Nonce是一个随时间而改变的参数,在密码学中通常是一个只被使用一次的任意或非重复的随机数值,如真随机数、伪随机数、时间戳、序列号等。Nonce在很多加密方法的初始向量和加密散列函数中发挥着重要作用,在各类认证协议中被用来确保认证信息不被重复使用以对抗重放攻击。

21. 在基于ElGamal的数字签名方法中,为什么k必须是一次性的?

答:防止重放。

22. 简要分析消息认证码和散列函数的区别。

答:消息认证码函数需要通信双方共享的密钥作为输入参数,而散列函数则不需要。

23. 简要分析MD5 和 SHA-1 间的差异(建议从输入、输出、轮数、强度和速度等几个方面比较)。

答:略。

24. 什么是消息重放?有哪些方法可以抵御消息的重放攻击,各有什么优缺点?

答:重放攻击是指攻击者利用通信双方没有有效认证消息的发送顺序,将截获的消息在以后的时间重新发送,扰乱正常通信的一种攻击方式。解决办法:在通信中增加标识报文顺序的信息,如序列号、时间戳、挑战-响应。

采用序列号的方法需要维护具有全局性的序列号,每一方都要记住其它各方与其通信时的最后一个序列号,管理起来比较复杂。采用时间戳的方法要求保证通信主机间的时间同步。挑战及响应的认证方式在每次通信前握手,通过握手使双方确定通信状态,不必自始至终维护序列号、时间之类的状态信息,相对而言灵活性较强。

25. 假定用户A和用户B之间的通信内容为无格式的二进制消息,A和B为了防止他人监听,拟采用对称加密算法对通信内容M进行加密,接收方解密消息得到的明文记为M¢。

(1)接收方能够确信M¢ = M吗?如果不能,请说明原因。

(2)如果通信内容为可读的中文字符串或带格式化头部的明文,重新回答问题(1),并加以详细阐释。

答:(1)不能。因为对称加密算法不能保证消息的完整性。

(2)大概率能。解密后如果内容变成了乱码(不可读),则可判断消息在传输过程中发生了改变。但存在一种可能,尽管可能性很小,密文在传输中发生了变化,但解密出来的消息仍然是可读的。因此,最好的方法还是使用完整性检测方法。

26. 设H是一个安全的哈希函数,Alice将消息和其哈希值M||H(M)一并发送,以检测消息是否在传输过程中被篡改,问:这样做可否达到Alice的安全目标?为什么?

答:不能,因为Hash函数本身没有密钥,给定M,任何人(包括攻击者)都可以正确计算出其哈希值,所以攻击者可以将Alice发送的消息M修改为M¢,并计算H( M¢ ),而接收方无法确定原始消息的完整性。

27. 从攻击者的角度来详细说明N-S协议中,为什么必须增加第(4)和第(5)步。

答:防止重放。

28. Kerberos协议中,第(6)步为什么服务器(Server)不直接把通过会话进行加密的AC原样发送给客户(Client),而是把timestamp提取出来递增后加密发送给Client?

答:防止恶意的监听者通过获取的Client发送的AC冒充Server获得Client的认证。

29. Kerberos协议报文中为什么要使用Timestamp?

答:主要是为了防止重放攻击。Client向Server发送的数据包被某个恶意网络监听者截获,该监听者随后将数据包作为自己的Credential冒充该Client对Server进行访问,在这种情况下,依然可以很顺利地获得Server的成功认证。为了解决这个问题,Client在消息中加入一个当前时间(timestamp)。在Server首先提取报文中的timestamp,并同当前的时间进行比较,如果他们之间的偏差超出一个可以接受的时间范围(一般是5 分钟),Server会直接拒绝该Client的请求。

30. Kerberos协议中,KDC为什么不直接将加密的会话密钥分别发送给Client和Server,而是只发送给Client?

答:(1) 由于一个Server会面对许多不同的Client, 而每个Client都有一个不同的会话密钥。那么Server就会为所有的Client维护这样一个会话密钥的列表,这样做对于Server来说是比较麻烦而低效的;

(2) 由于网络传输的不确定性,可能出现这样一种情况:Client很快获得了会话密钥,并用这个会话密钥加密认证请求发送到Server,但是用于Server的会话密钥还没有收到,并且很有可能承载这个会话密钥的报文永远也到不了Server端。这样的话,Client将永远得不到Server的认证。

31. Kerberos协议中,AS并没有真正去认证这个发送请求的Client是否真的就是那个他所声称的那个人,就把会话密钥发送给他,这样做会不会有什么问题?要给出理由。

答:没问题。如果另一个人(比如Client B)声称自己是Client A,他同样会得到Client A和Server的会话密钥。因为Client B声称自己是Client A,AS就会使用Client A的Password派生出的密钥对会话密钥进行加密,而只有真正知道Client A 的Password的一方才会通过解密获得会话密钥。

32. Kerberos协议的第5步中,为什么要发送两份(AC和TC, S)关于Client的信息给Server?

答:通过这两份数据的对比,Server就能判断出是不是真正的Client在访问服务。

33. Kerberos协议中,Client是如何判断自己在访问真正的Server?

答:因为Client在第5步中给Server的TC, S是用Server的密钥加密的,所以只有真正的Server才能解密得到KC, S,并完成第6步的认证。

34. Kerveros协议V5对V4的请求生存期作了哪些改进?为什么?

答:V5中将V4中的生命期(Lifetime,8位长,每单位表示5分钟,因此最长生命期为28 * 5 = 1280分钟)修改为精确的起止时间,允许许可证拥有任意长的生命期,同时使用Nonce1来防止重放。

35. 有人认为EAP协议主要功能是提供一种具体的认证方法。简要评述这种观点是否正确。

答:EAP不是一种具体的认证方法,而是各种认证方法或协议的承载协议。

36. 简述S/KEY协议的小数攻击原理。

答:小数攻击的基本原理是:① 当用户向服务器请求认证时,攻击者截取服务器传给用户的种子和迭代值,并将迭代值改为较小的值;② 然后,假冒服务器,将得到的种子和较小的迭代值发送给用户;③ 用户利用种子和迭代值计算一次性口令,发送给服务器;④ 攻击者再次截取用户传过来的一次性口令,并利用已知的散列函数依次计算较大迭代值的一次性口令,就可获得该用户后续的一系列口令,从而在一段时间内冒充合法用户而不被发现。

37.在集中式对称密钥分配协议Needham—Schroeder中,什么是通信方A、B的主密钥?这些主密钥和会话密钥Ks各有什么用途?主密钥如何进行安全分配?会话密钥如何进行安全分配?

答:1)通信方的主密钥:每个通信方和KDC共享的密钥,如KaKb,用于用户和KDC的通信。

2)会话密钥Ks: 通信双方进行某次会话时用于加解密会话内容时共享的对称密钥。

3)主密钥:通过带外分配的,如用户A到KDC中心申请。

4)会话密钥:KDC用主密钥对会话密钥加密,并分发到通信双方。

38. 散列值和HMAC值从理论上都可以实现数据的完整性保护,HMAC值和散列值在实现上有什么不同?HMAC值除了能够保证数据的完整性,还能实现什么安全需求?在实际应用中,使用上述两种方法的哪一种能更好地实现数据的完整性?

答:散列值是用单向散列函数直接对明文进行计算的结果;HMAC值是用单向散列函数散列明文和一个对称密钥结合的结果。

除了能够保证数据的完整性,HMAC值还能实现发送端的鉴别。在实际使用中,使用MAC值能更好地实现数据的完整性。

39. S/KEY是一种一次性口令技术,回答以下问题:

1)它是基于时间同步或事件同步的认证技术吗?那它是哪种认证技术?

2)它能实现双向鉴别还是单向鉴别?是哪方对哪方的鉴别?

答:1)S/KEY不是基于时间同步和事件同步的认证技术。它是挑战/应答式的非同步认证技术。

2)它能实现单向鉴别。是服务器对客户的鉴别。

40. 简述公开密钥密码体制中公钥可能面临的安全威胁及其应对策略。

答:由于公开密钥密码系统中公钥完全公开,但是用户难以验证公钥隶属关系的真实性,也就是说,用户难以确定公钥是否真的隶属于它所声称的用户,因此会出现公钥伪造问题。

应对策略:在公钥管理的过程中采取了将公钥和公钥所有人信息绑定的方法,这种绑定产生的就是用户数字证书,同时利用PKI来管理证书的申请、发布、查询、撤销等一系列管理任务。

41. 有了公钥证书,为什么还需要PKI?

答:有了证书以后,就会涉及证书的申请、发布、查询、撤销等一系列管理任务,因此需要一套完整的软硬件系统、协议、管理机制来完成这些任务,这就是公钥基础设施(PKI)。

42. 简要说明PKI系统中多个CA间建立信任的方法。

答:1)对于具有层次结构的组织,可采用树型信任模型;

2)双向交叉认证证书,包括:① 各PKI的CA之间互相签发证书,从而在种局部PKI之间建立起了信任关系;② 由用户控制的交叉认证,即由用户自己决定信任哪个CA或拒绝哪个CA;③由桥接CA控制的交叉认证;

3)以用户为中心的信任模型(User Centric Trust Model)。在这种模型中,每个用户自己决定信任其他哪些用户。

43. 2019年7月多家媒体报道某国政府要求其国内用户在所有浏览器中安装来自政府的 Root CA (qca.kz),否则将无法访问互联网。同日,尝试访问互联网的该国用户已被重定向到一个网站,上面详细介绍了如何在浏览器中安装政府颁发的根证书。针对上述新闻报道,回答以下问题:

(1)该国安全官员声称这一要求旨在保护用户免受“黑客攻击、在线欺诈和其他网络威胁”,你认同这一观点吗?为什么?

(2)以用户A通过ISP访问支持HTTPS协议(参见第9章)的Web服务器为例,说明如果安装了Root CA证书,对该用户与服务器之间的安全通信会有什么影响?要求详细说明实施影响的过程。

(3)事件发生后,谷歌、微软和Mozilla等浏览器开发商均称将采取措施来应对该国政府的这一新的要求,以保护用户的上网安全,你认为他们最可行的措施是什么?

答:(1)不完全认同。政府还有一个目的是监听用户的加密通信,对敏感内容(如政治、不同政见者)进行监听。

(2)答案可能不唯一,但必须把握二个关键点:一是安装了政府的根证书后,政府可以签发任何它想监听的服务器的数字证书,让用户认为这些证书是合法可信的;二是需要ISP的配合,ISP将用户的访问请求截获,ISP(或政府监听服务器)作为中间人,利用政府根证书签发的Web服务器的数字证书假冒服务器与用户交互,解密流量后,再假冒用户与真正的服务器交互,反之亦然。这样,政府完全能够看到用户和服务器之间的所有通信内容,即使是加密的。

(3)答案可能不唯一,合理就行。最可行的方法是:浏览器开发商将政府的Root CA 加入其浏览器的黑名单中,拒绝接受用它签发的任何证书。事实上,事件发生后,这些浏览器厂商就是这么做的。

44. 比较分析证书签名和证书指纹区别与联系。

答:证书签名是对证书中的tbsCertificate部分进行ANSI.1 DER编码并对编码后的内容执行签名算法后得到的结果,签名值是证书内容的一部分。

证书指纹是指对证书全部编码内容(也就是证书文件)进行散列运算得到的散列值。

证书指纹并不是证书的组成部分,主要是为了方便证书的管理。利用证书指纹,系统可以比较容易地从证书库中检索到一个证书,此外指纹还可以用于检测一个证书是否被篡改。

45. 简要说明是否所有CA证书均需通过验证才能对其信任。

答:根CA证书无需验证。

46. 简要分析TCP协议三次握手过程可能存在的安全问题。

答:利用TCP三次握手过程可以实现网络扫描、TCP连接劫持、拒绝服务攻击。

47. 简述TCP连接劫持的攻击原理以及应对措施。

答:TCP报文段的初始序号(ISN)在TCP连接建立时产生,攻击者向目标主机发送连接请求可得到上次的序号,再通过多次测量来回传输路径得到进攻主机到目标主机间数据包传送的来回时间(RTT)。已知上次连接的序号和RTT,就能预测下次连接的序号。因此,一旦攻击者预测出目标主机选择的起始序号,就可以欺骗该目标主机,使其相信自己正在与一台可信主机进行会话。此外,攻击者还可以伪造发送序列号在有效接收窗口内的报文,也可以截获报文并篡改内容后再发送给接收方。

48. 分析SSL 3.0握手协议的安全性。

答:客户机和服务器在相互发送自己能够支持的加密算法时,是以明文传送的,存在被攻击修改的可能;SSL3.0为了兼容以前的版本,可能会降低安全性;所有的会话密钥中都将生成master key,握手协议的安全完全依赖于对master key的保护,因此通信中要尽可能地减少使用master key。

49. 在SSL和TLS中,为什么需要一个独立的密码变更规格协议,而不是在握手协议中包含一条密码变更规格消息?

答:为了保障SSL传输过程的安全性,SSL协议要求客户端或服务器端每隔一段时间必须改变其加解密参数。当某一方要改变其加解密参数时,就发送一个简单的消息通知对方下一个要传送的数据将采用新的加解密参数,也就是要求对方改变原来的安全参数。因此,无论是从功能上还是从可扩展性来讲,将其独立出来,而不是做为握手协议的一部分更合适。

50. 在SSL中,如果接收者接收到顺序紊乱的SSL记录块,则它能不能为它们进行排序?如果可以,解释它是如何做到的;如果不可以,为什么?

答:SSL记录协议使用面向连接的TCP协议作为传输协议,不会发生乱序,因此不需要排序。万一收到顺序紊乱的SSL记录块,SSL不能为它们进行排序,因为协议格式中没有序号或偏移量等排序所必须的信息。

51. TLS 1.3为什么可以对SSL握手协议的初始交换过程进行简化?

答:因为TLS1.3舍弃了RSA的密钥协商过程,采用了更简单的密码协商模型和一组瘦身后的密钥协商选项(没有RSA,没有很多用户定义的Diffie-Hellman参数)。这样,对于这种有限的选择,客户端可以简单地在第一条消息中就发送Diffie-Hellman密钥共享信息(key_share),而不是等到服务器确认它希望支持哪种密钥共享。

52. TLS 1.3为了实现连接恢复过程的零次往返(0-RTT),对TLS之前版本的连接恢复过程做了哪些改变?

答:在TLS 1.3中,采用预共享密钥(pre-shared key,PSK)恢复的新模式。其思路是在建立会话之后,客户端和服务器可以得到称为“恢复主密钥”的共享密钥。这可以使用id(类似session_id)存储在服务器上,也可以通过仅为服务器所知的密钥(类似session_ticket)进行加密。此会话ticket将发送到客户端并在恢复连接时进行查验。对于已恢复的连接,双方共享恢复主密钥,因此除了提供前向保密之外,不需要交换密钥。下次客户端连接到服务器时,它可以从上一次会话中获取秘钥并使用它来加密应用数据,并将session_ticket发送到服务器。

53. 论述TLS 1.3中为什么要禁止使用RSA密钥交换算法。

答:首先,RSA不满足前向保密(forward secret)。也就是说,如果攻击者记录了加密对话,然后获取服务器的RSA私钥,他们可以将对话解密。甚至如果对话先被记录下来,而秘钥在未来的某个时候才获得,这种方法仍然有用。例如,攻击者首先记录下所有加密过的对话,然后使用一些如著名的心脏出血(Heartbleed)之类的攻击技术来偷取私钥,就可以解密之前记录下的加密数据。其次,在SSL中使用RSA加密容易受到 “百万消息攻击”。

54. 分析IPsec VPN和SSL/TLS VPN的各自优缺点以及相应的应用场合。

答:IPsec VPN与SSL VPN的应用场景是不一样的。由于IPsec VPN是在网络层实现加密通信,因此IPsec VPN主要应用于需要将远程终端或分支机构网络与机构内部网络安全连接起来的场合,而SSL VPN则主要用于远程终端通过Web浏览器访问内部网络中的应用服务器(如Web服务器、电子邮件服务器等)这一场合。IPsec VPN无法实现基于用户的授权,还有可能泄露内部网络结构,而SSL VPN没有这些问题。

55. 比较分析在网络层、传输层和应用层实现安全传输的优缺点。

答:在网络层实现安全传输(IPsec)的好处是它对终端用户和应用是透明的,因此更具通用性。此外,IPsec具有过滤功能,只对被选中需要进行保护的流量才使用IPsec进行认证和加密保护处理。在传输层实现安全传输(SSL/TLS)的好处可以充分利用传输层TCP协议的可靠性和流量控制功能,简化协议的设计,同时兼具通用性和细粒度的安全需求。在应用层特定应用服务中实现指定的安全服务的好处是可以针对应用的特定需求定制其所需的安全服务。

56. 论述SSL/TLS是如何应对Web应用面临的下述安全威胁:

(1)已知明文字典攻击:许多消息中可能会包含可预测的明文,如HTTP中的GET命令。攻击者首先构造一个包含各种可能的已知明文加密字典。然后,截获加密消息,并将包含已知明文的加密部分和字典中的密文进行比较。如果多次匹配成功,就可以获得正确的密码;

(2)穷举密码分析攻击:穷举传统加密算法的密钥空间;

(3)重放攻击:重放先前的SSL握手消息;

(4)中间人攻击:在交换密钥时,攻击者假冒服务器与客户端联系,或假冒客户端与服务器联系;

(5)密码监听:监听HTTP或其它应用流量中的密码;

(6)IP欺骗:使用伪造的IP地址向目标主机发送数据。

答:(1)使用128位密钥,而不是40位密钥。使得明文字典必须足够大才行。

(2)使用的密钥长度大于40位~160位。

(3)使用现时(Nonce)。

(4)使用公钥证书进行身份认证。

(5)使用加密。

(6)攻击者必须有私钥和假冒的IP地址才行。

57. 简要说明SSL协议是如何实现会话密钥的安全分发。

答:使用RSA密钥交换,以及基于Diffie-Hellman协议的匿名Diffie-Hellman交换和瞬时Diffie-Hellman交换。

二、计算题

1. 考虑RSA密码体制:设n=35,已截获发给某用户的密文C = 10,并查到该用户的公钥e = 5,求出明文M。

答:分解n = 35 = 7×5,于是p = 7, q = 5。φ(n) = 6×4 = 24。因为e = 5,根据ed = 1 modφ(n),求出d=5。

根据M = Cd mod n, M = 105 mod 35, 求出M=5。

2. 考虑RSA密码体制:令p=3, q=11, d=7, m=5,给出密文C的计算过程。

解:n = 3×11 = 33;φ(n) = 2×10 = 20;因为d=7, 根据ed = 1 modφ(n),求出e=3;

C = me mod n = 53 mod 33 = 26

3. Bob和Alice采用GlGamal密码体制来进行加密通信,假定他们选定的素数q等于19,则原根有{2, 3, 10, 13, 14, 15},从中选择10作为原根a,则:

(1) 假设Alice选择随机数5作为其私钥x,计算公钥y的值。

答:y = ax mod p = 105 mod 19 = 3

 这样Alice的私钥为5,公钥为{3, 10, 19}。

(2) Bob想要将m = 17发送,并选择k = 6,计算m的密文(m1, m2)值。

m1 = ak mod q = 106 mod 19 = 11

m2 = ((yk mod q) × m) mod p  = ((36 mod 19) × 17) mod 19 = 5

得到密文(11, 5)。

(3) Alice收到Bob的密文后,给出其解密过程。

解密时计算 m = 5 × (115 mod 19)-1 mod 19 = 17,从而得到明文17。

4. 对于RSA数字签名体制,假设p = 839,q = 983,n =p ×q = 824737。已知私钥d =132111,计算公钥e和对消息m =23547的签名。

解:由RSA签名体制可以得e = d-1mod φ(n) = 132111-1mod 882916 = 26959,对消息m的签名为s= md mod n =23547132111 mod 824737 =266749。

5. 假设在ElGamal数字签名体制中,q=31847,a=5,公钥y=25703。已知(23972, 31396)是对消息M=8990的签名,(23972,20481)是对消息M=31415的签名,求随机数 k 和私钥x。

解:由k(v-s)=(w-m)mod(p-1) => k(31396-20481)=(8990-31415)mod31846

=> 10915k=9421mod31846

因为 gcd(10915, 31846)=1,所以通过求解一次同余方程得:k=1165。再将k代入一次同余方程20481=k-1(31415-23972×x)mod31486得:23972x=23704mod31846,由于gcd(23972, 31846)=2|23704,所以该同余方程有2个解,分别是:7459和23382,再将 x 值代入公钥 y=axmodq=5xmod31846=25703 中验算得:x=7459。

6. 对于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 = semodn = 879826959mod824737 = 123456.

(2) 因为m′= semodn = 36631426959mod824737 = 167058 = m,所以是有效的(消息, 签名)对。

(3) m×m′的签名= (m×m′)dmodn =s×s′modn = 445587×229149mod824737 = 75915。

7. 在ElGamal数字签名体制中,假设q=19,a =13。

(1) 如果签名者A选取的私钥为x=10,试计算公钥y。

(2) 设签名者A要对消息m =15进行签名,且选取随机数k=11,计算机签名s,并验证该数字签名的有效性。

解:(1) 计算公钥:y=axmodq=1310mod19=6

(2) 计算签名:

r=ak mod q =1311 mod 19 = 2

s=(m - xr)k-1 mod (q-1) = (15 – 10 × 2)11-1 mod 18 =11,所以得签名为:(r, s) = (2, 11)。

验证:因为yr × rs mod q= 62×211 mod 19= 8 = am mod q =1315mod19= 8,所以签名有效。




原文始发于微信公众号(豆豆咨询):密码学题目-简答题与计算题

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月8日22:43:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   密码学题目-简答题与计算题https://cn-sec.com/archives/2374504.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息