非对称加密(Asymmetric cryptography) 公钥加密PKC
对称加密算法使用单个密钥,加密和解密都使用同一个密钥。
非对称加密(Asymmetric cryptography)使用两个不同但相关联的密钥,一个是公开密钥,另一个是私有密钥,公钥用作加密,私钥则用作解密。非对称加密也叫公开密钥加密(PKC、Public-key cryptography)。
基于公开密钥加密的特性,可以形成数字签名 ,使数据和文件受到保护并可信赖;如果公钥透过数字证书认证机构签授成为电子证书,更可作为数字身份的认证,这都是对称密钥加密无法实现的。PKC已经成为现代计算机安全中重要原理,同时也是日益增长的加密货币生态系统的关键组成部分。
概念分组:
- 对称密钥密码学
- 对称加密
- 非对称密码学 或 公钥密码学(PKC)
- 非对称加密(或公钥加密)
- 数字签名(Digital Dignature):可能包括也可能不包括加密
理解加密密钥
在密码学中,加密算法生成几比特的字符密钥用于加密和解密一段信息。这些密钥的使用方式也很好的说明了对称和非对称加密之间的区别。
虽然对称加密算法使用同一个密钥来执行加密和解密,反之,非对称加密算法使用一个密钥来加密数据,再使用另一个密钥来解密它。在非对称加密系统中,用于加密的密钥称为公钥,可以与他人进行共享。另一方面,用于解密的密钥是私钥,应该记性保密。
例如,如果Alice向Bob发送使用对称算法加密过的消息,则她需要与Bob共享她用于加密的加密密钥,以便他可以解密该消息。这意味着如果恶意行为者拦截了密钥,他们就能够轻松访问加密过的信息。但是,如果Alice使用非对称加密算法,她会使用Bob的公钥对消息进行加密,Bob可以使用其私钥对消息进行解密。因此,非对称加密提供了更高级别的安全性,因为即使有人拦截了他们的消息并获得了Bob的公钥,他们也无法解密该消息。
在现实世界上可作比拟的例子 是,一个传统保管箱,开门和关门都是使用同一条钥匙,这是对称加密;而一个公开的邮箱,投递口是任何人都可以寄信进去的,这可视为公钥;而只有信箱主人拥有钥匙可以打开信箱,这就视为私钥。
密钥长度
对称和非对称加密之间的另一个功能差异与密钥的长度有关,密钥的长度以比特为单位,并且与每个加密算法提供的安全级别直接相关。
在对称加密中,密钥是随机选择的,其长度通常设置为128或256位,具体长度取决于所需的安全级别。然而,在非对称加密中,公钥和私钥之间在数学上相关联,这意味着两者之间存在算术联系。攻击者可能利用该模式破解密文,因此非对称密钥需要更长的密钥长度,才能提供相同级别的安全性。密钥长度的差异是如此明显,以至于128位的对称密钥和2,048位非对称密钥才能提供大致相同的安全级别。
对称和非对称加密的优缺点比较
这两种不同类型的加密算法之间,优缺点各异。对称加密算法运算速度快,并且需要较少的计算资源,但它的主要缺点是密钥的分发。因为在加密和解密信息时,使用相同的密钥,所以必须将该密钥分发给需要访问数据的人,这也随之带来了安全风险。
相反,非对称加密使用公钥进行加密,私钥进行解密,来解决密钥分发的问题。不过,公钥加密在在计算上相当复杂,性能欠佳、远远不比对称加密。(非对称加密系统运行得非常缓慢,并且由于它们的密钥长度非常长,因此需要更多的计算资源。)
总结对称加密的特点
- 加密算法是公开的,常用IDEA、DES、RC4、RC5等
- 加密速度快
- 计算量小
- 双方任一密钥泄漏,则加密信息就不安全了
总结非对称加密的特点
- 常用加密算法:RSA、DSA
- 安全性高
- 操作更多,速度慢
应用案例
对称加密的应用
鉴于其具有更快的运算速度,对称加密在现代计算机系统中被广泛用于保护信息。例如,美国政府使用高级加密标准(AES)来加密和分类和感信息。AES取代了之前的数据加密标准(DES),后者是在20世纪70年代开发的,一直作为对称加密的标准。
非对称加密(公钥加密)的应用
常见的公钥加密算法有:RSA、ElGamal、Rabin(RSA的特例)、DSA、ECDSA。使用最广泛的是RSA算法(由发明者Rivest、Shmir和Adleman姓氏首字母缩写而来)是著名的公开秘钥加密算法。
非对称加密通常用于大量用户需要同时加密和解密消息或数据的系统中,尤其 是在运算速度和计算资源充足的情况下。
常用案例使用公钥密码学技术来对电子邮件进行加密,以确保其中内容的机密性。其中公钥可以用于加密消息,私钥可以用于解密。
可以同时允许网站安全连接的安全套接层(SSL)协议也使用了非对称密码学。
PKC系统也被用于安全电子投票环境的探索(此种电子投票环境将允许选民在家庭电脑上参与选举)。
PKC的特性在区块链和加密货币技术中也表现突出。当新的加密货币钱包被创建时,就会生成一对密钥(公钥和私钥)。公共地址是使用公钥生成的,并可以安全的与他人共享。另一方面,私钥被用于创建数字签名和验证交易,所以必须要保密。当交易被数字签名中的认证散列验证之后,就可以被添加到区块链账本中。该数字签名系统确保了只有拥有加密货币钱包对应私钥的用户才能从钱包中获取资金。但值得注意的是,加密货币应用中所使用的非对称密码与计算机安全目的中所用的却不同。例如,比特币和以太坊所使用的是椭圆曲线数字签名算法(ECDSA)来验证交易。
从计算机安全到验证加密货币交易可以看出,公钥密码学在现代数字系统的安全保护方面发挥了关键作用。通过使用成对的公钥和私钥,非对称密码学算法解决了对称密码中固有的安全问题。对于PKC的使用已经经历了多年,且也在不断开发其在新兴领域内的应用,特别是区块链和加密货币领域。
混合加密体系的应用
在许多应用中,对称和非对称加密会一起使用。这种混合系统的典型案例是安全 套接字层(SSL)和传输层安全(TLS)加密协议,该协议被用于在因特网内提供安全通信。SSL协议现在被认为是不安全的,应该停止使用。相比之下,TLS协议目前被认为是安全的,并且已被主流的Web浏览器所广泛使用。
HTTPS组合使用了对称加密和非对称加密
- 服务端生成了一对公钥和私钥,把公钥和证书发给客户端
- 客户端验证了证书真伪
- 客户端生成一个随机值,用公钥加密发给了服务端
- 服务端用私钥解密,获取了随机值
- 服务端使用该随机值作为密钥和客户端进通信
加密货币使用密码学吗?
许多加密货币中使用的加密技术向终端用户提供了更高级别安全性。例如,当用户为其加密钱包设置密码时,这时就会用到加密算法,通过密码学使用于访问软件的文件被加密。
然而,由于比特币和其他加密货币使用了公钥和私钥,因此存在一种常见的误解,即区块链系统使用非对称密码学算法。如前所述,非对称加密和数字签名是非对称密码学(公钥加密)的两个主要用例。 因此,并非所有数字签名系统都使用加密技术,即使它们用到了公钥和私钥。实际上,可以仅对消息进行数字签名而不进行加密。
当今最流行的非对称加密技术是 RSA,以其发明者的名字命名:Rivest、Shamir 和 Adleman。
RSA是用于对加密消息进行签名的示例算法,但比特币使用的数字签名算法(名为ECDSA)根本没有用到加密功能。
总结
在现如今的数字化时代中,对称和非对称加密在保护敏感信息和网络通信中扮演着重要角色。虽然两者都十分有用,但它们也各具优缺点,因此适用于不同的应用场景。随着密码学的不断发展,利用密码学能够更好的抵御各类全新和复杂的威胁,对称和非对称加密也与计算机安全紧密相关。