theonlyrafael/enigma-vs-bombe-simulator

GitHub: theonlyrafael/enigma-vs-bombe-simulator

用 Python 模拟二战 Enigma 加密机与 Turing Bombe 破译机,让用户通过交互式终端完整体验古典机械密码的加密与密码分析全过程。

Stars: 1 | Forks: 0

# Enigma 模拟器与 Bombe 机器 本仓库包含用 Python 实现的 Enigma 加密机和 Bombe 密码分析模拟器。因此,该项目被划分为两个独立的操作前线,以模拟网络防御与攻击。这种结构化的架构确保了密码破解测试是可靠的,并且在系统内存中是相互隔离的。因此,用户可以通过专属的操作终端来体验完整的军事通信周期。 ## 机器背景 就此而言,Enigma 模拟器的计算运行基于真实的转子(rotors)和反射器(reflectors)的机电流程。此外,该工具应用了精确的数学排列原理,正是这些原理使得二战期间德国的通信几乎无法被攻破。另一方面,Bombe 机器重温了由 Alan Turing 领导的英国情报界的历史性里程碑。在历史上,这台密码破解机的发明据估计将冲突缩短了两到四年,挽救了数以百万计的生命。因此,该系统通过利用基于已知明文片段的暴力破解技术来模拟这一壮举,它会生成数千个相互隔离的实例,直到截获操作员提供的准确线索。最终,日密钥被破解,真实的明文信息便会显示在屏幕上。 ## 执行说明 此外,该软件要求使用交互式终端才能完整运行。为此,各个模块会逐步请求输入数据,并引导用户完成设备的结构配置。 ### 1. 加密面板 首先,防御操作通过名为 main 的主启动程序执行。接着,系统将要求配置当天的战术密码组件。因此,请遵循下面列出的预期输入参数。 * 转子(预期输入:I、II、III、IV 或 V) * 初始位置(预期输入:字母表中三个连续且有效的字母,例如 ABC) * 反射器(预期输入:B 或 C) * 插线板(预期输入:以空格分隔的大写字母对,例如 GH IJ KL) * 消息(预期输入:包含攻击目标线索的明文短语) 然而,防御机器将自动执行数据清理,移除空格和特殊字符。这样,正确的输出将呈现一个连续的大写字母块,代表完全加密后的文本。 ### 2. 拦截面板 随后,攻击操作由名为 intercept 的辅助间谍控制器执行。有鉴于此,操作员将把之前防御阶段生成的密文块用作攻击机器的主要武器。此外,在终端输入数据时,请遵守以下列出的要求。 * 转子和反射器(预期输入:与加密阶段使用的相同) * 目标插线板(预期输入:敌方机器的精确连接,或直接留空) * 密文(预期输入:由 Enigma 面板生成的不可读文本) * 明文(预期输入:用户确定一定包含在消息中的单词) 最后,Bombe 引擎将启动详尽无遗的循环。因此,最终输出将展示逆向工程的准确执行时间、通过计算发现的初始位置,以及解密后文本的直接读取内容。
标签:Bombe机, Enigma机, Python, 加密与解密, 安全模拟, 密码学, 手动系统调用, 无后门, 逆向工具