一、密码学概述:从古战场到数字世界的护身符
说到密码学,很多人第一反应就是电影里黑客敲键盘的画面。其实不然。我做了十几年安全,密码学更像是一道数字世界的护身符。你每天发微信、网购、刷脸,背后都有它的影子。
这门课,咱们就从零开始,把它掰开揉碎了讲。今天先搭个框架。
1.1 密码学发展史:三个时代
密码学不是现代产物。它的历史,几乎和人类文字一样长。我习惯把它分成三个阶段来看:
- 古典密码(手工时代) —— 纸和笔就能玩
- 近代密码(机械时代) —— 机器上场,恩尼格玛机就是代表
- 现代密码(计算机时代) —— 数学说了算
古典密码的两大代表
| 算法 | 原理 | 破绽在哪 |
|---|---|---|
| 凯撒密码 | 字母整体平移固定位数 | 只有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直接加密1MB的PDF文件。结果呢?加密耗时几十分钟,对方直接崩溃。这就是典型的"用错场景"。
3. 哈希函数
- 没有密钥,只有输入输出
- 输入任意长度,输出固定长度(如SHA-256输出256位)
- 代表算法:SHA-256、SM3
- 特色:不可逆,防篡改
哈希函数不是"加密",因为它不能解密。它的作用是完整性校验。你下载一个软件,官网上会公布它的SHA-256值。你下载完自己算一遍,对得上就没被篡改过。
| 分类 | 密钥数 | 速度 | 用途 |
|---|---|---|---|
| 对称密码 | 1个(秘密密钥) | 快 | 数据加密 |
| 非对称密码 | 2个(公钥+私钥) | 慢 | 密钥交换、数字签名 |
| 哈希函数 | 0个 | 快 | 完整性校验、密码存储 |
你可能会问:那国密算法是什么?简单说,国密就是中国自己的密码算法标准:SM2(非对称)、SM4(对称)、SM3(哈希)。性能和安全都不输国际算法。我在给政企客户做改造时,用的全是国密。兼容起来需要一些技巧,后面章节会详细讲。
1.4 知识结构总览
下面这张图,把本章的知识点串起来了。你一眼就能看清密码学的全貌。
这张图帮你理清了密码学的三条主线。我建议你记住它,后面的章节全是围绕着这张图展开的。