RSA 加密 1G 文件花了一下午,AES 只要 2 分钟——但它们还得绑在一起过日子
你有没有试过干一件蠢事:拿 RSA 公钥直接去加密一个 1GB 的文件?
我试过。
那是一个慵懒的下午,我想”既然 RSA 这么安全,干脆用它把整个数据库备份锁起来”。然后我就看着进度条……看着……看着……等我再抬起头,窗外的光变了,蚊子开始出来觅食,那 1GB 还没加密到一半。
后来我才知道,在某台现代 CPU 上,AES-256 处理 1GB 数据大约只要 1.2 秒,而 RSA-2048 大约需要 45 分钟,RSA-4096 更是要 180 分钟。这不是”慢一点”,这是差了几个数量级的鸿沟。
但这俩算法,到今天还在每一个 HTTPS 连接里”搭伙过日子”。
为啥?
一个快递箱,一个保险柜
要理解它俩的关系,先讲两个比喻。
AES 是一个带密码锁的超级快递箱。你和收件人有同一把钥匙,咔嚓一声锁上,咔嚓一声打开。速度快到飞起——在现代支持 AES-NI 指令集的硬件上,AES-256 的吞吐率能达到 3.2 GB/s,1GB 文件秒级搞定。但它有个致命问题:这把共享的钥匙,你怎么安全地交到远方收件人手里? 让快递员捎过去?那快递员(网络里的中间人)转身就复印一把。
RSA 是一把只有”公开邮箱”和”私密钥匙”的神奇锁。邮箱谁都可以往里投信(用公钥加密),但只有你手里的私钥能打开。听起来完美?问题是这邮箱太小——RSA-2048 单次加密的明文长度必须小于密钥长度,输出密文固定 256 字节。你想用这个邮箱寄一整套家具?
理论上都做不到,更别说慢到离谱。
所以工程师们一拍大腿:那让 AES 干它最擅长的——用快递箱装货,让 RSA 干它最擅长的——用邮箱寄那把快递箱的钥匙。这就是大名鼎鼎的混合加密。

它们是怎么”搭伙”的?
混合加密的流程,拆开看其实特别优雅:
客户端随机生成一个 AES 会话密钥(比如 AES-256 的 32 字节密钥)。这个密钥是一次性的,这次通信用完就扔。
用这把 AES 密钥去加密真正的海量数据——1GB 文件、视频流、JSON 报文,whatever,AES 几秒钟搞定。
用服务器的 RSA 公钥,去加密刚才那个 AES 会话密钥。因为 AES 密钥就 32 字节,完全在 RSA 的”邮箱容量”内,这一步瞬间完成。
把”RSA 加密后的 AES 密钥”和”AES 加密后的数据”打包一起发过去。
服务器用自己的 RSA 私钥解密出 AES 会话密钥,再用这把 AES 密钥去解密真正的数据。
💡 精髓在哪?重活(加密 1GB 数据)交给快如闪电的 AES,巧活(安全传递密钥)交给固若金汤的 RSA。RSA 只需要加密那 32 字节的 AES 密钥,性能开销可以忽略不计;AES 只需要管数据,完全不用担心密钥怎么分发。
你每天用的 HTTPS,就是这么干的
打开浏览器随便访问一个 https 网站,背后这套戏码就在上演:
Client Hello ──► 告诉服务器:我支持 TLS,这是我的随机数,这是我的密码套件列表
◄── Server Hello + 证书 ── 服务器选定 TLS_RSA_WITH_AES_256_GCM_SHA384 这类套件,并出示证书
Client Key Exchange ──► 客户端生成 48 字节的预主密钥(Pre-Master Secret),用服务器证书里的 RSA 公钥加密后发过去
◄── 服务器用 RSA 私钥解密出预主密钥
双方各自用 Pre-Master Secret + Client Random + Server Random,通过 PRF 算出 Master Secret
再从 Master Secret 派生出 AES-256 会话密钥 + MAC 密钥 + IV
Change Cipher Spec ──► 双方宣布:后续通信都用这把 AES 密钥加密
握手一结束,后面所有的 HTTP 请求和响应,全都是用 AES-GCM 这把”快递箱”在飞快加解密。RSA 只在握手的那一瞬间露了个脸,干完”寄钥匙”的活就退场了。
这就是为什么你刷视频、下大文件都感觉不到任何卡顿——真正扛数据的是 AES,RSA 早已功成身退。
⚠️ 但 RSA 这个老伙计,正在被”踢出”密钥交换
讲到这儿,加密圈的读者可能要皱眉了:TLS 1.3 不是已经把 RSA 密钥交换删除了吗?
没错。
TLS 1.3 彻底移除了传统的 RSA 密钥传输,转而强制使用 ECDHE(椭圆曲线 Diffie-Hellman 临时密钥交换)。原因是 RSA 密钥交换有一个致命伤——没有前向保密:
如果服务器的 RSA 私钥某天泄露了,攻击者可以用这把私钥解密过去多年里所有被截获的 TLS 握手包,把历史上所有的 HTTPS 流量全部还原。
而 ECDHE 每次握手都用临时密钥对,就算服务器长期私钥将来泄露,历史流量依然安全。这也是为什么现代 TLS 1.3 的握手流程变成了:
ECDHE 负责密钥协商(替代 RSA 的”寄钥匙”功能,但更快、更小、且有前向保密)
RSA 或 ECC 只负责数字签名(证明”我确实是那个服务器”)
AES-256-GCM 或 ChaCha20-Poly1305 负责后续所有数据的批量加密
AES 的位置稳如泰山,RSA 的”密钥交换”职能被 ECDHE 取代,但它作为签名算法的角色还在。
所以更准确的说法是:AES + 非对称密码学(RSA 或 ECC)的混合加密范式,依然是互联网的基石,只是 RSA 在里头的具体角色发生了变化。

NIST 已经预测,RSA-2048 在 2030 年左右就会受到量子计算机的实质性威胁,RSA-4096 能撑到 2050+。而 AES-256 在量子时代只是”有效安全性从 256 位降到 128 位”,依然安全。
所以在后量子密码学的新婚姻里,AES 依然是那个快递箱,只是 RSA 的位置会被 Kyber / Dilithium 这类抗量子算法取代。
混合加密的范式不会变——对称加密管数据,非对称加密管密钥——变的只是非对称那一侧的”新娘”。
而这一套”快递箱 + 保险柜”的搭配,从 TLS 到 SSH,从 PGP 邮件到 Signal 消息,从 VPN 到全磁盘加密,默默守护着你数字生活的每一个字节。下次你再点开一个 https 网页,不妨想一想:在那短短的几百毫秒握手时间里,AES 和 RSA 刚完成了一场默契的配合——一个递钥匙,一个开大门。
免责声明:本文部分文字、图片、音视频来源于网络、AI,不代表本站观点,版权归版权所有人所有。本文无意侵犯媒体或个人知识产权,如有异议请与我们联系。










