数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串也是对信息的发送者发送信息真实性的一个有效证明,数字签名是非对称密钥加密技术与数字摘要技术的应用。
对一个电子文件进行数字签名并在网上传输,其技术实现过程大致如下要在网上进行身份认证,然后再进行签名,是对签名的验证。
1. 认证
PKI提供的服务是认证,即身份识别与鉴别,确认实体即为自己所声明的实体。认证的前提是甲乙双方都具有第三方CA所签发的证书,认证分单向认证和双向认证。
(1)单向认证是甲乙双方在网上通信时,甲只需要认证乙的身份即可。这时甲需要获取乙的证书,获取的方式有两种,一种是在通信时乙直接将证书传送给甲,另一种是甲向CA的目录服务器查询索取。甲获得乙的证书后,用CA的根证书公钥验证该证书的签名,验证通过说明该证书是第三方CA签发的有效证书。然后检查证书的有效期及检查该证书是否已被作废(LRC检查)而进入黑名单。
(2)双向认证。双向认证是甲乙双方在网上通信时,甲不但要认证乙的身份,乙也要认证甲的身份。其认证过程与单向认证过程相同。
甲乙双方在网上查询对方证书的有效性及黑名单时,采用的是LDAP协议(Light Directory Access Protocol),它是一种轻型目录访问协议。
2. 数字签名与验证过程
网上通信的双方,在互相认证身份之后,即可发送签名的数据电文。数字签名的全过程分两大部分,即签名与验证。
数字签名过程分两部分左侧为签名,右侧为验证过程。即发方将原文用哈希算法求得数字摘要,用签名私钥对数字摘要加密得数字签名,发方将原文与数字签名一起发送给接受方;收方验证签名,即用发方公钥解密数字签名,得出数字摘要;收方将原文采用同样哈希算法又得一新的数字摘要,将两个数字摘要进行比较,如果二者匹配,说明经数字签名的电子文件传输成功。
3. 数字签名的操作过程
数字签名的操作过程需要有发方的签名证书的私钥及其验证公钥。
数字签名操作具体过程如下是生成被签名的电子文件(《电子签名法》中称数据电文),然后对电子文件用哈希算法做数字摘要,再对数字摘要用签名私钥做非对称加密,即做数字签名;之后是将以上的签名和电子文件原文以及签名证书的公钥加在一起进行封装,形成签名结果发送给收方,待收方验证。
4. 数字签名的验证过程
接收方收到发方的签名结果后进行签名验证,其具体操作过程如下
接收方收到数字签名的结果,其中包括数字签名、电子原文和发方公钥,即待验证的数据。接收方进行签名验证。验证过程是接收方用发方公钥解密数字签名,导出数字摘要,并对电子文件原文做同样哈希算法得出一个新的数字摘要,将两个摘要的哈希值进行结果比较,相同签名得到验证,否则无效。这就做到了《电子签名法》中所要求的对签名不能改动,对签署的内容和形式也不能改动的要求。
5. 数字签名的作用
如果接收方对发方数字签名验证成功,就可以说明以下三个实质性的问题
(1) 该电子文件确实是由签名者的发方所发出的,电子文件来源于该发送者。因为,签署时电子签名数据由电子签名人所控制。
(2) 被签名的电子文件确实是经发方签名后发送的,说明发方用了自己的私钥做的签名,并得到验证,达到不可否认的目的。
(3) 接收方收到的电子文件在传输中没有被篡改,保持了数据的完整性,因为,签署后对电子签名的任何改动都能够被发现。
以上三点就是对《电子签名法》中所规定的“安全的电子签名具有与手写签名或者盖章同等的效力”的具体体现。