Ron Rivest 与实用密码学:为何 RSA 获胜
Ron Rivest 如何影响了实用密码学:RSA、数字签名以及那些使得安全商务和 HTTPS 成为常态的安全工程选择。

为什么 Rivest 与日常安全息息相关
Ron Rivest 是一个你很少在安全圈外听到的名字,但他的工作悄然塑造了线上“普通”安全的感觉。只要你登录过网银、用卡购物过,或相信某个网站就是你想访问的那个网站,你就得益于 Rivest 帮助普及的一种思路:实用可用的密码学,而不是只存在于纸上的理论。
真正的问题:在互联网规模上保密
当成千上万陌生人需要互相交互时,安全通信变得困难。这不仅仅是保持消息私密——还包括证明身份、防止篡改,以及确保支付不能被伪造或悄然转走。
在小范围内,你可以事先共享一个秘密码。在互联网上,这种方法会崩溃:你不能和每个网站、存储服务以及你可能使用的服务预先共享秘密。
“默认安全” = 数学 + 工程 + 标准
Rivest 的影响与一个更大的想法有关:只有当安全成为默认时,它才会被广泛采用。这需要三者协同工作:
- 数学:强大的密码学原语(像 RSA),允许陌生人之间进行安全交互。\n- 工程:密钥生成、安全存储、备份、轮换、访问控制——所有让良好数学不被错误破坏的实践。\n- 标准:达成一致的规则(协议、证书格式、浏览器行为),使相同的安全在任何地方都能自动生效。
本文期待内容
这是一篇高层、非数学化的导览,说明 RSA 如何融入实用安全栈——加密、签名、证书与 HTTPS——以及为何该栈使得安全商务和通信成为常态而非例外。
核心问题:在互联网规模上如何共享秘密
在 RSA 出现之前,大多数安全通信像是共用日记的锁:双方需要相同的秘密密钥来加解密消息。这就是对称密码学——快速且有效,但它假设你已经有一种安全的方式来共享该秘密。
公钥密码学则颠倒了这种设置。你发布一个可以公开的密钥(公钥),任何人都可以用它来保护发给你的消息,而你保管另一个只有你能用来打开消息的密钥(私钥)。数学上很巧妙,但它重要的原因很简单:它改变了秘密的分发方式。
为什么共享秘密无法扩展
想象一家有一百万顾客的在线商店。使用对称密钥,商店需要和每位顾客分别共享一个秘密。
这会带来一堆棘手问题:
- 商店如何在不被窃取的情况下把每个顾客的密钥发给他们?\n- 当密钥泄露时——你到处替换吗?\n- 如何避免通过你试图保护的同一网络发送密钥?
当通信是点对点且离线时,你可能面对面交换秘密或通过信使传递。在开放的互联网上,这种方法行不通。
挂锁(上锁箱子)类比
把发送贵重物品通过邮寄想象成。使用对称密钥时,你和收件人必须先共享同一把实体钥匙。
使用公钥时,收件人可以寄给你一把开着的挂锁(他们的公钥)。你把物品放入箱子,锁上挂锁,然后寄回去。任何人都可以拿着挂锁,但只有收件人有能打开它的钥匙(他们的私钥)。
这正是互联网所需要的:一种在不事先约定密码的情况下,能够与陌生人安全交换秘密、并可扩展的方法。
RSA 的背景:一次实用的公钥突破
公钥密码学并非从 RSA 开始。1976 年 Whitfield Diffie 和 Martin Hellman 描述了两个人如何在不事先共享秘密的情况下安全通信,这一重大概念性转变奠定了方向。
一年后(1977 年),Ron Rivest、Adi Shamir 与 Leonard Adleman 提出了 RSA,并很快成为人们可以实际部署的公钥系统。不是因为它是唯一聪明的想法,而是因为它契合真实系统的混乱需求:实现直观、适配多种产品且易于标准化。
RSA 使得什么成为可能(通俗说法)
RSA 使两种关键能力广泛可用:
- 对公钥的加密:任何人都可以用你的公钥锁住消息,只有你能用私钥打开。\n- 数字签名:你可以用私钥“签名”数据,其他人可以用你的公钥验证签名。
这两者看似对称,但解决不同问题。加密保护机密性;签名保护真实性和完整性——证明一条消息或软件更新确实来自宣称的来源。
为什么 RSA 有实用性
RSA 的力量不仅在学术上。它是当时计算资源下可实现的,并且作为组件能融入产品而非停留在研究原型阶段。
同样重要的是,RSA 易于标准化与互操作。随着关于密钥长度、填充与证书处理的常用格式与 API 出现,不同厂商的系统可以协同工作。
正是这种实用性——比任何单一技术细节更重要——帮助 RSA 成为安全通信与安全商务的默认构件。
用 RSA 做加密:混合安全的蓝图
RSA 加密的核心,是当你只知道接收者公钥时,仍能保持消息机密。你可以广泛发布该公钥,任何人都能用它加密数据,只有对应的私钥能解密。
这解决了一个现实问题:你不需要在开始保护信息之前进行秘密会面或预共享密码。
为什么 RSA 很少用于“整文件”加密
既然 RSA 能加密数据,为什么不全部用它来处理电子邮件、照片、数据库导出?因为 RSA 计算开销大且有严格的大小限制:你只能加密到与密钥大小相关的有限长度,频繁使用比现代对称算法慢得多。
这一现实促成了应用密码学中最重要的模式之一:混合加密。
一次性混合加密的流程
在混合设计中,RSA 保护一个小的秘密,而更快的对称密码保护主体数据:
- 你的设备生成一个随机的会话密钥(对称密钥)。\n2. 用该会话密钥加密真实数据(快速)。\n3. 用接收者的公钥通过 RSA 加密会话密钥(体积小、易管理)。\n4. 接收者用私钥恢复会话密钥,然后解密数据。
这个设计主要考虑性能与实用性:对称加密在大数据上速度更快,而公钥加密擅长安全地完成密钥交换。
这个模式超越了 RSA 密钥交换本身
许多现代系统更偏好不同的密钥交换方式(尤其是 TLS 中的临时 Diffie–Hellman 变种),以便获得更强的前向保密和更好的性能特性。
但 RSA 的模板——用公钥保护会话秘密,用对称密码保护负载——仍然是安全通信的常见范式。
数字签名:可验证的信任
数字签名是在线版的防篡改封印和身份核验。即便签名消息中的一个字符被改动,签名也会失效。如果签名能用签名者的公钥验证,你就有有力证据表明是谁批准了它。
签名与加密:两种不同的承诺
这两者容易混淆,因为它们常常一起传输,但它们解决不同的问题:
- 加密保护机密性:只有拥有正确解密密钥的人能读取内容。\n- 数字签名保护完整性和真实性:内容未被修改,且由持有签名私钥的人批准。
你可以对一个人人可读的公告进行签名(例如公开声明)。你也可以对某些内容仅加密而不签名(私有但无法确认发送者)。很多系统同时采用两者。
商业为何立即重视签名
一旦 RSA 使公钥签名实用化,企业就能把信任从电话和纸质转为可验证的数据:
- 订单与发票:签名的采购订单可以自动验证,减少“我们从未发送过”的争议。\n- 合同与审批:内部工作流(财务、法律、采购)能记录谁在何时签署了什么。\n- 软件更新:签名的发布让设备与应用能验证更新确实来自厂商且在传输中未被篡改——这是当今最重要的用途之一。
关于“不可抵赖性”的谨慎说明
人们常把签名描述为提供不可抵赖性——阻止签名者合理地否认自己签过名。实际上,这是一个目标,而非保证。密钥被盗、共享账户、设备安全薄弱或不清晰的政策都会模糊归属。
数字签名是强有力的证据,但现实世界中的问责还需要良好的密钥管理、审计日志和操作规程。
常见问题
What did RSA actually enable that earlier crypto approaches struggled with?
RSA 使得公钥密码学在实际部署中变得可行:任何人都可以用你的公钥对数据加密,而只有你能用私钥解密。更重要的是,RSA 支持数字签名,它让其他人能够验证数据确实来自你且未被篡改。
这种组合(加密 + 签名)符合真实产品的需求并且可以标准化,从而推动其广泛应用。
Why didn’t symmetric encryption scale well for the internet?
对称加密速度很快,但前提是双方已经共享了相同的密钥。
在互联网规模上,这会引出棘手问题:
- 你无法安全地提前把秘密与每个站点或每位客户共享。\n- 一旦某个共享密钥泄露,更换会非常痛苦。\n- 你可能需要通过正在被保护的同一网络发送密钥,这本身就是风险。
包括 RSA 在内的公钥密码学改变了密钥分发的问题:人们可以公开发布公钥。
What is “hybrid encryption,” and why is it used with RSA?
混合加密是一个实用模式:公钥加密保护小的秘密(会话密钥),而对称加密保护大量数据。
典型流程:
- 生成一个随机的对称会话密钥。\n2. 用该会话密钥加密数据(快速)。\n3. 用接收者的公钥加密会话密钥(体积小,可管理)。\n4. 接收者用私钥解密会话密钥,然后解密数据。
这是因为 RSA 计算开销大且有长度限制,而对称密码更适合处理大数据。
What’s the difference between RSA encryption and RSA digital signatures?
加密回答的是:“谁能读取这些内容?”
数字签名回答的是:“谁批准了这份内容,且内容是否被篡改?”
在实践中:
- 你可以对公开消息进行签名,让任何人验证其来源真实性。\n- 你可以对消息加密,使只有接收者能读取。\n- 许多系统同时使用两者,以同时获得保密性和可信的来源/完整性保障。
Why do HTTPS websites need certificates if public keys can be shared openly?
TLS 证书将域名(例如 example.com)与一个公钥绑定。它让浏览器验证你连接的服务器所出示的公钥是否被授权用于该域名。
如果没有证书,攻击者可以在连接建立时替换自己的公钥,从而使加密“看起来正常”——但实际上是跟错误的一方在通信。
How does the CA “trust chain” work in practice?
浏览器和操作系统预装了一组受信任的根证书颁发机构(CAs)。大多数网站使用链式结构:
- 网站的叶证书由一个中间 CA签发。\n- 中间 CA 又由浏览器已信任的根 CA签名。
在 HTTPS 连接过程中,浏览器会验证:
- 链中的签名是否有效;\n- 域名是否匹配;\n- 证书是否在有效期内。
如果这些检查通过,浏览器就接受该站点的公钥确实属于该域名。
If RSA was so important, why does modern TLS often use ECDHE instead?
在现代 TLS 中,密钥协商通常使用**临时 Diffie–Hellman(ECDHE)**而不是 RSA 直接传输密钥。
主要原因:前向保密。
- 使用 ECDHE,如果服务器的长期密钥在以后被窃取,过去被捕获的流量仍然难以解密。\n- 使用旧的 RSA 密钥传输,若长期私钥被盗,已保存的流量可能被解密。
RSA 仍可用于证书或签名,但握手阶段大多转向 ECDHE 以提供更强的安全性。
What are the most common real-world failures involving TLS, RSA, or certificates?
常见的运维失败包括:
- 证书过期(导致宕机)\n- 私钥被广泛复制(增加被盗风险)\n- TLS 配置弱或过时(启用了遗留协议或不安全的密码套件)\n- 过时的库缺乏补丁或错误地验证证书
数学可能是安全的,但真实系统常因密钥处理、配置和补丁管理而失败。
What does “key management” mean, and why is it often more important than the algorithm?
密钥管理涵盖密钥的整个生命周期:
- **生成:**高质量随机性与正确参数;\n- **存储:**限制访问、使提取困难、记录使用情况;\n- **轮换:**按计划或在怀疑泄露后安全替换密钥;\n- **备份/恢复:**在不产生易被复制“主备份”的前提下恢复密钥。
如果攻击者窃取了私钥,就可能解密受保护的数据(在某些设计中),或伪造服务并签署恶意内容——因此围绕密钥的操作控制与算法同等重要。
How does this RSA/TLS/PKI stack actually help online commerce and payments?
它通过加密来保护不共享私有网络的各方之间的连接与消息:
- HTTPS(TLS)保护结账过程中的传输数据,并帮助用户连接到真实的商家网站。\n- 后端调用(商家 ↔ 网关、服务 ↔ 服务)通常使用双向 TLS或签名请求来证明请求的真实性和完整性。\n- 令牌化(tokenization)通过存储令牌而非原始卡号来降低暴露面。
加密并不能单独解决欺诈或争议问题——这些需要风控和流程——但它确实让支付流程更难被拦截或篡改。