种一棵树最好的时间是十年前,其次是现在。

密码学的历史

密码学的历史可以追溯到几千年前,相传古罗马时期的军事统帅凯撒(Gaius Iulius Caesar)大帝与将军们联系,为了防止内容被截获泄密,对内容进行了加密。凯撒的做法很简单,就是给二十几个罗马字母做了简单的替换。

明码       密码       
AD
BE
CF
DG
......
XA
YB
......

比如要传递一份情报消息是 VQPKIJV,即使这份情报内容被截获也看不懂,在敌方看来,这段文字毫无意义,只有知道加密方式的人才能解密出原文 TONIGHT。这种加密方式称为凯撒密码(Caesar cipher),这种加密方式最简单也最广为人知。

破解这种加密方式很简单,凯撒密码的密钥空间太小,只有26种可能的替换规则,完全可以穷举的方式获知密钥,只需要一支笔一张纸,几分钟时间尝试完26个密钥,获得26个可能的明文,只要明文是可识别的,就很容易找到正确的明文,相应的密钥也就找到了。

如果略微复杂些的替换规则加密,比凯撒密码有很大进步,但也不难破解。只要截获足够多的加密内容,统计字母出现的频率,就知道字母/符号替换的映射规则,密码也就被破解了。

阿瑟·柯南·道尔在他的小说《福尔摩斯探案集》中“跳舞的小人”一案中介绍过这种破解技巧。故事中一名男士在家中发现了奇怪的人型图案的暗号,不明所以,但他的妻子却对此十分紧张,魂不守舍,于是丈夫向福尔摩斯求助。福尔摩斯起初并不明白图案的含义,后来得知求助者的妻子其实与一位熟识的人一直都有联系,通过对往来图案内容的研究,福尔摩斯最终破解了每个图案的含义,进而破解了案件。

跳舞的小人

一种好的编码方法,破译者应该无法从密码中统计出明码的规律。比如,明码中“的”字出现的频率比较高,它对应的编码是 7684,破译者就会发现 7684 出现特别多。如果将它对应成 462193025376等多个密码,每次随机选用一个,那么就不会有哪个明码对应的密码出现太多次,破译者也无从得知这些密码其实对应着同一个字。这里已经包含着最简单的概率论原理。

Enigma

Enigma 是德国工程师在1918年发明的一种密码机,用来加密和解密信息。那时候第一次世界大战刚结束。Enigma 机有多种商品型号在市场上销售,最著名的版本是第二次世界大战期间德军使用的军事版本,它在战争的通信中扮演了重要角色。

1930年开始使用的军用型号 Enigma I 机器

Enigma 机器的外观像一台打字机,但它的内部结构复杂得多,原理类似于一个复杂的机械替换密码系统。它有3到5个转子,每个转子有26电接点,代表26个字母。每个转子的连接方式都不同,每按一次键,最右边的转子会转动一格。当最右边的转子转过一整圈时,会带动中间的转子转动一格,依此类推。这种设计让每次按键的加密输出都不一样。电流经过所有转子后会通过一个叫反射器的装置,再次通过转子返回,这种对称的设计是为了确保可以解密。另外,还增加了插线板,目的是提供额外的字母对换,进一步增加破解难度。

加密信息时,操作员需要设置一系列参数,包括转子的顺序、转子的初始位置和插线板的连接方式。输入的每一个字母都会通过这些设置,经过复杂的路径变化,最终转换成一个加密的字母。每个字母的加密都有上万种可能的组合。即使机器被截获,只有知道正确的设置和配置,才能解密还原信息。

通过使用复杂的转子和插线板配置,以及每天更换设置,Enigma 生成的密文几乎是不可能被破译的。这让当时德军的军事通信变得极其安全,即使通信被盟军截获无法被窃听。这让德军在战场上占据了优势。

Enigma 的破解过程是密码学史上的一个精彩篇章,包含了许多数学家和密码学家的努力。二战期间,艾伦 · 图灵(Alan Turing)和他的团队被派往布莱切利庄园(Bletchley Park),任务是破解德军 Enigma 的加密通信。这个故事后来被拍成了电影《The Imitation Game》(模仿游戏)。

起初,面对恩尼格玛机器复杂的加密机制,图灵和他的团队感到了巨大的挑战。在布莱切利庄园的密室里,图灵和他的团队日以继夜地工作,分析截获的密文,最终,他们利用数学原理和创新的思维,设计出了一种名为 Bombe 的机器。

Bombe 的工作原理类似暴力破解,但更加智能化和高效。它能够模拟 Enigma 的工作方式,通过不断尝试不同的转子组合、插线板连接等设置,自动搜寻 Enigma 正确的加密设置。这种自动化的破解方法极大地加快了破解速度,使得图灵的团队能够在更短的时间内解密德军的通信。

二战时布莱切利庄园的“炸弹”机器

Enigma 的破解不仅仅是二战中的一项重大成就,还为现代密码学和信息安全的发展提供了宝贵的经验和启示。这段历史展示了科学和技术在应对复杂安全挑战中的关键作用,激发了后续一系列重要的研究和技术创新,是现代密码学发展史上一个不可忽视的里程碑。

虽然德军密钥每天都在变化,但是在使用密钥时会犯一些常见的错误,比如使用一些可预测的格式,而不是现代密码学的随机数,这些规律会被破解团队利用。德军每天发送的电报开头常包含固定的格式,如天气预报和标准化的电报头,这为破解提供了可利用的已知明文。 Enigma 的设计也存在弱点,反射器的设计已经排除了任何字母的加密输出都不会跟自身相同,比如输入 A 绝不可能输出 A,而是其它字母,这一特性减少了 Bombe 对密钥的可能配置。

在破解 Enigma 过程中开发的 Bombe 机器,可以看作是现代计算机的雏形。它利用了自动化和算法的概念来解决复杂的密码问题,为后来计算机科学的发展奠定了基础。图灵本人也因此被誉为计算机科学和人工智能的先驱。

Enigma 的破解不仅依赖机械设备,还需要高级的数学和统计学方法。图灵和他的同事们开发的多种密码分析技术,这些技术在战后继续发展,成为现代密码分析的基础。例如,他们使用频率分析、模式识别和概率论来破译密文,这些方法在今天仍然是密码分析的核心。

同时,Enigma 被破解也让人们认识到,即使复杂的加密系统也可能被破解。图灵的工作展示了数学在密码学中的强大应用,也激发了更多数学家和科学家研究密码学的理论基础,进而推动了对称加密、非对称加密和公钥基础设施等现代密码学技术的开发和应用。

版权声明: 本文为原创内容,未经许可,不得转载。