📄 一句话概括
不知道密钥就只能暴力试遍所有可能——密钥空间的大小由密钥长度决定,密钥每加一位,破解时间翻一倍。
📝 本节和前面几节的关系
上一节留下了破绽:密钥只有 26 种可能,全试一遍就破。本节把【暴力破解】演示出来,再看密钥长度怎么筑起高墙。
一、暴力破解:最笨也最诚实的攻击
算法公开、密钥未知——攻击者把所有可能的密钥挨个试一遍,看哪个解出有意义的明文; 对凯撒密码亲手试 26 次,几分钟就撞出答案——密钥空间太小是致命伤; 暴力破解永远成立(总有一天试完),防御思路只有一个:把密钥空间大到试不完。
二、密钥长度决定密钥空间
密钥本质是一串二进制位:1 位有 2 种、8 位 256 种、56 位就是 2 的 56 次方——每加一位翻倍; 2 的 56 次方约 7 千亿亿次,听起来大?专用算力几天就能翻完——DES 就这么被淘汰的; AES-128 的密钥空间约 3.4×10 的 38 次方——用全球算力也得算上亿年,密钥长度就是硬道理。
三、淘汰与升级的军备赛
算法没变、数学没输——输给的只是算力增长:DES 56 位撑了二十多年; 今天的标准是 AES-128/256:128 位在可预见的算力增长下依然安全; 【⚠️ 2026 现状】量子计算机对【因数分解类】算法是大威胁(威胁的是 10.4 的 RSA),对对称加密的冲击较小——后量子密码已是活跃的研究方向。
四、动手 Demo:暴力破解凯撒密码全记录
对密文 KHOOR 把 26 种错开位数全部试一遍,亲眼看看暴力破解怎么命中。
cipher = "KHOOR"
for k in range(26):
cand = "".join(chr((ord(c) - ord("A") - k) % 26 + ord("A")) for c in cipher)
print(k, cand)
实跑输出:
--------------------------------------------------------------------
密钥越长,解密越困难
--------------------------------------------------------------------
拿不到密钥就暴力试! 拿上一节的密文 KHOOR, 把 26 种错开位数全试一遍:
[暴力破解现场]
错开 0 位: KHOOR
错开 1 位: JGNNQ
错开 2 位: IFMMP
错开 3 位: HELLO <- 命中!
错开 4 位: GDKKN
错开 5 位: FCJJM
错开 6 位: EBIIL
错开 7 位: DAHHK
错开 8 位: CZGGJ
错开 9 位: BYFFI
错开 10 位: AXEEH
错开 11 位: ZWDDG
错开 12 位: YVCCF
错开 13 位: XUBBE
错开 14 位: WTAAD
错开 15 位: VSZZC
错开 16 位: URYYB
错开 17 位: TQXXA
错开 18 位: SPWWZ
错开 19 位: ROVVY
错开 20 位: QNUUX
错开 21 位: PMTTW
错开 22 位: OLSSV
错开 23 位: NKRRU
错开 24 位: MJQQT
错开 25 位: LIPPS
凯撒密码的密钥空间只有 26, 人工几分钟就翻完——太短了!
密钥每加一位, 试完所有可能的时间翻倍, 这就是【密钥越长解密越困难】:
加密方式 密钥空间 密钥长度
----------------------------------------------------
凯撒密码 26 种 约 5 位二进制
DES(已淘汰) 2^56 ≈ 7×10^16 56 位
AES-128 2^128 ≈ 3.4×10^38 128 位
【⚠️ 2026 现状】DES 已被暴力破解淘汰; AES-128 用全球算力也得算上亿年——密钥长度就是硬道理。
26 行输出里有一行是 HELLO——那就是命中:密钥空间 26 意味着最多 26 次必破。 把范围放大:密钥 56 位是 7.2×10 的 16 次方种——空间每加一位,这张表就长一倍。
30 秒实验
- 算一算密钥从 56 位升到 57 位、64 位,密钥空间分别翻了多少倍。
- 解释【暴力破解永远成立,为什么人们还是敢用加密】(空间大到时间不可接受)。
常见误区
- 以为加密被破是算法被攻破——多数淘汰案例只是密钥太短,算力翻墙而过。
- 以为密钥长就万无一失——长度防暴力破解,密钥保管不善、实现漏洞照样出事。
自测三问(点开对答案)
1. 暴力破解的思路? —— 把所有可能的密钥挨个试,直到解出有意义的明文。 2. 密钥长度和破解难度的关系? —— 每加一位,密钥空间翻倍、破解时间翻倍。 3. DES 为什么被淘汰? —— 56 位密钥空间被现代算力暴力翻完——算法本身没被数学攻破。- ☐ 下一节(10.4 适用于互联网的公开密钥加密技术)
相关笔记
- 错开字符编码的加密方式 — 被暴力破解的正是它
- 安全性更高的加密 — AES 与现代算法在那边
- 💻 计算机是怎样跑起来的 · 索引