网上通信的双方,在互相认证身份之后,即可发送签名的数据电文。数字签名的全过程分两大部分,即签名与验证。数字签名与验证的过程和技术实现的原理如图五所示。
签名过程 I 验证过程
I
参
照上图数字签名过程分两部分:左侧为签名,右侧为验证过程。即发方将原文用哈希算法求得数字摘要,用签名私钥对数字摘要加密得数字签名,发方将原文与数字
签名一起发送给接受方;收方验证签名,即用发方公钥解密数字签名,得出数字摘要;收方将原文采用同样哈希算法又得一新的数字摘要,将两个数字摘要进行比
较,如果二者匹配,说明经数字签名的电子文件传输成功。
====================
数字签名的操作过程
数字签名的操作过程如图六所示。需要有发方的签名证书的私钥及其验证公钥。
数字签名
操作具体过程如下:首先是生成被签名的电子文件(《电子签名法》中称数据电文),然后对电子文件用哈希算法做数字摘要,再对数字摘要用签名私钥做非对称加
密,即作数字签名;之后是将以上的签名和电子文件原文以及签名证书的公钥加在一起进行封装,形成签名结果发送给收方,待收方验证。
====================
数字签名的验证过程
接收方收到发方的签名结果后进行签名验证,其具体操作过程如图八所示。
接收方收到数
字签名的结果,其中包括数字签名、电子原文和发方公钥,即待验证的数据。接收方进行签名验证。验证过程是:接收方首先用发方公钥解密数字签名,导出数字摘
要,并对电子文件原文作同样哈希算法得一个新的数字摘要,将两个摘要的哈希值进行结果比较,相同签名得到验证,否则无效。这就作到了《电子签名法》中所要
求的对签名不能改动,对签署的内容和形式也不能改动的要求。
====================
数字签名的作用
如果接收方对发方数字签名验证成功,就可以说明以下三个实质性的问题:
(1) 该电子文件确实是由签名者的发方所发出的,电子文件来源于该发送者。因为,签署时电子签名数据由电子签名人所控制;
(2) 被签名的电子文件确实是经发方签名后发送的,说明发方用了自己的私钥作的签名,并得到验证,达到不可否认的目的;
(3) 接收方收到的电子文件在传输中没有被篡改,保持了数据的完整性,因为,签署后对电子签名的任何改动都能够被发现。
以上三点就是对《电子签名法》中所规定的“安全的电子签名具有与手写签名或者盖章同等的效力”的具体体现。
====================
原文保密的数字签名的实现方法。
在上述数字签名原理中定义的是对原文作数字摘要和签名并传输原文,在很多场合传输的原文是要求保密的,要求对原文进行加密的数字签名方法如何实现?这里就要涉及到“数字信封”的概念。请参照图八的签名过程。
数字签名 签名验证
图八所示的流程是一个典型的“电子信封”处理过程。基本原理是将原文用对称密钥加密传输,而将对称密钥用收方公钥加密发送给对方。收方收到电子信封,用自己的私钥解密信封,取出对称密钥解密得原文。其详细过程如下:
(1) 发方A将原文信息进行哈希(hash)运算,得一哈希值即数字摘要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组PKI,实现DES密要加密,其实使用一组PKI中的PK来解密DES也可以,如下: 数字签名和的基本原理及其区别?
数字签名主要经过以下几个过程:
信息发送者使用一单向散列函数(HASH函数)对信息生成信息摘要;
信息发送者使用自己的私钥签名信息摘要;
信息发送者把信息本身和已签名的信息摘要一起发送出去;
信息接收者通过使用与信息发送者使用的同一个单向散列函数(HASH函数)对接收的信息本身生成新的信息摘要,再使用信息发送者的公钥对信息摘要进行验证,以确认信息发送者的身份和信息是否被修改过。
数字加密主要经过以下几个过程:
当信息发送者需要发送信息时,首先生成一个对称密钥,用该对称密钥加密要发送的报文;
信息发送者用信息接收者的公钥加密上述对称密钥;
信息发送者将第一步和第二步的结果结合在一起传给信息接收者,称为数字信封;
信息接收者使用自己的私钥被加密的对称密钥,再用此对称密钥解密被发送方加密的密文,得到真正的原文。
数字签名和数字加密的过程虽然都使用体
系,但实现的过程正好相反,使用的密钥对也不同。数字签名使用的是发送方的密钥对,发送方用自己的私有密钥进行加密,接收方用发送方的公开密钥进行解密,
这是一个一对多的关系,任何拥有发送方公开密钥的人都可以验证数字签名的正确性。数字加密则使用的是接收方的密钥对,这是多对一的关系,任何知道接收方公
开密钥的人都可以向接收方发送加密信息,只有唯一拥有接收方私有密钥的人才能对信息解密。另外,数字签名只采用了非对称密钥加密算法,它能保证发送信息的
完整性、和不可否认性,而数字加密采用了对称密钥加密算法和非对称密钥加密算法相结合的方法,它能保证发送信息。
阅读(5086) | 评论(0) | 转发(0) |