对称加密symmetriccryptographic非对称加密asymmetriccryptographic密钥交换协议keyagreement/exchange哈希算法Hash报文认证码MAC数字签名digitalsignature数字证书digitalID/certificate证书颁发机构certificateauthority公钥架构publickeyinfrastructurePK公钥SK私钥公钥加密技术PKI是建立在公钥加密技术之上的,那么要了解PKI则首先要看一下公钥加密技术。加密是保护数据的科学方法。加密算法在数学上结合了输入的文本数据和一个加密密钥,产生加密的数据(密文)。通过一个好的加密算法,通过密文进行反向加密过程,产生原文就不是那么容易了,需要一个解密密钥来执行相应的转换。密码技术按照加解密所使用的密钥相同与否,分为对称密码学和非对称密码学,前者加解密所使用的密钥是相同的,而后者加解密所使用的密钥是不相同的,即一个秘密的加密密钥(签字密钥)和一个公开的解密密钥(验证密钥)。在传统密码体制中,用于加密的密钥和用于解密的密钥完全相同,通过这两个密钥来共享信息。这种体制所使用的加密算法比较简单,但高效快速,密钥简短,破译困难。然而密钥的传送和保管是一个问题。例如,通讯双方要用同一个密钥加密与解密,首先,将密钥分发出去是一个难题,在不安全的网络上分发密钥显然是不合适的;另外,任何一方将密钥泄露,那么双方都要重新启用新的密钥。1976年,美国的密码学专家Diffie和Hellman为解决上述密钥管理的难题,提出一种密钥交换协议,允许在不安全的媒体上双方交换信息,安全地获取相同的用于对称加密的密钥。在此新思想的基础上,很快出现了非对称密钥密码体制,即公钥密码体制(PKI)。自1976年第一个正式的公共密钥加密算法提出后,又有几个算法被相继提出。如RalphMerkle猜谜法、Diffie-Hellman指数密钥交换加密算法、RSA加密算法、Merkle-Hellman背包算法等。目前,结合使用传统与现代加密算法的具体应用有很多,例如PGP、RIPEM等加密软件,是当今应用非常广的加密与解密软件。公共密钥算法的基本特性是加密和解密密钥是不同的,其中一个公共密钥被用来加密数据,而另一个私人密钥被用来解密数据。这两个密钥在数字上相关,但即便使用许多计算机协同运算,要想从公共密钥中逆算出对应的私人密钥也是不可能的。这是因为两个密钥生成的基本原理根据一个数学计算的特性,即两个对位质数相乘可以轻易得到一个巨大的数字,但要是反过来将这个巨大的乘积数分解为组成它的两个质数,即使是超级计算机也要花很长的时间。此外,密钥对中任何一个都可用于加密,其另外一个用于解密,且密钥对中称为私人密钥的那一个只有密钥对的所有者才知道,从而人们可以把私人密钥作为其所有者的身份特征。根据公共密钥算法,已知公共密钥是不能推导出私人密钥的。最后使用公钥时,要安装此类加密程序,设定私人密钥,并由程序生成庞大的公共密钥。使用者向与其联系的人发送公共密钥的拷贝,同时请他们也使用同一个加密程序。之后他人就能向最初的使用者发送用公共密钥加密成密码的信息。仅有使用者才能够解码那些信息,因为解码要求使用者知道公共密钥的口令,那是惟有使用者自己才知道的私人密钥。在这些过程当中,信息接受方获得对方公共密钥有两种方法:一是直接跟对方联系以获得对方的公共密钥;另一种方法是向第三方即可靠的验证机构(如CertificationAuthority,CA),可靠地获取对方的公共密钥。现在,我们可以看PKI的定义:PKI(PublicKeyInfrastructure)是一个用非对称密码算法原理和技术来实现并提供安全服务的具有通用性的安全基础设施,是一种遵循标准的利用公钥加密技术为网上电子商务、电子政务的开展,提供一整套安全的基础平台。PKI,公钥基础设施,顾名思义,PKI技术就是利用公钥理论和技术建立的提供网络信息安全服务的基础设施。PKI管理平台能够为网络中所有需要采用加密和数字签名等密码服务的用户提供所需的密钥和证书管理,用户可以利用PKI平台提供的安全服务进行安全通信。PKI公开密钥基础设施能够让应用程序增强自己的数据和资源的安全,以及与其他数据和资源交换中的安全。使用PKI安全基础设施像将电器插入墙上的插座一样简单。PKI的内容一个完整的PKI系统必须具备权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书作废系统和应用接口(API)等基本组成部分。1、权威认证机构(CertificateAuthority):权威认证机构简称CA,是PKI的核心组成部分,也称作认证中心。它是数字证书的签发机构。CA是PKI的核心,是PKI应用中权威的、可信任的、公正的第三方机构。2、数字证书库:在使用公钥体制的网络环境中,必须向公钥的使用者证明公钥的真实合法性。因此,在公钥体制环境中,必须有一个可信的机构来对任何一个主体的公钥进行公证,证明主体的身份以及它与公钥的匹配关系。目前较好的解决方案是引进证书(Certificate)机制。(1)证书。证书是公开密钥体制的一种密钥管理媒介。它是一种权威性的电子文档,形同网络环境中的一种身份证,用于证明某一主体的身份以及其公开密钥的合法性。(2)证书库。证书库是证书的集中存放地,是网上的一种公共信息库,供广大公众进行开放式查询。到证书库访问查询,可以得到想与之通信实体的公钥。证书库是扩展PKI系统的一个组成部分,CA的数字签名保证了证书的合法性和权威性。3、密钥备份及恢复系统:如果用户丢失了密钥,会造成已经加密的文件无法解密,引起数据丢失,为了避免这种情况,PKI提供密钥备份及恢复机制。4、证书作废系统:有时因为用户身份变更或者密钥遗失,需要将证书停止使用,所以提供证书作废机制。5、PKI应用接口系统:PKI应用接口系统是为各种各样的应用提供安全、一致、可信任的方式与PKI交互,确保所建立起来的网络环境安全可信,并降低管理成本。没有PKI应用接口系统,PKI就无法有效地提供服务。整个PKI系统中,只有CA会和普通用户发生联系,其他所有部分对用户来说都是透明的。为什么要使用非对称加密算法?如果你理解了对称加密算法的含义,你就理解了非对称加密算法的意思。你猜对了,非对称加密算法中的加密密钥和解密密钥是不一样的。要找到一种非对称加密算法可不是一件容易的事,RonRivest,AdiShamir和LeonardAdleman终于在1978年提出了RSA公开密钥算法(以此三人姓名的首字母命名),是现在应用最广泛的一种非对称加密算法,这种算法的运算非常复杂,速度也很慢,主要是利用数学上很难分解两个大素数的乘积的原理。RSA算法的可靠性没有得到过数学上的论证,但实践证明它是我们可以依赖的工具。到底为什么我们需要这个笨重、复杂、缓慢的加密算法,在我们有了DES这样的高速算法的时候?设想你的朋友需要发送一些非常重要、非常机密的信息给你,而你跟外界的每一条通路都被监听了。那还不简单,你的朋友用DES对信息加密后传送给你不就行了,没有密钥,就算被人监听,他也不知道什么意思呀。可是问题在于你也需要密钥才能查看这些信息!你必须要知道你的朋友给信息加密的密钥才能完成对信息的接收!而你的朋友是没有一种安全的方法传递密钥给你的。如果说经常跟你通信的朋友还可以事先跟你约定好密钥,那么Internet上那么多人和机构是没有办法跟你事先就约定好的。公开密钥系统(也就是非对称加密系统)的作用就在于,此时,你可以先将加密密钥正常传送给你的朋友,让你的朋友用这个加密密钥对信息进行加密后传送给你,然后你再用解密密钥恢复信息的明文进行阅读,在这个过程中解密密钥不会以任何形式传送,只掌握在你的手中,也就是说你的朋友对信息加密后,他自己也没办法再解开进行验证。监听者得到了加密密钥,却无法得出解密密钥,也就无法查看信息的明文。加密密钥和解密密钥是相对的说法,如果用加密密钥加密那么只有解密密钥才能恢复,如果用解密密钥加密则只有加密密钥能解密,所以它们被称为密钥对,其中的一个可以在网络上发送、公布,叫做公钥,而另一个则只有密钥对的所有人才持有,叫做私钥,非对称公开密钥系统又叫做公钥系统,是我们现代金融业的基石。DES单钥密码体制:加密解密用同一把密钥;不足在于密钥的管理和传送SHA和MD5消息摘要:数据块生成一个数字指纹,不管数据块的大小长度。RSA公钥密码:公开的加密密钥,不公开的解密密钥。数字签名DSA对数字指纹进行RSA加密。两个优点,发送者不能抵赖(如何保证?),接受者可以验证正确性,因为加密密钥是公开的。数字签名使用私钥来签名的。PKI原理PKI即公共密钥体系。它利用公共密钥算法的特点,建立一套证书发放、管理和使用的体系,来支持和完成网络系统中的身份认证、信息加密、保证数据完整性和抗抵赖性。PKI体系可以有多种不同的体系结构、实现方法和通信协议。公共(非对称)密钥算法使用加密算法和一对密钥:一个公共密钥(公钥,publickey)和一个私有密钥(私钥,privatekey)。其基本原理是:由一个密钥进行加密的信息内容,只能由与之配对的另一个密钥才能进行解密。公钥可以广泛地发给与自己有关的通信者,私钥则需要十分安全地存放起来。使用中,甲方可以用乙方的公钥对数据进行加密并传送给乙方,乙方可以使用自己的私钥完成解密。公钥通过电子证书与其拥有者的姓名、工作单位、邮箱地址等捆绑在一起,由权威机构(CA,CertificateAuthority)认证、发放和管理。把证书交给对方时就把自己的公钥传送给了对方。证书也可以存放在一个公开的地方,让别人能够方便地找到和下载。公共密钥方法还提供了进行数字签名的办法:签字方对要发送的数据提取摘要并用自己的私钥对其进行加密;接收方验证签字方证书的有效性和身份,用签字方公钥进行解密和验证,确认被签字的信息的完整性和抗抵赖性。公共密钥方法通常结合使用对称密钥(单密钥)方法,由计算效率高的对称密钥方法对文件和数据进行加密。目前在Internet上主要使用RSA公共密钥方法,密钥长度512或1024位,是广泛使用的SSL/TLS和S/MIME等安全通信协议的基础。加密数据加密技术从技术上的实现分为在软件和硬件两方面。按作用不同,数据加密技术主要分为数据传输、数据存储、数据完整性的鉴别以及密钥管理技术这四种。在网络应用中一般采取两种加密形式:对称密钥和公开密钥,采用何种加密算法则要结合具体应用环境和系统,而不能简单地根据其加密强度来作出判断。因为除了加密算法本身之外,密钥合理分配、加密效率与现有系统的结合性,以及投入产出分析都应在实际环境中具体考虑。对于对称密钥加密。其常见加密标准为DES等,当使用DES时,用户和接受方采用64位密钥对报文加密和解密,当对安全性有特殊要求时,则要采取IDEA和三重DES等。作为传统企业网络广泛应用的加密技术,秘密密钥效率高,它采用KDC来集中管理和分发密钥并以此为基础验证身份,但是并不适合Internet环境。在Internet中使用更多的是公钥系统。即公开密钥加密,它的加密密钥和解密密钥是不同的。一般对于每个用户生成一对密钥后,将其中一个作为公钥公开,另外一个则作为私钥由属主保存。常用的公钥加密算法是RSA算法,加密强度很高。具体作法是将数字签名和数据加密结合起来。发送方在发送数据时必须加上数据签名,做法是用自己的私钥加密一段与发送数据相关的数据作为数字签名,然后与发送数据一起用接收方密钥加密。当这些密文被接收方收到后,接收方用自己的私钥将密文解密得到发送的数据和发送方的数字签名,然后,用发布方公布的公钥对数字签名进行解密,如果成功,则确定是由发送方发出的。数字签名每次还与被传送的数据和时间等因素有关。由于加密强度高,而且并不要求通信双方事先要建立某种信任关系或共享某种秘密,因此十分适合Internet网上使用。常规密钥密码体制所谓常规密钥密码体制,即加密密钥与解密密钥是相同的。在早期的常规密钥密码体制中,典型的有代替密码,其