公共密钥密码,公共密钥密码技术原理介绍
公共密钥密码,公共密钥密码技术原理介绍
公钥密码技术为用户提供安全的信息交换方式。另外,它还能使主机具有其他有用的安全技术,包括身份验证(不需要交换敏感信息的远程连接)、数字签名(用于提供文档完整性)和不可否认(即某人无法否认已经发送了某消息)。
按照密码学的Kerckhoff原则:“所有算法都是公开的,只有密钥是保密的”。即安全系统的设计者不能指望使用某种秘密的无人知道的算法来保密,而应当使用一种公开的被验证过的算法——只要密钥是安全的,已知算法的攻击者实际上无法破解秘文的算法才是好的算法。
假设甲和乙希望在不可靠系统(例如因特网)上交换私人的加密消息。他们选择的加密方法将使偶然捕获了该传输的任何人都无法阅读该消息。甲使用加密密钥对消息进行加密。乙必须也具备该密钥来对消息进行解密。现在的基本问题是:甲怎样才能将密钥交给乙,让她可以解密消息?甲可以用电话呼叫乙,但是如果电话线被分接了呢?甲可以通过信使进行发送,但密钥还是可能被盗取。这似乎有点太夸张了,但请想象一下每时每刻都可能受到攻击者和外国国防机构监视的军事通信。不仅如此,在竞争激烈的公司领域和金融领域,面临着同样的威胁。
传统上,发送者和接收者已经就密钥达成一致意见。在离开港口之前,交给潜水艇的舰长一个译码本,他将用它对来自基地港的加密无线电报文进行译码。这是对称密码技术(双方都知道同一个秘密密钥),而且通常称为秘密密钥密码技术。DES(数据加密标准)是一种常见的秘密密钥加密。 DES是一种分组加密算法,它所使用的密钥长度为64位,由占56位长度的实际密钥和每个字节的第8位的奇偶校验码这两部份组成。它以64位为一组,将明文分成若干个分组,每次利用56位密钥对64位的二进制明文分组进行数据加密,产生64位的密文。DES算法的密钥可以是任意的一个56位的数,且可在任意的时候改变。
但对需要交换消息的各方而言,并非总能够知道和/或信任对方,或者此前彼此交换过密钥。在1976年,Whitfield Diffie和Martin Hellman提出了一种非对称公钥加密的概念。在这种方案中,某个人使用程序生成两个密钥。这两个密钥通过一种极其难以反演的特殊函数在数学上相互关联。将其中一个密钥秘密保存,而将另一个放在一个公共位置;后者很类似于电话簿中列出的电话号码。为向某人发送一个私人消息,您查找他的公钥,将消息进行加密,然后发送到密钥的所有者。密钥所有者用他们的私有密钥将消息解密。只有私有密钥可以解密用该公钥加密的消息。因此,私有密钥必须保证安全,不对外泄漏。
非对称公钥密码技术的概念由Diffie和Hellman于1976年提出,但将它变成一种实用性和商业性系统的却是RSA( Rivest、Shamir和Adleman)数据系统。Diffie和Hellman最初认为,这些密钥应当保存在大型公共文件中,然后通过密钥所有者的名字进行引用。该文件其实是一个包含名字和密钥的白页目录,与电话簿相似。但该文件可能会变得极其庞大,因此需要存储在可以对其进行管理的位置。在RFC 2693中,Loren Kohnfelder提出一种想法,将每个名称/密钥组合从大型文件中分离出来,然后输入单独的记录中。这些个别的记录可以进行数字“签名”,方法是用可信赖的第三方的公钥对它们进行加密或散列处理。Kohnfelder将这种签名的记录称为证书,而管理和签发这些证书的可信赖的第三方则称为认证机构(CA)。
公开密钥密码技术就是使用两个不同的密钥,其中公开发布的那把密钥称为公共密钥,仅由拥有者保管的那把密钥称为私有密钥(或专用密钥)。如果某一信息采用公用密钥加密,那么必须使用私有密钥进行解密,由此实现信息保密。如果某一信息采用私有密钥加密,那么必须用公有密钥进行解密,由此实现身份验证。这种加密技术以RSA为典型代表。图P-10显示公钥密码技术的工作过程。甲和乙希望交换可靠消息。甲和乙在同一个公司网络上,因此访问管理公钥(在公共网络上,由认证机构管理)的公司证书服务器非常方便。
1.乙和甲使用在Web浏览器和电子邮件应用程序中常见的软件来生成一组密钥。
2.将公钥发送到公钥服务器(证书服务器),后者将密钥随同人员信息捆绑入证书中,并使用分配给证书服务器的可信密钥为它签名。
3.当甲希望向乙发送可靠消息时,他从公钥服务器获得乙的证书。该证书包含乙的公钥,甲用它来加密消息。然后,他将消息发给乙。
4.乙接收该消息并用她的私有密钥对消息进行解密。
图P-10 公共密钥密码技术
公钥方案解决了向其他需要解密消息的接收方发送密钥的问题。事实上,它允许任何人加密消息,然后发送给其他的人,而不用预先交换密钥。发送和接收的各方甚至不必彼此了解,不必在同一机构,也不必连接到同一网络。
公钥基础结构(PKI)是管理公钥的完整系统。它可在企业网络内部实现,但通常是指公共环境中的CA层次体系。它还定义CA如何注册用户,创建和管理证书,而且定义它们的业务运行过程。IETF PKIX (公钥基础结构X.509)工作组已定义了用于因特网的PKI。X.509是由国际电信联盟(ITU-T)制定的一种定义证书格式和分布的国际标准。为了提供公用网络用户目录信息服务, ITU 于 1988 年制定了 X.500 系列标准。其中 X.500 和 X.509 是安全认证系统的核心, X.500 定义了一种区别命名规则,以命名树来确保用户名称的唯一性; X.509 则为 X.500 用户名称提供了通信实体鉴别机制,并规定了实体鉴别过程中广泛适用的证书语法和数据接口, X.509 称之为证书。
上一篇:油烟机十大公认品牌排行榜
下一篇:什么是密码身份验证协议