非对称与对称加密

信息安全 加密 密码学 不对称
2021-09-03 09:55:11

我目前正在学习信息安全原则课程。在谈论不同的加密方法时,我的大量同学似乎认为非对称加密比对称加密更好(更安全)。一个典型的陈述是这样的:

通常非对称加密方案更安全,因为它们需要公钥和私钥。

当然,使用对称加密,您必须担心安全密钥交换,但据我所知,没有一个内在的原因必须比另一个更安全。

特别是考虑到非对称部分通常仅用于密钥交换,然后使用对称算法对实际数据进行加密。

那么,我是否遗漏了一些东西,或者真的可以做出这样的一般性陈述来说明哪个更安全?

如果我有一个用 AES 加密的消息和另一个用 RSA 加密的副本,并且所有其他条件都相同,那么哪个更有可能被破解?甚至可以进行这种比较吗?

4个回答

对称和非对称加密是不同的操作,它们在不同的上下文中运行,用于不同的用途和不同的攻击模型。声称任何一个比另一个“更安全”是没有意义的(它首先需要某种量化的安全措施,这不容易定义)。

非对称加密要求更高:它是关于实现加密能够发布加密方式(公钥)而不泄露解密方式(私钥)。实际的实现需要数学,而对称加密主要是对事物进行加扰(请注意,很难做好加扰;但仍然涉及较少的数学)。

通常部署的系统(例如SSL/TLS)将非对称加密和对称加密(以及其他一些东西)结合到执行某些预期工作的协议中(例如“具有机密性、完整性和身份验证的双向隧道”)。

从某种意义上说,您可以定义特定加密算法的强度¹:粗略地说,强度是为了破解加密而需要进行的尝试次数。更准确地说,强度是找到秘密所需的计算量。理想情况下,算法的强度是需要进行的蛮力尝试的数量(由每次尝试的复杂性衡量,或者如果某种并行化允许多次尝试共享某些工作,则减少);随着对算法的攻击提高,实际强度下降。

重要的是要认识到“特定加密算法”包括考虑特定的密钥大小。也就是说,您不是针对 AES 推销 RSA,而是使用 AES-256(具有特定链接模式、IV 等)的 1024 位 RSA(具有特定填充模式)。从这个意义上说,你可以问:如果我有一个用算法 A 加密的数据副本,参数 P 和 Q 的给定值(特别是密钥大小),以及一个用算法 B 加密的副本,参数 P 和 R,那么(A,Pval₁,Qval₁) 和 (B,Pval₂,Rval₂) 中的哪一个可能首先被破解?

在实践中,许多协议涉及使用多个密码原语。不同的原语有不同的可能用途,即使几个原语可以服务于给定功能,也可能有一个比其他原语更适合。在为给定目的选择加密原语时,决策过程有点像这样:

  1. 什么算法可以完成这项工作?→ 我可以使用 A 或 B 或 C。
  2. 我需要什么力量?→ 我想要 2 N个操作,所以我需要原始 A 的密钥大小 L A,原始 B 的 L B,原始C的 L C。
  3. 考虑到我的限制(速度、延迟、内存效率……),其中哪一个(L A -bit A 或 L B -bit B 或 L C -bit C)最好?

例如,假设您的需求是与您不信任的一方交换数据的协议。然后对称密码学无法单独完成这项工作:您需要某种方式来共享密钥。如果您让各方提前交换公钥,则 RSA 等非对称密码学可以完成这项工作。(这不是唯一的可能性,但我不会在这里详细介绍。)因此,您可以决定任何 RSA 密钥长度对您的应用程序具有合适的强度。然而 RSA 既慢又麻烦(例如,没有标准协议将 RSA 加密应用于流——主要是因为没有人打扰,因为它们太慢了)。许多涉及公钥加密的常见协议仅使用它来交换有限持续时间的秘密:某些对称加密算法的会话密钥。这被称为混合加密同样,您可以根据所需的强度选择会话密钥的长度。在这种情况下,所涉及的两个基元往往具有相同的强度。

¹ 相同的概念适用于密码学的其他用途,例如签名或散列。

在对称和非对称加密之间进行选择取决于用例

* 当一小组用户需要访问信息时,使用对称加密。此外,对称加密很好,因为它更容易理解(不太可能搞砸)并且算法往往更快。

当大量用户需要访问信息时,使用非对称加密。此外,可以反向使用非对称加密来签署文档。这特别有趣,因为它允许人们证明公钥属于某个人。

一组 10 个用户需要 45 个唯一密钥(9+8+7+6+5+4+3+2+1),以允许每对用户安全通信。现在考虑互联网而不是 10 人的小组。很明显,这不能用对称密钥来处理。

在现实世界中,这两种类型经常结合使用。非对称方法用于确认通信伙伴的身份并传输将产生对称密钥的内容。然后,此对称密钥用于对实际数据进行高性能加密。

通常非对称加密方案更安全,因为它们需要公钥和私钥。

不,你不能这么说。那是胡扯。这不是真的。

强度与对称与不对称无关。对称密码学和非对称密码学是两种不同的密码工具。每个都可以是弱的或强的,这取决于。没有任何理由说明非对称密码学一定比对称密码学更强。

例如:

  • AES 比 512 位 RSA 更安全地抵御密码分析攻击,即使 RSA 是非对称的而 AES 是对称的。

  • 4096 位 RSA 比 40 位 RC4 更安全地抵御密码分析攻击,即使 RC4 是对称的而 RSA 是非对称的。