非对称加密(Asymmetric Encryption)是使用一对相关密钥的密码学机制:公钥 可以公开,私钥 必须保密;用公钥完成的某些操作,只有对应私钥才能反向完成或证明。
核心问题
在开放网络里,通信双方通常没有机会提前安全共享同一把秘密密钥。非对称加密解决的是“如何在不先共享秘密的情况下建立安全关系”的问题。
它的关键价值不是速度,而是密钥分发和信任表达:公钥 可以公开传播,私钥 只由持有者保管。这样就能支持加密、密钥交换、数字签名、证书体系 和软件签名。
核心机制
非对称密码学依赖一类数学问题:正向计算容易,反向求解在没有私钥时非常困难。不同算法的困难问题不同,例如 RSA 基于大整数分解,椭圆曲线方案基于离散对数问题。
以椭圆曲线方案为例,私钥 d 是一个随机大整数,公钥 Q 是:
Q = dG这里 G 是公开固定基点,dG 是 椭圆曲线标量乘法。这不是把坐标简单乘以 d,而是把曲线点按点加法重复相加。算法公开、曲线参数公开、公钥公开都不破坏安全性;安全性来自“从 Q 和 G 反推出 d 很难”。
用于保密通信时,典型形式是:
其中 pk 是 公钥,sk 是 私钥。任何人都能用公钥加密消息,但只有私钥持有者能解密。
不过真实系统很少直接用非对称算法加密大数据,而是使用 混合加密:非对称部分只负责建立或包裹会话密钥,大量数据交给 对称加密。
工程用途
- 密钥建立:TLS、SSH、VPN 中建立会话密钥。
- 数字证书:把域名、组织或设备身份绑定到 公钥。
- 软件与代码签名:证明发布物来自某个 私钥 持有者且未被篡改。
- 端到端加密:用接收方 公钥 保护会话密钥或消息密钥。
- 区块链钱包:私钥 控制地址资产,签名证明交易授权。
观察指标包括密钥长度、证书 有效期、算法族、签名验证失败率、密钥轮换、私钥 存储方式和旧算法残留。
边界与常见坑
- 非对称加密不等于更强的对称加密:它解决的问题不同,通常更慢,不适合直接加密大量数据。
- 公钥可信性需要验证:拿到一个 公钥 不等于拿到“正确的人”的公钥,需要 证书、指纹、信任链或带外确认。
- 签名不是加密:签名提供来源认证和完整性,不提供机密性。
- 不要使用 textbook RSA:没有安全填充的 RSA 加密和签名都容易被攻击。
- 私钥泄露是根本失效:私钥 一旦泄露,攻击者可以解密、签名或冒充身份,必须撤销和轮换。
- 量子风险不同:RSA 和椭圆曲线这类传统公钥算法受到未来大规模量子计算威胁,对称算法受影响相对小。