物联传媒 旗下网站
登录 注册
RFID世界网 >  技术文章  >  其他  >  正文

PKI技术专题:2、PKI的理论基础

作者:周天阳
来源:RFID世界网
日期:2005-08-01 10:18:28
摘要:PKI技术专题:2、PKI的理论基础

 什么是PKI?从字面上去理解,PKI就是利用公共密钥理论和技术建立的提供安全服务的基础设施。所谓基础设施,就是在某个大环境下普遍适用的系统和准则。在现实生活中有一个大家熟悉的例子,这就是电力系统,它提供的服务是电能,我们可以把电灯、电视、电吹风机等看成是电力系统这个基础设施的一些应用。公共密钥基础设施(PKI)则是希望从技术上解决网上身份认证、电子信息的完整性和不可抵赖性等安全问题,为网络应用(如浏览器、电子邮件、电子交易)提供可靠的安全服务。

  从理论上讲,只要PKI具有友好的接口,那么普通用户就只需要知道如何接入PKI就能获得安全服务,完全无需理解PKI如何实现安全服务。正如电灯只要接通电源就能亮一样,它并不需要知道电力系统是如何将电能传送过来的。值得注意的是,虽然都是服务,但安全服务和电能服务在表现形式上却有很大的差别:通过电灯的亮与不亮,我们可以感觉到电能服务的存在与否;而安全服务却是隐藏在其他应用的后面,用户无法直观地感觉到它是否有效或起作用。因此,虽然并不需要精通密码理论,但如果我们理解了PKI为什么能够解决网上的安全问题?它的基本理论基础是什么?就会更有利于推动PKI的应用和发展。


  保密性与密码体制
  信息的保密性是信息安全的一个重要方面。保密的目的是防止第三方通过监听、非法截取等手段非法获取机密信息,而加密是保护机要信息的一个重要手段。所谓加密,就是用数学方法重新组织数据,使得除了合法的接受者外,任何其他人要想恢复原先的消息(将原先的消息称作明文 )或读懂变化后的消息(将变化后的消息称为密文 )都是非常困难的。通常,我们把将密文恢复成明文的过程称作解密。加密和解密操作分别是在一组密钥控制下进行的,它们被分别称为加密密钥和解密密钥。

  根据加密密钥和解密密钥在性质上的差异,可以将密码体制分为两类:单密钥体制和公钥体制。加密密钥和解密密钥相同或本质相同的体制被称为单密钥加密体制。这种加密算法运算速度快,适合于加解密传输中的信息。其中最为著名的单密钥算法是美国的数据加密标准(DES算法)。该标准由IBM公司研制,美国商业部所属的国家标准局(NBS)于1977年正式批准并作为美国联邦信息处理的标准。虽然美国已经宣布这种算法不再作为美国加密的标准,但这种算法已经广泛应用于世界各地(包括中国)的商业中。单密钥密码体制的缺陷是通信双方在进行通信前必须通过一个安全信道事先交换密钥,这在网络应用中是不现实的,而且单密钥体制无法保证信息的不可抵赖性。

  公钥体制的提出则从技术上解决了这些问题。所谓公钥体制就是加密密钥和解密密钥不相同,并且从其中一个很难推断出另一个。这样,我们可以将其中一个密钥公开(称为公钥),另一个密钥由用户自己保存(称为私钥)。假如某人(Bob)想和另一个人(Alice)通信,只要Bob能找到Alice的公钥,用Alice的公钥将信息加密,传递给Alice,然后Alice用自己的私钥解密信息。这样即使加密后的信息误传递给他人,或被他人截获,也不用担心信息的泄露。同样的道理,Alice若想向Bob证实信息是自己发送的,那么他只需将信息用自己的私钥加密,然后传递给Bob,Bob用Alice的公钥解密信息,若信息能够解开,则证明该信息是Alice发送的,而且事后这条信息也是不可抵赖的,因为只有Alice才能加密信息,其他人(包括Bob)是无法伪造这条信息的,尽管他们能读懂这条信息。

  从上面假想的通信模式可以看出,公钥密码体制可以使通信双方无须事先交换密钥就可以建立安全通信。公钥密码体制可用于身份认证、数字签名和密钥交换。公钥体制一般是建立在某些已知的数学难题之上,是计算机复杂性理论发展的必然结果。最为典型的代表是RSA公钥密码体制。


  RSA算法是Rivest、Shamir 和 Adleman 于1977年提出的第一个完善的公钥密码体制,其安全性是基于分解大整数的困难性。在RSA体制中使用了这样一个基本事实:到目前为止,无法找到一个有效的算法来分解两个大素数之积。RSA算法的描述如下:
  公开密钥:n=pq (p、q分别为两个互异的大素数,p、q 必须保密)
  e与(p-1)(q-1) 互素
  私有密钥:d=e-1 (mod (p-1)(q-1) )
  加密:c= me (mod n ), 其中m为明文,c为密文。
  解密: m= cd (mod n )
  利用目前已经掌握的知识和理论,分解2048bit的大整数已经超过了64位计算机的运算能力,因此在目前和可预见的将来,它是足够安全的。


  可认证性与数字签名
  信息的可认证性是信息安全的另一个重要方面。认证的目的有两个:一个是验证信息发送者的真实性,确认他没有被冒充;另一个是验证信息的完整性,确认被验证的信息在传递或存储过程中没有被篡改、重组或延迟。认证是防止敌手对系统进行主动攻击(如伪造、篡改信息等)的一种重要技术。认证技术主要包括数字签名、身份识别和信息的完整性校验等技术。在认证体制中,通常存在一个可信的第三方,用于仲裁、颁发证书和管理某些机密信息。

  在日常生活中,经常需要人们签署各种信件和文书,传统上都是用手写签名或印鉴。签名的作用是认证、核准和生效。随着信息时代的来临,人们希望对越来越多的电子文件进行迅速的、远距离的签名,这就是数字签名。数字签名与传统的手写签名有很大的差别。首先,手写签名是被签署文件的物理组成部分,而数字签名不是;其次,手写签名不易拷贝,而数字签名正好相反,因此必须阻止一个数字签名的重复使用;第三,手写签名是通过与一个真实的手写签名比较来进行验证,而数字签名是通过一个公开的验证算法来验证。数字签名的签名算法至少要满足以下条件:签名者事后不能否认;接受者只能验证;任何人不能伪造(包括接受者);双方对签名的真伪发生争执时,有第三方进行仲裁。目前数字签名技术的研究主要是基于公钥密码体制。比较著名的数字签名算法包括RSA数字签名算法和DSA。

  信息的完整性和认证是指信息的接受者能够检验收到的消息是否真实。检验的内容包括:消息的来源、消息的内容是否被篡改、消息是否被重放。消息的完整性经常通过杂凑技术来实现。杂凑函数可以把任意长度的输入串变化成固定长度的输出串,它是一种单向函数,根据输出结果很难求出输入值,并且可以破坏原有数据的数据结构。因此,杂凑函数不仅应用于信息的完整性,而且经常应用于数字签名。

  从上面的分析看,公钥密码技术可以提供网络中信息安全的全面解决方案。采用公钥技术的关键是如何确认某个人真正的公钥。在PKI 中,为了确保用户及他所持有密钥的正确性,公共密钥系统需要一个值得信赖而且独立的第三方机构充当认证中心(CA),来确认声称拥有公共密钥的人的真正身份。要确认一个公共密钥,CA首先制作一张数字证书,它包含用户身份的部分信息及用户所持有的公共密钥,然后CA利用本身的密钥为数字证书加上数字签名。CA 目前采用的标准是X.509 V3。

  任何想发放自己公钥的用户,可以去认证中心(CA)申请自己的证书。CA中心在认证该人的真实身份后,颁发包含用户公钥的数字证书,它包含用户的真实身份,并证实用户公钥的有效期和作用范围(用于交换密钥还是数字签名)。其他用户只要能验证证书是真实的,并且信任颁发证书的CA,就可以确认用户的公钥。