加密的了解
一、加密体系两大分支
在讲具体算法前,先明确两个最核心的分类,所有加密技术都围绕这两类展开:
- 对称加密:加密和解密用同一个密钥,速度快,适合加密大量数据;核心难题是「密钥怎么安全传给对方」。
- 非对称加密:加密和解密用一对不同的密钥(公钥 + 私钥),公钥可公开,私钥必须保密;解决了密钥传输问题,但运算速度慢,只适合加密小数据。
二、AES:对称加密的工业标准(简单介绍)
AES(高级加密标准)是目前全球应用最广的对称加密算法,也是事实上的行业标准。
核心特点
- 单密钥工作:加密、解密使用完全相同的密钥,密钥长度常见 128 位、256 位(位数越长越安全)。
- 分组加密:把明文切成固定大小的块(128 位),逐块加密,最终拼接成密文。
- 速度极快:硬件和软件都能高效实现,哪怕加密 GB 级的大文件、实时网络流量也无压力。
典型应用
- TLS/HTTPS 里的正文数据加密
- 磁盘加密(BitLocker、FileVault)
- 压缩包加密、WiFi 加密(WPA2/WPA3)
- 数据库敏感字段加密
一句话总结:AES 负责「真正加密业务数据」,是加密体系里的「主力干活的」。
三、公钥与私钥:非对称加密的核心逻辑(详细讲解)
非对称加密的本质,是通过数学难题构造出一对 mathematically linked 的密钥,实现「公钥加密只能私钥解,私钥签名只能公钥验」。
1. 基本性质
- 公钥(Public Key):可以完全公开,随便发给任何人、挂在网站上,不怕泄露。
- 私钥(Private Key):必须自己妥善保管,绝对不能泄露,一旦泄露整套体系就失效。
- 不可逆性:从公钥几乎不可能推导出私钥(基于数学难题,比如大数分解、离散对数)。
2. 两大核心配合逻辑(最关键)
公钥和私钥不是简单的「一个加密一个解密」,而是有两个完全独立的使用方向,对应两种完全不同的功能。
公钥加密的数据只有私钥才能解开;私钥加密的数据只有公钥才能解开。
场景一:公钥加密,私钥解密 —— 实现「保密传输」
作用:确保消息只有目标接收方能看懂,别人截获了也解不开。
完整流程:
- 接收方生成一对公钥 + 私钥,把公钥公开给所有人;
- 发送方要发秘密消息,就用接收方的公钥对消息加密;
- 密文在网络上传输,中间人截获后没有私钥,无法解密;
- 接收方收到密文,用自己的私钥解密,得到明文。
通俗类比:公钥是一把公开的挂锁,谁都能拿到;私钥是唯一的开锁钥匙,只有你自己有。别人想给你寄秘密,就用你的挂锁把箱子锁上寄过来,只有你能用钥匙打开。
场景二:私钥签名,公钥验签 —— 实现「身份认证 + 防篡改」
因为用公钥才能解开,所以这份加密的数据肯定是对应私钥加密的,这样就能验证发数据人的身份了。
作用:证明消息确实是你发的,而且中途没有被人修改过,同时你也不能抵赖。
完整流程:
- 你生成一对公钥 + 私钥,把公钥公开给所有人;
- 你发消息时,用自己的私钥对消息生成一段「数字签名」,和消息一起发出去;
- 接收方收到后,用你的公钥去验证这个签名;
- 如果验证通过,就能确认:
- 消息确实是你发的(只有你有私钥);
- 消息中途没被篡改(改一个字签名就验证不通过)。
通俗类比:私钥是你的私人印章,公钥是大家都认识的印鉴样本。你在文件上盖章,别人对照样本一看就知道是你盖的,而且文件没被换过。
Git SSH 免密登录,用的就是第二个场景:
服务器保存用户的公钥,登录时服务器发一段随机挑战,用户用本地私钥签名后返回,服务器用公钥验签通过,就确认该用户是授权用户,不用输密码。
3. 核心功能与实际应用
| 能力 | 对应场景 | 实际案例 |
|---|---|---|
| 保密传输 | 敏感信息加密发送 | HTTPS 里加密会话密钥、加密邮件 |
| 身份认证 | 证明你是你 | SSH 登录、API 密钥鉴权、VPN 接入 |
| 防篡改防抵赖 | 数字签名 | 软件安装包签名、电子合同、区块链交易 |
| 密钥协商 | 安全生成对称密钥 | TLS 握手、VPN 隧道建立 |
四、RSA 算法:最经典的非对称加密实现(简单介绍)
RSA 是第一个广泛应用的非对称加密算法,也是公钥加密的代名词。
核心基础
基于大数分解数学难题:把两个超大质数相乘很容易,但把乘积还原成两个质数极其困难。公钥和私钥就围绕这个乘积构造。
能力与局限
- 全能型:既可以做「公钥加密 / 私钥解密」,也可以做「私钥签名 / 公钥验签」。
- 速度慢:运算量远大于 AES,只能加密很短的数据(比如加密一个 AES 密钥),绝对不适合直接加密大文件、大报文。
- 密钥长度:现在主流用 2048 位、4096 位,1024 位已被认为不安全。
典型应用
- HTTPS 早期的 RSA 密钥交换
- 数字证书的签名
- 小型数据加密、数字签名场景
五、数字签名:防篡改、防抵赖的核心手段
数字签名是非对称加密「签名验签」能力的具体落地,核心解决三个问题:身份可信、内容未改、无法抵赖。
工作原理(简化版)
- 发送方先对原始消息做哈希(比如 SHA-256),得到一段固定长度的「消息摘要」;
- 用自己的私钥对这个摘要加密,得到的结果就是数字签名;
- 把「原始消息 + 数字签名」一起发给接收方;
- 接收方用同样的哈希算法算出消息摘要,再用发送方的公钥解密签名,得到原始摘要,两者对比:一致就说明有效。
为什么要先哈希再签名?
非对称加密慢,直接对大文件签名效率极低;哈希可以把任意长度的内容压缩成固定长度的摘要,只对摘要签名,效率提升巨大,同时不影响安全性。
常见应用
- 软件安装包签名:确认软件没被植入病毒
- Git Commit GPG 签名:确认提交是本人操作
- 数字证书签名:CA 给网站公钥背书
- 电子发票、电子合同
六、RSA 传输 AES:混合加密的经典模式
这是工业界最常用的加密组合方案,完美解决了「对称密钥传不安全,非对称加密太慢」的矛盾。
为什么要混合?
- AES 速度快,但密钥怎么安全传给对方是难题,直接明文传会被截获;
- RSA 能安全传数据,但加密大内容太慢,只适合加密很短的数据。
于是就有了:用 RSA 加密 AES 的密钥,用 AES 加密真正的业务数据。
完整流程(以客户端和服务器通信为例)
- 服务器生成 RSA 公私钥对,公钥公开给客户端;
- 客户端本地随机生成一个AES 会话密钥(临时密钥,只用这一次);
- 客户端用服务器的 RSA 公钥,把这个 AES 密钥加密,发给服务器;
- 服务器用自己的 RSA 私钥解密,得到 AES 密钥;
- 后续所有通信内容,双方都用这个 AES 密钥加密解密。
核心价值
- 兼顾安全:AES 密钥通过 RSA 加密传输,不会泄露;
- 兼顾效率:真正的大数据用高速 AES 加密,性能拉满;
- 会话隔离:每次连接生成新的 AES 密钥,互不影响。
局限
不支持前向保密:如果服务器私钥日后泄露,攻击者可以解密所有历史通信记录(因为历史 AES 密钥都是用这个私钥解密的)。
七、DHE/ECDHE:更安全的密钥交换算法
DHE(Diffie-Hellman Ephemeral,临时迪菲 - 赫尔曼)是专门用来「协商密钥」的算法,ECDHE 是它的椭圆曲线优化版,现在 TLS 主流都用 ECDHE。
核心思想
双方不需要传输任何密钥,只在公开信道上交换一些公开参数,就能各自独立算出完全相同的会话密钥;中间人就算截获所有公开参数,也算不出这个密钥。
数学基础是离散对数难题(椭圆曲线版本是椭圆曲线离散对数难题)。
最大优势:前向保密(PFS)
每次连接都会生成临时的公私钥对,连接结束就销毁。就算服务器长期私钥泄露,也无法解密历史通信,因为历史的临时密钥已经没了。
这也是它和 RSA 密钥交换最核心的区别:
- RSA 密钥交换:用服务器长期私钥加密 AES 密钥,私钥泄露 = 历史全泄露;
- ECDHE 密钥交换:每次生成临时密钥,长期私钥只用来签名认证,历史通信无法追溯。
现在 TLS 1.3 已经彻底抛弃 RSA 密钥交换,只保留 ECDHE 类的密钥交换方案。
注意:DHE/ECDHE 只能用来协商密钥,不能用来加密数据,也不能单独做身份认证,必须配合数字签名来防中间人攻击。
八、CA 与数字证书:解决「公钥信任」问题
非对称加密有一个天生的漏洞:你怎么确定你拿到的公钥,真的是对方的,而不是中间人伪造的?
这就是著名的「中间人攻击」问题,靠算法本身解决不了,必须靠信任体系。
1. CA 是什么
CA(Certificate Authority,证书颁发机构)是全球公认的可信第三方机构,相当于网络世界的「公安局」。
- 它的职责是给合法的网站 / 机构颁发数字证书;
- 操作系统、浏览器会内置所有主流 CA 的公钥,天然信任它们。
2. 数字证书是什么
数字证书就是网站公钥的「身份证」,由 CA 签发,核心包含:
- 网站域名、所属机构信息
- 网站的公钥
- 证书有效期
- CA 用自己私钥生成的数字签名
3. 证书验证流程
- 你访问网站时,网站把自己的数字证书发给你;
- 你的浏览器用内置 CA 的公钥,去验证证书上的 CA 签名;
- 签名验证通过,就说明这个证书确实是 CA 发的,证书里的公钥确实属于这个网站;
- 之后你就可以放心用这个公钥加密数据、协商密钥,不用担心是中间人伪造的。
如果证书是伪造的、过期的、域名不匹配,浏览器就会弹出安全警告。
补充:证书链
实际体系是分级的:根 CA → 中级 CA → 网站证书,形成信任链,只要根 CA 可信,整条链就都可信。
九、TLS:集大成的加密传输协议
TLS(传输层安全协议)就是把上面所有技术整合在一起的一套完整协议,我们常说的 HTTPS = HTTP + TLS。
它的目标是在不安全的网络上,建立一条加密、身份可信、防篡改的安全通道。
TLS 握手的简化流程(以 TLS 1.2 + ECDHE 为例)
- 客户端打招呼:发支持的加密套件、随机数;
- 服务器回应:发自己的数字证书、随机数,选择 ECDHE 密钥交换;
- 客户端验证证书:用 CA 公钥验签,确认服务器身份合法,拿到服务器公钥;
- 密钥协商:双方通过 ECDHE 交换临时参数,各自算出相同的会话密钥(后续 AES 加密用);
- 密钥确认:双方互相发加密的 Finished 消息,验证密钥一致;
- 正式通信:所有 HTTP 数据都用 AES 对称加密传输。
整个过程里:
- 证书 + RSA 签名 解决身份认证,防中间人;
- ECDHE 协商 AES 密钥,实现前向保密;
- AES 负责加密真正的业务数据;
- 哈希算法 负责校验数据完整性。
TLS 1.3 进一步简化了握手,只需要 1-RTT 甚至 0-RTT,默认强制前向保密,安全性和速度都大幅提升。
整体脉络总结
- AES:主力加密,速度快,负责加密大数据;
- RSA / 非对称:解决密钥传输和身份签名,慢,只处理小数据;
- 混合加密(RSA 传 AES):兼顾安全与效率,经典组合;
- DHE/ECDHE:更安全的密钥协商,实现前向保密;
- 数字签名:防篡改、防抵赖、身份认证;
- CA + 数字证书:解决公钥信任问题,堵住中间人攻击漏洞;
- TLS:把以上所有技术打包成标准协议,支撑 HTTPS 等安全通信。
其他
视频可参考你管这叫加密通讯?

浙公网安备 33010602011771号