加密的了解

一、加密体系两大分支

在讲具体算法前,先明确两个最核心的分类,所有加密技术都围绕这两类展开:

  • 对称加密:加密和解密用同一个密钥,速度快,适合加密大量数据;核心难题是「密钥怎么安全传给对方」。
  • 非对称加密:加密和解密用一对不同的密钥(公钥 + 私钥),公钥可公开,私钥必须保密;解决了密钥传输问题,但运算速度慢,只适合加密小数据。

二、AES:对称加密的工业标准(简单介绍)

AES(高级加密标准)是目前全球应用最广的对称加密算法,也是事实上的行业标准。

核心特点

  1. 单密钥工作:加密、解密使用完全相同的密钥,密钥长度常见 128 位、256 位(位数越长越安全)。
  2. 分组加密:把明文切成固定大小的块(128 位),逐块加密,最终拼接成密文。
  3. 速度极快:硬件和软件都能高效实现,哪怕加密 GB 级的大文件、实时网络流量也无压力。

典型应用

  • TLS/HTTPS 里的正文数据加密
  • 磁盘加密(BitLocker、FileVault)
  • 压缩包加密、WiFi 加密(WPA2/WPA3)
  • 数据库敏感字段加密

一句话总结:AES 负责「真正加密业务数据」,是加密体系里的「主力干活的」。


三、公钥与私钥:非对称加密的核心逻辑(详细讲解)

非对称加密的本质,是通过数学难题构造出一对 mathematically linked 的密钥,实现「公钥加密只能私钥解,私钥签名只能公钥验」。

1. 基本性质

  • 公钥(Public Key):可以完全公开,随便发给任何人、挂在网站上,不怕泄露。
  • 私钥(Private Key):必须自己妥善保管,绝对不能泄露,一旦泄露整套体系就失效。
  • 不可逆性:从公钥几乎不可能推导出私钥(基于数学难题,比如大数分解、离散对数)。

2. 两大核心配合逻辑(最关键)

公钥和私钥不是简单的「一个加密一个解密」,而是有两个完全独立的使用方向,对应两种完全不同的功能。
公钥加密的数据只有私钥才能解开;私钥加密的数据只有公钥才能解开。

场景一:公钥加密,私钥解密 —— 实现「保密传输」

作用:确保消息只有目标接收方能看懂,别人截获了也解不开。

完整流程

  1. 接收方生成一对公钥 + 私钥,把公钥公开给所有人;
  2. 发送方要发秘密消息,就用接收方的公钥对消息加密;
  3. 密文在网络上传输,中间人截获后没有私钥,无法解密;
  4. 接收方收到密文,用自己的私钥解密,得到明文。

通俗类比:公钥是一把公开的挂锁,谁都能拿到;私钥是唯一的开锁钥匙,只有你自己有。别人想给你寄秘密,就用你的挂锁把箱子锁上寄过来,只有你能用钥匙打开。

场景二:私钥签名,公钥验签 —— 实现「身份认证 + 防篡改」

因为用公钥才能解开,所以这份加密的数据肯定是对应私钥加密的,这样就能验证发数据人的身份了。
作用:证明消息确实是你发的,而且中途没有被人修改过,同时你也不能抵赖。

完整流程

  1. 你生成一对公钥 + 私钥,把公钥公开给所有人;
  2. 你发消息时,用自己的私钥对消息生成一段「数字签名」,和消息一起发出去;
  3. 接收方收到后,用你的公钥去验证这个签名;
  4. 如果验证通过,就能确认:
    • 消息确实是你发的(只有你有私钥);
    • 消息中途没被篡改(改一个字签名就验证不通过)。

通俗类比:私钥是你的私人印章,公钥是大家都认识的印鉴样本。你在文件上盖章,别人对照样本一看就知道是你盖的,而且文件没被换过。

Git SSH 免密登录,用的就是第二个场景

服务器保存用户的公钥,登录时服务器发一段随机挑战,用户用本地私钥签名后返回,服务器用公钥验签通过,就确认该用户是授权用户,不用输密码。

3. 核心功能与实际应用

能力 对应场景 实际案例
保密传输 敏感信息加密发送 HTTPS 里加密会话密钥、加密邮件
身份认证 证明你是你 SSH 登录、API 密钥鉴权、VPN 接入
防篡改防抵赖 数字签名 软件安装包签名、电子合同、区块链交易
密钥协商 安全生成对称密钥 TLS 握手、VPN 隧道建立

四、RSA 算法:最经典的非对称加密实现(简单介绍)

RSA 是第一个广泛应用的非对称加密算法,也是公钥加密的代名词。

核心基础

基于大数分解数学难题:把两个超大质数相乘很容易,但把乘积还原成两个质数极其困难。公钥和私钥就围绕这个乘积构造。

能力与局限

  • 全能型:既可以做「公钥加密 / 私钥解密」,也可以做「私钥签名 / 公钥验签」。
  • 速度慢:运算量远大于 AES,只能加密很短的数据(比如加密一个 AES 密钥),绝对不适合直接加密大文件、大报文。
  • 密钥长度:现在主流用 2048 位、4096 位,1024 位已被认为不安全。

典型应用

  • HTTPS 早期的 RSA 密钥交换
  • 数字证书的签名
  • 小型数据加密、数字签名场景

五、数字签名:防篡改、防抵赖的核心手段

数字签名是非对称加密「签名验签」能力的具体落地,核心解决三个问题:身份可信、内容未改、无法抵赖

工作原理(简化版)

  1. 发送方先对原始消息做哈希(比如 SHA-256),得到一段固定长度的「消息摘要」;
  2. 用自己的私钥对这个摘要加密,得到的结果就是数字签名
  3. 把「原始消息 + 数字签名」一起发给接收方;
  4. 接收方用同样的哈希算法算出消息摘要,再用发送方的公钥解密签名,得到原始摘要,两者对比:一致就说明有效。

为什么要先哈希再签名?

非对称加密慢,直接对大文件签名效率极低;哈希可以把任意长度的内容压缩成固定长度的摘要,只对摘要签名,效率提升巨大,同时不影响安全性。

常见应用

  • 软件安装包签名:确认软件没被植入病毒
  • Git Commit GPG 签名:确认提交是本人操作
  • 数字证书签名:CA 给网站公钥背书
  • 电子发票、电子合同

六、RSA 传输 AES:混合加密的经典模式

这是工业界最常用的加密组合方案,完美解决了「对称密钥传不安全,非对称加密太慢」的矛盾。

为什么要混合?

  • AES 速度快,但密钥怎么安全传给对方是难题,直接明文传会被截获;
  • RSA 能安全传数据,但加密大内容太慢,只适合加密很短的数据。

于是就有了:用 RSA 加密 AES 的密钥,用 AES 加密真正的业务数据

完整流程(以客户端和服务器通信为例)

  1. 服务器生成 RSA 公私钥对,公钥公开给客户端;
  2. 客户端本地随机生成一个AES 会话密钥(临时密钥,只用这一次);
  3. 客户端用服务器的 RSA 公钥,把这个 AES 密钥加密,发给服务器;
  4. 服务器用自己的 RSA 私钥解密,得到 AES 密钥;
  5. 后续所有通信内容,双方都用这个 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. 证书验证流程

  1. 你访问网站时,网站把自己的数字证书发给你;
  2. 你的浏览器用内置 CA 的公钥,去验证证书上的 CA 签名;
  3. 签名验证通过,就说明这个证书确实是 CA 发的,证书里的公钥确实属于这个网站;
  4. 之后你就可以放心用这个公钥加密数据、协商密钥,不用担心是中间人伪造的。

如果证书是伪造的、过期的、域名不匹配,浏览器就会弹出安全警告。

补充:证书链

实际体系是分级的:根 CA → 中级 CA → 网站证书,形成信任链,只要根 CA 可信,整条链就都可信。


九、TLS:集大成的加密传输协议

TLS(传输层安全协议)就是把上面所有技术整合在一起的一套完整协议,我们常说的 HTTPS = HTTP + TLS。

它的目标是在不安全的网络上,建立一条加密、身份可信、防篡改的安全通道。

TLS 握手的简化流程(以 TLS 1.2 + ECDHE 为例)

  1. 客户端打招呼:发支持的加密套件、随机数;
  2. 服务器回应:发自己的数字证书、随机数,选择 ECDHE 密钥交换;
  3. 客户端验证证书:用 CA 公钥验签,确认服务器身份合法,拿到服务器公钥;
  4. 密钥协商:双方通过 ECDHE 交换临时参数,各自算出相同的会话密钥(后续 AES 加密用);
  5. 密钥确认:双方互相发加密的 Finished 消息,验证密钥一致;
  6. 正式通信:所有 HTTP 数据都用 AES 对称加密传输。

整个过程里:

  • 证书 + RSA 签名 解决身份认证,防中间人;
  • ECDHE 协商 AES 密钥,实现前向保密;
  • AES 负责加密真正的业务数据;
  • 哈希算法 负责校验数据完整性。

TLS 1.3 进一步简化了握手,只需要 1-RTT 甚至 0-RTT,默认强制前向保密,安全性和速度都大幅提升。


整体脉络总结

  1. AES:主力加密,速度快,负责加密大数据;
  2. RSA / 非对称:解决密钥传输和身份签名,慢,只处理小数据;
  3. 混合加密(RSA 传 AES):兼顾安全与效率,经典组合;
  4. DHE/ECDHE:更安全的密钥协商,实现前向保密;
  5. 数字签名:防篡改、防抵赖、身份认证;
  6. CA + 数字证书:解决公钥信任问题,堵住中间人攻击漏洞;
  7. TLS:把以上所有技术打包成标准协议,支撑 HTTPS 等安全通信。

其他

视频可参考你管这叫加密通讯?

posted @ 2026-07-09 16:37  韩熙隐ario  阅读(24)  评论(0)    收藏  举报