信息中心

什么是 RSA 加密以及它与其他加密方法相比如何?

世界靠沟通而运转。每个人都需要发送和接收信息。不幸的是,数字化和便捷的互联网访问使得需要发送私人通信,因为并不是每个在线的人都是值得信任的。

人类总能找到方法来发送只有目标接收者才能理解的隐藏消息。这种通信形式称为密码学,指的是对需要特定密码或解码方法的信息进行加密的能力。

加密对一个正常运转和安全的数字社会至关重要。它可以防止具有互联网连接的恶意行为者轻松访问个人和敏感信息。鉴于2022 年 5,000 万至 6,000 万条记录的数据泄露平均总成本达到 3.87 亿美元,这也是一个重大问题。

RSA 加密就是一种使用公钥算法进行私人消息解密的密码系统。为了更好地理解它是什么,让我们回答这个问题:“什么是数据加密和公钥加密算法?”

数据加密解释

数据加密或加密涉及将信息伪装成密文。未经授权的人员无法理解密文。相反,破译或解密涉及将密文转换回原始格式。手动加密可以追溯到罗马帝国。然而,今天的加密是密码学的基本过程,并且是通过电子方法伪装信息的同义词。

计算机应用一种算法来加密数据。算法是一组用于在数据块上执行特定任务的指令或过程。密钥是只有消息的用户或发送者以及预期接收者知道的个人加密名称。

目前,存在两种主要类型的加密:

  • 对称加密使用相同的密钥来加密和解密数据,例如高级加密标准 (AES)
  • 非对称加密也称为公钥加密,因为它需要一对密钥,公钥用于加密,私钥用于解密。Rivest Shamir Adleman 算法就是一个常见的例子。

RSA 之所以有效,是因为随机选择的足够长度的加密密钥几乎是坚不可摧的。

公钥加密算法

它也称为非对称算法,其中发送者和接收者使用不同的密钥来加密和解密数据。非对称算法为每个发送方分配一对密钥:

  • 用于加密的公用密钥
  • 用于解密数据的私人密钥

尽管这两个密钥是链接的,但无法从公共密钥导出私有密钥或使用公共密钥解密数据。顾名思义,公钥是众所周知的,但私钥是秘密的,只有拥有它们的用户才能使用。简而言之,每个人都可以使用其公钥向用户发送消息,但只有预期的接收者可以使用其私钥解密消息。

什么是 RSA 加密?

RSA 是最常用的公钥算法。RSA 的缩写代表 Rivest Shamir Adleman,这位数学家和两位计算机科学家于 1977 年首次公开描述了该算法。

许多协议,例如安全外壳 (SSH)SSL-TLSS/MIMEOpenPGP,都依赖于 RSA 加密和安全的数字签名功能。

RSA 加密系统解决了密码学中曾经的一个重大问题:如何在不事先与某人共享代码的情况下向某人发送编码消息。

假设您想告诉别人一个秘密。如果他们就在您旁边,您可以通过说话表达出来。然而,如果他们离您很远,您就无法通过说话表达出来。您需要使用电话或将其写下来并邮寄。遗憾的是,这些通信渠道并不安全,任何有足够动机的人都可以窃听或拦截消息。

防止窃听的一种解决方案是对消息进行加密。这意味着向其中添加一段代码,将其改成一团糟。如果您使用足够复杂的代码,则只有有权访问该代码的人才能访问原始消息。否则,它将保持不可读状态。

如果您事先与朋友共享代码,您可以随时发送加密消息,因为只有您们两个拥有阅读原始内容的代码。

但是如果您没有事先分享代码怎么办?如何进行安全通信?这是密码学使用公钥加密方案或 RSA 等非对称加密解决的一个基本问题。

RSA 加密允许用户使用可以公开共享的称为公钥的代码来加密消息。由于特定的 RSA 算法的数学特性,一旦用户使用公钥加密消息,只有私钥可以解密它。用户有一对公钥和私钥,后者是保密的。

公钥加密系统与对称密钥加密不同,对称密钥加密使用相同的密钥进行加密和解密。因此,RSA 对于用户事先未安全分发密钥的情况下的通信非常有用。

RSA 加密的使用

RSA 加密不适合加密整个文件或消息,因为它比对称密钥加密更占用资源,效率也更低。因此,通常的做法是将RSA加密与其他加密系统一起使用或用于加密数字签名来证明消息的完整性和真实性。

数字签名有助于认证和验证文件和文档。它们可以防止在传输官方文件和其他敏感文件期间被篡改,并防止伪造或操纵。然而,数字签名使用私钥进行加密,使用公钥进行解密,以验证签名的来源。

用户通常会使用非对称密钥算法来加密文件,并使用 RSA 加密来加密对称密钥。因此,只有 RSA 私钥才能解密所使用的对称密钥,没有它,就无法解密消息。

如今,不同的系统都使用 RSA 加密,包括 OpenSSLcryptlibwolfCrypt 和其他加密库。RSA 还广泛用于 Web 浏览器、电子邮件聊天、VPN 和其他通信渠道。

此外,RSA 还可确保 VPN 服务器和客户端之间的安全连接。在 OpenVPN 等协议下,用户可以使用 RSA 算法进行 TLS 握手来交换密钥并建立安全通信通道。

RSA 加密如何工作

支持 RSA 加密的数学原理非常复杂,无法详细解释。在深入研究密码学中的 RSA 算法之前,有几个概念需要讨论。包括:

  • 陷门函数
  • 生成质数
  • 卡迈克尔的 totient 函数
  • 生成公钥和私钥

陷门函数

在一个方向上易于计算而反向计算却极其困难的方程被称为陷门函数。RSA 密码学的基本前提是该算法在一个方向上相对容易计算,而在反向上几乎不可能。例如,如果你得到 543,111 作为两个素数的乘积,你能计算出这两个素数吗?

即使使用计算器,也很难知道从哪里开始,但翻转一下会让事情变得更容易,因为:

  • 807*673 = 543,111

尽管如此,给定 543,111 和一个素数,很容易算出另一个素数,如下所示:

  • 543,111/807 = 673

RSA 加密使用的数字要大得多。例如,在 2048 位 RSA 中,密钥的长度为 617 位。

陷门函数是私钥和公钥加密方案工作的基础。它们的属性允许在不泄露私钥或危及消息的情况下共享公钥。

生成质数

生成密钥是加密数据的第一步,该过程使用通过素性测试选择的两个素数(p 和 q)。这些算法可以有效地查找用于加密的素数,例如 Ranbin-Miller 素性测试。质数必须较大且相隔相对较远,这样就更难破解密钥。

生成公钥和私钥

RSA 公钥是质数和模数 n。模 (mod) 是一种模运算,表示一侧或数字除以另一侧后剩下的余数,例如:

  • 10 mod 3 = 1(3 三次变成 10,余数为 1)

以下是生成公钥的公式:

  • C = me mod n

完成所有数学运算并应用公钥 (C=me mod n) 后,最终的加密数据就是密文 (c)。

私钥是用户可以用来解密用公钥加密的密文的唯一密钥,并且它们必须是相似的密钥对。私钥由 d 和 n 组成,由于我们已经知道 n,因此可以使用以下公式轻松计算 d:

  • d = 1/e mod λ (n)

上面的 RSA 算法示例表明,加密涉及的数学很复杂,如果处理得当,就会产生安全的解决方案。

RSA 加密的优点

使用 RSA 加密有很多优点,包括:

  • 安全性:RSA 加密具有保护数据传输的安全算法
  • 公钥加密:RSA 使用公开密钥加密算法来确保安全。这意味着它使用两个不同的密钥来加密和解密数据。
  • 密钥交换:由于 RSA 算法使用两个密钥进行加密和解密,因此可以在不通过网络实际发送私钥的情况下交换密钥。它允许数据加密和安全传输,而无需事先发送解密密钥。
  • 数字签名:RSA 算法非常适合数字签名,因为发送者可以使用私钥签署文档或消息,而接收者使用公钥验证签名。

RSA 加密的挑战

RSA 面临一些挑战,在某些情况下限制了其使用,因为攻击者有能力利用它们。例如,它在其加密算法中实现了一个长密钥。AES 算法是牢不可破的,但像 RSA 这样的非对称算法依赖于密钥的大小来使其难以破解。

因此,较长的 RSA 密钥比较短的 RSA 密钥更安全且更难以破解。例如,研究人员使用质因数分解在两年内破解了 768 位 RSA 加密密钥。

它占用了大量资源,但事实上它是可能的,这一事实应该始终成为有关 RSA 密码系统安全性的讨论的因素。虽然个人可能没有能力破解此类加密,但政府可以做到这一点,因为他们拥有更多可用资源。

NIST 建议最小密钥长度为 2048 位,但组织正在转向 4096 位密钥长度以提高安全性。

RSA 的其他缺点包括:

  • 处理速度慢:RSA算法在处理大数据量时,与其他加密算法相比,处理速度较慢。它并不总是适合那些需要定期加密和解密大量数据的应用程序
  • 大型密钥大小:RSA 加密需要使用大型密钥大小以确保安全。因此,它需要更多的计算能力、资源和存储。
  • 侧通道攻击的漏洞:该算法很容易受到攻击,攻击者使用通过侧通道泄漏的信息来提取私钥信息。这些通道包括功耗、时序分析和电磁辐射。
  • 弱密钥生成:例如,如果选择的两个质数太接近,或者组成密钥对之一的数字太小,则算法会变得更容易求解。

RSA 加密的安全性如何?

尽管存在上述漏洞,但只要用户正确实施并使用长且难以破解的密钥,RSA 目前使用起来相对安全。未能使用足够大小的质数或存在其他漏洞的实现是不安全的。

只要用户始终意识到 RSA 加密算法的弱点和潜在漏洞,他们就可以安全地将其用于密钥共享和其他任务,例如需要公钥加密的数字签名。

量子计算等未来技术会影响密码学中的 RSA 算法吗?

RSA 在线加密目前是安全的,但量子计算的出现可能会在未来带来挑战。量子计算机可以轻松解决我们目前认为极其困难的某些问题。由于这种困难是加密系统安全的原因,因此可以肯定地说,当前大小的 RSA 密钥将变得更加脆弱。

量子计算机将轻松解决整数分解问题。然而,这个未来仍然很遥远,因为量子计算机仍在开发中,并且主要用于研究环境。网络安全行业参与者也在不断寻求改进公钥算法,以确保其在后量子世界中的安全。

最优非对称加密填充 (OAEP) 现在是 RSA 公钥加密的主要标准填充。填充允许在加密消息之前对其进行格式化以达到更高的安全级别,从而排除基本攻击。

总结

Veritas Technologies 是一家总部位于美国的国际数据管理公司。我们致力于解决您的数据管理难题,并帮助保护敏感数据免受网络攻击、人为错误或自然灾害等危险。

Veritas 帮助各种规模的组织克服保护和管理关键业务数据的复杂性。我们的集成产品组合提供统一的数据服务和管理体验,并提供无与伦比的边缘到云性能和多功能性。

我们还提供其他最先进的解决方案,例如适用于小型企业的 Veritas Backup Exec和适用于数据存储和灾难恢复的Veritas InfoScale。我们的解决方案使您能够更轻松地遵守 HIPAAGDPRCCPA 等主要数据隐私法。


Veritas 客户包括 95% 的财富 100 强企业,而且 NetBackup™ 是企业保护海量数据的首要选择。

深入了解为实现 数据的全面保护,Veritas 如何跨虚拟、物理、 和传统工作负载统一运行 企业数据保护服务。

 

常见问题解答

加密涉及将数据转换为密文,这是一种随机且不可读的格式,需要解密密钥才能解密。

Rivest-Shamir-Adleman (RSA) 以其开发者的名字命名,是一种非对称加密技术,使用两种不同但相互关联的加密密钥(私有密钥和公共密钥)。RSA 加密使用相反的密钥来加密和解密数据。

RSA 使用两个密钥:私钥和公钥。RSA 私钥生成数字签名,而公钥用于验证数字签名。此外,RSA 公钥还可以加密 AES 或 DES 数据密钥,而 RSA 私钥则用于恢复。

RSA 加密有多种用途,包括虚拟专用网络 (VPN)、Web 浏览器和电子邮件服务。众所周知的产品和算法(例如 Pretty Good Privacy (PGP) 算法)也使用 RSA 加密技术。

RSA 可保护财务详细信息等敏感信息并保护信用卡等交易。组织还使用 RSA 加密来加密电子邮件和 Web 浏览器中的私人信息。

Veritas Technologies 提供企业数据管理软件解决方案,帮助组织保护其关键任务数据。它还提供数据保护、合规性准备、存储优化和云数据管理服务。

是的,他们可以,因为加密可以保护私人信息和敏感数据。它还增强了服务器和客户端之间通信和传输的安全性。