1、基于 PKI 机制的公钥加密体系研究摘要:目前,Internet 已成为全球最大的互联网络,已经覆盖150多个国家和地区,连接了 1.5万多个网络,220 万台主机。如何保证网络环境下交换信息的安全性已成为电子商务以及信息安全领域研究的主要课题。PKI(PubicKeylnfrastructure,公共密钥基础)技术,即提供公钥加密和数字签名服务的综合系统,为不同的用户按不同安全需求提供多种安全服务,较好地为这一课题提供了解决方案。本文主要对 PKI基础技术、通用加密算法,公钥加密体系等作了详细的论述。 关键词:PKI;公钥加密;哈希函数;认证权成:RSA 算法 前言:公钥加密体系是密码学上的
2、一个重要里程碑。公钥加密的主要特点是加密和解密不需要用同一个钥匙。在公钥加密体系中,密钥论“对” ,一个称为“公钥” ,一个称为“私钥” 。公钥和私钥互为“逆运算”,即用公钥加密的东西只有用它对应的私钥才能解密,而用私钥加密的东西也只有用它对应的公钥才能正确解密。公钥要广为传播,越广泛越好;私钥为个人所有,越秘密越好。而且,令人惊奇的是,公钥的广泛传播并不会影响私钥的秘密性,即公钥和私钥之间几乎没有什么相关性,由公钥推出私钥的可能性几乎为零。 1 PKI 理论 1.1 公钥基础设施 PKI 提供公钥加密和数字签名服务的综合系统称做一个公钥基础设施(简称 PKI)。建立公钥基础设施的目的是管理密
3、钥和证书。通过 PKI对密钥和证书的管理,一个组织可以建立并维护可信赖的网络环境。PKI 能够使加密和数字签名服务应用在广泛的应用中。 1.2 认证权威 CA 在证书创建过程中,CA 在 PKI中扮演可信任的代理商角色。只要用户相信一个 CA及其发行和管理证书的商业策略,用户就能相信由该 CA颁发的证书,这被称做第三方信任。 CA 为用户创建证书并在证书上签署包含下面信息的数据集合。 (1)以甄别名称(简称 DN)形式出现的用户名。DN 指定了用户的名字和能够唯一标识用户的任何属性(例如,DN 可能包含用户的雇员号码) (2)用户的公钥。其他人用它为该用户加密信息或验证该用户的数字签名。 (3
4、)证书的有效期(或生命期)。这里包括开始日期和结束日期。 (4)使用公钥进行的具体操作(是加密数据还是验证签名,或者两者都有)。 (5)在证书上的 cA的签名保证了证书的内容不被篡改。 2 通用加密算法 2.1 对称算法 对称算法,也称密钥算法,通常使用 40256位的密钥。一般说来,对称算法使用相同的密钥进行加密和解密。一个好的对称算法的安全性在于密钥的安全性。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对
5、称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。 2.1.1 数据加密标准(DES) 数据加密标准(DES)是到目前为止最有名的加密算法,使用了 ANSI利用标准进行规定的对称密钥加密法,ANSI 于 1981年制定了ANSIX.3.92.DES对此种加密方法进行了规
6、定:需要使用 56位的密钥和密码块方式,即将文本按 64位大小分成若干份,然后对它们进行加密。 2.2 哈希函数 一个哈希是一段数据的数学上的概要。它有一定的长度。它是数据的唯一的“数字指纹” 。即使数据的一个 bit变了,它的哈希码会发生巨大的变化。哈希函数的强度在于它是一个单向函数。换句话说,如果我们有一个输入文件,可以很容易地得到它的哈希码,但反过来,如果我们有一个哈希码,要得到它的原来的输入文件非常困难。 2.2.1 信息摘要 MD5 MD5处理 512位的输入数据块,产生固定的128位的信息摘要。尽管 MD5是一个快速的哈希函数,但它的哈希结果的长度被今天的标准看作是最小的。 2.2
7、.2 安全哈希算法 SHA 安全哈希算法是由 NIsT和 NSA共同开发的用于数字签名标准(DSS)的哈希算法。尽管 SHA的设计基于 MD4,但它的细节从没公开过。在这种情况下,人们仍然认为 SHA比 MD4和 MD5安全的多。一个原因就是 5HA产生 160位的信息摘要而不是 128位。这极大地增加了强力攻击的难度。3 公钥加密体系 3.1 公钥加密体系加解密过程 非对称加解密(即公钥加密体系)使用两把完全不同但又是相互匹配的密钥一公钥和私钥。发信方和接受方接收方相互通讯,发信方必须首先得到收信方的公钥,然后利用收信方的公钥对明文加密:收信方收到加密密文以后,使用自己的私钥解密密文。显然,
8、采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。广泛应用的不对称加密算法有 RSA算法和美国国家标准局提出的 DSA。 3.2 对称加密与公钥加密体系结合 把对称加密和公钥加密体系结合起来,我们可以得到一个新的体系,它能够提供保密性和访问控制。我们可以用对称加密来加密海量数据,然后用公钥加密算法把对称加密密钥加密起来。这样就兼具有了对称加密和公钥加密二者的长处。如果我们想给多个人发送,我们只须把一个对称密钥为每个人加密一下。 假设 A有一个文件想发给 B,让我们来考虑整个过程: (1)A 用她的客户端应用软件选定 B来作为接收者。应用软件
9、从一个含有所有人的公钥的路径下获得 B的公钥。 (2)A 产生一个一次性使用的对称密钥,来把文件加密。 (3)用 B的公钥把这个对称密钥加密。这意味着只有 Bob能解开该密钥。 (4)写出要输出的文件,它包括暗文及加密的对称密钥。 再看 B在接收端的过程: (1)B 的应用程序确定这个文件是发给他的。 (2)B 用他的私钥把加密过程中产生的对称密钥解开。 (3)用对称密钥把密文解密。 (4)把解密出来的内容写成文件。 3.3 哈希函数与公钥加密体系结合 把哈希函数和公钥加密算法结合起来,能提供一个方法来保证数据的完整性和真实性。完整性检查保证数据没有被改变,真实性检查保证数据真是由产生这个哈希
10、值的人发出的。把这两个机制结合起来,就是所谓的“数字签名” 。数字签名的过程的第一步是产生一个我们想签名的数据的哈希值。第二步是把这个哈希值用我们的私钥加密。这个被加密的哈希结果被添加到数据后。这是一个在哈希函数上的巨大的提高。用这个方法,我们能够保护哈希结果的完整性。并且,由于我们用的是公钥加密算法,我们用不着给检查这段哈希结果的人一个密钥。 数据的接收者能够有你的公钥解密这段哈希值。同时,你能从你接到的数据产生一段哈希值。两者相比,如果相同,则可以肯定,他所接到的数据没有被更改。同时,接收者也知道,只有你才能发出这段数据,因为只有你才会有这个在哈希上签名的私钥。 小结 网络安全的要求其实非常简单。保密性,完整性,真实性,可用性和不可否是安全应用的五大基本要求。保密性指信息的保密,这可以通过加密机来实现;完整性包括信息的不可非法篡改。通过对称的加密,可以防止被第三方非法篡改,但却不能防止对方或密钥管理方的篡改。真实性一般归在完整性里面,主要指通信对方身份的真实性,通过主机地址,主机名称,口令等都不能很好地满足要求。地址、名称都可以假冒,而口令也容易受攻击而被第三方知道。可用性是保护系统在需要的时候能够提供服务,这可以通过冗余和其他设施来实现。PKI 系统,通过非对称的算法,透过安全的应用设备,基本解决网络社会中的全部安全问题。