当前位置: 首页 > news >正文

构筑密码学基础世界观 —— 搭建完整密码底层认知体系

构筑密码学基础世界观 —— 搭建完整密码底层认知体系

    • 前言
    • 一、密码学到底在解决什么问题
      • 1. 保密性(Confidentiality)
      • 2. 完整性(Integrity)
      • 3. 身份认证(Authentication)
      • 4. 不可否认性(Non-repudiation)
    • 二、密码学里最基础的几个概念
      • 1. 明文、密文、密钥
      • 2. 编码、哈希、加密的区别
      • 3. 公钥、私钥是什么
    • 三、三类最核心的密码学工具
      • 1. 对称加密
      • 2. 非对称加密
        • 用途一:密钥交换 / 加密少量数据
        • 用途二:数字签名
      • 3. 哈希与消息认证码
        • 3.1 哈希函数
        • 3.2 消息认证码(MAC)
      • 4. 三类工具怎么组合使用?
    • 四、为什么后面的内容都离不开这些基础
      • 1. 流密码 & 分组密码
      • 2. RSA & ECC
      • 3. TLS / HTTPS
    • 五、总结:密码学的整体框架

Crypto专栏:https://blog.csdn.net/r_feynman_/category_13190241.html

Crypto 密码解析实战靶场:https://blog.csdn.net/r_feynman_/category_13194584.html


前言

学密码学最容易走的弯路,就是一上来就扎进算法细节里。

AES 的 S 盒怎么设计的、RSA 的大数分解怎么回事、ECC 的椭圆曲线方程长什么样……这些当然重要,但如果没有先搞清楚最基础的问题——这些算法分别在解决什么问题?——那学再多也只是零散的知识点。

这篇文章是整个密码学系列的"第零阶段"。我们不讲具体算法,先搭世界观。

你会搞清楚这几件事:密码学的四大安全目标是什么?明文、密文、密钥这些基础概念怎么理解?编码、哈希、加密三者有什么本质区别?对称加密和非对称加密分别适合什么场景?加密、签名、MAC、密钥交换各自负责什么任务?以及,为什么后面学 AES、RSA、TLS 的时候,这些基础概念永远绕不开。

读完你不会马上成为密码学高手,但至少不会再把哈希和加密混为一谈,也不会再觉得 AES 和 RSA 是"两种不同的加密算法"这么简单。

往下看,我们从最基础的问题开始。


一、密码学到底在解决什么问题

很多人一提到密码学,第一反应就是“加密”——也就是把明文变成密文,让别人看不懂。

这个理解没有错,但它只说对了一部分。

在现代密码学中,真正要解决的问题并不只是“隐藏内容”,而是围绕信息安全建立一套完整的保障机制。简单来说,密码学主要服务于四个核心目标:

安全目标解决的问题常见技术
保密性防止别人偷看内容AES、RSA、ChaCha20
完整性防止内容被篡改SHA-256、MAC
身份认证防止别人冒充身份MAC、数字签名、证书
不可否认性防止事后抵赖数字签名

下面分别来看。


1. 保密性(Confidentiality)

保密性解决的是:

消息内容会不会被别人偷看?

比如你在网上登录账号、发送聊天消息、提交银行卡信息时,都不希望中途的第三方看到真实内容。
加密的作用就是让攻击者即使截获了数据,也只能看到一串无法理解的密文。

常见实现方式包括:

AES、ChaCha20、RSA、ECC

不过要注意,实际系统中加密大量数据时,通常使用的是AES、ChaCha20 这类对称加密算法;RSA、ECC 更多用于密钥交换或数字签名。


2. 完整性(Integrity)

完整性解决的是:

这条消息中途有没有被人改过?

保密性只能保证“别人看不懂”,但不能保证“别人没修改”。
例如攻击者虽然看不懂密文内容,但仍然可能尝试篡改数据包,导致接收方拿到错误内容。

完整性的目标就是让接收方能够发现:

数据是否被修改、删除、插入或替换

常见技术包括:

哈希函数、消息认证码(MAC)、HMAC

其中,哈希函数可以为数据生成“指纹”,而 MAC / HMAC 则是在哈希基础上加入密钥,用来确认消息确实来自可信一方。


3. 身份认证(Authentication)

身份认证解决的是:

这条消息真的是他发的吗?

在通信过程中,我们不仅关心消息内容有没有被改,还要确认消息来源是否可信。
否则攻击者完全可以伪装成别人,发送一条看似正常的消息。

身份认证常见于:

登录系统、HTTPS 证书、接口签名、消息认证

常见技术包括:

MAC、HMAC、数字签名、数字证书

需要注意的是,MAC 和数字签名都能做认证,但它们的使用场景不同:
MAC 通常要求双方共享同一把密钥,而数字签名使用的是公钥和私钥。


4. 不可否认性(Non-repudiation)

不可否认性解决的是:

他发过这条消息,事后能不能赖账?

身份认证可以证明“消息来自某个身份”,而不可否认性更进一步:
它要求发送方在事后不能否认自己曾经发送或签署过这条消息。

典型例子包括:

电子合同、数字证书、软件发布签名、区块链交易签名

这个目标通常依赖数字签名实现。
因为数字签名使用私钥生成,其他人可以用对应公钥验证。一旦验证通过,就可以说明这条消息确实由私钥持有者签署。


小结

密码学并不只是“加密”,而是在解决一组完整的信息安全问题:

目标简单理解
保密性防偷看
完整性防篡改
身份认证防冒充
不可否认性防抵赖

后面学习任何密码算法或安全协议时,都可以先问自己一句:

它到底是在解决这四类问题中的哪一个?

这样一来,AES、RSA、SHA-256、HMAC、数字签名、TLS 这些概念就不会再是零散的名词,而会变成整个密码学体系中的不同工具。


二、密码学里最基础的几个概念

搞清楚密码学解决什么问题之后,我们来建立最底层的概念模型。这几个概念看起来简单,但它们是理解所有后续算法的基础——很多混淆都源于基础概念没抠清楚


1. 明文、密文、密钥

这是密码学最基本的三元组。

  • 明文(Plaintext):原始的、可直接阅读的信息。
    • 比如你要发送的消息、要存储的文件内容。
  • 密文(Ciphertext):明文经过加密变换后得到的、不可直接阅读的信息。
    • 看起来是一堆乱码,只有持有正确密钥的人才能还原。
  • 密钥(Key):控制加密和解密过程的秘密参数。
    • 它不是"密码",而是一串参与运算的数字或字节。
    • 同一个明文,用不同的密钥加密,会得到不同的密文。

加密的本质,就是用密钥作为"参数",把明文"变换"成密文;解密则是反过来,用密钥把密文"还原"回明文。

这里有一个非常重要的原则——柯克霍夫原则(Kerckhoffs’s Principle)

一个密码系统的安全性,不应该依赖于算法的保密,而只应该依赖于密钥的保密。

换句话说:算法可以公开,所有人都知道加密解密的步骤,但只要密钥是秘密的,系统就是安全的

这也是为什么 AES、RSA 这些算法都是公开的——全世界都知道它们怎么算,但没有密钥就是解不开。


2. 编码、哈希、加密的区别

这是初学者最容易混淆的三个概念。很多人看到"乱码"就叫"加密",其实不一定。

编码(Encoding)哈希(Hash)加密(Encryption)
目的格式转换,方便传输/存储生成摘要,验证完整性保密,防止信息泄露
是否可逆可逆,有固定解码方式不可逆,无法还原原文可逆,有密钥就能解密
是否需要密钥不需要密钥不需要密钥(MAC除外)需要密钥
输出长度通常和输入等比例增长固定长度(如 SHA-256 总是 256 位)和输入长度相关
典型例子Base64、URL 编码、UTF-8MD5、SHA-1、SHA-256AES、RSA、SM4

一句话区分:

  • 编码是"换一种写法",谁都能还原回去——不是安全手段
  • 哈希是"打个指纹",只能验证是不是同一个东西,还原不出原文——用于完整性校验
  • 加密是"锁起来",只有持钥匙的人能打开——用于保密性

常见误区:Base64 不是加密,MD5 也不是加密。前者是编码,后者是哈希,它们都不提供保密性。


3. 公钥、私钥是什么

公钥和私钥是非对称加密(也叫公钥密码学)里的核心概念。

在对称加密里,加密和解密用的是同一把密钥——就像一把锁,上锁和开锁用同一把钥匙。

而非对称加密里,有两把不同的密钥

  • 公钥(Public Key):可以公开给任何人,不怕泄露。
  • 私钥(Private Key):必须自己保密,绝对不能让别人知道。

这两把钥匙在数学上是配对的——用公钥加密的东西,只有对应的私钥能解开;反过来,用私钥做的签名,只有对应的公钥能验证。

两种最基本的用法:

用法一:加密消息(保证保密性)

我用你的公钥加密消息发给你,只有你的私钥能解开。
——别人就算截获了密文,没有你的私钥也读不了。

用法二:数字签名(保证身份和不可否认)

我用自己的私钥对消息签名,你用我的公钥验证。
——因为私钥只有我有,所以能确认是我签的,而且我事后不能抵赖。

一个简单的记忆法:公钥加密,私钥解密;私钥签名,公钥验证。

公钥密码学的厉害之处在于:它解决了"密钥怎么安全发给对方"这个问题——对称加密需要双方先共享密钥,但怎么把密钥安全地送过去本身就是个难题。而非对称加密里,公钥可以随便公开,私钥自己留着,不需要提前交换秘密。


三、三类最核心的密码学工具

搞清楚密码学的四大安全目标之后,我们来看实现这些目标的三类核心工具——对称加密、非对称加密、哈希与消息认证

这三类工具是整个密码学体系的基础构件,所有上层协议(TLS、SSH、VPN 等)本质上都是它们的组合应用。

工具核心作用典型算法
对称加密快速加密大量数据,提供保密性AES、ChaCha20、SM4
非对称加密密钥交换、数字签名、身份认证RSA、ECC、SM2
哈希 / MAC完整性校验、消息来源认证SHA-256、SM3、HMAC

简单记:对称加密负责"快",非对称加密负责"建立信任",哈希与 MAC 负责"验真伪"。


1. 对称加密

对称加密的核心特征很简单:加密和解密用同一把密钥

明文 + 密钥 → 密文 密文 + 同一把密钥 → 明文

它最大的优点是速度极快——通常比非对称加密快几个数量级,所以真实系统里加密大量数据(网页内容、文件、磁盘)用的几乎都是对称加密。

对称加密主要分两大类:

类型工作方式典型算法
流密码逐字节/逐位加密,像流水一样连续生成密钥流ChaCha20、RC4
分组密码把数据切成固定大小的块(如 128 位),一块一块加密AES、DES、SM4

AES 是目前最主流的分组密码,ChaCha20 则是现代常用的流密码,两者在 TLS 中都有广泛应用。

对称加密最大的问题不是"够不够安全",而是密钥怎么安全地交给对方

如果密钥本身在传输中被偷走,后面加密得再复杂也没用。这个问题,对称加密自己解决不了——这就是非对称加密存在的意义。


2. 非对称加密

非对称加密(也叫公钥密码学)和对称加密最大的区别是:它有一对密钥——公钥和私钥

公钥可以随便公开,私钥必须自己保密。两把钥匙数学上配对,用公钥加密的只有对应私钥能解开,用私钥签名的只有对应公钥能验证。

第二章已经讲过公私钥的基本概念,这里重点说非对称加密的两个核心用途。

用途一:密钥交换 / 加密少量数据

用对方的公钥加密消息,只有对方的私钥能解密。这样双方不需要提前共享密钥,也能建立安全通信。

但非对称加密有个致命缺点:速度太慢

所以它几乎从不用来加密真正的业务数据,而是用来加密对称密钥——双方先用非对称加密协商出一把对称密钥,之后所有数据都用对称密钥加密。

非对称加密:负责安全地交换会话密钥 对称加密:负责用会话密钥加密大量数据

这就是所谓的"混合加密"模式,也是 HTTPS、SSH 等几乎所有安全通信的标准做法。

补充一个细节:现代 TLS 中更多使用 ECDHE 这类密钥协商算法,而不是简单地"用 RSA 加密一个 AES 密钥"(那叫密钥传输)。两者的区别在于,密钥协商可以提供前向安全性——即使长期私钥泄露,之前的会话内容也不会被解密。

用途二:数字签名

用自己的私钥对消息签名,别人用你的公钥验证。

签名解决两个问题:身份认证(证明消息是私钥持有者发的)和不可否认性(发的人事后不能抵赖)。软件发布、区块链交易、电子合同、HTTPS 证书……所有需要"证明是谁干的"场景,都离不开数字签名。

常见非对称算法:

算法特点
RSA最经典,基于大数分解难题
ECC椭圆曲线密码学,同等安全强度下密钥短得多
SM2国密标准的椭圆曲线公钥算法

3. 哈希与消息认证码

这两类工具不负责"加密保密",它们解决的是完整性身份认证问题。

3.1 哈希函数

哈希函数把任意长度的输入,压缩成固定长度的摘要(哈希值)。

核心性质:

  • 单向性:给你哈希值,算不出原文是什么
  • 确定性:同一个输入永远得到同一个输出
  • 雪崩效应:输入改一个比特,输出完全不同
  • 抗碰撞性:很难找到两个不同输入得到相同哈希值

常见算法:MD5(已破解)、SHA-1(已淘汰)、SHA-256(主流)、SHA-3(新一代)、SM3(国密)。

哈希的用途很广:文件完整性校验、数字签名预处理、区块链、数据去重……

一个重要误区:普通哈希不能直接用来存密码。

很多人觉得"密码存哈希值,就算数据库泄露了也不怕"——但普通哈希(比如 SHA-256)计算太快了,攻击者可以用彩虹表或暴力破解快速撞出原文。真正存密码应该用bcrypt、Argon2、PBKDF2这类慢哈希函数(KDF),专门设计成计算慢、耗资源,让暴力破解成本高到不可接受。

但单纯的哈希有个局限:任何人都能算。攻击者改了消息,可以重新算一个哈希值一起发过去,接收方发现不了。所以哈希只能证明"数据和摘要匹配",不能证明"数据是谁发的"。

这就需要 MAC。


3.2 消息认证码(MAC)

MAC 可以理解为带密钥的哈希

普通哈希:消息 → 哈希值 MAC: 消息 + 密钥 → MAC 值

只有知道密钥的人,才能生成正确的 MAC。这样接收方不仅能验证消息没被篡改,还能确认消息来自持有密钥的一方。

MAC 同时提供完整性身份认证,但不提供不可否认性——因为双方都有同一把密钥,你没法向第三方证明"这条消息一定是对方发的,不是我自己伪造的"。

这也是 MAC 和数字签名最核心的区别:MAC 是"两个人之间的验证",签名是"可以公开验证的证明"。

最常用的 MAC 是HMAC(比如 HMAC-SHA256、HMAC-SM3)。注意,HMAC 不是简单地"密钥 + 消息拼起来算哈希",而是有专门的双层构造,防止长度扩展攻击等安全问题。


4. 三类工具怎么组合使用?

真实系统从来不是单一工具在工作,而是组合使用。

以 HTTPS 为例:

阶段用到的工具解决的问题
验证网站身份数字证书 + 数字签名证明你访问的是真网站
协商会话密钥ECDHE 密钥交换安全地产生共享对称密钥
加密网页内容对称加密(AES-GCM / ChaCha20-Poly1305)防止通信内容被偷看
防止数据篡改AEAD / MAC保证数据完整性和来源认证

注意最后一行的AEAD(认证加密)——这是现代密码学的标准做法:加密和认证不分开做,而是用一个算法同时完成,比如 AES-GCM、ChaCha20-Poly1305。

为什么不推荐"先加密,再单独算 MAC"?因为分开做很容易出错——比如加密和 MAC 的顺序搞反、密钥复用、时序攻击等。AEAD 把两件事打包成一个经过严格验证的标准方案,用起来更安全。

一句话总结

对称加密负责快速保密,非对称加密负责交换密钥和证明身份,哈希与 MAC 负责验真伪防篡改;真实系统把它们组合起来,各干各擅长的事。


四、为什么后面的内容都离不开这些基础

讲到这里,我们已经认识了三类核心工具——对称加密、非对称加密、哈希与 MAC。从功能角度再快速收一下:加密负责保密,签名证明来源,MAC 防篡改验身份,密钥交换负责安全地协商共享密钥。这四件事,就是密码学最核心的四个功能。

后面你要学的所有具体算法和协议,本质上都没有跳出这个框架——要么是某一类工具的具体实现,要么是多个工具的组合应用。我们快速过一遍,你就明白为什么说"基础世界观"最重要。


1. 流密码 & 分组密码

两者都属于对称加密,解决的都是保密性问题。

  • 流密码:逐字节/逐位加密,像流水一样生成密钥流和明文异或。代表算法 ChaCha20、RC4。
  • 分组密码:把数据切成固定大小的块(如 128 位)一块一块加密。代表算法 AES、SM4。

分组密码还有各种工作模式——ECB、CBC 只提供保密性,GCM、CCM 属于 AEAD 认证加密,同时提供保密性、完整性和身份认证。

不管内部结构多复杂,它们的本质都是"同一把密钥加密解密",解决的都是"怎么快速保密"这个问题。


2. RSA & ECC

两者都属于非对称加密,框架完全一致——公钥加密私钥解密,私钥签名公钥验签。

  • RSA:基于大数分解难题,最经典的公钥算法。
  • ECC:基于椭圆曲线离散对数,同等安全强度下密钥短得多,适合移动设备和区块链。

它们的数学基础不同,但使用方式和解决的问题是一样的——都能做密钥交换、都能做数字签名、都能加密少量数据。

所以学非对称加密的时候,先搞懂"非对称密码能做什么、怎么用",再去看具体算法的数学细节,思路会清晰很多。


3. TLS / HTTPS

TLS 是密码学的集大成者——把前面讲的所有概念几乎全用上了。

大致分两个阶段:

  • 握手阶段:用数字证书和数字签名验证服务器身份,用 ECDHE 等密钥交换算法协商会话密钥。
  • 传输阶段:用对称加密(AES-GCM 或 ChaCha20-Poly1305)加密数据,同时用 AEAD 保证完整性和认证。

TLS 协议细节很多,版本、扩展、套件一大堆,但抓住主线就不会乱:

握手用非对称加密建立信任、交换密钥,传输用对称加密加密数据,全程用签名和 AEAD 保证身份和完整性。


为什么说基础最重要?

讲到这里你应该能看出来:

  • 流密码、分组密码 → 对称加密的具体实现
  • RSA、ECC → 非对称加密的具体实现
  • TLS → 三类工具的组合应用

后面学任何具体算法或协议,先问自己三个问题:

  1. 它属于哪一类工具?
  2. 它提供哪些安全能力?(保密/完整性/认证/不可否认)
  3. 它和同类方案比,优缺点是什么?

带着这三个问题去学,你就不是在"从零学一个新东西",而是在"给已有的框架填细节"。

这就是为什么我们要花一整篇文章讲"第零阶段"——先搭架子,再填内容。


五、总结:密码学的整体框架

密码学看起来知识点很多,但底层的世界观其实很清晰。从目标上说,就是解决四件事:保密性防偷看、完整性防篡改、身份认证防冒充、不可否认性防抵赖。从工具上说,就是三类核心技术:对称加密速度快、适合加密大量数据,非对称加密有公私钥配对、负责建立信任和交换密钥,哈希与消息认证码负责校验完整性和身份。

把这些串起来就是一句话:非对称加密负责交换密钥和证明身份,对称加密负责真正加密数据,哈希和 MAC 负责验证完整性。所有上层协议,从 TLS 到 SSH 再到区块链,本质上都是这几类工具的不同组合。有了这个框架,后面再学具体算法就不会迷路了。

下一篇,我们从模运算到离散对数开始,正式进入现代密码学的世界。

http://www.jsqmd.com/news/1293403/

相关文章:

  • SpringBoot+Vue构建高并发在线招投标系统实践
  • 魔兽争霸3兼容性终极解决方案:WarcraftHelper完全使用指南
  • 计算机毕业设计之安顺学院购物商城设计与实现
  • 市面上紧凑型电磁流量计厂家品牌推荐,食品液体实验室看这篇 - 仪表人叶工
  • 3分钟解锁Beyond Compare:告别30天评估期的终极密钥生成指南
  • 2026/7/30
  • 小白/程序员快速入门大模型:FDE岗位火爆全解析,抢占AI时代红利!
  • C++数组核心原理与高效编程实践
  • WeCam 是新一代的虚拟视频及直播软件E2ESOFT它拥有所见即所得的视频场景编辑器
  • 2026.7月香洲区专属防水修缮深度指南:适配珠江口滨海海洋气候、全域辖区堵漏、根治临海建筑盐蚀渗漏难题 - 吉林同城获客
  • 深入解析SD卡协议栈与Linux MMC驱动实现
  • 2026 年更新:秦淮比较好的玻璃棉施工厂家哪家好,你家隔温层里藏的这玩意儿,居然能帮你省下大半年的空调电费? - 行业推荐官【官方】
  • 油气知识图谱构建与应用实践
  • 双模型协作写作实践:GPT 5.6 + Claude 4.8的任务拆分、提示词设计与工作流实现
  • 老Mac重获新生:OpenCore Legacy Patcher完全指南,让2008-2017年款Mac畅享最新macOS
  • 2026 西安耐磨地坪、自流平地坪怎么选,车间地面改造真实测评 - LYL仔仔
  • 免费去水印软件推荐 | 手机 APP / 在线网站 / 电脑软件实测,实用靠谱! - AI工具助手
  • es6重要内容用法
  • GetQzonehistory技术深度解析:构建QQ空间历史数据归档系统的5大核心架构设计
  • C++核心概念全解析:内存模型、引用、类与文件操作实战指南
  • C++调用Python3实战:解决PyImport_ImportModule返回NULL的完整指南
  • 粒子群优化模糊PID控制算法的Matlab实现与应用
  • 2026桐庐全县叉车随车吊挖机铲车租赁服务全面盘点 - LYL仔仔
  • Python游戏自动化脚本开发:从模拟操作到图像识别的完整实践
  • 安防监控超低延时直播技术全链路解析与EasyCVR实战优化
  • 南昌市以诚经营深耕行业,黄金奢品高价回收,不做一锤子买卖 - 新芸鼎珠宝首饰
  • 智慧校园软件平台的功能模块与应用价值
  • 丙午年六月十七向空思
  • 2026推荐:新乡月饼哪个品牌好深度评测 - 禾之初科技
  • 东莞市金美新材料有限公司:整卷PVC喇叭网自由裁剪 - 资讯速览