电子商务公开密钥体系的新思考
来源:用户上传
作者: 刘克强
摘要:为了保障网络中数据通信的安全、网上用户身份的识别和电子商务、电子政务中网上交易的安全,介绍了公开密钥加密体系(PKI)和数字签名,介绍了有效的数字签名方法,并介绍了局域网中文件加密和数字签名系统的管理与应用。
关键词:数据通信;公开密钥;加密体系;数字签名
中图分类号:062.5 文献标识码:A 文章编号:1005-6432(2008)41-0076-02
互联网的迅速发展改变了传统的事务处理方式,开放的网络环境和开放的网络协议给基于网络的业务系统的使用(如证券系统、银行系统、网上购物以及电子政务系统等)带来了极大的方便性。计算机网络得到了迅猛的发展,同时,由于计算机网络缺乏足够的安全性,网络的安全性问题越来越受到高度的重视,网络安全对策显得尤为重要,如客户密码的安全保密和客户身份的网络认证,身份认证的真实性和身份认证手段本身的可靠性。数字签名技术的发展,很好地解决了网络用户身份认证的功能,防止虚假用户冒充真实用户在网上开展业务。
一、公开密钥加密体系
公开密钥加密的基本思想是:每个用户都分配两个密钥,一个是公开密钥,对其他用户都公开;另一个是私有密钥,仅为自己所有。经用户公开密钥加密的信息只能通过他的私有密钥来解密。反过来,经用户私有密钥加密的信息也只能通过他的公开密钥来解密。其中最有名的一种是RSA体制,它已被推荐为公开密钥数据加密的标 准。
RSA算法取自于它的创始人的名字(Rivest Shamir Adelman),该算法也属于分组加密算法。他使用2个密钥,密钥长度从40b到2048b可变,加密时把明文分割成长度小于密钥长度的块,RSA算法把每一块明文转化为与密钥长度相同的密文块。密钥越长,加密效果越好,但开销也随之增大,所以要在安全与性能之间折中考虑,实际应用中一般采用64b密钥。RSA算法的体制构造是基于数论的欧拉定理,产生公开密钥和秘密密钥的方法如下:
(1)取2个互异的大素数p和q,p和q是保密的。
(2)计算n=(p-1)(q-1),式中:n为公开;p和q为保密。
(3)随机选取整数e,且e与1互为素数,可以找出另一个值d满足。
(4)(n,e)和(n,d)这两组数即分别为公开密钥和私有密钥。对于明文M,用公钥(n,e)加密可得到密文C,C=Memod(n);对于密文C,用私钥(n,d)解密可得到明文M,M=Cdmod(n)。
基于公开密钥密码系统优点如下:
①保护信息机密:任何人均可以将明文加密成密文,此后只有拥有解密密钥的人才能解密;
②简化密钥分配及管理问题:网络上的每一个人只需要一把加密(公开)密钥及一把解密(私有)密钥,这些密钥只要由接受方自己产生即可,除拥有更高的安全性外,更大大简化密钥之分配及管理问题,不需要在用户之间传递私钥,n个人互相通信仅需要23n个密码,密码管理容易,可以适应开放性的使用环境;
③可达到不可否认功能:由于只有接受方自己才拥有解密密钥,若他先用解密密钥将明文加密(签名)成密文(签名文),则任何人均能用公开密钥将密文解密(验证)成明文,并与原来明文对照。由于只有接受方才能将明文签名,任何人均能验证无法伪造。因此,此签名文就如同接受方亲笔签名一样,具有法律效力,日后有争执时(如签名者事后否认),第三者(如法院)可以很容易做出正确的判断。这种功能称做数字签名。
二、数据签名
根据数字签名标准DSS(Digital Signature Standard),数字签名的实现过程有以下五个步骤。
步骤1 发送方用一个hash函数对消息进行处理,产生消息摘要(Message Digest)。
步骤2 发送方将自己的私人密钥和消息摘要进行DSA算法计算产生数字签名。
步骤3 将数字签名和消息一起发送出去。
步骤4 接收方用同样的hash函数对消息进行计算, 产生消息摘要。
步骤5 接收方用DSA算法对消息摘要和发送方的公开密钥进行计算,产生数字签名1,同时,从接收到的消息中可以得到数字签名2。两者相等,则该数字签名通过验证,否则不能。
有效的数字签名有一对一的数字签名和多重签名等。多重数字签名,在今天的分布式系统上比较流行,往往在地理上是分布的,多人签名的组织有很多方法,一种简单有效的方法是按一定的顺序签名,签名是累加的,每个签名人只能验证前一位的签名是否正确,然后在它的基础上加上自己的签名,否则停止签名。比较典型的有序多重数字签名方案,是以美国数字签名标准算法DSA为基础设计的一种名叫ELGamal型有序多重数字签名方案。它允许多方有顺序地对某一份文件进行签名,然后把它们构成一份群体签名。该方案可以检测和防止不诚实签名者的欺骗行为。由于简化了签名者之间的接口,减少了通信成本,有效地避免了签名死锁,因而更具安全性和实用性。除了有序多重签名, 广播多重签名应用也很广泛。这两种多重数字签名方案从安全性上说均基于大整数因子分解或者有限域上的离散对数难题,需要PKI的支持和验证,而用更加安全的椭圆曲线密码体制实现多种签名将更能满足实际应用的需求,因而设计出基于椭圆曲线密码体制的多重签名方案将成为现今研究的新课题。
三、局域网中文件加密和数字签名系统的管理
在局域网中文件加密和数字签名系统的管理主要是对服务器端公开密钥库的管理。
管理员的主要工作有:
(1)公开密钥的申请登记。当新用户加入时,用户把他的公开密钥和用户信息传送给管理员,管理员确认后,把用户密钥和资料加入到数据库中。
(2)密钥的备份与恢复。为了系统的稳定和安全,管理员应定期对公开密钥数据库进行备份,在系统出错或崩溃时负责数据的恢复。
(3)公开密钥的更新。当用户的私人密钥发生灾难性毁坏不能恢复时,需要重新申请加入公开密钥,管理员负责更新公开密钥库,但其原来的公开密钥转移到相关数据库中。
(4)公开密钥的吊销。当用户需要离开单位或其他原因不再使用本系统时,管理员负责将其公开密钥转移到相关数据库中保存。
四、局域网中文件加密和数字签名系统的具体应用
用户使用文件加密和数字签名系统的步骤:
(1)当用户第一次使用该系统时,要安装客户端软件,利用客户端软件生成用户的公开密钥和私人密钥,私人密钥存储在用户的计算机内部,把公开密钥导出到文件中,再把该文件和用户的相关信息一起发送给服务器管理员。管理员收到信息后,根据其他手段确认用户的资料正确后,把用户的公开密钥和资料加入到数据库中,并用用户的公开密钥把确认信息加密后发送给用户,用户得到确认信息后就可以使用文件加密和数字签名了。
(2)当用户之间传送带有数字签名的文件时,发送方利用客户端软件产生要发送的文件的数字签名,并把文件和数字签名一起发送给接收方。接收方收到文件和数字签名后,可以利用客户端软件对数字签名进行验证。验证时,客户端软件向服务器端索取发送方的公开密钥,利用发送方的公开密钥对数据签名进行验证,如果验证通过,接收方可以把文件和数字签名保存,事后发送方不能否认所发送的文件,如果所传送的文件在传送中出现错误或被纂改,则数字签名将不能通过验证。
(3)当用户之间传送加密文件时,发送方首先利用客户端软件对文件加密,加密时客户端软件产生一个密钥,以对称加密算法用该密钥对文件进行加密,然后向服务器索取接收方的公开密钥,用接收方的公开密钥对加密文件所用的随机密钥进行加密,并把加密后的随机密码一起写到文件中。发送方把密钥加密后的文件发送给接收方,接收方收到文件后用自己的私人密钥可以对文件解密。根据公开密钥算法的原理,利用公开密钥加密的数据,只能用其对应的私人密钥进行加密,所以,发送方发送的加密文件只能由相应的合法接收方才能对文件进行解密。在发送加密文件时,也可使用数字签名。
基于网络环境下数据加密/签名的应用将越来越广泛,PKI及数字证书作为技术基础可以很好地实现通行于网络的统一标准的身份认证,包含有线和无线通信领域。目前国外已经选择安全系数较高的椭圆曲线数字签名算法,而国内仍然只是在RSA和DSA之间进行选择。因此,吸收国外先进经验,开展具有自主创新思想的加密签名技术研究已经变得非常迫切。随着人们对于密码体系的更深入的研究以及数字签名算法的完善和新算法的提出,数字签名作为网络信息安全的一项重要技术,它的应用领域也将不断扩大。
作者单位:首都经济贸易大学信息学院
参考文献:
[1]赖溪松.计算机密码学及其应用[M].北京:国防工业出版社,2001:134-135.
[2]李海泉,等.计算机网络安全与加密技术[M].北京:科学出版社,2001:45.
转载注明来源:https://www.xzbu.com/2/view-382312.htm