信息安全里的 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 管密钥协商。把它们用对位置,比单独追求某个算法更重要。
网硕互联帮助中心




评论前必须登录!
注册