论文部分内容阅读
【摘要】由于数字签名可以解决否认、伪造、篡改及冒充等问题,因此在一些特殊行业,比如银行、金融、电子商务等有着广泛的应用。本文首先简要介绍了数字签名的功能,然后介绍了数字签名的方法和数字签名应用与过程。
【关键词】数字签名;功能;过程
【中图分类号】G271 【文献标识码】A 【文章编号】1672-5158(2013)01—0071—01
在网络通信过程中,数据加密是保护数据的最基本方法,但也只能防止第三者获得真实数据,它不能保证通信双方的相互欺骗。数字签名技术能够保证传输信息的真实性、解决通信双方的争端,,尤其在数据完整性检验、身份鉴别、身份证明、防否认等方面,功能独特,满足这些要求的最好的办法就是使用数字签名技术。
一、数字签名的功能
在传统的商业系统中,书面文件的亲笔签名或印章是用来规定契约性的责任的。签名或印章起到认证、核准、生效的作用。同样地,在电子商务活动中,传送的文件是通过数字签名来证明当事人身份与数据真实性的,其功能表现在以下几方面。(1)机密性数字签名中报文不要求加密,但在网络传输中,可以将报文信息用接收方的公钥进行加密,以保证信息的机密性。(2)完整性数字签名与原始文件或其摘要一起发送给接收者,一旦信息被篡改,接收者可通过计算摘要和验证签名来判断该文件无效,从而保证了数据的完整性。(3)身份认证在数字签名中,用户的公钥是其身份的标志,当使用私钥签名时,如果接收方或验证方用其公钥进行验证并获通过,那么可以肯定签名人就是拥有私钥的那个人,因为私钥是签名人唯一知道的秘密。身份认证包括通信实体认证和数据源认证。(4)防伪造除签名人外,任何其他人不可能伪造消息的签名,因为签名密钥即私钥只有签名者自己知道,其他人不可能构造出正确的签名数据。(5)防抵赖数字签名既可作为身份认证的依据,也可作为签名者签名操作的证据,防止抵赖。要防止接收者的抵赖,可以在数字签名系统中要求接收者返回一个自己签名的表示收到的报文,给发送者或受信任第三方。如果接收者不返回任何信息,此次通信可终止或重新开始,签名方也没有任何损失,由此双方均不可抵赖。(6)防重放攻击如在电子商务中,公司A向公司B发送了一份商品订单,如果有攻击者中途截获订单并发送多份给公司B,这样会导致公司B以为公司A订购了多批商品。在数字签名中,通常采用了对签名报文加盖时间戳或添加处理流水号等技术,可以防止这种重放攻击。
二、数字签名的方法
应用广泛的数字签名方法主要有三种,即:RSA签名、DSS签名和Hash签名。这三种方法可单独使用,也可综合在一起使用。数字签名是通过密码算法对数据进行加、解密变换实现的,用DES算法、RSA算法都可实现数字签名。但三种技术或多或少都有缺陷,或者没有成熟的标准。
(1)用RSA或其他公开密钥密码算法的最大方便是没有密钥分配问题(网络越复杂、网络用户越多,其优点越明显)。因为公开密钥加密使用两个不同的密钥,其中有一个是公开的,另一个是保密的。公开密钥可以保存在系统目录内、未加密的电子邮件信息中、电话黄页(商业电话)上或公告牌里,网上的任何用户都可获得公开密钥。而私有密钥是用户专用的,由用户本身持有,它可以对由公开密钥加密的信息进行解密。RSA算法中数字签名技术实际上是通过一个哈希函数来实现的。数字签名的特点是它代表了文件的特征,文件如果发生改变,数字签名的值也将发生变化。不同的文件将得到不同的数字签名。一个最简单的哈希函数是把文件的二进制码相累加,取最后的若干位。哈希函数对发送数据的双方都是公开的。
(2)DSS数字签名是由美国国家标准化研究院和国家安全局共同开发的。由于它是由美国政府颁布实施的,主要用于与美国政府做生意的公司,其他公司则较少使用。
(3)Hash签名是最主要的数字签名方法,也称为数字摘要法(DigitalDigest)或数字指纹法。它与RSA数字签名是单独的签名不同,该数字签名方法是将数字签名与要发送的信息紧密地联系在一起,它更适合于电子商务活动。
三、数字签名应用与过程
目前的数字签名是建立在公共密钥体制基础上的,它是公用密钥加密技术的另一类应用。它的主要方式是,报文的发送方从报文文本中生成一个128位的散列值(或报文摘要)。发送方用自己的私人密钥对这个散列值进行加密来形成发送方的数字签名。然后,这个数字签名将作为报文的附件和报文一起发送给报文的接收方。报文的接收方首先从接收到的原始报文中计算出128位的散列值(或报文摘要),接着再用发送方的公用密钥来对报文附加的数字签名进行解密。如果两个散列值相同,那么接收方就能确认该数字签名是发送方的。通过数字签名能够实现对原始报文的鉴别。
只有加入数字签名及验证才能真正实现在公开网络上的安全传输。加入数字签名和验证的文件传输过程:发送方首先用哈希函数从原文得到数字签名,然后采用公开密钥体系用发送方的私有密钥对数字签名进行加密,并把加密后的数字签名附加在要发送的原文后面。发送方选择一个秘密密钥对文件进行加密,并把加密后的文件通过网络传输到接收方。发送方用接收方的公开密钥对秘密密钥进行加密,并通过网络把加密后的秘密密钥传输到接收方。接收方使用自己的私有密钥对密钥信息进行解密,得到秘密密钥的明文。接收方用秘密密钥对文件进行解密,得到经过加密的数字签名。接收方用发送方的公开密钥对数字签名进行解密,得到数字签名的明文。接收方用得到的明文和哈希函数重新计算数字签名,并与解密后的数字签名进行对比。如果两个数字签名是相同的,说明文件在传输过程中没有被破坏。
如果第三方冒充发送方发出了一个文件,因为接收方在对数字签名进行解密时使用的是发送方的公开密钥,只要第三方不知道发送方的私有密钥,解密出来的数字签名和经过计算的数字签名必然是不相同的。这就提供了一个安全地确认发送方身份的方法。安全的数字签名使接收方可以得到保证:文件确实来自声称的发送方。鉴于签名私钥只由发送方自己保存,他人无法做一样的数字签名,因此他不能否认自己参与了交易。数字签名的加密解密过程和私有密钥的加密解密过程虽然都使用了公开密钥体系,但实现的过程正好相反,使用的密钥对也不同。数字签名使用的是发送方的密钥对,发送方用自己的私有密钥进行加密,接收方用发送方的公开密钥进行解密。这是一个一对多的关系:任何拥有发送方公开密钥的人都可以验证数字签名的正确性。而私有密钥的加密解密则使用的是接收方的密钥对,这是多对一的关系:任何知道接收方公开密钥的人都可以向接收方发送加密信息,只有唯一拥有接收方私有密钥的人才能对信息解密。在实用过程中,通常一个用户拥有两个密钥对,一个密钥对用来对数字签名进行加密解密,一个密钥对用来对私有密钥进行加密解密。这种方式提供了更高的安全性。
参考文献
[1]俞民华,方科亚.数字签名系统实现与应用研究[J].信息与电脑(理论版).2011(04)
[2]张凤.浅谈数字签名[J].硅谷.2010(05)
[5]張瑞娟.数字签名技术在网络安全中的应用研究[J].科技广场.2010(06)
【关键词】数字签名;功能;过程
【中图分类号】G271 【文献标识码】A 【文章编号】1672-5158(2013)01—0071—01
在网络通信过程中,数据加密是保护数据的最基本方法,但也只能防止第三者获得真实数据,它不能保证通信双方的相互欺骗。数字签名技术能够保证传输信息的真实性、解决通信双方的争端,,尤其在数据完整性检验、身份鉴别、身份证明、防否认等方面,功能独特,满足这些要求的最好的办法就是使用数字签名技术。
一、数字签名的功能
在传统的商业系统中,书面文件的亲笔签名或印章是用来规定契约性的责任的。签名或印章起到认证、核准、生效的作用。同样地,在电子商务活动中,传送的文件是通过数字签名来证明当事人身份与数据真实性的,其功能表现在以下几方面。(1)机密性数字签名中报文不要求加密,但在网络传输中,可以将报文信息用接收方的公钥进行加密,以保证信息的机密性。(2)完整性数字签名与原始文件或其摘要一起发送给接收者,一旦信息被篡改,接收者可通过计算摘要和验证签名来判断该文件无效,从而保证了数据的完整性。(3)身份认证在数字签名中,用户的公钥是其身份的标志,当使用私钥签名时,如果接收方或验证方用其公钥进行验证并获通过,那么可以肯定签名人就是拥有私钥的那个人,因为私钥是签名人唯一知道的秘密。身份认证包括通信实体认证和数据源认证。(4)防伪造除签名人外,任何其他人不可能伪造消息的签名,因为签名密钥即私钥只有签名者自己知道,其他人不可能构造出正确的签名数据。(5)防抵赖数字签名既可作为身份认证的依据,也可作为签名者签名操作的证据,防止抵赖。要防止接收者的抵赖,可以在数字签名系统中要求接收者返回一个自己签名的表示收到的报文,给发送者或受信任第三方。如果接收者不返回任何信息,此次通信可终止或重新开始,签名方也没有任何损失,由此双方均不可抵赖。(6)防重放攻击如在电子商务中,公司A向公司B发送了一份商品订单,如果有攻击者中途截获订单并发送多份给公司B,这样会导致公司B以为公司A订购了多批商品。在数字签名中,通常采用了对签名报文加盖时间戳或添加处理流水号等技术,可以防止这种重放攻击。
二、数字签名的方法
应用广泛的数字签名方法主要有三种,即:RSA签名、DSS签名和Hash签名。这三种方法可单独使用,也可综合在一起使用。数字签名是通过密码算法对数据进行加、解密变换实现的,用DES算法、RSA算法都可实现数字签名。但三种技术或多或少都有缺陷,或者没有成熟的标准。
(1)用RSA或其他公开密钥密码算法的最大方便是没有密钥分配问题(网络越复杂、网络用户越多,其优点越明显)。因为公开密钥加密使用两个不同的密钥,其中有一个是公开的,另一个是保密的。公开密钥可以保存在系统目录内、未加密的电子邮件信息中、电话黄页(商业电话)上或公告牌里,网上的任何用户都可获得公开密钥。而私有密钥是用户专用的,由用户本身持有,它可以对由公开密钥加密的信息进行解密。RSA算法中数字签名技术实际上是通过一个哈希函数来实现的。数字签名的特点是它代表了文件的特征,文件如果发生改变,数字签名的值也将发生变化。不同的文件将得到不同的数字签名。一个最简单的哈希函数是把文件的二进制码相累加,取最后的若干位。哈希函数对发送数据的双方都是公开的。
(2)DSS数字签名是由美国国家标准化研究院和国家安全局共同开发的。由于它是由美国政府颁布实施的,主要用于与美国政府做生意的公司,其他公司则较少使用。
(3)Hash签名是最主要的数字签名方法,也称为数字摘要法(DigitalDigest)或数字指纹法。它与RSA数字签名是单独的签名不同,该数字签名方法是将数字签名与要发送的信息紧密地联系在一起,它更适合于电子商务活动。
三、数字签名应用与过程
目前的数字签名是建立在公共密钥体制基础上的,它是公用密钥加密技术的另一类应用。它的主要方式是,报文的发送方从报文文本中生成一个128位的散列值(或报文摘要)。发送方用自己的私人密钥对这个散列值进行加密来形成发送方的数字签名。然后,这个数字签名将作为报文的附件和报文一起发送给报文的接收方。报文的接收方首先从接收到的原始报文中计算出128位的散列值(或报文摘要),接着再用发送方的公用密钥来对报文附加的数字签名进行解密。如果两个散列值相同,那么接收方就能确认该数字签名是发送方的。通过数字签名能够实现对原始报文的鉴别。
只有加入数字签名及验证才能真正实现在公开网络上的安全传输。加入数字签名和验证的文件传输过程:发送方首先用哈希函数从原文得到数字签名,然后采用公开密钥体系用发送方的私有密钥对数字签名进行加密,并把加密后的数字签名附加在要发送的原文后面。发送方选择一个秘密密钥对文件进行加密,并把加密后的文件通过网络传输到接收方。发送方用接收方的公开密钥对秘密密钥进行加密,并通过网络把加密后的秘密密钥传输到接收方。接收方使用自己的私有密钥对密钥信息进行解密,得到秘密密钥的明文。接收方用秘密密钥对文件进行解密,得到经过加密的数字签名。接收方用发送方的公开密钥对数字签名进行解密,得到数字签名的明文。接收方用得到的明文和哈希函数重新计算数字签名,并与解密后的数字签名进行对比。如果两个数字签名是相同的,说明文件在传输过程中没有被破坏。
如果第三方冒充发送方发出了一个文件,因为接收方在对数字签名进行解密时使用的是发送方的公开密钥,只要第三方不知道发送方的私有密钥,解密出来的数字签名和经过计算的数字签名必然是不相同的。这就提供了一个安全地确认发送方身份的方法。安全的数字签名使接收方可以得到保证:文件确实来自声称的发送方。鉴于签名私钥只由发送方自己保存,他人无法做一样的数字签名,因此他不能否认自己参与了交易。数字签名的加密解密过程和私有密钥的加密解密过程虽然都使用了公开密钥体系,但实现的过程正好相反,使用的密钥对也不同。数字签名使用的是发送方的密钥对,发送方用自己的私有密钥进行加密,接收方用发送方的公开密钥进行解密。这是一个一对多的关系:任何拥有发送方公开密钥的人都可以验证数字签名的正确性。而私有密钥的加密解密则使用的是接收方的密钥对,这是多对一的关系:任何知道接收方公开密钥的人都可以向接收方发送加密信息,只有唯一拥有接收方私有密钥的人才能对信息解密。在实用过程中,通常一个用户拥有两个密钥对,一个密钥对用来对数字签名进行加密解密,一个密钥对用来对私有密钥进行加密解密。这种方式提供了更高的安全性。
参考文献
[1]俞民华,方科亚.数字签名系统实现与应用研究[J].信息与电脑(理论版).2011(04)
[2]张凤.浅谈数字签名[J].硅谷.2010(05)
[5]張瑞娟.数字签名技术在网络安全中的应用研究[J].科技广场.2010(06)