对称密钥加密(或对称加密)是指使用相同的密钥进行加密和解密的一种密码学方案。在过去的几十年中,这种信息加密的方式被广泛应用于政府和军队中的机密通信。如今,对称密钥算法也广泛应用于各种类型的计算机系统中,起到了增强数据安全性的作用。
对称加密如何工作?
对称加密方案依赖于两个或多个用户之间共享的相同密钥。相同的密钥被用于对所谓的明文(表示正在编码的消息或数据段)进行加密和解密。加密过程大致概括如下:对明文(作为输入)使用加密算法进行加密,然后加密算法会将明文生成密文(输出)。
如果加密方案足够强大,则人们读取或访问密文信息的唯一方法是使用相应的加密密钥对其进行解密。解密过程基本上是将密文转换回明文。
对称加密系统的安全性基于随机猜测相应密钥以破解它们的难度。例如,使用普通计算机硬件破解128位的密钥至少需要花费数十亿年。加密密钥的位数越长,破解它就越难。 256位的密钥通常被认为是安全度极高的,并且理论上可抵抗量子计算机的暴力攻击。
目前使用的两种最常见的对称加密方案是基于块密码和流密码。分组密码将数据分组成预定大小的块,并且使用相应的密钥和加密算法(例如,128位明文被加密成128位密文)对每个块进行加密。另一方面,流密码不按块加密明文数据,而是以1比特的流增量进行加密(即1比特明文一次加密成1比特密文)。
对称与非对称加密
非对称加密算法使用两个不同的密钥也是其与对称密钥产生功能差异的原因。非对称算法比对称算法更复杂,运算速度更慢。因为非对称加密中使用的公钥和私钥在某种程度上是算数相关的,所以密钥本身也必须足够长,以此达到与对称加密算法(使用较短加密密钥)相同的安全级别。
现代计算机系统中的应用
在许多现代计算机系统中采用对称加密算法来增强数据安全性和用户隐私。在安全消息传递应用程序和云存储中广泛使用的高级加密标准(AES)是对称密码的一个常见用例。
除软件实现外,AES还可以直接在计算机硬件中实现。基于硬件的对称加密方案通常利用AES 256,它是高级加密标准的特定变体,密钥长度为256位。
一个常见的混淆点是ECDSA基于椭圆曲线加密(ECC),后者还可以应用于多种不同的任务,包括加密、数字签名和伪随机生成器。但是,ECDSA本身根本不能用于加密。
优缺点分析
对称加密算法可以提供相对较高的安全级别,同时支持快速加密和解密消息。对称加密系统的相对便捷性在逻辑上也是一种优势,因为它们比非对称系统消耗更少的计算资源。此外,对称加密提供的安全性可以通过增加密钥长度来实现。随着对称密钥长度的增加,暴力攻击破解加密的难度也呈指数增长。