恩尼格玛密码机模拟器(转子密码机)

在浏览器中还原第二次世界大战德军使用的恩尼格玛密码机,忠实再现真实机器的转子接线与步进机制。可自由设置转子型号、环位设置、初始位置与插线板,体验加密与解密的完整过程。所有处理均在浏览器本地完成。

恩尼格玛密码机模拟器简介

本工具在浏览器中还原了第二次世界大战德军使用的三转子恩尼格玛密码机(Enigma I),转子接线表与步进机制均与实机一致。只需设置转子型号、环位、初始位置与插线板组合,即可将其作为输入文本的转换规则,把明文转换为密文,或把密文还原为明文。

全部处理都在浏览器本地完成,输入内容不会被发送到服务器。与实机相同,只有英文字母(A〜Z)会被转换,数字、符号与空格会原样保留、不经过转子处理。此外,同一组设置下再次处理密文即可还原明文的"自反"特性,也被完整还原。

恩尼格玛密码机模拟器使用方法

  1. 选择转子型号 在左、中、右三个槽位中分别从I〜V中选择转子(允许重复使用同一型号)。
  2. 设置环位 为每个转子指定环位设置(Ringstellung,A〜Z)。加密与解密必须使用相同的值。
  3. 设置初始位置 为每个转子指定初始位置(Grundstellung,即窗口中显示的字母)。实际使用中每条消息都会更换。
  4. 设置插线板(可选) 以空格分隔输入要互换的字母对,例如"AB CD",最多可设置10组。
  5. 输入文本并执行 在输入框中填入明文或密文,点击"加密/解密"即可显示转换结果。

用好本工具的小技巧

  • 恩尼格玛属于自反密码(reciprocal cipher),只要使用完全相同的转子设置、初始位置和插线板再次处理密文,就能还原出原始明文。可以点击"将结果填回输入框"按钮试一试。
  • 哪怕只改变一个字母的初始位置(Grundstellung),得到的密文也会截然不同。在实际战时使用中,这项设置通常每天都会更换。
  • 由于信号必须经过反射器(Umkehrwalze)折返,任何字母都绝不会被加密成它自己。这个特性后来成为艾伦·图灵等人破译时的重要线索。
  • 插线板最多可以设置10组字母互换。德军实际的操作规则中也将其上限设为10组。
  • 点击"随机生成设置"按钮,可以简单体验一下当年操作员每天更换转子、环位与插线板等密钥设置的流程。

恩尼格玛密码机模拟器的应用场景

作为密码学史与信息安全课程的教具

通过实际操作转子接线与步进机制,能让学生直观理解教科书插图难以传达的运作原理。

重现布莱切利园的破译历程

演示相同设置下密文如何还原为明文,直观说明艾伦·图灵等人当年面对的破译难题。

自学密码算法

逐一改变转子、环位与插线板设置,观察输出结果的变化,从而理解多表代换密码的基本思路。

核对书籍或资料中的恩尼格玛示例

输入密码学书籍或网站给出的相同参数,即可实际重现并验证其加解密示例。

恩尼格玛密码机术语集

转子
内部有固定接线的旋转式密码轮。恩尼格玛使用三枚(可从I〜V中选择),每按下一次按键,转子便按右、中、左的顺序依次转动。
反射器(Umkehrwalze)
将穿过三枚转子的信号折返、再次反向通过转子的部件。正因这一构造,加密与解密才能用完全相同的操作完成。
插线板(Steckerbrett)
在键盘与转子之间,对指定字母对进行互换的额外加密层。最多可设置10组,能大幅增加密钥的组合数量。
环位设置(Ringstellung)
用于错开转子内部接线与外部字母环对应关系的设置。与初始位置不同,它属于更换周期较长的密钥部分。
初始位置(Grundstellung)
开始加密某条消息时,各转子窗口所显示的字母。实际使用中通常每条消息都会更换。
步进机制
每按一次键,右侧转子转动一格,当经过特定缺口位置时会带动相邻转子联动转动的机构。当中间转子处于缺口位置时,会出现左右转子同时转动的"双重步进异常"这一特有现象。
自反密码
由于信号需经反射器折返,使用同一组设置对结果再处理一次即可还原原文的性质。恩尼格玛的加密与解密因此可以用完全相同的操作完成。

常见问题

20世纪30年代,波兰数学家率先从数学上破解了这台机器的内部结构。英国布莱切利园在此基础上继续攻关,艾伦·图灵等人研制出名为"炸弹机(Bombe)"的机电装置,用来推算每日更换的密钥设置。此外,德军操作习惯(例如经常使用相同的开头用语)也为破译提供了重要线索。

按现代标准而言完全不安全。它在第二次世界大战期间就已经被系统性破解,其密钥空间与AES等现代密码相比也小得多,现在的计算机几乎可以瞬间完成暴力破解。本工具纯粹是用于历史与教育目的的模拟器。

不会。由于信号必须经过反射器折返,从数学结构上讲,一个字母绝不可能被映射为它自身。这实际上是一个密码学上的弱点,也是破译者猜测明文时的重要线索之一。

初始位置是每条消息发送前设置的、显示在转子窗口上的字母;环位设置则是转子内部接线与字母环之间对应关系的偏移量,属于变更周期更长的密钥部分。两者必须完全一致才能正确解密。

它是在键盘与显示灯之间,对指定字母对进行互换的一层额外加密。相比仅靠转子加密,插线板极大地增加了可能的组合数量,是让德军实际通信更难被破译的重要因素之一。
工具君

闲话 ― 恩尼格玛与布莱切利园的故事

恩尼格玛机由德国工程师亚瑟·谢尔比乌斯于1918年申请专利,最初是作为商用密码机推出的,后来因德军将其用于保护通信而广为人知。它由多个称为"转子"的旋转式密码轮组合而成,每按下一次按键,转子就会机械转动,内部接线随之改变,因此即使连续输入相同的字母,通常也会被加密成不同的结果。

破译恩尼格玛的努力最早始于波兰数学家马里安·雷耶夫斯基等人,他们在20世纪30年代通过数学方法解明了这台机器的结构。第二次世界大战爆发后,英国在布莱切利园集结了一支解密团队,艾伦·图灵等人研制出名为"炸弹机"的机电式解密装置,系统性地推算出每天更换的密钥设置。这项成果被认为对盟军的情报战做出了重大贡献。

恩尼格玛的破译史给现代密码设计留下了一个持久的教训:无论加密机制多么精巧,操作习惯与人为失误(例如总是以相同的问候语开头、重复使用密钥表等)都可能成为突破口。本模拟器纯粹是学习这段历史的教育工具,不应被用于保护真实的通信内容。