数字签名、加密传输原理

数字签名,就是通过在数据单元上附加数据,或对数据单元进行秘密变换,从而使接收者可以确认数据来源和完整性。简单说来,数字签名是防止他人对传输的文件进行破坏,以及确定发信人的身份的手段。

 

        目前的数字签名是建立在公共密钥体制基础上,它是公用密钥加密技术的另一类应用。它的主要方式是:报文的发送方从报文文本中生成一个128位的散列值(又 称报文摘要,数字指纹)。发送方用自己的私人密钥对这个散列值进行加密来形成发送方的数字签名。然后,这个数字签名将作为报文的附件和报文一起发送给报文 的接收方。报文的接收方首先从接收到的原始报文中计算出128位的散列值,接着再用发送方的公用密钥来对报文附加的数字签名进行解密。如果两个散列值相 同、那么接收方就能确认该数字签名是发送方的。通过数字签名能够实现对原始报文的鉴别。采用数字签名,能确认以下两点:第一,信息是由签名者发送的;第 二,信息自签发后到收到为止未曾作过任何修改。这样数字签名就可用来防止电子信息因易被修改而有人作伪,或冒用别人名义发送信息。或发出(收到)信件后又 加以否认等情况发生。

       应用广泛的数字签名方法主要有三种,即:RSA签名、DSS签名和Hash签名。这三种算法可单独使用,也可综合在一起使用。用RSA或其它公开密钥密 码算法的最大方便是没有密钥分配问题(网络越复杂、网络用户越多,其优点越明显)。因为公开密钥加密使用两个不同的密钥,其中有一个是公开的,另一个是保 密的。公开密钥可以保存在系统目录内、未加密的电子邮件信息中、电话黄页(商业电话)上或公告牌里,网上的任何用户都可获得公开密钥。而私有密钥是用户专 用的,由用户本身持有,它可以对由公开密钥加密信息进行解密。RSA算法中数字签名技术实际上是通过一个哈希函数来实现的。数字签名的特点是它代表了文件 的特征,文件如果发生改变,数字签名的值也将发生变化。不同的文件将得到不同的数字签名。DSS数字签名是由美国国家标准化研究院和国家安全局共同开发 的。由于它是由美国政府颁布实施的,主要用于与美国政府做生意的公司,其他公司则较少使用,它只是一个签名系统,而且美国政府不提倡使用任何削弱政府窃听 能力的加密软件,认为这才符合美国的国家利益。Hash签名是最主要的数字签名方法,也称之为数字摘要法(Digital Digest)或数字指纹法(Digital Finger Print)。它与RSA数字签名是单独的签名不同,该数字签名方法是将数字签名与要发送的信息紧密联系在一起,它更适合于电子商务活动。

         对电子文件进行数字签名并在网上传输,其技术实现过程大致如下:首先要在网上进行身份认证,然后再进行签名,最后是对签名的验证。
1. 认证
PKI提供的服务首先是认证,即身份识别与鉴别,确认实体即为自己所声明的实体。认证的前提是甲乙双方都具有第三方CA所签发的证书,认证分单向认证和双向认证。
(1) 单向认证是甲乙双方在网上通信时,甲只需要认证乙的身份即可。这时甲需要获取乙的证书,获取的方式有两种,一种是在通信时乙直接将证书传送给甲,另一种是 甲向CA的目录服务器查询索取。甲获得乙的证书后,首先用CA的根证书公钥验证该证书的签名,验证通过说明该证书是第三方CA签发的有效证书。然后检查证 书的有效期及检查该证书是否已被作废(LRC检查)而进入黑名单。
(2)双向认证。双向认证是甲乙双方在网上通信时,甲不但要认证乙的身份,乙也要认证甲的身份。其认证过程与单向认证过程相同。
2. 数字签名与验证过程
网 上通信的双方,在互相认证身份之后,即可发送签名的数据电文。数字签名的全过程分两大部分,即签名与验证。即发方将原文用哈希算法求得数字摘要,用签名私 钥对数字摘要加密得数字签名,发方将原文与数字签名一起发送给接受方;收方验证签名,即用发方公钥解密数字签名,得出数字摘要;收方将原文采用同样哈希算 法又得一新的数字摘要,将两个数字摘要进行比较,如果二者匹配,说明经数字签名的电子文件传输成功。 

2. 数字签名与验证过程
网上通信的双方,在互相认证身份之后,即可发送签名的数据电文。数字签名的全过 程分两大部分,即签名与验证。即发方将原文用哈希算法求得数字摘要,用签名私钥对数字摘要加密得数字签名,发方将原文与数字签名一起发送给接受方;收方验 证签名,即用发方公钥解密数字签名,得出数字摘要;收方将原文采用同样哈希算法又得一新的数字摘要,将两个数字摘要进行比较,如果二者匹配,说明经数字签 名的电子文件传输成功。 

       数字签名原理中定义的是对原文做数字摘要和签名并传输原文,在很多场合传输的原文是要求保密的,要求对原文进行加密的数字签名方法如何实现?这里就要涉及 到“数字信封”的概念。“电子信封”基本原理是将原文用对称密钥加密传输,而将对称密钥用收方公钥加密发送给对方。收方收到电子信封,用自己的私钥解密信 封,取出对称密钥解密得原文。其详细过程如下:
(1) 发方A将原文信息进行哈希运算,得一哈希值即数字摘要MD;
(2) 发方A用自己的私钥PVA,采用非对称RSA算法,对数字摘要MD进行加密,即得数字签名DS;
(3) 发方A用对称算法DES的对称密钥SK对原文信息、数字签名SD及发方A证书的公钥PBA采用对称算法加密,得加密信息E;
(4) 发方用收方B的公钥PBB,采用RSA算法对对称密钥SK加密,形成数字信封DE,就好像将对称密钥SK装到了一个用收方公钥加密的信封里;
(5) 发方A将加密信息E和数字信封DE一起发送给收方B;
(6) 收方B接受到数字信封DE后,首先用自己的私钥PVB解密数字信封,取出对称密钥SK;
(7) 收方B用对称密钥SK通过DES算法解密加密信息E,还原出原文信息、数字签名SD及发方A证书的公钥PBA;
(8) 收方B验证数字签名,先用发方A的公钥解密数字签名得数字摘要MD;
(9) 收方B同时将原文信息用同样的哈希运算,求得一个新的数字摘要MD’;
(10)将两个数字摘要MD和MD’进行比较,验证原文是否被修改。如果二者相等,说明数据没有被篡改,是保密传输的,签名是真实的;否则拒绝该签名。
这样就做到了敏感信息在数字签名的传输中不被篡改,未经认证和授权的人,看不见原数据,起到了在数字签名传输中对敏感数据的保密作用。


 

 

2.1.1 数据加密标准
  
   数据加密标准(Data Encryption Standard,DES)是美国国家标准局于1977年开发的对称密钥算法。它是一种对称密钥算法,可以使用40~56位长的密钥。另一种称为3DES 的加密策略也使用同样的DES算法,但它并不只是加密一次,而是先加密一次,再加密(解密)一次,最后做第三次加密,每一次加密都使用不同的密钥。这一过 程显著地增加了解密数据的难度。
  
  2.1.2 RSA算法
  
  RSA是一种根据它的发明者Rivest,Shamir和Adleman命名的公开密钥算法。它方便了对称密钥加密中的密钥交换过程。它还可以用来产生数字签名。
  
  2.1.3 Diffie-Hellman
  
  Diffie-Hellman是一种简化在非安全网络上交换秘密密钥的公开密钥加密算法。算法是以Diffie和Hellman命名的,他们在1977年出版了第一个公开密钥加密的公开搜索。它的主要目的是简化在不安全网络上交换秘密会话密钥的过程。
  
  2.1.4 散列函数
  
   散列(Hash)函数是一种单向的算法,它提取任意长度的一段信息并产生固定长度的乱序的摘要。摘要是文本的一个截取,只包含与文本最相关的部分,这就 是Hash函数所产生的结果。Hash是一种单向的定义。我们可以在给定的文本上运行算法来获得固定长度的Hash值,但不能从Hash过程中获得最初的 文本。Hash函数可以唯一地定义文本。它对每个唯一的消息而言就像是指纹一样。不同的消息可以产生不同的值,并且相同的消息会产生完全相同的 Hash,Hash值可以用于维持数据的完整性。如果A发送一个消息给B,并给B消息的Hash。B可以在消息上运行用在该消息上的同一Hash算法,并 用计算得到的Hash值与B收到的Hash值相比较。如果发现根据消息计算出来的Hash与B收到的Hash值不同,就可以知道数据在传输的过程中出错 了。
  
  2.1.5 消息摘要:MD5
  
  消息摘要(Message Digest 5,MD5)是一种符合工业标准的单向128位的Hash算法,由RSA Data Security Inc.开发,它可以从一段任意长的消息中产生一个128位的Hash值。(例如,质询握手身份验证协议 (CHAP)通过使用MD5来协商一种加密身份验证的安全形式。CHAP在响应时使用质询-响应机制和单向MD5散列。用这种方法,用户可以向服务器证明 自己知道密码,但不必实际将密码发送到网络上,从而保证了密码本身的安全性。)
  
  2.1.6 安全散列算法:SHA-1
  
  Secure Hash Algorithm(SHA-1)是一种产生160位Hash值的单向Hash算法。它类似于MD5,但安全性比MD5更高。
  
  2.1.7 Hash信息验证码HMAC(Hash message authentication codes)
  
  HMAC可以用来验证接收消息和发送消息的完全一致性(完整性)。
  
  2.1.8 数字签名
  
   数字签名标准(Digital Signature Standard,DSS)是国家标准技术研究所开发的数字签名算法。数字签名(Digital Signature,DS)是一种用使用者的私有密钥加密的Hash值。它可以像正常签名一样用于认证,但它也可以用做与签名相关的信息完整性的认证。
  
  2.1.9 认证授权
  
   认证授权(Certificate Authority,CA)是一个实体,通常是一台计算机,它保存了一些公开密钥。事实上,它保存的一些称为认证的目标包含了用户或设备的信息,其中包括 它们的公开密钥。认证包含某个公开密钥的所有者的认证信息,如:姓名、地址、公司等。认证的目的有两个:
  
  ●标志一个用户或设备的公开密钥。
  
  ●确认假设的公开密钥的拥有者是公开密钥的真实拥有者。
  
   认证授权(CA)是一个记录了所有认证的第三方。使用CA,用户可以有一个认证的集中贮藏处,它允许用户获得其他用户的公开密钥并认证那些用户。它提供 了一个记录用户和设备公开密钥的集中存放点。它还提供了认证授权,当用户从CA中获得用户A的公开密钥时,密钥确实是用户A的而不是其他人的。
  
  2.1.10 OAKLEY密钥决定协议
  
   Hilarie Orman提出的"OAKLEY密钥决定协议",Oakley和SKEME各自定义了一种建立已认证密钥交换的方法,包括载荷的结构、所承载载荷信息、处 理它们的顺序以及如何使用它们。Oakley描述了一系列的密钥交换模式,提供密钥交换和刷新功能。
  
  2.1.11 SKEME: Secure Key Exchange Mechanism
  
  Hugo Krawczik提出的"安全密钥交换机制(SKEME)"SKEME描述了通用密钥交换技术,提供匿名性、防抵赖和快速刷新。
  
  2.1.12 互连网安全联盟及密钥管理协议
  
   互连网安全联盟及密钥管理协议(Internet Security Association and Key Management Protocol,ISAKMP)是一个定义在主机之间交换密钥和协商安全参数的框架。ISAKMP定义密钥在非安全网络上交换的一般机制,ISAKMP 定义的信息包括报文中消息的位置和通信过程发生的机制,但它不指明使用的协议和算法。
  
  2.1.13 互连网密钥交换
  
   互连网密钥交换(Internet Key Exchange,IKE)是一种实现密钥交换定义的协议。IKE是一种在ISAKMP框架下运行的协议。它是从其他密钥交换协议OaKley和 SKEME中派生而来的。IKE用于在对等端之间认证密钥并在它们之间建立共享的安全策略。IKE用于确认,譬如标志一个要求加密会话的对等端,以及决定 对等端使用何种算法和何种密钥。
  
  IKE考虑了IPSec使用的所有算法交换秘密密钥的复杂性。通过将密钥管理函数替代普通的密钥管理协议,简化了将新的算法添加进IPSec协议栈的过程。IKE使用公开密钥加密算法在非安全网络上安全地交换秘密密钥。
  
  2.1.14 Kerberos V5身份验证
  
   Kerberos V5是用于处理用户和系统身份的身份验证的Internet标准安全协议,是在Windows 2000 Server域中进行身份验证的主要安全协议。使用Kerberos V5,通过网络线路所发送的密码将经过加密而不作为纯文本进行发送。Kerberos V5协议校验了用户的身份和网络服务。这种双重验证被称为相互身份验证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值