云计算百科
云计算领域专业知识百科平台

信息安全里的 RSA、AES、DSS、Diffie-Hellman:别再傻傻分不清

信息安全里的 RSA、AES、DSS、Diffie-Hellman:别再傻傻分不清

很多人第一次看到这四个缩写,会以为它们是同一种东西的不同选项。其实不是。它们解决的是不同层面的问题:

  • RSA:非对称加密,能加密也能签名,但慢。
  • AES:对称加密,速度快,主要负责加密数据本身。
  • DSS:数字签名标准,注意它是标准,不是单一算法。
  • Diffie-Hellman:密钥交换,让双方在不安全信道上协商出共享密钥。

真实系统里,它们经常一起出现,不是二选一。

RSA:非对称加密的老牌主力

是什么

RSA 由 Rivest、Shamir、Adleman 在 1977 年提出,1978 年正式发表。它的安全性建立在大整数分解难题上。简单说,公开一个公钥,私钥自己留着。别人用公钥加密,你用私钥解密;或者你用私钥签名,别人用公钥验证。

什么时候出现

  • 1977 年提出。
  • 1978 年正式发表。
  • 后来被 IETF 收进 PKCS #1,也就是 RFC 8017。
  • NIST FIPS 186-5 也批准 RSA 用于数字签名。

典型应用

  • TLS/SSL 证书与身份认证:服务器证书里常见 RSA 公钥。
  • 数字签名:代码签名、PDF 签名、S/MIME 邮件签名。
  • 混合加密:用 RSA 加密一个对称会话密钥,再用 AES 加密真正的大数据。
  • 旧系统兼容:很多老 VPN、老 TLS 配置仍然依赖 RSA。

优点

  • 概念清晰,公钥可以公开,私钥自己保管。
  • 既能加密,也能签名。
  • 生态成熟,几乎 everywhere。
  • 互操作性好,库和硬件支持广泛。

缺点

  • 慢,比 AES 慢很多,不适合直接加密大文件。
  • 密钥越来越长。现在至少 2048 位,推荐 3072 位。
  • 填充方式很关键。加密要用 OAEP,签名要用 PSS,不要再用老的 PKCS#1 v1.5 加密。
  • 量子计算威胁。Shor 算法理论上能破 RSA。
  • 实现容易出侧信道问题,自己造轮子非常危险。

标准与执行

  • 加密和签名格式看 PKCS #1 RFC 8017。
  • 加密用 RSA-OAEP。
  • 签名用 RSA-PSS。
  • 密钥长度至少 2048 位,新系统建议 3072 位。
  • 用 OpenSSL、BoringSSL、libsodium、WebCrypto 这类成熟库,不要手写大数运算。

AES:对称加密的绝对主力

是什么

AES 全称 Advanced Encryption Standard,高级加密标准。它是对称分组密码,分组长度 128 位,密钥长度支持 128、192、256 位。底层算法是 Rijndael,由 Joan Daemen 和 Vincent Rijmen 设计。

什么时候出现

  • NIST 在 2001 年 11 月 26 日发布 FIPS 197。
  • 2002 年 5 月 26 日正式生效。
  • 它取代了老旧的 DES 和 3DES。

典型应用

  • 文件与磁盘加密:BitLocker、VeraCrypt、LUKS 都大量使用 AES。
  • 网络协议:TLS 1.3 里的 AES-GCM、IPsec、MACsec。
  • 无线安全:Wi-Fi 的 WPA2/WPA3 使用 AES-CCMP 或 AES-GCMP。
  • 数据库与存储加密:云盘、数据库透明加密、备份加密。
  • IoT 与嵌入式:轻量级 AES 实现很常见。

优点

  • 非常快,现代 CPU 有 AES-NI 硬件加速。
  • 适合大批量数据加密。
  • 128 位密钥已经很强,256 位更高。
  • 标准化程度高,FIPS 197 和 SP 800-38 系列讲得很清楚。
  • 配合 GCM 可以同时提供机密性和完整性。

缺点

  • 密钥管理麻烦。双方必须共享同一个密钥。
  • 密钥怎么安全送到对方手里,是对称加密最大的难题。
  • 模式选错会出大问题。ECB 绝对不要用,CBC 没有认证也不够。
  • GCM 的 nonce 不能重复,重复会 catastrophic。
  • 侧信道攻击需要小心,尤其是共享硬件环境。

标准与执行

  • 算法标准:FIPS 197。
  • 工作模式:NIST SP 800-38A,认证加密看 SP 800-38D。
  • 首选 AES-GCM。
  • 密钥至少 128 位,高安全场景用 256 位。
  • nonce 要唯一,最好用计数器或安全随机数。
  • 模块最好经过 FIPS 140-3 验证。
  • TLS 1.3 里优先 AES-GCM 或 ChaCha20-Poly1305。

DSS:数字签名标准,不是单一算法

是什么

DSS 全称 Digital Signature Standard,数字签名标准。它不是某个具体算法,而是美国联邦标准 FIPS 186。最早在 1994 年 5 月 19 日发布,原始版本指定的是 DSA。后来不断修订,现在的 FIPS 186-5 已经批准 RSA、ECDSA、EdDSA 用于数字签名,DSA 逐步退出。

什么时候出现

  • 1994 年 5 月 19 日,NIST 发布 FIPS 186。
  • 后续有 186-1、186-2、186-3、186-4。
  • 2023 年发布 FIPS 186-5。

典型应用

  • 美国联邦政府系统:电子交易、文档认证必须符合 DSS。
  • 电子商务与电子合同:PDF 签名、订单签名、不可否认。
  • 邮件与代码签名:S/MIME、软件更新包签名。
  • 区块链与加密货币:比特币、以太坊大量使用 ECDSA,而 ECDSA 属于 DSS 标准家族。

优点

  • 提供正式、可互操作的数字签名标准。
  • 支持不可否认性,签名者事后很难抵赖。
  • 和 SHA-2、SHA-3 哈希标准配合使用。
  • 算法选择多,RSA、ECDSA、EdDSA 都能用。
  • 很多场景下免专利费,适合广泛部署。

缺点

  • DSS 只管签名,不管加密。
  • 安全性依赖哈希函数和私钥保护。
  • 旧 DSA 密钥长度受限,已经不适合新系统。
  • 实现复杂,随机数用错会直接泄露私钥。
  • 量子计算同样威胁 ECDSA 和 RSA 签名。

标准与执行

  • 标准看 FIPS 186-5。
  • 哈希看 FIPS 180-4,也就是 SHA-2 系列。
  • 新系统优先选 ECDSA 或 EdDSA,兼容场景可用 RSA-PSS。
  • 私钥必须放在 HSM、TPM 或安全密钥库中。
  • 签名随机数必须用 CSPRNG,不能复用。
  • 旧 DSA 2048 位以下应尽快淘汰。

Diffie-Hellman:密钥交换的开山鼻祖

是什么

Diffie-Hellman 在 1976 年发表,是第一个实用的公钥密钥交换方法。它让双方在不安全信道上,各自用公开值和自己的私密值,算出同一个共享密钥。安全性基于离散对数问题。

什么时候出现

  • 1976 年由 Whitfield Diffie 和 Martin Hellman 发表。
  • 后来出现 ECDH、ECDHE,也就是椭圆曲线版本和临时版本。
  • TLS 1.3 已经把 ECDHE 作为主流密钥交换方式。

典型应用

  • TLS 握手:ECDHE 协商会话密钥,TLS 1.3 不再支持静态 RSA 密钥交换。
  • VPN 与 SSH:IPsec、SSH 用 DH 或 ECDH 建立会话密钥。
  • 安全 messaging:Signal 等协议用临时 DH 实现前向保密。
  • 物联网密钥协商:设备之间建立共享密钥。

优点

  • 不需要提前共享密钥。
  • 支持前向保密。临时密钥用完就扔,长期私钥泄露也解不开旧会话。
  • ECDHE 性能好,密钥短。
  • 和对称加密配合非常自然。

缺点

  • 不认证的话,容易遭受中间人攻击。
  • 计算开销比对称加密大,不过只在握手阶段。
  • 参数选择很重要,弱 DH 参数会被攻击。
  • 实现复杂,随机数质量要求高。
  • 同样面临量子计算威胁。

标准与执行

  • 有限域 DH 看 RFC 7919,推荐 FFDHE 群。
  • 椭圆曲线看 NIST SP 800-56A。
  • TLS 1.3 看 RFC 8446,优先 ECDHE。
  • IPsec 看 IKEv2,SSH 看相关 RFC。
  • 至少 2048 位有限域 DH,或者用 P-256、P-384 等椭圆曲线。
  • 一定要认证交换过程,通常用证书或预共享密钥。

它们怎么配合

拿一次 HTTPS 请求举例:

  • ECDHE 先协商出一个会话密钥。
  • AES-GCM 用这个会话密钥加密 HTTP 数据。
  • RSA-PSS 或 ECDSA 验证服务器身份,保证握手没被篡改。
  • 证书链里可能用 RSA,也可能用 ECDSA。

所以它们不是互相替代,而是各管一段。

落地建议

  • 用成熟库:OpenSSL、BoringSSL、libsodium、WebCrypto。
  • 对称加密首选 AES-GCM,不要用 ECB。
  • 签名优先 ECDSA、EdDSA,兼容场景用 RSA-PSS。
  • 密钥交换优先 ECDHE,保证前向保密。
  • RSA 至少 2048 位,新系统 3072 位。
  • AES 至少 128 位,高安全场景 256 位。
  • 私钥放 HSM、TPM 或云 KMS,不要硬编码。
  • 随机数必须用 CSPRNG。
  • 关注后量子密码:ML-KEM、ML-DSA、SLH-DSA。
  • 定期更新依赖,别让老协议和老填充方式留在生产环境。

一句话总结:RSA 和 DSS 管身份与签名,AES 管数据加密,Diffie-Hellman 管密钥协商。把它们用对位置,比单独追求某个算法更重要。

赞(0)
未经允许不得转载:网硕互联帮助中心 » 信息安全里的 RSA、AES、DSS、Diffie-Hellman:别再傻傻分不清
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!