一、密码学概述:从古战场到数字世界的护身符

说到密码学,很多人第一反应就是电影里黑客敲键盘的画面。其实不然。我做了十几年安全,密码学更像是一道数字世界的护身符。你每天发微信、网购、刷脸,背后都有它的影子。

这门课,咱们就从零开始,把它掰开揉碎了讲。今天先搭个框架。

1.1 密码学发展史:三个时代

密码学不是现代产物。它的历史,几乎和人类文字一样长。我习惯把它分成三个阶段来看:

  1. 古典密码(手工时代) —— 纸和笔就能玩
  2. 近代密码(机械时代) —— 机器上场,恩尼格玛机就是代表
  3. 现代密码(计算机时代) —— 数学说了算
一个小故事: 我当年看《模仿游戏》时特别激动。图灵破解恩尼格玛机,说白了就是利用了一个很小的规律——德军每天早上的天气预报总是以固定短语开头。这在密码学里叫"已知明文攻击"。你看,细节决定成败。

古典密码的两大代表

算法 原理 破绽在哪
凯撒密码 字母整体平移固定位数 只有25种可能,暴力枚举秒破
维吉尼亚密码 用关键词决定每位的偏移量 密钥重复周期长就能猜出来

你想想看,凯撒密码搬一次家,敌人只要试25次就能知道你在说啥。这哪叫加密?顶多是藏个纸条。但维吉尼亚密码就聪明多了,它用了"多表替换",相当于每个字母都有独立的搬家规则。可惜,只要密钥重复,就有规律可循。

近代密码:恩尼格玛机的教训

恩尼格玛机是二战时期的明星。它用转轮和反射器,把每个字母映射成完全不同的另一个字母。理论上组合数量是个天文数字。但我记得有个经典失误:机器设计太精确,导致一个字母永远不会加密成它自己。这个破绽,被图灵抓住了。

嗯,这里要注意:实现上的瑕疵,远比算法本身更致命。这个道理,到现在都成立。

现代密码:从DES到RSA

  • DES(数据加密标准):1977年诞生,56位密钥。但在90年代末,一台专用机器就能在56小时内暴力破解。它老了。
  • AES(高级加密标准):接替DES,密钥长度128/192/256位,至今雷打不动。
  • RSA:基于大整数分解难题,开启了公钥密码时代。没有它,就没有今天的HTTPS。

我曾经在一次内训中问过大家:"DES的56位密钥,暴力破解需要多长时间?" 有人说几十年,有人说永远。实际上,1999年EFF(电子前哨基金会)用25万美元的机器,22小时15分钟就解了。所以我常说,密钥长度不是你想设就能设,得看对手的算力。

1.2 核心概念:加密、解密、密钥

说白了,密码学就是三个事:

  • 加密:把明文变成谁都看不懂的密文。
  • 解密:把密文变回明文。
  • 密钥:干这两件事所需的"钥匙"。

举个例子。我给女朋友写情书:"今天晚上老地方见"。用凯撒密码,每个字母往后移3位,就变成"今添网桑上老是方见"。别人看着一头雾水,她拿回密钥("偏移3")一译就懂了。

但这里面有个关键问题:我们怎么把密钥安全地交给她? 如果是写信前当面说好,那还好办。可如果她在上海,我在北京,怎么传密钥?

密钥分发问题 —— 对称加密最大的软肋。你有一个保险柜,你需要送一把钥匙给对方。但送钥匙的路上,钥匙被别人偷了怎么办?

这就是当年困扰密码学界几十年的难题。直到1976年迪菲和赫尔曼提出公钥密码,才真正解决。

1.3 密码学三大分类

1. 对称密码

  • 加密和解密用同一把密钥
  • 速度快,适合加解密大量数据
  • 代表算法:AES、SM4(国密)
  • 痛点:密钥怎么安全送达对方?

我早期做项目时,特别喜欢用AES-256。它快,安全,而且芯片级支持。但每次给客户部署,都要远程传密钥。后来我再也不这么干了。改成用非对称加密先传对称密钥,再用AES加密业务数据。这叫混合加密,HTTPS就是这么干的。

2. 非对称密码

  • 加密用公钥,解密用私钥
  • 公钥公开,私钥自己藏好
  • 代表算法:RSA、ECC、SM2
  • 痛点:速度慢,不适合大批量数据
避坑指南: 别直接用RSA加密大文件。RSA算法有长度限制,而且非常慢。正确的做法是:RSA只用来加密对称密钥,对称密钥再去加密文件。

我曾经见过一个真实案例:某公司用RSA直接加密1MB的PDF文件。结果呢?加密耗时几十分钟,对方直接崩溃。这就是典型的"用错场景"。

3. 哈希函数

  • 没有密钥,只有输入输出
  • 输入任意长度,输出固定长度(如SHA-256输出256位)
  • 代表算法:SHA-256、SM3
  • 特色:不可逆,防篡改

哈希函数不是"加密",因为它不能解密。它的作用是完整性校验。你下载一个软件,官网上会公布它的SHA-256值。你下载完自己算一遍,对得上就没被篡改过。

分类 密钥数 速度 用途
对称密码 1个(秘密密钥) 快 数据加密
非对称密码 2个(公钥+私钥) 慢 密钥交换、数字签名
哈希函数 0个 快 完整性校验、密码存储

你可能会问:那国密算法是什么?简单说,国密就是中国自己的密码算法标准:SM2(非对称)、SM4(对称)、SM3(哈希)。性能和安全都不输国际算法。我在给政企客户做改造时,用的全是国密。兼容起来需要一些技巧,后面章节会详细讲。

一句话总结: 对称加密快但密钥难传,非对称能传密钥但慢,哈希不能加密但能保证完整性。三者配合,才是一个完整的密码体系。

1.4 知识结构总览

下面这张图,把本章的知识点串起来了。你一眼就能看清密码学的全貌。

密码学知识框架总览 密码学 对称密码 非对称密码 哈希函数 加密=解密密钥 速度快 公钥加密私钥解密 密钥交换 不可逆 完整性校验 AES / SM4 DES(淘汰) RSA / ECC SM2 SHA-256 SM3 核心关系 对称加密快但密钥分发难 → 非对称加密解决分发但慢 实际应用混合两者:非对称加密传送对称密钥,对称加密批量处理数据 哈希函数全程参与,确保数据没有被篡改

这张图帮你理清了密码学的三条主线。我建议你记住它,后面的章节全是围绕着这张图展开的。

给新手的建议: 先搞懂对称和非对称的区别,别急着记算法细节。遇到实际项目时,回头翻这张图,能快速定位你该用哪类方案。