我们已经看到了现代对称加密算法如何将明文数据块转换为密文的一般概念。当然,我们要加密的明文很少小于这些算法处理的 64 位或 128 位块。这些算法如何将大于块大小的输入处理成密文的不同可能方法称为操作模式。 设计人员选择的操作模式具有严重的安全隐患。我们将从最“明显”的方法开始:简单地将各个密文块连接在一起。
电子密码本 (ECB) 模式
到目前为止,加密长度超过加密算法块大小的明文的最自然方法是逐块加密明文,并连接生成的密文块:
不幸的是,这基本上总是一个不安全的设计选择。
要了解原因,请检查右侧的图像。左侧是明文图像,右侧是使用 ECB 模式加密的图像。显然,即使图像已被加密,也会显示有关明文的相当多的信息。这是因为 ECB 模式将相同的明文块加密为相同的密文块。
计数器 (CTR) 模式
计数器操作模式与 ECB 模式非常相似,保留了其所有不错的属性(例如,您可以并行化加密和解密),但提供更好的安全属性。
有趣的是,明文根本没有输入到分组密码中!相反,计数器值将输入到块密码,并随着每次连续调用而递增。明文本身通过独占-OR与分组密码的输出相结合,以产生最终的密文块。
回到图像示例,我们可以看到,使用计数器模式加密明文不再产生明显泄漏信息的密文。
还有许多其他操作模式,每种模式都有适合不同用例的优点和缺点。永远记住,选择操作模式是一个具有重要安全影响的关键决定。
非对称加密算法
在我们之前的例子中,Alice 和 Bob 都共享同一个密钥——他们在系统中的信息是对称的。相比之下,非对称加密算法使用两个数学上相关的密钥:只有所有者知道的私钥,以及所有者向所有人透露的相应公钥。要加密纯文本消息,请使用其公钥。只有所有者才能解密密文,因为只有他们拥有与其公钥相对应的私钥。
与依赖于非线性替换盒的对称加密算法不同,RSA 和椭圆曲线加密 (ECC) 等非对称加密算法的安全性依赖于数论假设。非对称加密算法往往比对称加密算法的计算成本高得多,这使得它们不适合加密大量数据。然而,非对称算法简化了密钥分发问题,因为在第一次与新人通信时,共享公钥比共享敏感的私钥容易得多。
为了结合两者的优势,采取了混合方法。为了让 Bob 与 Alice 通信,他使用她的公钥进行非对称加密算法,以加密对称加密算法的共享密钥,并将其发送给她。尽管非对称加密算法的计算成本更高,但只需调用一次即可加密短值:共享密钥。在通信之前安全地共享对称密钥是不切实际的(想象一下必须安全地将密钥传输到您访问的每个网站!),因此调用非对称加密算法可以解决密钥分发问题。Alice 收到加密消息后,她使用非对称加密算法的相应私钥来解密共享密钥。现在 Alice 和 Bob 都有相同的共享密钥,他们可以切换到更快的对称加密算法。这使他们能够快速加密和交换大量数据,因为对称加密算法比非对称加密算法快大约两个数量级。
所需资源
由于对称和非对称加密算法依赖于不同类型的难题来提供安全性,因此它们容易受到针对其底层数学框架的不同攻击。因此,它们需要不同的密钥长度来提供相同的等效安全级别。此表总结了各种构造所需的密钥位数,以提供等效的暴力安全强度。请注意,DES 无法提供最低 128 位暴力破解安全性,因此不应使用它。
结论
与历史加密算法不同,现代加密算法是围绕经过充分研究的难题构建的,这些问题只有在了解私钥的情况下才容易反转。重要的是,算法的设计始终是公开的,只有私钥是保密的。尽管 DES 在推出时被认为是安全的,但它的 56 位密钥在今天是不安全的,应该避免使用 AES 及其最小的 128 位密钥长度。将密文块链接在一起的对称加密算法的操作模式在构造的安全性中起着至关重要的作用,绝不应使用简单的电子密码本 (ECB) 模式。非对称加密算法通过消除事先私下共享密钥的需要来帮助简化密钥分发问题:任何人都可以使用个人的公钥加密消息,因为只有个人才能使用只有他们自己知道的相应私钥解密消息。尽管非对称加密算法的计算成本更高,但它们可以短暂地用于安全地交换共享密钥,以换取更快的对称加密算法。最后,由于对称和非对称加密算法的安全性基础存在不同的数学问题,为了提供等效的安全性,它们必须使用不同的密钥长度。
审核编辑:郭婷
-
半导体
+关注
关注
334文章
26927浏览量
214951 -
计数器
+关注
关注
32文章
2253浏览量
94302
发布评论请先 登录
相关推荐
评论