免费智能真题库 > 历年试卷 > 网络工程师 > 2015年下半年 网络工程师 上午试卷 综合知识
  第42题      
  知识点:   报文摘要   认证   数字签名
  关键词:   报文   数字签名   算法        章/节:   网络安全       

 
下列算法中,可用于报文认证的是(42),可以提供数字签名的是(43)。
 
 
  A.  RSA
 
  B.  IDEA
 
  C.  RC4
 
  D.  MD5
 
 
 

 
  第44题    2018年上半年  
   35%
DES是一种(44)加密算法,其密钥长度为56位,3DES是基于DES的加密方式,对明文进行3次DES操作,以提高加密强度,其密钥长度是(..
  第43题    2020年下半年  
   38%
根据国际标准ITU-T X.509规定,数字证书的一般格式中会包含认证机构的签名,该数据域的作用是( )。
  第43题    2016年上半年  
   40%
用户B收到经A数字签名后的消息M,为验证消息的真实性,首先需要从CA获取用户A的数字证书,该数字证书中包含(41),可以利用(42..
   知识点讲解    
   · 报文摘要    · 认证    · 数字签名
 
       报文摘要
               报文摘要算法
               MD5是MIT的Ron Rivest(RFC 1321)提出的。算法以任意长的报文作为输入,算法的输出是产生一个128位的报文摘要。输出的摘录用4个字d0d1、d2、d3表示,在计算开始时分别初始化为常数,然后一直参与算法,其值不断被改编,直到作为最后结果输出。
               最初值:d0=01234567H,d1=89abcdefH,d2=fedcba98H,d3=76543210H。
               输入报文首先被填充,使其成为16的倍数,然后被分成512bit的等长块,逐块处理。每块处理分4遍扫描,在每遍扫描时对d0d1、d2、d3使用不同的扰乱函数。扰乱函数将报文的分组和相应di进行函数运算,这样每遍扫描将每个d0d1、d2、d3报文内容进行了更新。在处理前将当前摘录备份,在处理后将这个备份加到新产生的信息摘录上,并将其作为下一块处理时的摘录当前值。最后一块信息处理之后的信息摘录d0d1d2、d3当前值,即为最终的信息摘录值。
               扰乱函数计算使用了取整、二进制求补、二进制与运算、二进制或运算、半加运算、二进制加运算和循环左移运算等。
               安全散列算法
               安全散列算法(Secure Hash Algorithm, SHA)由美国国家标准和技术协会于1993年提出,并被定义为安全散列标准(Secure Hash Standard, SHS)。SHA-1是1994年修订的版本,纠正了SHA一个未公布的缺陷。这种算法接收的输入报文小于264位,产生160位的报文摘要。该算法设计的目标是使得找出一个能够匹配给定的散列值的文本实际是不可能计算的。也就是说,如果对文档A已经计算出了散列值H(A),那么很难找到一个文档B,使其散列值H(B)=H(A),尤其困难的是无法找到满足上述条件的而且又是指定内容的文档B。SHA算法的缺点是速度比MD5慢,但是SHA的报文摘更长,更有利于对抗野蛮攻击。
               散列式报文认证码
               散列式报文认证码(HMAC)是利用对称密钥产生报文认证码的散列算法,可以提供数据完整性、数据源身份认证。
               HMAC使用现有的散列函数H而不用修改其代码,这样可以使用已有的H代码库,而且可以随时用一个散列函数代替另一个散列函数。HMAC-MD5已经被IETF指定为Internet安全协议IPSec的验证机制,提供数据源认证和数据完整性保护。
 
       认证
        认证又分为实体认证和消息认证两种。实体认证是识别通信对方的身份,防止假冒,可以使用数字签名的方法。消息认证是验证消息在传送或存储过程中有没有被篡改,通常使用报文摘要的方法。
               基于共享密钥的认证
               如果通信双方有一个共享的密钥,则可以确认对方的真实身份。这种算法依赖于一个双方都信赖的密钥分发中心(Key Distribution Center,KDC),如下图所示,其中的A和B分别代表发送者和接收者,KAKB分别表示A、B与KDC之间的共享密钥。
               
               基于共享密钥的认证协议
               认证过程如下:A向KDC发出消息{A,KA(B,KS)},说明自己要与B通信,并指定了与B会话的密钥KS。注意,这个消息中的一部分(B,KS)是用KA加密的,所以第三者不能了解消息的内容。KDC知道了A的意图后就构造了一个消息{KB(A,KS)}发给B。B用KB解密后就得到了A和KS,然后就可以与A用KS会话了。
               然而,主动攻击者对这种认证方式可能进行重放攻击。例如A代表雇主,B代表银行。第三者C为A工作,通过银行转账取得报酬。如果C为A工作了一次,得到了一次报酬,并偷听和复制了A和B之间就转账问题交换的报文,那么贪婪的C就可以按照原来的次序向银行重发报文2,冒充A与B之间的会话,以便得到第二次、第三次……报酬。在重放攻击中攻击者不需要知道会话密钥KS,只要能猜测密文的内容对自己有利或是无利就可以达到攻击的目的。
               基于公钥的认证
               这种认证协议如下图所示。A向B发出EB(A,RA),该报文用B的公钥加密。B返回EARARBKS),用A的公钥加密。这两个报文中分别有A和B指定的随机数RARB,因此能排除重放的可能性。通信双方都用对方的公钥加密,用各自的私钥解密,所以应答比较简单。其中的KS是B指定的会话键。这个协议的缺陷是假定双方都知道对方的公钥。
               
               基于公钥的认证协议
 
       数字签名
        传统商务活动中,我们通过手写签名达到确认信息的目的。电子商务活动中,交易双方互不见面,可以通过数字签名确认信息。数字签名技术有效解决了电子商务交易活动中信息的完整性和不可抵赖性问题。
               数字摘要
                      数字摘要的基本概念
                      数字摘要是利用哈希函数对原文信息进行运算后生成的一段固定长度的信息串,该信息串被称为数字摘要。产生数字摘要的哈希算法具有单向性和唯一性的特点。所谓单向性,也称为不可逆性,是指利用哈希算法生成的数字摘要,无法再恢复出原文;唯一性是指相同信息生成的数字摘要一定相同,不同信息生成的数字摘要一定不同。这一特征类似于人类的指纹特征,因此数字摘要也被称为数字指纹。
                      数字摘要的使用过程
                      数字摘要具有指纹特征,因此可以通过对比两个信息的数字摘要是否相同来判断信息是否被篡改过,从而验证信息的完整性。
                      数字摘要的使用过程如下图所示。
                      
                      数字摘要的使用过程
                      (1)发送方将原文用哈希(Hash)算法生成数字摘要1;
                      (2)发送方将原文同数字摘要1一起发送给接收方;
                      (3)接收方收到原文后用同样的哈希(Hash)算法对原文进行运算,生成新的数字摘要2;
                      (4)接收方将收到的数字摘要1与新生成的数字摘要2进行对比,若相同,说明原文在传输的过程中没有被篡改,否则说明原文信息发生了变化。
                      数字摘要算法
                      哈希(Hash)算法是实现数字摘要的核心技术。数字摘要所产生的信息串的长度和所采用的哈希算法有直接关系。目前广泛应用的哈希算法有MD5算法和SHA-1算法。
                      MD5算法的全称是“Message-Digest Alogrithm 5”,诞生于1991年,由国际著名密码学家、RSA算法的创始人Ron Rivest设计发明,经MD2、MD3和MD4发展而来。MD5算法生成的信息摘要的长度为128位。
                      SHA算法的全称是“Secure Hash Alogrithm”,诞生于1993年,由美国国家标准技术研究院(NIST)与美国国家安全局(NSA)设计。SHA(后来被称作SHA-0)于1995年被SHA-1替代,之后又出现了SHA-224、SHA-256、SHA-384和SHA-512等,这些被统称为SHA-2系列算法。SHA-1算法生成的信息摘要的长度为160位,而SHA-2系列算法生成的信息摘要的长度则有256位(SHA-256)、384位(SHA-384)、512位(SHA-512)等。与MD5算法相比,SHA算法具有更高的安全性。
                      MD5算法和SHA算法在实际中有着广泛的应用。与公钥技术结合,生成数字签名。目前几乎主要的信息安全协议中都使用了SHA-1或MD5算法,包括SSL、TLS、PGP、SSH、S/MIME和IPSec等。UNIX系统及不少论坛/社区系统的口令都通过MD5算法处理后保存,确保口令的安全性。
                      需要说明的是,2004年8月,在美国加州圣芭芭拉召开的国际密码学会议上,我国山东大学王小云教授宣布了她及她的研究小组对MD5、HAVAL-128、MD4和RIPEMD等四个著名密码算法的破译结果。2005年2月,王小云教授又破解了另一国际密码算法SHA-1。这为国际密码学研究提出了新的课题。
               数字签名
                      数字签名的基本概念
                      在ISO 7498-2标准中,数字签名被定义为:“附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(例如接收者)进行伪造”。实际上,简单地讲,数字签名就是在网络中传送信息报文时,附加一个特殊的唯一代表发送者个人身份的标记,以起到传统上手写签名或印章确认的作用。
                      数字签名建立在数字摘要的基础上,结合公钥加密技术实现。发送者应用自己的私钥对数字摘要进行加密,即生成数字签名。由于发送者的私钥仅为发送者本人所有,所以附加了数字签名的信息能够确认消息发送者的身份,也防止了发送者对本人所发送信息的抵赖行为。同时通过数字摘要技术,接收者可以验证信息是否发生了改变,从而确定信息的完整性。
                      数字签名的使用过程
                      数字签名的使用过程包括签名和验证两部分,如下图所示。
                      
                      数字签名的使用过程
                      (1)发送方将原文用哈希(Hash)算法生成数字摘要Z;
                      (2)发送方将数字摘要Z用自己的私钥加密;
                      (3)发送方将加密后的数字摘要Z(即数字签名)同原文一起发送给接收方;
                      (4)接收方用发送方的公钥解密数字签名,得到数字摘要Z;
                      (5)接收方对接收到的原文用同样的哈希(Hash)算法生成数字摘要Z′;
                      (6)比较Z和Z′,若二者相同,说明信息完整且发送者身份是真实的。
                      由以上过程可以看到,数字签名具有以下两个作用:
                      (1)确认信息的完整性。接收方将原文生成的数字摘要与用接收到的原文生成的新的数字摘要进行对比,相同则说明信息没有改变,不同则说明信息内容发生了变化。因此数字签名能够验证信息是否被修改,从而确定信息的完整性。
                      (2)确认信息发送者的身份,保证发送信息的不可抵赖性。发送者用自己的私钥对数字摘要进行加密,接收者如果能用对应的公钥进行解密,则说明信息一定是由该发送者发送的,从而确认了发送者的身份。此外,由于发送者的私钥是发送者本人拥有(除非丢失、泄露或被窃取),所以发送者不能否认自己曾经发送过的信息。
                      数字签名的种类
                      实现数字签名的基本方法有以下几种。
                      (1)RSA签名。RSA签名是基于RSA算法实现数字签名的方案,ISO/IEC 9796和ANSI X9.30-199X已将RSA作为建议数字签名的标准算法。
                      (2)ElGamal签名。ElGamal签名是专门为签名目的而设计。该机制由T.ElGamal于1985年提出,经修正后,被美国国家标准与技术学会(NIST)作为数字签名标准(Digital Signature Standard,DSS)。
                      RSA签名基于大整数素数分解的困难性,ElGamal签名基于求离散对数的困难性。在RSA签名机制中,明文与密文一一对应,对特定信息报文的数字签名不变化,是一种确定性数字签名。ElGamal签名机制采用非确定性的双钥体制,对同一消息的签名,根据签名算法中随机参数选择的不同而不同,是一种随机式数字签名。
   题号导航      2015年下半年 网络工程师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第42题    在手机中做本题