数字签名技术
1.什么是电子签名
电子签名指数据电文中以电子形式所含、所附用于识别签名人身份并表明签名人认可其中内容的数据。通俗地说,电子签名就是通过密码技术对电子文档的电子形式的签名,并非是书面签名的数字图像化,它类似于手写签名或印章,也可以说它就是电子印章。
电子签名主要有三个作用:
(1)证明文件的来源,即识别签名人;
(2)表明签名人对文件内容的确认;
(3)构成签名人对文件内容正确性和完整性负责的根据。与传统商务活动中的签名盖章作用相同,具有同样的法律效力。
2.什么是数字签名
数字签名只有信息的发送者才能产生,别人无法伪造的一段数字串,它同时也是对发送者发送的信息的真实性的一个证明。 ISO 7498-2标准对数字签名是这样定义的:附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据或变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(如接收者)伪造。数字签名是目前电子商务、电子政务中应用最普遍、技术最成熟、可操作性最强的一种电子签名方法。所谓”数字签名”就是通过某种密码运算生成一系列符号及代码组成电子密码进行签名,来代替书写签名或印章。它采用了规范化的程序和科学化的方法,用于鉴定签名人的身份以及对一项电子数据内容的认可。它还能验证出文件的原文在传输过程中有无变动,确保传输电子文件的完整性、真实性和不可抵赖性。
3.数字签名的作用
1)信息传输的保密性
交易中的商务信息均有保密的要求。如果信用卡的帐号和用户名被别人获悉,就可能被盗用:订货和付款的信息被竞争对手获悉,就可能丧失商机,因此在电子商务的信息传播中一般都有加密的要求。
2)交易者身份的可鉴别性
网上交易的双方很可能素昧平生,相隔千里。对于商家要确认客户端不是骗子,而客户也要相信网上的商店不是一个玩弄欺诈的黑店,因此能方便而可靠地确认对方的身份是网上交易的前提。为顾客或用户开展服务的银行、信用卡公司和销售商店,为了做到安全、保密、可靠地开展服务活动,都需要进行身份认证的工作。对有关的销售商店来说,他们不知道顾客的信用卡号码,只能把信用卡的确认工作完全交给银行来完成。银行和信用卡公司可以采用各种保密与识别方法来确认顾客的身份是否合法、确认订货和订货收据信息同时还要注意防止发生拒付款等问题。
3)数据交换的完整性
交易的文件是不能被修改的。举个例子,比如订购黄金。供货方在收到订单后,发现金价大幅上涨了,如果它能改动订单内容,将订购数1吨改为1克,则可大幅受益,而订货方就会因此而蒙受损失。因此电子交易文件也要做到不可修改,以保障交易的严肃性和公正性。
4)发送信息的不可否认性
由于商情的千变万化,交易一旦达成是不能被否认的。否则必然会损害一方的利益。再如订购黄金,订货时金价较低,但收到订单后,金价上涨了,如果供货方能否认收到订单的实际时间,甚至否认收到订单的事实,则订货方就会蒙受损失。因此电子交易通信过程的各个环节都必须是不可否认的。
5)信息传递的不可重放性
如在日常生活中,A向B借了钱,同时写了一张借条给B;当A还钱的时候,肯定要向B索回他写的借条撕毁,不然,恐怕他会再次挟借条要求A再次还钱。在数字签名中,如果采用了对签名报文添加流水号、时戳等技术,可以防止重放攻击。
4.数字签名的用途
数字证书的用途很广泛,它可以用于方便快捷安全地发送电子邮件、访问安全站点、网上招标投标、网上签约、网上订购、网上公文的安全传送、网上办公、网上缴费、网上缴税、网上购物等安全电子事务处理和安全电子交易活动。
在网络应用中,数字签名比手工签字更具优越性,数字签名是进行身份鉴别与网上安全交易的通用实施技术。当然,网络环境还有很多其他威胁,要由其他专门技术解决,如防火墙技术、反病毒技术、入侵检测技术等。在网络应用中,凡是要解决伪造、抵赖、冒充、篡改与身份鉴别的问题,都可运用数字签名来处理。
数字签名技术是结合消息摘要函数和公钥加密算法的具体加密应用技术。数字签名(Digital Signature)指一个用自己的非对称密码算法(如:RSA算法)私钥加密后的信息摘要,附在消息后面;别人得到这个数字签名及签名前的信息内容,使用该用户分发的非对称密码算法公钥,就可以检验签名前的信息内容在传输过程或分发过程中是否己被篡改并且可以确认发送者的身份。
为了实现网络环境下的身份鉴别、数据完整性认证和抗否认的功能,数字签名应满足以下要求:
(1)签名者发出签名的消息后,就不能再否认自己所签发的消息;
(2)接收者能够确认或证实签名者的签名,但不能否认;
(3)任何人都不能伪造签名;
(4)第三方可以确认收发双方之间的消息传送,但不能伪造这一过程,这样,当通信的双方关于签名的真伪发生争执时,可由第三方来解决双方的争执。
对于一个典型的数字签名体系而言,它必须包含2个重要的组成部分:即签名算法(Signature Algorithm)和验证算法(Verification Algorithm)。为了满足上述4点要求,数字签名体系必须满足2条基本假设:
(1)签名密钥是安全的,只有其拥有者才能使用;
(2)使用签名密钥是产生数字签名的唯一途径。
1.发送方签名过程
发送方A创建数字签名的过程如下:
(1)为保证签名的速度,A先将原文进行单向HASH运算生成定长的消息摘要A
(2)利用自己的私钥加密消息摘要得到数字签名A,并将数字签名附在原消息后面
(3)通讯时用户A将自己的原文和签名文一起通过网络送给通讯对方即用户B
2.接收方验证过程
接收方B接收到发送方A的签名消息后,对A的签名消息进行验证的过程如下:
(1)将消息中的原消息与数字签名分离出来
(2)使用A的公钥解密数字签名得到摘要
(3)利用与发送方A相同的散列函数重新计算原消息的摘要
(4)比较解密后获得的消息摘要A与重新计算产生的消息摘要B,若相等则说明消息在传输过程中没有被篡改,否则消息不可靠。