|
对称加密 symmetric cryptographic 非对称加密 asymmetric cryptographic 密钥交换协议 key agreement/exchange 哈希算法 Hash 报文认证码 MAC 数字签名 digital signature 数字证书 digital ID/certificate 证书颁发机构 certificate authority 公钥架构 public key infrastructure PK 公钥 SK 私钥 公钥加密技术 PKI是建立在公钥加密技术之上的,那么要了解PKI则首先要看一下公钥加密技术。加密是保护数据的科学方法。加密算法在数学上结合了输入的文本数据和一个加密密钥,产生加密的数据(密文)。通过一个好的加密算法,通过密文进行反向加密过程,产生原文就不是那么容易了,需要一个解密密钥来执行相应的转换。密码技术按照加解密所使用的密钥相同与否,分为对称密码学和非对称密码学,前者加解密所使用的密钥是相同的,而后者加解密所使用的密钥是不相同的,即一个秘密的加密密钥(签字密钥)和一个公开的解密密钥(验证密钥)。在传统密码体制中,用于加密的密钥和用于解密的密钥完全相同,通过这两个密钥来共享信息。这种体制所使用的加密算法比较简单,但高效快速,密钥简短,破译困难。然而密钥的传送和保管是一个问题。例如,通讯双方要用同一个密钥加密与解密,首先,将密钥分发出去是一个难题,在不安全的网络上分发密钥显然是不合适的;另外,任何一方将密钥泄露,那么双方都要重新启用新的密钥。 1976年,美国的密码学专家Diffie和Hellman为解决上述密钥管理的难题,提出一种密钥交换协议,允许在不安全的媒体上双方交换信息,安全地获取相同的用于对称加密的密钥。在此新思想的基础上,很快出现了非对称密钥密码体制,即公钥密码体制(PKI)。自1976年第一个正式的公共密钥加密算法提出后,又有几个算法被相继提出。如Ralph Merkle猜谜法、Diffie-Hellman指数密钥交换加密算法、RSA加密算法、Merkle-Hellman背包算法等。目前,结合使用传统与现代加密算法的具体应用有很多,例如PGP、RIPEM等加密软件,是当今应用非常广的加密与解密软件。公共密钥算法的基本特性是加密和解密密钥是不同的,其中一个公共密钥被用来加密数据,而另一个私人密钥被用来解密数据。这两个密钥在数字上相关,但即便使用许多计算机协同运算,要想从公共密钥中逆算出对应的私人密钥也是不可能的。这是因为两个密钥生成的基本原理根据一个数学计算的特性,即两个对位质数相乘可以轻易得到一个巨大的数字,但要是反过来将这个巨大的乘积数分解为组成它的两个质数,即使是超级计算机也要花很长的时间。此外,密钥对中任何一个都可用于加密,其另外一个用于解密,且密钥对中称为私人密钥的那一个只有密钥对的所有者才知道,从而人们可以把私人密钥作为其所有者的身份特征。根据公共密钥算法,已知公共密钥是不能推导出私人密钥的。最后使用公钥时,要安装此类加密程序,设定私人密钥,并由程序生成庞大的公共密钥。使用者向与其联系的人发送公共密钥的拷贝,同时请他们也使用同一个加密程序。之后他人就能向最初的使用者发送用公共密钥加密成密码的信息。仅有使用者才能够解码那些信息,因为解码要求使用者知道公共密钥的口令,那是惟有使用者自己才知道的私人密钥。在这些过程当中,信息接受方获得对方公共密钥有两种方法:一是直接跟对方联系以获得对方的公共密钥;另一种方法是向第三方即可靠的验证机构(如Certification Authority,CA),可靠地获取对方的公共密钥。
现在,我们可以看PKI的定义:PKI(Public Key Infrastructure)是一个用非对称密码算法原理和技术来实现并提供安全服务的具有通用性的安全基础设施,是一种遵循标准的利用公钥加密技术为网上电子商务、电子政务的开展,提供一整套安全的基础平台。PKI,公钥基础设施,顾名思义,PKI技术就是利用公钥理论和技术建立的提供网络信息安全服务的基础设施。PKI管理平台能够为网络中所有需要采用加密和数字签名等密码服务的用户提供所需的密钥和证书管理,用户可以利用PKI平台提供的安全服务进行安全通信。 PKI公开密钥基础设施能够让应用程序增强自己的数据和资源的安全,以及与其他数据和资源交换中的安全。使用PKI安全基础设施像将电器插入墙上的插座一样简单。 PKI的内容 一个完整的PKI系统必须具备权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书作废系统和应用接口(API)等基本组成部分。 1、权威认证机构(Certificate Authority):权威认证机构简称CA,是PKI的核心组成部分,也称作认证中心。它是数字证书的签发机构。CA是PKI的核心,是PKI应用中权威的、可信任的、公正的第三方机构。 2、数字证书库:在使用公钥体制的网络环境中,必须向公钥的使用者证明公钥的真实合法性。因此,在公钥体制环境中,必须有一个可信的机构来对任何一个主体的公钥进行公证,证明主体的身份以及它与公钥的匹配关系。目前较好的解决方案是引进证书(Certificate)机制。(1)证书。证书是公开密钥体制的一种密钥管理媒介。它是一种权威性的电子文档,形同网络环境中的一种身份证,用于证明某一主体的身份以及其公开密钥的合法性。(2)证书库。证书库是证书的集中存放地,是网上的一种公共信息库,供广大公众进行开放式查询。到证书库访问查询,可以得到想与之通信实体的公钥。证书库是扩展PKI系统的一个组成部分,CA的数字签名保证了证书的合法性和权威性。 3、密钥备份及恢复系统:如果用户丢失了密钥,会造成已经加密的文件无法解密,引起数据丢失,为了避免这种情况,PKI提供密钥备份及恢复机制。 4、证书作废系统:有时因为用户身份变更或者密钥遗失,需要将证书停止使用,所以提供证书作废机制。 5、PKI应用接口系统:PKI应用接口系统是为各种各样的应用提供安全、一致、可信任的方式与PKI交互,确保所建立起来的网络环境安全可信,并降低管理成本。没有PKI应用接口系统,PKI就无法有效地提供服务。 整个PKI系统中,只有CA会和普通用户发生联系,其他所有部分对用户来说都是透明的。 为什么要使用非对称加密算法? 如果你理解了对称加密算法的含义,你就理解了非对称加密算法的意思。你猜对了,非对称加密算法中的加密密钥和解密密钥是不一样的。要找到一种非对称加密算法可不是一件容易的事,Ron Rivest, Adi Shamir 和Leonard Adleman终于在1978年提出了RSA公开密钥算法(以此三人姓名的首字母命名),是现在应用最广泛的一种非对称加密算法,这种算法的运算非常复杂,速度也很慢,主要是利用数学上很难分解两个大素数的乘积的原理。RSA算法的可靠性没有得到过数学上的论证,但实践证明它是我们可以依赖的工具。 到底为什么我们需要这个笨重、复杂、缓慢的加密算法,在我们有了DES这样的高速算法的时候?
设想你的朋友需要发送一些非常重要、非常机密的信息给你,而你跟外界的每一条通路都被监听了。那还不简单,你的朋友用DES对信息加密后传送给你不就行了,没有密钥,就算被人监听,他也不知道什么意思呀。可是问题在于你也需要密钥才能查看这些信息!你必须要知道你的朋友给信息加密的密钥才能完成对信息的接收!而你的朋友是没有一种安全的方法传递密钥给你的。如果说经常跟你通信的朋友还可以事先跟你约定好密钥,那么Internet上那么多人和机构是没有办法跟你事先就约定好的。公开密钥系统(也就是非对称加密系统)的作用就在于,此时,你可以先将加密密钥正常传送给你的朋友,让你的朋友用这个加密密钥对信息进行加密后传送给你,然后你再用解密密钥恢复信息的明文进行阅读,在这个过程中解密密钥不会以任何形式传送,只掌握在你的手中,也就是说你的朋友对信息加密后,他自己也没办法再解开进行验证。监听者得到了加密密钥,却无法得出解密密钥,也就无法查看信息的明文。
加密密钥和解密密钥是相对的说法,如果用加密密钥加密那么只有解密密钥才能恢复,如果用解密密钥加密则只有加密密钥能解密,所以它们被称为密钥对,其中的一个可以在网络上发送、公布,叫做公钥,而另一个则只有密钥对的所有人才持有,叫做私钥,非对称公开密钥系统又叫做公钥系统,是我们现代金融业的基石。
DES 单钥密码体制:加密解密用同一把密钥;不足在于密钥的管理和传送 SHA和MD5 消息摘要:数据块生成一个数字指纹,不管数据块的大小长度。 RSA 公钥密码:公开的加密密钥,不公开的解密密钥。 数字签名DSA 对数字指纹进行RSA加密。两个优点,发送者不能抵赖(如何保证?),接受者可以验证正确性,因为加密密钥是公开的。 数字签名使用私钥来签名的。 PKI原理 PKI 即公共密钥体系。它利用公共密钥算法的特点,建立一套证书发放、管理和使用的体系,来支持和完成网络系统中的身份认证、信息加密、保证数据完整性和抗抵赖性。PKI 体系可以有多种不同的体系结构、实现方法和通信协议。 公共(非对称)密钥算法使用加密算法和一对密钥:一个公共密钥(公钥,public key)和一个私有密钥(私钥,private key)。其基本原理是:由一个密钥进行加密的信息内容,只能由与之配对的另一个密钥才能进行解密。公钥可以广泛地发给与自己有关的通信者,私钥则需要十分安全地存放起来。使用中,甲方可以用乙方的公钥对数据进行加密并传送给乙方,乙方可以使用自己的私钥完成解密。公钥通过电子证书与其拥有者的姓名、工作单位、邮箱地址等捆绑在一起,由权威机构(CA, Certificate Authority)认证、发放和管理。把证书交给对方时就把自己的公钥传送给了对方。证书也可以存放在一个公开的地方,让别人能够方便地找到和下载。 公共密钥方法还提供了进行数字签名的办法:签字方对要发送的数据提取摘要并用自己的私钥对其进行加密;接收方验证签字方证书的有效性和身份,用签字方公钥进行解密和验证,确认被签字的信息的完整性和抗抵赖性。 公共密钥方法通常结合使用对称密钥(单密钥)方法,由计算效率高的对称密钥方法对文件和数据进行加密。 目前在 Internet 上主要使用 RSA 公共密钥方法,密钥长度 512 或 1024 位,是广泛使用的 SSL/TLS 和S/MIME 等安全通信协议的基础。
加密 写为:DSK(EPK(X))=X PKI的主要目的是通过自动管理密钥跟证书,可以为用户建立起一个安全的网络运行环境,使用户可以在多种应用环境下方便的使用加密和数字签名技术,从而保证网上数据的机密性,完整性,有效性。 数据的机密性是指数据在传输过程中不能被非授权者偷看 数据的完整性是指数据在传输过程中不能被非法的窜改 数据的有效性是指数据不能被随便否认 一个有效的PKI系统必须是安全的,透明的,用户在获得加密和数字签名服务时,是不需要详细了解PKI怎样管理证书和密钥的。 密钥是一种用来加密或解密信息的值,即使算法是公开的,也不会破坏其安全性,因为数据如果没有密钥则无法读取。 PKI 是一种新的安全技术,它由公钥加密技术,数字证书,证书发放机构(CA),注册权威机构(RA)等基本成分共同组成。 数字证书用于internet intranet extranet 上的用户身份验证 CA是一个可信任的实体,它根据CA颁发策略负责发布,更新和吊销证书 注册权威机构RA 接受用户的请求,负责将用户的有关申请信息存档备案,并存储在数据库中,等待审核,并将审核通过的证书请求发送给证书颁发机构。RA分担了CA的部分任务,管理更方便。 比较成熟的对称加密 DES 3DES IDEA
非对称加密的特点 密钥是成对出现的,这两个密钥互不相同,两个密钥可以互相机密和解密 不能根据一个密钥来推算得出另一个密钥 公钥对外公开,私钥只有私钥的持有人才知道 私钥应该由密钥的持有人妥善保管
接收方生成一对密钥(公钥和私钥),并将公钥向外传递公开 得到该公钥的发送方使用接收方的公钥,对信息进行加密后,再发送给接受方 接受方受到信息后,再用自己的私钥对信息进行解密
非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,但加密和解密花费时间长,速度慢,它不适合对文件加密,而只适合用于少量数据进行加密。因为,在实际应用中,将非对称加密和对称加密混合使用。
发送方用对称加密的方法,将文件加密后传给对方 发送方再将对称密钥(即发送方和接受方应该共同拥有的密钥)通过非对称加密的方法加密后传给对方 接收方使用私钥解密得到对称密钥 用对称密钥解密去解读对称加密的密文,从而得到明文信息
公认的非对称加密算法是 RSA 算法
我发给的人。确保不被别人所得到。是利用加密算法 给我的人。我确定是这个人发的。用的是数字签名。有不可抵赖性 HASH算法也称为杂凑算法,这是一个简单的不可逆过程。HASH算法在确保文件的完整性和不可更改性上也有和好的用途。
输入一个长度不固定的字符串,返回一串固定长度的字符串,又称为HASH值,通常也称为杂凑值(HASH Value)
每一个消息输入单项杂凑函数中,将产生一个杂凑值,这个杂凑值可以保证输入消息的唯一性(不同杂凑值表示不同输入消息)
如果通过一个不安全的传输通道的消息在传输前的杂凑值和消息经传输后的杂凑值相同,那么可以认为接受到的信息在很高的概率上与发送消息是相同的,从而可以保证传输消息的完整性
在某一特定的时间内,无法查找经HASH操作后生成特定HASH值的原报文。 也无法查找两个经HASH操作后生成相同HASH值的不同报文
HASH 算法常用的有SHA 和 MD5
数据加密只能保证所发送的数据的机密性,确不能完全保证数据的完整性和不可抵赖性,即不能保证数据在传递过程中不被人篡改和不被人冒名顶替发送。
数字签名提供了身份验证和数据完整性,使接受方可确认该发送方的身份标识,并证实消息在传递过程中内容没有被篡改。这样可以防止某个消息的发送方试图通过替换另一个用户的身份发送消息。
消息有签发者即发送方自己签名发送,签名者不能否认或难以否认 消息自签发到接受这段过程中未曾做过修改,签发的消息是真实的。
数字签名页可以用于时间戳,即可以同时签署消息发送的时间。用户可以用他的私钥签名消息和生成时间戳,证实该消息在某一段时间中存在。数字签名同样可以用来确认某一公钥属于某人。因为对消息进行数字签名时,可以产生一个代表该消息的消息摘要。该消息摘要通过发送方的私钥加密的,接受方可以使用发送方的公钥进行解密。
发送方签名某个消息时,将创建一个消息摘要(用HASH算法) 发送方用自己的私钥加密消息摘要 将消息摘要做为消息的附件和消息一起发送给接收方 当接收方收到消息后,就用该发送方的公钥解密此消息摘要 同时,接受方再用发送方的公钥解密消息,然后用同样的算法创建出一个新的消息摘要,并将他与解密的消息摘要进行比较。 如果两个消息摘要互相匹配,则可保证完整性,签名就会认为是有效的。
过程 发送方 1 原文+随机密钥(对称)--用随机密钥加密原文 2 原文+HASH 算法--消息摘要 3 随机密钥(对称)+接受方的公钥--只有接受方的私钥才能打开取得对称密钥 4 消息摘要+发送方私钥--接受方用发送方公钥解开取得摘要消息 以上四个过程最后生成了 加密数据和加密的摘要消息 接受方
1 首先用自己的私钥解开发送过来的加密的对称密钥 2 取得对称密钥就可以解开加密的原文 3 用发送方的公钥解开加密的消息摘要 4 用解开的原文用同样的HASH算法算出一个消息摘要 5 对比传过来的在发送方的消息摘要和现在接受的文章的消息摘要是否匹配。匹配则说明信息没有被改动过。 其中使用了对称密钥 非对称的公钥 私钥 还有HASH 算法 数据经过了加密。如果想解开数据就必须有接受方的私钥。可是私钥是不传输的。所以很难破解数据。但是这个加密是使用接受方的公钥加密的。而公钥是公开的。所以有人可以采用接受方的公钥再伪造数据部分。这样和数据摘要一起发给接受方。因为是采用接受方公钥所加密的。所以接受方可以打开被篡改的数据。可是这种篡改的数据再经过HASH算法无法跟发送过来的消息摘要相同。从而被证明是篡改的或被有损的。而因为消息摘要是用发送方的私钥来加密的。如果要伪造就必须有发送方的私钥。而发送方的私钥也是不在网络上传送的。这样只有得到双方的私钥才能伪造。
数字签名一般不采用非对称加密算法 RSA等。而是发送方对整个数据进行变换,得到一个值,将其作为消息摘要和签名,接受者使用发送者的公钥对消息摘要进行解密运算。如果其结果与原摘要一致,则此数字签名有效,证明对方的身份是真实的。一般数字签名中使用的加密算法有HASH算法,安全的HASH算法等。再HASH算法中,目前比较多的是MD5。
接受方还必须有一个机制,以确保密钥对是属于真正的发送者的。而不是属于没个发送方的模仿者的。这是通过受信任的第三方颁发的证书来完成的,该证书证实了公钥所有者的身份标识。 |