关于此实验
数千年来,人们一直通过打乱字母来隐藏信息。尤利乌斯·凯撒将每个字母沿字母表向后移三位;后来出现的密码则用秘密关键词替换字母,或让每个字母的移动位数都不同。这些密码最终都被破解了,破解时常常会统计每个字母出现的频率。加密和解密你自己的信息,逐个字母了解加密过程,然后用频率分析破解一段秘密文本。
学习目标
- 使用凯撒密码、关键词替换密码和维吉尼亚密码加密与解密信息
- 解释算法和密钥的区别
- 比较每种密码可能的密钥数量,并探讨这对暴力破解意味着什么
- 利用字母频率破解凯撒密码
- 解释为什么现代加密需要远不止字母替换
使用方法
- 1使用位移量为 3 的凯撒密码加密示例信息。逐个查看字母,并沿着转盘跟踪每个字母的移动。
- 2点击“将结果用作输入”并解密。要撤销位移 3,应该使用多少位移?如果将位移 13 应用两次呢?
- 3凯撒密码只有 25 个有用的密钥。手动逐个尝试需要多长时间?用计算机呢?
- 4切换到关键词密码。如何根据关键词构建密码字母表?为什么它有多得多的可能密钥?
- 5使用密钥 LEMON,通过维吉尼亚密码加密一条消息。找出消息中一个重复出现、但加密后变成两个不同字母的字母。为什么这有助于抵御频率分析?
- 6打开“破解”。滑动位移,直到轮廓与柱状图吻合。检查解密后的文本是否通顺。
- 7将一段非常短的密文粘贴到“破解”中。为什么频率分析对短文本的效果较差?
模型
假设
- 与课堂密码一样,只有 A 到 Z 这 26 个字母会被加密;大小写保持不变,其他所有内容都会原样复制。
- 英语字母频率采用已公布的标准值。频率分析假设隐藏文本是普通英语。
- 关键词密码先写下去除重复字母后的关键词,再按顺序写出字母表中剩余的字母。
- 关键词密码的密钥数量等于字母表所有可能的排列数,即 26! ≈ 4 × 10²⁶。
在课堂上试试这个实验
- Q1解密 KHOOR ZRUOG。这是移位量为 3 的凯撒密码。
- Q2为什么移位 26 没有用?
- Q3关键词密码有约 4 × 10²⁶ 个密钥,却很容易破解。请解释如何破解。
- Q4为什么维吉尼亚密码比凯撒密码更能隐藏字母频率?
- Q5解释代码与密码的区别。
常见问题
为什么这个实验只能使用英文文本?
这些历史密码使用 26 个字母的拉丁字母表,破解工具会将字母出现次数与英语进行比较。其他语言的字母频率各不相同,而中文或日文等文字系统则需要完全不同的方法。
维吉尼亚密码是如何被破解的?
在 19 世纪 50 年代和 60 年代,查尔斯·巴贝奇和弗里德里希·卡西斯基发现,重复出现的字母组可以揭示密钥长度。一旦知道密钥长度,每隔 m 个字母取出的字符就构成一个简单的恺撒密码,可以通过频率分析破解。
这与互联网上使用的加密方式有什么不同?
AES 等现代密码处理的是比特而非字母,并通过多轮运算将比特混合,因此字母出现次数不会泄露任何信息。RSA 等公钥方法还能让两个人无需见面就协商出一个密钥。
