RU EN ES 中文

凯撒密码

最简单的移位密码,两千年前由尤利乌斯·凯撒使用。密码学的历史就从这里开始。

为什么要学习凯撒密码?

想象你是古罗马的一位将军。你要给部队送去一道命令,但信使可能会被敌人抓住。怎样才能保证即使消息被截获,除了你的将领之外谁也看不懂?

这正是尤利乌斯·凯撒在 2000 多年前解决的问题。他的方法——把字母表中的字母简单地移位——成为迈向现代密码学的第一步。

如今凯撒密码已不用于保护真实数据——它几秒钟就能被破解。但它仍然是一个完美的教学工具,因为它清楚地展示了一些基本原理:

凯撒密码是如何工作的?

这个想法简单得惊人:消息中的每个字母都被替换成字母表中相隔固定位置的另一个字母。这个数叫作移位量或密钥。

1

分配位置

字母表中的每个字母都有一个数字位置:А=0、Б=1、В=2……Я=32(俄文字母表)。

2

进行移位

把密钥加到每个字母的位置上:新位置 = (原位置 + 密钥) mod N,其中 N 是字母表的大小。

3

逆向变换

解密时,接收方减去密钥:原位置 = (新位置 - 密钥 + N) mod N。

凯撒密码背后的数学
🔐 加密
C = (P + K) mod N
例如:
用移位量 3 加密字母 П
П = 第 16 个字母(从 0 开始计数),K = 3
(16 + 3) mod 33 = 19 → Т
🔓 解密
P = (C − K + N) mod N
例如:
用移位量 3 解密 Т
Т = 19,K = 3,N = 33
(19 − 3 + 33) mod 33 = 16 → П
为什么这样可行?
mod N 运算让字母表“首尾相接”:最后一个字母之后又回到第一个字母。这个简单而强大的数学性质是许多现代密码的基础。
密钥可以取 1 到 N−1 之间的任意值
* 在游戏中,密码盘会转动,直观地显示明文字母如何对应到密文字母。
关键结论: 凯撒密码的魔力在于模运算。“mod N”运算让字母表“首尾相接”:最后一个字母之后又回到第一个字母。这是一个简单而强大的原理,现代密码算法正是以它为基础。

亲手试试这个密码

在交互式模拟“凯撒密码”中,你不只是阅读理论——而是亲自成为密码学家:

你会看到绿色圆盘(明文)和蓝色圆盘(密文)转动,生动地展示加密与解密之间的对称性。

主要收获: 游戏展示的不只是密码的数学,还有安全的传输协议:先发送密钥,再发送加密后的消息。这是所有现代数据保护系统背后的一个基本思想。
给好奇的人

历史背景

尤利乌斯·凯撒使用的密码由罗马历史学家苏埃托尼乌斯记载下来。凯撒把字母移动 3 个位置,但这个原理对任何密钥都适用。在很长一段时间里,这种方法被认为足够安全,直到阿拉伯学者发明了频率分析(9 世纪)。

为什么凯撒密码很弱?

尽管有重要的历史意义,凯撒密码却很容易被破解:

  • 密钥空间小——只有 N−1 种可能的移位(俄文字母表为 32 种)
  • 频率分析——在一种语言中,各个字母出现的频率不同;把密文的频率与参考频率进行比较,就能恢复出密钥
  • 暴力攻击——手工尝试全部 32 种可能,只需几分钟

进一步学习的主题

如果你想更深入地了解密码学,这里有一些关键主题:

频率分析

语言统计如何帮助破解密码:字母、双字母组合和三字母组合的频率

维吉尼亚密码

一种被认为三个世纪无法破解的多表代换密码

一次性密码本

唯一在理论上不可破译的密码:密钥与消息等长,且只使用一次

现代分组密码

简单的代换如何演变成 AES、俄罗斯“Kuznyechik”标准和其他算法

用 Python 进行密码分析

用于频率分析和攻击凯撒密码的实用脚本

俄罗斯标准

GOST 28147-89“Magma”、GOST R 34.12-2015“Kuznyechik”以及“Streebog”哈希函数

趣闻

  • 第一次世界大战期间,俄国军队曾使用凯撒密码——并经常被敌人破解
  • 希伯来语中有一种叫作“Atbash”的密码传统——把字母表的第一个字母与最后一个互换,第二个与倒数第二个互换,以此类推
  • ROT13 是移位量为 13 的凯撒密码变体,在网上常用来隐藏剧透;它的特别之处在于加密和解密是同一个操作
  • 游戏使用扩展字母表(西里尔字母 + 拉丁字母 + 数字 + 符号),把密钥空间扩大到 90 多种

现在你已经了解了凯撒密码的数学和历史,正是亲手试一试的好时机!

在交互式模拟中,你可以加密自己的消息,并观察过程中的每一步