[摘要] 本文从数字签名技术的概念、原理、公钥密码技术原理出发,详细介绍了数字签名技术的实现方法以及数字签名技术在电子商务安全系统中的重要作用。
[关键词] 数字签名 pki 公钥 私钥 数字摘要 hash函数
一、引言
电子商务是伴随着网络信息技术的发展和计算机应用的普及而产生的一种新型的商务交易形式。这种新型的
国际贸易方式以其特有的优势(成本低、易于参与、对需求反映迅速等),已被愈来愈多的国家及不同行业所接受和使用。然而,在电子商务中一个最重要问题就是确保交易安全,为了确保数据传输安全及交易安全,不得不采取一系列的的安全技术,如加密技术、数字签名、身份认证、密钥管理、防火墙、安全协议等。本文就数字签名技术作了较深刻探讨,并给出了该技术的实现方法。
数字签名是电子商务安全系统的核心技术,在信息安全,包括身份认证、数据完整性、不可否认性以及匿名性等方面有重要应用,特别是在大型网络安全通信中的密钥分配、认证以及电子商务系统中具有重要作用。
二、数字签名的概念
所谓数字签名就是通过某种密码运算生成一系列符号及代码组成电子密码进行签名,来代替书写签名或印章,对于这种电子式的签名还可进行技术验证,其验证的准确度是一般手工签名和图章验证无法比拟的。数字签名是目前电子商务、
电子政务中应用最普遍、技术最成熟的、可操作性最强的一种电子签名方法。它采用了规范化的程序和科学化的方法,用于鉴定签名人身份以及对一项电子数据内容的认可。它还能验证出文件的原文在传输过程中有无变动,确保传输电子文件的完整性、真实性、和不可抵赖性。
数字签名在iso7498-2标准中定义为“附加在数据单元上的一些数据,或是对数据单元所作的密码变换,这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被进行伪造。美国电子签名标准对数字签名作了如下解释:利用一套规则和一个参数对数据进行计算得到结果,用此结果能够确认签名者的身份和数据的完整性。按上述定义pki(public key infrastruction 公钥基础设施)可以提供数据单元的密码变换,并能使接收者判断数据来源及对数据进行验证。
三、数字签名的原理
该技术在具体工作时,首先发送方对信息施以数学变换,所得的信息与原信息唯一对应;在接收方进行逆变换,得到原始信息。只要数学变换方法优良,变换后的信息在传输中就具有很强的安全性,很难被破译、篡改。这一过程称为加密,对应的反变换过程称为解密。
现在有两类不同的加密技术,一类是对称加密,双方具有共享的密钥,只有在双方都知道密钥的情况下才能使用,通常应用于孤立的环境之中,比如在使用自动取款机(atm)时,用户需要输入用户识别码(pin),银行确认这个号码后,双方在获得密码的基础上进行交易,如果用户数目过多,超过了可以管理的范围时,这种机制并不可靠。
另一类是非对称加密,也称为公开密钥加密,密钥是由公开密钥和私有密钥组成的密钥对,用私有密钥进行加密,利用公开密钥可以进行解密,但是由于公开密钥无法推算出私有密钥,所以公开的密钥并不会损害私有密钥的安全,公开密钥无需保密,可以公开传播,而私有密钥必须保密,丢失时需要报告鉴定中心。
四、公钥密码技术原理
目前的数字签名技术采用的就是这种公钥密码技术。即利用两个足够大的质数与被加密原文相乘产生的积来加/解密。这两个质数无论是用哪一个与被加密的原文相乘(模乘),即对原文件加密,均可由另一个质数再相乘来进行解密。但是,若想用这个乘积来求出另一个质数,就要对大数进行质因子分解,分解一个大数的质因子是十分困难的,若选用的质数足够大,这种求解几乎是不可能的。因此,将这两个质数称为密钥对,其中一个采用私密的安全介质保密存储起来,应不对任何外人泄露,简称为“私钥”;另一个密钥可以公开发表,用数字证书的方式发布在称之为“网上黄页”的目录服务器上,用ldap协议进行查询,也可在网上请对方发送信息时主动将该公钥证书传送给对方,这个密钥称之为“公钥”。
公钥密码体制下的数字签名技术实际上是通过一个单向hash函数来实现的。信息的发送方从信息文本中生成一个128位的散列值(或消息摘要)。发送方用自己的私人密钥对这个散列值进行加密形成发送方的数字签名。然后,这个数字签名将作为信息的附件和信息一起发送给信息的接收方。信息的接收方首先从接收到的原始信息中计算出128位的散列值(消息摘要),接着再用发送方的公用密钥来对信息附加的数字签名进行解密。如果两个散列值相同,那么接收方就能确认该数字签名是发送方的。
五、数字签名技术的实现方法
建立在公钥密码基础上的数字签名方法有很多,rsa签名、dss签名及hash签名等。其中hash签名是目前电子商务安全中最主要的数字签名方法。下面我们就hash签名的详细过程进行分析。
hash签名也称之为数字摘要法(digital digest)或数字指纹法(digital finger print)。该数字签名方法是将数字签名与要发送的信息紧密联系在一起,它更适合于电子商务活动。将一个商务合同的个体内容与签名结合在一起,比合同和签名分开传递,更增加了可信度和安全性。数字摘要加密方法亦称安全hash编码法(sha:secure hash algorithm)或md5(md standard for message digest),由ronrivest所设计。该编码法采用单向hash函数将需加密的明文“摘要”成一串128bit的密文,这一串密文亦称为数字指纹(finger print),它有固定的长度,且不同的明文摘要必定一致。这样这串摘要使可成为验证明文是否是“真身”的“指纹”了。
只有加入数字签名及验证才能真正实现在公开网络上的安全传输。加入数字签名和验证的文件传输过程如下:
1.方首先用哈希函数从原文得到数字签名,然后采用公开密钥体系用发达方的私有密钥对数字签名进行加密,并把加密后的数字签名附加在要发送的原文后面。
2.发送方选择一个密钥对文件进行加密,并把加密后的文件通过网络传输到接收方。
3.发送方用接收方的公开密钥对密秘密钥进行加密,并通过网络把加密后的秘密密钥传输到接收方。
4.接受方使用自己的私有密钥对密钥信息进行解密,得到秘密密钥的明文。
5.接收方用秘密密钥对文件进行解密,得到经过加密的数字签名。
6.接收方用发送方的公开密钥对数字签名进行解密,得到数字签名的明文。
7.接收方用得到的明文和哈希函数重新计算数字签名,并与解密后的数字签名进行对比。如果两个数字签名是相同的,说明文件在传输过程中没有被破坏。
数字签名的实现过程如下:
如果第三方冒充发送方发出了一个文件,因为接收方在对数字签名进行解密时使用的是发送方的公开密钥,只要第三方不知道发送方的私有密钥,解密出来的数字签名和经过计算的数字签名必然是不相同的。这就提供了一个安全的确认发送方身份的方法。
安全的数字签名使接收方可以得到保证:文件确实来自声称的发送方。鉴于签名私钥只有发送方自己保存,他人无法做一样的数字签名,因此他不能否认他参与了交易。
数字签名的加密解密过程和私有密钥的加密解密过程虽然都使用公开密钥体系,但实现的过程正好相反,使用的密钥对也不同。数字签名使用的是发送方的密钥对,发送方用自己的私有密钥进行加密,接收方用发送方的公开密钥进行解密。这是一个一对多的关系:任何拥有发送方公开密钥的人都可以验证数字签名的正确性,而私有密钥的加密解密则使用的是接收方的密钥对,这是多对一的关系:任何知道接收方公开密钥的人都可以向接收方发送加密信息,只有唯一拥有接收方私有密钥的人才能对信息解密。在实用过程中,通常一个用户拥有两个密钥对,一个密钥对用来对数字签名进行加密解密,一个密钥对用来对私有密钥进行加密解密。这种方式提供了更高的安全性。
六、结束语
数字签名在电子商务活动中有效解决否认、伪造、篡改及冒充等问题。然而,我国数字签名技术的研究和应用刚刚起步,与国际先进水平有一定差距。在数字签名的引入过程中不可避免地会带来一些问题,需要进一步加以解决,数字签名需要相关法律条文的支持。如需要立法机构对数字签名技术有足够的重视,并且在立法上加快脚步,制定有关法律,以充分实现数字签名具有的特殊鉴别作用,有力推动电子商务以及其他网上事务的发展。
随着电子商务的蓬勃发展,数字签名技术也将不断成熟,为商务活动和人们的生活提供可靠、便利的服务。
参考文献:
[1]刘亚松:电子商务概论.机械工业出版社,2005.9
[2]肖德琴:电子商务安全保密技术与应用.华南理工大学出版社,2005.1
[3]管有庆等:电子商务安全技术.北京邮电大学出版社,2005.11
本文链接:http://www.qk112.com/lwfw/guanlilunwen/dianzishangwuguanlilunwen/40003.html