售前咨询
技术支持
渠道合作

公钥加密成功解决历史加密安全的遗留问题

在信息加密行业中,公钥加密对于身份认证和信息加密具有重大的作用。如在SSL证书代码签名证书、电子邮件签名证书和文档签名都需要借助公钥加密来对信息进行加密以及身份验证。

本文将讨论私钥加密和公钥加密之间的差异,公钥的历史意义以及结合SSL/TLS协议组成的密码系统。

什么是私钥加密

据历史资料记载,私钥密码学可以追溯到公元前1900年左右。在私钥的加密原理中,双方必须拥有匹配的私钥(需在传输的过程中交换)然后使用加密明文来进行解密。其中经典的案例就有:Caesar的密码,Enigma机器和Louis XIV的Great Cipher。

随着时间的推移,关于私钥加密的安全缺陷越来越明显。因为私钥必须得借助一个物理介质,当双方的距离比较远时,必须得把加密介质和信息委托给第三方,如果私钥一不小心落入不法分子手中,就会带来严重的不良影响。

即使在如今的数字时代,私钥加密本身也与密钥分配有关,用户在没有身份验证机制的情况下是无法将私钥(在SSL / TLS中称为会话密钥)发送给正确的一方。

因此,公钥就应运而生。

公钥加密的出现

在过去的历史资料中,公钥加密的发明被发现过两次。第一次是在1970年,一位名叫James Ellis的密码学家,在为英国政府通信总部(GCHQ)工作期间,提出了一个公钥加密系统的理论,但当时没有可行的实施方案,而被忽略。三年后,1973年,Clifford Cocks通过混合算法(大概是日常所说的RSA)找到了一种可行的方法。另外,数学家Malcolm Williamson开发了一个与Diffie-Helman密钥交换的密钥交换系统。

当时这些信息已经传到美国的国家安全局,但没有引起他们的注意,并在当时的计算机水平被认为不切实际。

直到1976年,公共密钥密码学再次被Whitfield Diffie和Martin Hellman发现,(在Ralph Merkle,密码学家之后,2002年他们认为它应该是Diffie-Hellman-Merkle密钥交换)

一年后,RSA的同名创作者Ron Rivest,Adi Shamir和Leonard Adleman正在麻省理工学院完成工作。

什么是公钥加密?

Diffie-Helman密钥交换和RSA是非对称加密系统。至今,加密仍采用是对称的,双方可通过相同的私钥来进行加密和解密。

从专业术语“密钥交换”中,系统开发者一直在考虑一个历史的问题:密钥分发。

公钥加密一般使用的是密钥对,即可以加密的公钥和解密的私钥。在通信过程中,通信可以通过公钥进行加密,只有授权方才拥有私钥,而公钥是公共的。因此被称为“非对称加密”。

公钥加密中的私钥与上面提到的私钥一样重要,因此必须要妥善保管。而公钥就算不小心落入不法分子的手上,也是毫无价值的,所以,公钥并存在泄密的风险。

公钥加密是一种密钥交换机制

曾经,公钥加密的单向性被认为是网络通信的阻碍。但其实这是一种认证机制,与网络加密一样,它可用于加密信息并确保信息安全传送到目标对象。

根据SSL / TLS协议的工作原理,在握手期间,客户端自动生成的对称会话密钥,对其进行加密,然后将其发到服务器。如果服务器持有私钥,就可解密会话密钥,届时客户端和服务器就可以使用对称密钥开始通信了。

这有助于验证服务器,因为如果服务器没有正确的私钥,服务器就无法与客户端搭建会话通道。

从历史上看,公钥加密是一项了不起的突破,它为今天的SSL/TLS协议奠定了基础。时至今日,即使最先进的加密系统仍只能做到私钥的安全等级,公钥加密也是如此。但作为一种密钥交换机制,公钥加密已经抵挡了多种的攻击媒介。

由于公钥的单向性特点,令公钥加密中使用的私钥安全更加强大,因为对称加密的私钥是256位的,这对目前来说足够安全。但是与2048位的RSA相比,就相形见绌,因此公钥加密就成为更安全的密钥分发机制。

公钥加密如何在SSL中运行?

在SSL中,公钥加密有助于身份验证和密钥交换,本文将以TLS 1.3为例来简单介绍,因为TLS 1.3是未来的趋势,而以往的版本有点复杂。

首先说说密码和密码套件:密码是用于加密的算法。而密码套件是一组由SSL/TLS协议结合使用的算法。

而每个服务器和浏览器都配置了支持绝大部分的密码套件。一般,密码套件包括:

Key Exchange/Authentication Algorithm_WITH _ Symmetric Cipher_Hashing Function

这些正在发生转变,TLS 1.3将加密、身份验证算法与相关数据(AEAD)算法的认证加密相结合。

当用户(客户端)到达网站(服务器)时,它发送ClientHello消息,该消息具有按优先级排序的支持的密码套件列表。它还可猜测将使用什么加密算法,发送会话密钥。所有这些都是使用服务器的公钥加密的。

而服务器就是使用其私钥解密ClientHello消息,然后返回服务器Hello消息及其证书,选择对应的密码套件和密钥。

收到ServerHello后,客户端和服务器就开始使用交换对称加密的密钥进行通信。

其中,当中运用到的会话密钥常常会别替换,因为一些上下文中为每条消息会使用不同的会话密钥。

但是如果没有安全处理密钥分发的能力,这种方法将不可行。

而这些就是公钥密码学的历史意义了。

文章由数安时代GDCA翻译thesslstore

上一篇:

下一篇:

相关新闻