← 返回题目列表

对称加密和非对称加密有什么区别?

高频 简单 第 1 / 29 题 更新于 2026/07/28
对称加密非对称加密AESRSA

简化版

对称加密:加密和解密用同一把密钥,速度快,但「怎么把密钥安全地给对方」是难题(密钥分发问题)。非对称加密:用一对公钥 + 私钥,公钥加密只能私钥解、私钥加密只能公钥验,解决了密钥分发问题但。HTTPS 把两者结合——用非对称加密安全地传对称密钥,再用对称加密传数据

详细版

维度对称加密非对称加密
密钥一把密钥,加解密都用它公钥 + 私钥 一对
速度快(适合大量数据)慢(约慢几个数量级)
密钥分发难(怎么安全地给对方)易(公钥可公开)
典型算法AES、DES、3DES、ChaCha20RSA、ECC、DH
用途加密业务数据密钥交换、数字签名
  • 对称加密密文 = 加密(明文, 密钥)明文 = 解密(密文, 同一密钥)。快,但通信双方必须先安全地共享这把密钥。
  • 非对称加密:公钥公开、私钥保密。公钥加密的只有私钥能解(用于加密),私钥签名的用公钥能验(用于签名/认证)。

完整版教学

一、对称加密的痛点:密钥怎么给对方

对称加密本身很好——快、安全(AES 至今没被攻破)。它唯一的死穴是密钥分发:加解密要用同一把密钥,那么通信双方一开始怎么安全地共享这把密钥

如果直接在网络上把密钥发给对方,中间人截获了密钥,之后所有加密都形同虚设。这就是「先有鸡还是先有蛋」的困境:要安全通信得先有共享密钥,可共享密钥本身又需要安全通信。非对称加密就是来打破这个困境的。

二、非对称加密怎么破解密钥分发

非对称加密用一对数学上关联的密钥:公钥和私钥。关键特性是——公钥加密的内容,只有对应的私钥能解密

于是密钥分发问题迎刃而解:

  • 服务器把公钥公开(谁都能拿,不怕泄露);
  • 客户端用服务器公钥加密一个对称密钥,发给服务器;
  • 只有握着私钥的服务器能解开,中间人拿到公钥也解不了。

这样就在不安全的网络上,安全地把对称密钥送到了对方手里。公钥可以随便公开,私钥只有自己有——这是非对称加密的精髓。

三、非对称加密的两种用法:加密 vs 签名

非对称的公私钥可以「反着用」,对应两个不同目的:

  • 加密(保密性):用公钥加密私钥解密。任何人都能用公钥加密发给你,但只有你的私钥能解 → 保证「只有你能看」。
  • 签名(认证 + 完整性):用私钥签名公钥验证。只有你的私钥能签,别人用你的公钥能验证「这确实是你签的、没被改」 → 证明「这是你发的」。

HTTPS 里两者都用到了:加密用于密钥交换,签名用于证书认证身份(详见「数字签名」那道题)。

四、为什么非对称慢,所以要混合

非对称加密基于大数分解、椭圆曲线等复杂数学运算,计算量远大于对称加密——同样数据量可能慢几个数量级。所以不能全程用非对称加密业务数据

HTTPS 的混合方案:

  • 非对称只在握手时用一次——安全地协商出对称密钥;
  • 对称用于之后的所有数据——快。

用非对称解决「密钥分发」,用对称解决「大量数据加密」,各扬所长。这就是 HTTPS 混合加密的由来(详见「TLS 握手过程」那道题)。

五、常见误区

  • ❌ 以为非对称加密「更高级所以全用它」——它慢,只适合密钥交换和签名,大数据用对称。
  • ❌ 以为公钥加密、私钥解密是唯一用法——反过来私钥签名、公钥验证用于认证。
  • ❌ 以为对称加密不安全——AES 很安全,它的问题只是密钥分发,非对称正好补这块。
  • ❌ 把 DH/ECDHE 当成加密算法——它们是密钥交换算法,让双方协商出共享密钥,不直接加密数据。

六、常见误区与追问

考点正确口径
对称加密同一密钥加解密,快,但密钥分发难
非对称加密公钥和私钥成对,慢,但便于分发和认证
混合加密非对称协商密钥,对称加密数据
symmetric: K encrypts and decrypts
asymmetric: public key / private key
TLS: asymmetric key exchange + symmetric data encryption

HTTPS 同时用两者:非对称解决“怎么安全商量密钥”,对称解决“大量数据怎么高效加密”。

  • 误区:非对称加密一定比对称加密更安全。 安全性取决于算法和密钥长度;非对称主要优势是密钥分发和签名。
  • 误区:公钥必须保密。 公钥可以公开,私钥必须保密。
  • 误区:私钥加密、公钥解密就是保密通信。 任何人都有公钥都能解开,这更像签名验证,不提供机密性。
  • 追问:为什么对称加密快? 运算通常是分组/流式变换,计算成本远低于大整数或椭圆曲线运算。
  • 追问:密钥分发难题是什么? 双方还没安全信道时,如何把同一个对称密钥安全交给对方。
  • 追问:TLS 为什么混合使用? 兼顾身份认证、密钥协商和大流量传输效率。

七、加强记忆

对称加密一把密钥、快、但密钥分发难(AES);非对称加密公私钥一对、慢、但公钥可公开解决了密钥分发(RSA/ECC)。非对称有两种用法:公钥加密私钥解(保密)、私钥签名公钥验(认证)。HTTPS 混合两者——非对称协商出对称密钥、对称加密业务数据,兼顾安全与性能。