论文部分内容阅读
【中图分类号】TP393.08
1、安全数字签名对于电子商务的重要性
随着电子商务在我国的迅猛发展,电子商务中的网络安全问题日渐突出。在电子商务交易中,商家、客户和银行等各参与方是通过开放的互联网连接在一起的,相互之间的信息传递也要通过互联网来进行,这一特点使交易的风险性和不确定性加大,从而对网络传输过程中数据的安全和保密提出了更高的要求,尤其对于电子商务支付中涉及到的敏感数据,则更需确保其万无一失。
所以,在我看来,电子商务的安全首先是一个复杂的管理问题。企业内部网络的环境已很复杂,而当把企业网与完全开放的因特网相连时,整个系统的安全性、可靠性及可管理性等方面就更加难以控制。其次,它是一个复杂的技术问题。电子商务是通过计算机网络传输商务信息和进行贸易的,如何保证与传统商业活动类似的票据传递和商业确认,这首先需要技术上的支持,如电子签名、电子识别等技术手段的采用。再次,它是一个法律问题,电子商务安全问题的真正解决需要通过法律的完善来加以保证。
2、数字签名的实现方法
实现数字签名有很多方法,目前数字签名采用较多的是公钥加密技术,如基于RSA Data Security公司的PKCS(Public Key Cryptography Standards)、DSA(Digital Signature Algorithm)、x.509、PGP(Pretty Good Privacy)。1994年美国标准与技术协会公布了数字签名标准(DSS)而使公钥加密技术广泛应用。同时应用散列算法(Hash)也是实现数字签名的一种方法。我主要分析基于公钥加密的数字签名技术。
2. 1非对称密钥密码算法进行数字签名
算法的含义:非对称密钥密码算法使用两个密钥:公开密钥和私有密钥,分别用于对数据的加密和解密,即如果用公开密钥对数据进行加密,只有用对应的私有密钥才能进行解密;如果用私有密钥对数据进行加密,则只有用对应的公开密钥才能解密。使用公钥密码算法进行数字签名通用的加密标准有: RSA,DSA,Diffie-Hellman等。
签名和验证过程:
1. 发送方(甲)首先用公开的单向函数对报文进行一次变换,得到数字签名,然后利用私有密钥对数字签名进行加密后附在报文之后一同发出。
2. 接收方(乙)用发送方的公开密钥对数字签名进行解密交换,得到一个数字签名的明文。发送方的公钥可以由一个可信赖的技术管理机构即认证中心(CA)发布的。接收方将得到的明文通过单向函数进行计算,同样得到一个数字签名,再将两个数字签名进行对比,如果相同,则证明签名有效,否则无效。
这种方法使任何拥有发送方公开密钥的人都可以验证数字签名的正确性。由于发送方私有密钥的保密性,使得接受方既可以根据结果来拒收该报文,也能使其无法伪造报文签名及对报文进行修改,原因是数字签名是对整个报文进行的,是一组代表报文特征的定长代码,同一个人对不同的报文将产生不同的数字签名。这就解决了银行通过网络传送一张支票,而接收方可能对支票数额进行改动的问题,也避免了发送方逃避责任的可能。
2. 2对称密钥密码算法进行数字签名。
算法含义:对称密钥密码算法所用的加密密钥和解密密钥通常是相同的,即使不同也可以很容易地由其中的任意一个推导出另一个。在此算法中,加、解密双方所用的密钥都要保守秘密。由于计算机速度而广泛应用于大量数据如文件的加密过程中,如RD4和DES,用IDEA作数字签名是不提倡的。使用分组密码算法数字签名通用的加密标准有:DES,Tripl-DES,RC2,RC4,CAST等。采用對称密钥进行签名过程中,除了文件签字者和文件接受者双方,还需要第三方认证。
2. 3盲签名
盲签名(blind signature)是一种允许一个人让另一个人签署文档,而第一个人不向签名者泄露任何关于文档内容的技术。而且签名被接收方泄漏后,签名者无法追综签名。盲签名多应用于电子货币和电子选举。
盲签名的过程:
(1)发送方将文件M乘一个随机数得M’,这个随机数通常称为盲因子,然后将将盲消息M’送给接收方;
(2)接收方在M’上签名后,将其签名Sig(M’)送回发送方;
(3)发送方通过除去盲因子,可从接收方关于M’的签名Sig(M’)中得到接收方关于原始文件M的签名Sig(M)。
2. 4多重签名
多重数字签名的目的是将多个人的数字签名汇总成一个签名数据进行传送,签名收方只需验证一个签名便可确认多个人的签名。
多重数字签名的目的是指多个用户对同一个文件进行联合签名.然后将多个人的数字签名汇总成一个签名数据进行传送,签名收方只需验证一个签名便可确认多个人的签名。
2. 5代理签名
代理签名的目的是当某签名人因公务或身体健康等原因不能行使签名权力时,将签名权委派给其他人替自己行使签名权。
假设A委托B进行代理签名,则签名必须满足三个最基本的条件:
(1)签名接收方能够像验证A的签名那样验证B的签名;
(2)A的签名和B的签名应当完全不同,并且容易区分;
(3)A和B对签名事实不可否认。
3、安全数字签名的实现
(1) 将用户提交的数据,打成数据包M。
(2) 用MD5 算法计算数据包的报文摘要的值C。
(3) 用RSA 算法将报文摘要的值用用户的SK加密,得到C1 。
(4) 形成传送的信息,即构成用户名+ C1 +M。
(5) 用发送方的私钥来反向加密此信息包(用户名+C1+M)形成一密文。
(6) 然后再用接收方的公开密钥来再一次加密上一个阶段产生的密文.
把上一阶段形成的信息包(用户名+C1+M)看作加密数据,应用接收方的公开密钥进行再一次加密,形成嵌套加密。最后再把嵌套加密的最终数据发给接收方。
(7)最后再把形成的双重密文发送给接收方
当接收方收到此密文后,先用唯一的接收方私有密钥去解密,得到一密文,接着再用发送方的公开密钥来解密,得到用户名+C1+M,
(8) 根据双方规定的协议分离出用户名,密文C1 和数据包M;
(9) 由RSA 算法用用户的公钥对C1 解密,得到数字签名C
(10) 用MDS 算法对提取出的明文数据包M 进行计算得到C′;
(11)将C 和C′进行比较,若相同,则签名有效,不同则签名无效。
接收方处理数据包时,对数据进行了两次解密:
安全性的数字签名比原始的签名方案的优点在于保密性方面,嵌套加密决定了,只有成功进行第一次的解密,才能继续进行第二次解密。而能成功进行第一次解密必须具备有接收方的私钥,接收方的私只有接收方自已知道,所以只有正确的接收方才能解开第一次加密,这就保证了保密性,在第二次的解密中与传统的数字签名类似保证了数据是否是由正确的发送方传过来,同时也能防止发送方事后否认现象发生。
1、安全数字签名对于电子商务的重要性
随着电子商务在我国的迅猛发展,电子商务中的网络安全问题日渐突出。在电子商务交易中,商家、客户和银行等各参与方是通过开放的互联网连接在一起的,相互之间的信息传递也要通过互联网来进行,这一特点使交易的风险性和不确定性加大,从而对网络传输过程中数据的安全和保密提出了更高的要求,尤其对于电子商务支付中涉及到的敏感数据,则更需确保其万无一失。
所以,在我看来,电子商务的安全首先是一个复杂的管理问题。企业内部网络的环境已很复杂,而当把企业网与完全开放的因特网相连时,整个系统的安全性、可靠性及可管理性等方面就更加难以控制。其次,它是一个复杂的技术问题。电子商务是通过计算机网络传输商务信息和进行贸易的,如何保证与传统商业活动类似的票据传递和商业确认,这首先需要技术上的支持,如电子签名、电子识别等技术手段的采用。再次,它是一个法律问题,电子商务安全问题的真正解决需要通过法律的完善来加以保证。
2、数字签名的实现方法
实现数字签名有很多方法,目前数字签名采用较多的是公钥加密技术,如基于RSA Data Security公司的PKCS(Public Key Cryptography Standards)、DSA(Digital Signature Algorithm)、x.509、PGP(Pretty Good Privacy)。1994年美国标准与技术协会公布了数字签名标准(DSS)而使公钥加密技术广泛应用。同时应用散列算法(Hash)也是实现数字签名的一种方法。我主要分析基于公钥加密的数字签名技术。
2. 1非对称密钥密码算法进行数字签名
算法的含义:非对称密钥密码算法使用两个密钥:公开密钥和私有密钥,分别用于对数据的加密和解密,即如果用公开密钥对数据进行加密,只有用对应的私有密钥才能进行解密;如果用私有密钥对数据进行加密,则只有用对应的公开密钥才能解密。使用公钥密码算法进行数字签名通用的加密标准有: RSA,DSA,Diffie-Hellman等。
签名和验证过程:
1. 发送方(甲)首先用公开的单向函数对报文进行一次变换,得到数字签名,然后利用私有密钥对数字签名进行加密后附在报文之后一同发出。
2. 接收方(乙)用发送方的公开密钥对数字签名进行解密交换,得到一个数字签名的明文。发送方的公钥可以由一个可信赖的技术管理机构即认证中心(CA)发布的。接收方将得到的明文通过单向函数进行计算,同样得到一个数字签名,再将两个数字签名进行对比,如果相同,则证明签名有效,否则无效。
这种方法使任何拥有发送方公开密钥的人都可以验证数字签名的正确性。由于发送方私有密钥的保密性,使得接受方既可以根据结果来拒收该报文,也能使其无法伪造报文签名及对报文进行修改,原因是数字签名是对整个报文进行的,是一组代表报文特征的定长代码,同一个人对不同的报文将产生不同的数字签名。这就解决了银行通过网络传送一张支票,而接收方可能对支票数额进行改动的问题,也避免了发送方逃避责任的可能。
2. 2对称密钥密码算法进行数字签名。
算法含义:对称密钥密码算法所用的加密密钥和解密密钥通常是相同的,即使不同也可以很容易地由其中的任意一个推导出另一个。在此算法中,加、解密双方所用的密钥都要保守秘密。由于计算机速度而广泛应用于大量数据如文件的加密过程中,如RD4和DES,用IDEA作数字签名是不提倡的。使用分组密码算法数字签名通用的加密标准有:DES,Tripl-DES,RC2,RC4,CAST等。采用對称密钥进行签名过程中,除了文件签字者和文件接受者双方,还需要第三方认证。
2. 3盲签名
盲签名(blind signature)是一种允许一个人让另一个人签署文档,而第一个人不向签名者泄露任何关于文档内容的技术。而且签名被接收方泄漏后,签名者无法追综签名。盲签名多应用于电子货币和电子选举。
盲签名的过程:
(1)发送方将文件M乘一个随机数得M’,这个随机数通常称为盲因子,然后将将盲消息M’送给接收方;
(2)接收方在M’上签名后,将其签名Sig(M’)送回发送方;
(3)发送方通过除去盲因子,可从接收方关于M’的签名Sig(M’)中得到接收方关于原始文件M的签名Sig(M)。
2. 4多重签名
多重数字签名的目的是将多个人的数字签名汇总成一个签名数据进行传送,签名收方只需验证一个签名便可确认多个人的签名。
多重数字签名的目的是指多个用户对同一个文件进行联合签名.然后将多个人的数字签名汇总成一个签名数据进行传送,签名收方只需验证一个签名便可确认多个人的签名。
2. 5代理签名
代理签名的目的是当某签名人因公务或身体健康等原因不能行使签名权力时,将签名权委派给其他人替自己行使签名权。
假设A委托B进行代理签名,则签名必须满足三个最基本的条件:
(1)签名接收方能够像验证A的签名那样验证B的签名;
(2)A的签名和B的签名应当完全不同,并且容易区分;
(3)A和B对签名事实不可否认。
3、安全数字签名的实现
(1) 将用户提交的数据,打成数据包M。
(2) 用MD5 算法计算数据包的报文摘要的值C。
(3) 用RSA 算法将报文摘要的值用用户的SK加密,得到C1 。
(4) 形成传送的信息,即构成用户名+ C1 +M。
(5) 用发送方的私钥来反向加密此信息包(用户名+C1+M)形成一密文。
(6) 然后再用接收方的公开密钥来再一次加密上一个阶段产生的密文.
把上一阶段形成的信息包(用户名+C1+M)看作加密数据,应用接收方的公开密钥进行再一次加密,形成嵌套加密。最后再把嵌套加密的最终数据发给接收方。
(7)最后再把形成的双重密文发送给接收方
当接收方收到此密文后,先用唯一的接收方私有密钥去解密,得到一密文,接着再用发送方的公开密钥来解密,得到用户名+C1+M,
(8) 根据双方规定的协议分离出用户名,密文C1 和数据包M;
(9) 由RSA 算法用用户的公钥对C1 解密,得到数字签名C
(10) 用MDS 算法对提取出的明文数据包M 进行计算得到C′;
(11)将C 和C′进行比较,若相同,则签名有效,不同则签名无效。
接收方处理数据包时,对数据进行了两次解密:
安全性的数字签名比原始的签名方案的优点在于保密性方面,嵌套加密决定了,只有成功进行第一次的解密,才能继续进行第二次解密。而能成功进行第一次解密必须具备有接收方的私钥,接收方的私只有接收方自已知道,所以只有正确的接收方才能解开第一次加密,这就保证了保密性,在第二次的解密中与传统的数字签名类似保证了数据是否是由正确的发送方传过来,同时也能防止发送方事后否认现象发生。