基于PKI的电子商务信息安全性研究

来源:岁月联盟 作者:佚名 时间:2010-07-01
[摘 要]针对商务中信息的机密性和完整性要求,文章提出了一种基于PKI机制的公钥加密解决方法文章首先介绍了PKI的定义和功能,接着介绍了公钥密码系统的加密算法,然后重点阐述了确保信息机密性和完整性的应用模型,从而为电子商务的信息安全提供了理论基础
  [关键词]电子商务;PKI;公钥密码系统
   
  前 言
  
  电子商务(E-Commerce)是在Internet开放的环境下,基于浏览器服务器的应用方式,实现消费者的网上购物商户之间的网上交易和在线电子支付的商业运营模式最近几年,电子商务以其便利快捷的特点迅速起来,但是安全问题一直是阻碍其发展的关键因素虽然PKI的研究和应用为互联网络安全提供了必要的基础设施,但是电子商务信息的机密性和完整性仍然是迫切需要解决的问题,本文针对这一问题展开了深入研究并提出了解决方法
  
  1 PKI的定义和功能
  PKI——公钥基础设施,是构建网络应用的安全保障,专为开放型大型互联网的应用环境而设计PKI是对公钥所表示的信任关系进行管理的一种机制,它为Internet用户和应用程序提供公钥加密和数字签名服务,目的是为了管理密钥和证书,保证网上数字信息传输的机密性真实性完整性和不可否认性,以使用户能够可靠地使用非对称密钥加密技术来增强自己的安全水平PKI的功能主要包括:公钥加密证书发布证书确认证书撤销
  
  2 公钥密码系统
  由于PKI广泛应用于电子商务,故文章重点放在讨论RSA公钥密码系统上RSA的安全性是基于数论和复杂性理论中的下述论断:求两个大素数的乘积在计算上是容易的,但若分解两个大素数的积而求出它的因子则在计算上是困难的,它属于NPI类
  2. 1RSA系统
  RSA使用的一个密钥对是由两个大素数经过运算产生的结果:其中一个是公钥,为众多实体所知;另外一个是私钥,为了确保其保密性和完整性,必须严格控制并只有其所有者才能使用RSA加密算法的最基本特征就是用密钥对中的一个密钥加密的消息只能用另外一个解密,这也就体现了RSA系统的非对称性RSA具有加密和数字签名功能RSA产生公钥/私钥对加解密的过程如下:
  2. 1. 1产生一个公钥/私钥对
  (1)选取两个大素数p和q,为了获得最大程度的安全性,两个数的长度最好相同两个素数p和q必须保密
  (2)计算p与q的乘积:n =p*q
  (3)再由p和q计算另一个数z = (p-1)*(q-1)
  (4)随机选取加密密钥e,使e和z互素
  (5)用欧几里得扩展算法计算解密密钥d,以满足e*d = 1mod(z)
  (6)由此而得到的两组数(n,e)和(n,d)分别被称为公钥和私钥
  2. 1. 2加密/解密过程
  RSA的加密方法是一个实体用另外一个实体的公钥完成加密过程,这就允许多个实体发送一个实体加密过的消息而不用事先交换秘密钥或者私钥,并且由于加密是用公钥执行的,所以解密只能用其对应的私钥来完成,因此只有目标接受者才能解密并读取原始消息
  在实际操作中,RSA采用一种分组加密算法,加密消息m时,首先将它分成比n小的数据分组(采用二进制数,选取小于n的2的最大次幂),加密后的密文c,将由相同长度的分组ci组成加密公式简化为:
  ci =mie(modn)
  即对于明文m,用公钥(n,e)加密可得到密文c:
  c = memod n ,其中m = {mi|i=0,1,2,…},c= (ci|i=0,1,2,…)
  解密消息时,取每一个加密后的分组ci并计算:mi=ci d(mod n),便能恢复出明文即对于密文c,用接收者的私钥(n,d)解密可得到明文m:
  m = cd mod nm = {mi|i=0,1,2,…},c= (ci|i=0,1,2,…)
  2. 1. 3数字签名
  RSA的数字签名是加密的相反方式,即由一个实体用它的私钥将明文加密而生成的这种加密允许一个实体向多个实体发送消息,并且事先不需交换秘密钥或加密私钥,接收者用发送者的公钥就可以解密
  RSA的数字签名过程如下:
  s = md mod n , 其中m是消息,s是数字签名的结果,d和n是消息发送者的私钥
  消息的解密过程如下:
  m = se mod n , 其中e和n是发送者的公钥
  2. 1. 4散列(Hash)函数
  MD5与SHA1都属于Hash函数标准算法中两大重要算法,就是把一个任意长度的信息经过复杂的运算变成一个固定长度的数值或者信息串,主要用于证明原文的完整性和准确性,是为电子文件加密的重要工具一般来说,对于给出的一个文件要算它的Hash码很容易,但要从Hash码找出相应的文件算法却很难Hash函数最根本的特点是这种变换具有单向性,一旦数据被转换,就无法再以确定的方法获得其原始值,从而无法控制变换得到的结果,达到防止信息被篡改的目的由于Hash函数的这种不可逆特性,使其非常适合被用来确定原文的完整性,从而被广泛用于数字签名
  2. 2对称密码系统
  对称密码系统的基本特点是解密算法就是加密算法的逆运算,加秘密钥就是解秘密钥它通常用来加密带有大量数据的报文和问卷通信的信息,因为这两种通信可实现高速加密算法在对称密码系统中发送者和接收者之间的密钥必须安全传送,而双方实体通信所用的秘密钥也必须妥善保管
  
  3 应用模型
  
  利用公钥加密系统可以解决电子商务中信息的机密性和完整性的要求,下面是具体的应用模型在本例中,Alice与Bob两个实体共享同一个信任点,即它们使用同一CA签发的数字证书因此,它们无需评价信任链去决定是否信任其他CA
  3. 1准备工作
  (1)Alice与Bob各自生成一个公钥/私钥对;
  (2)Alice与Bob向RA(代理机构)提供各自的公钥名称和描述信息;
  (3)RA审核它们的身份并向CA提交证书申请;
  (4)CA格式化Alice和Bob的公钥及其他信息,为Alice和Bob分别生成公钥证书,然后用自己的私钥对证书进行数字签名;
  (5)上述过程的结果是,Alice与Bob分别拥有各自的一个公钥/私钥对和公钥证书;
  (6)Alice与Bob各自生成一个对称秘密钥
  现在,Alice和Bob拥有各自的一个公钥/私钥对,由共同信任的第三方颁发的数字证书以及一个对称密钥
  3. 2处理过程
  假设现在Alice欲发送消息给Bob,并且要求确保数据的完整性,即消息内容不能发生变动;同时Alice和Bob都希望确保信息的机密性,即不容许除双方之外的其他实体能够查看该消息完成这样要求的处理过程如下:其中步骤1~5说明Alice加密消息过程;步骤6~10说明Bob解密消息的过程   (1)Alice按照双方约定的规则格式化消息,然后用Hash函数取得该消息的散列值,该值将被用来测试消息的合法性和完整性
  (2)Alice用私钥对消息和散列值进行签名(加密)这一签名确保了消息的完整性,因为Bob认为只有Alice能够生成该签名,这是由于只有Alice能够使用自己的私钥为该消息签名值得注意的是:现在任何有权访问Alice公钥的实体都能解密该被签名的消息,所以我们仅仅是保证了消息的完整性,而没有确保其机密性
(3)由于Alice和Bob之间想保持消息的机密性,所以Alice用它的对称秘密钥加密被签名的消息和散列值这一对称秘密钥只有Alice和Bob共享而不被其他实体所用注意,在本例中,我们使用了一个对称秘密钥,这是因为对于加密较长消息诸如订购信息来说,利用对称加密比公钥加密更为有效
  (4)Alice必须向Bob提供它用来给消息加密的对称秘密钥,以使得Bob能够用其解密被Alice加密过的消息Alice用Bob的公钥将自己的对称秘密钥签名(加密),这里我们假设Alice事先已经获得Bob的公钥,这样就形成了一个数字信笺,并且只有Bob才能将其打开(解密),因为只有Bob能够访问用来打开该数字信笺的私钥注意,一个公钥/私钥对中,用其中一个密钥加密的信息只有用另外一个密钥才能解密这就为Alice向Bob传输对称秘密钥提供了机密性
  (5)Alice发送给Bob的信息包括它用对称秘密钥加密的原始消息和散列值,以及用Bob公钥加密的包含Alice的对称秘密钥的数字信笺图1描述了Alice使用数字签名向Bob发送消息(步骤1~5)
  (6)Bob用它的私钥打开(解密)来自于Alice的数字信笺完成这一过程将使Bob获得Alice以前用来加密消息和散列值的对称秘密钥
  (7)Bob现在可以打开(解密)用Alice的对称秘密钥加密的消息和散列值解密后Bob得到了用Alice的私钥签名的消息和散列值
  
  (8)Bob用Alice的公钥解密签名的消息和散列值注意,一个公钥/私钥对中,用其中一个密钥加密的信息只有用另外一个密钥才能解密
  (9)为了证实消息没有经过任何改动,Bob将原始消息采用与Alice最初使用的完全一致的Hash函数进行转化
  (10)最后,Bob将得出的散列值与它从所收消息中解密出来的散列值对比,若二者相同,则证明了消息的完整性图2描述了Bob解密和对比散列值的过程(步骤6~10)
  
  3. 3实现方法
  采用Java语言实现系统,Java语言本身提供了一些基本的安全方面的函数,我们可以在此基础上实现更为复杂和有效的应用系统系统中主要的类实现如下:
  (1)Data Encryption类该类主要实现明文向密文的转换,依据RSA算法的规则实现非对称加密,其中密钥长度为128位每次可加密数据的最大长度为512字节,因此对于较长数据的加密需要划分适当大小的数据块
  (2)Data Hash类该类完成对所要加密消息产生对应的散列值,对于不同的消息,散列值是不相同的可以借助Java中提供的Hash函数来实现
  (3)Data Decryption类该类主要实现密文向明文的转换,依据依据RSA算法的规则,利用加密方的公钥对密文进行解密,并将解密后的明文按序排好
  
  4 结束语
  
  文章以PKI理论为基础,利用公钥密码系统确保了商务过程中所传输消息的完整性,使用对称加密系统实现对较长消息的加密,并保证了消息的机密性文章的理论研究和实现方法,对于保障电子商务活动中消息的完整性和机密性具有重要的指导意义
  
  主要
  [1] 周学广,刘艺. 信息安全学[M]. 北京:机械出版社,2004.
  [2] J. Cha,J. H. Cheon.An Identiry-based Signature from Gap Ditfie-Heilman Groups[C]//. Public Key Cryptography-PKC 1003, LNCS 2567, Spinger-Verlag, 2003.
  [3] M. Abdalla, L. Reyzin. A New Forward——Secure Digital Signature Scheme[C]. //In Advances in Cryptology, Proc. Of Astacrypt 2000, LNCS, Springer-Verlag, 2000.