数字签名的技术实现

  对一个电子文件进行数字签名并在网上传输,其技术实现过程大致如下:首先要在网上进行身份认证,然后再进行签名,最后是对签名的验证。

1. 认证

         PKI提供的服务首先是认证,即身份识别与鉴别,确认实体即为自己所声明的实体。认证的前提是甲乙双方都具有第三方CA所签发的证书,认证分单向认证和双向认证。
      (1)单向认证是甲乙双方在网上通信时,甲只需要认证乙的身份即可。这时甲需要获取乙的证书,获取的方式有两种,一种是在通信时乙直接将证书传送给甲,另一种是甲向CA的目录服务器查询索取。甲获得乙的证书后,首先用CA的根证书公钥验证该证书的签名,验证通过说明该证书是第三方CA签发的有效证书。然后检查证书的有效期及检查该证书是否已被作废(LRC检查)而进入黑名单。
     (2)双向认证。双向认证是甲乙双方在网上通信时,甲不但要认证乙的身份,乙也要认证甲的身份。其认证过程与单向认证过程相同。
       甲乙双方在网上查询对方证书的有效性及黑名单时,采用的是LDAP协议(Light Directory Access Protocol),它是一种轻型目录访问协议。

2. 数字签名与验证过程

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

3. 数字签名的操作过程

        数字签名的操作过程需要有发方的签名证书的私钥及其验证公钥。
        数字签名操作具体过程如下:首先是生成被签名的电子文件(《电子签名法》中称数据电文),然后对电子文件用哈希算法做数字摘要,再对数字摘要用签名私钥做非对称加密,即做数字签名;之后是将以上的签名和电子文件原文以及签名证书的公钥加在一起进行封装,形成签名结果发送给收方,待收方验证。

4. 数字签名的验证过程

        接收方收到发方的签名结果后进行签名验证,其具体操作过程如下: 
        接收方收到数字签名的结果,其中包括数字签名、电子原文和发方公钥,即待验证的数据。接收方进行签名验证。验证过程是:接收方首先用发方公钥解密数字签名,导出数字摘要,并对电子文件原文做同样哈希算法得出一个新的数字摘要,将两个摘要的哈希值进行结果比较,相同签名得到验证,否则无效。这就做到了《电子签名法》中所要求的对签名不能改动,对签署的内容和形式也不能改动的要求。

5. 数字签名的作用

        如果接收方对发方数字签名验证成功,就可以说明以下三个实质性的问题:
      (1) 该电子文件确实是由签名者的发方所发出的,电子文件来源于该发送者。因为,签署时电子签名数据由电子签名人所控制。 
      (2) 被签名的电子文件确实是经发方签名后发送的,说明发方用了自己的私钥做的签名,并得到验证,达到不可否认的目的。
      (3) 接收方收到的电子文件在传输中没有被篡改,保持了数据的完整性,因为,签署后对电子签名的任何改动都能够被发现。
        以上三点就是对《电子签名法》中所规定的“安全的电子签名具有与手写签名或者盖章同等的效力”的具体体现。

6. 原文保密的数字签名的实现方法

        在上述数字签名原理中定义的是对原文做数字摘要和签名并传输原文,在很多场合传输的原文是要求保密的,要求对原文进行加密的数字签名方法如何实现?这里就要涉及到“数字信封”的概念。请参照图8的签名过程。
       下面流程是一个典型的“电子信封”处理过程。基本原理是将原文用对称密钥加密传输,而将对称密钥用收方公钥加密发送给对方。收方收到电子信封,用自己的私钥解密信封,取出对称密钥解密得原文。其详细过程如下:
     (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’进行比较,验证原文是否被修改。如果二者相等,说明数据没有被篡改,是保密传输的,签名是真实的;否则拒绝该签名。
       这样就做到了敏感信息在数字签名的传输中不被篡改,未经认证和授权的人,看不见原数据,起到了在数字签名传输中对敏感数据的保密作用。

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着Internet的飞速发展,网上业务申请变得越来越普及,经常会出现双方在不见面的情况下,通过申请文件的提交,达到业务申请的目的。由于Internet网络的一些不安全因素,提交的申请文件可能在网上传输的过程中,被劫取、篡改、伪造或发生发送方抵赖等问题。那么如何保证申请文件的真实性、在网络传输中的完整性及申请人的不可抵赖性就成了安全地完成网络业务申请的关键。 签名是证明当事者的身份和数据真实性的一种信息,可以用不同的形式来表示。一种完善的签名应满足以下三个条件:签名者事后不能抵赖自己的签名;任何其他人不能伪造签名;如果当事人双方关于签名的真伪发生争执,能够在公正的仲裁者面前通过验证来确认其真伪。 在传统的书面文件为基础的事务处理中,手签、印章、手印等书面签名基本上满足以上条件,因而得到司法部门的支持,具有一定的法律意义。 在以计算机文件为基础的现代事务处理中,采用电子形式的签名。目前的数字签名是建立在公开密钥体制基础上,它是公开密钥加密技术的另一类应用。它的主要方式是:报文的发送方从报文文本中生成一个128位的散列值(或报文摘要);发送方用自己的私人密钥对这个散列值进行加密来形成发送方的数字签名。然后,这个数字签名将作为报文的附件和报文一起发送给报文的接收方;报文的接收方首先从接收到的原始报文中计算出128位的散列值(或报文摘要),接着再用发送方的公用密钥来对报文附加的数字签名进行解密。如果两个散列值相同、那么接收方就能确认该数字签名是发送方的。 通过数字签名能够实现对原始报文的鉴别,我国1995年制定了自己的数字签名标准(GB15851-1995),使其具有法律意义,由于数字签名利用密钥技术进行,因而可以获得比书面签名更高的安全性。 公开密钥加密技术的体制是,申请人具有一对密钥,一个是私钥,自行保存,用于文件的数字签名;一个是公钥,公开发布,用于接收方验证签名。由于私钥只有申请人自己持有,而且只有用申请人的私钥加密的文件,才能用申请人的公钥进行解密验证,所以在保障信息安全的同时,保障了申请人的不可抵赖性。 本文的数字签名方式采用的是公开密钥算法DSA和报文摘要算法SHA-1的融合

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值