密码学入门:从凯撒密码到 HTTPS
3 分钟阅读
密码学听起来高深,但它回答的问题两千年来没变过:怎么让敌人看不懂我的信,而收信人看得懂?
凯撒密码:一切的起点
凯撒大帝给将军写信时,把每个字母向后移 3 位:ATTACK 变成 DWWDFN。将军收到后向前移 3 位还原。这就是对称加密的雏形:
- 明文:原始信息
- 密钥:偏移量 3(这个 3 就是「钥匙」)
- 密文:加密后的乱码
它被破解了 2000 年——26 个字母只有 25 种偏移,挨个试就出来了(这也叫暴力破解)。本站的凯撒工具可以直接玩。
换位密码:换一种思路
凯撒是「替换」——换字母。换位密码是「打乱」——不换字母,只换位置:
明文:HELLO WORLD
规则:每行 5 个字符竖着读
H E L L O
W O R L D
→ 竖着读:HWEOLRLLOD
替换 + 换位组合起来,就是近代密码机的核心思想。
对称加密:一个钥匙开一把锁
凯撒的现代版:AES。发信人和收信人共享同一个密钥,加密解密都用它——快、安全,是今天硬盘加密、WiFi(WPA2)的主流方案。
但有个致命问题:密钥怎么安全地交给对方? 快递会截获,见面不现实。这就是密钥分发难题。
非对称加密:数学变魔术
1970 年代,RSA 横空出世,思路反转:两把钥匙。
- 公钥:随便公开,谁都能拿
- 私钥:只有自己知道
- 用公钥加密的内容,只有私钥能解开
就像大街上的邮箱:人人都能把信塞进投递口(公钥),只有邮递员有开箱钥匙(私钥)。
RSA 的安全性基于「大数分解极难」:两个大质数相乘容易(61×53=3233),把乘积分解回去就难了(3233 是哪两个质数乘的?)。数字大到 2048 位时,全世界的计算机算到宇宙热寂也算不完。
哈希:单向的指纹
哈希不是加密,它是单向的:任意长度的输入 → 固定长度的「指纹」,无法反推原文。
- 同一个输入永远得到同一个哈希
- 改一个字符,哈希面目全非
- SHA-256 的输出永远是 256 位
用途:密码存储(数据库只存哈希,泄露也推不出明文)、文件完整性校验(下载的文件有没有被篡改)、区块链。本站的 SHA-256 工具可以试试「改一个字符,哈希变化有多大」。
HTTPS 的一天:全都用上了
你访问这个网站时:
- 非对称加密交换出一次性的「会话密钥」(解决密钥分发)
- **对称加密(AES)**加密后续所有流量(又快又安全)
- 哈希验证证书和数据没被篡改
凯撒大帝的 3 位移位和你的 HTTPS 之间,隔了 2000 年,但核心思想一脉相承。
下一步
- CTF 挑战第 4、5 关就是 Base64 和凯撒——现在你有武器了
- CTF Wiki 的密码学板块,从古典密码学起
- 推荐阅读:《图解密码技术》(结城浩)