在观看了B站上有关恩尼格码机(the Enigma Machine)的一个视频后,我对恩尼格码的工作原理和破解方法有了基本的了解,同时也是为了以后方便复习,所以在这里写下此文权当笔记,如有错误,欢迎指出。

在计算机发明之前,所有的密码编码都需要通过手工进行操作,普遍有着速度慢和容易出错的缺点。因此,人们开始使用一些精密的机械设备代替人工加密与解密的操作。其中,德国的恩尼格码(the Enigma Machine)便是其中的佼佼者。而在这篇文章中,我会对恩尼格码的加密方式进行说明,同时尽我所能地写出破解恩尼格码密文的方法。

首先是恩尼格码的工作原理。如果要了解恩尼格码的工作原理,那我们就避不开要了解它的组成结构,一台恩尼格码通常由扰码转盘、发射器、输入轮、指示灯、键盘和插接板组成,这些部分可以看做一个精密的电路,将每次按下的字母加密为另一个字母,比如说当你设置好恩尼格码机并按下键盘上字母“K”后,“P”位置处的指示灯亮起,字母“K”便加密为了字母“P”,这个看似简单的过程经历了以下步骤:

  1. 操作员在键盘上按下字母“K”,“K”键触发电流在保密机中流动;
  2. 在插接板上,所有转接的字母首先会在这里被替换加密,如“K”加密为“P”;
  3. 经过插接板后,“P”字母电脉冲直接进入到1号扰码盘;
  4. “P”字母电脉冲穿过扰码盘1后到达一个不同的输出点,这也是2号扰码盘上另一个字母的输入点。每输入一个字母,1号扰码盘就会转动一格;
  5. 输入字母电脉冲穿过2号扰码盘到达一个不同的输出点,这也是3号扰码盘上另一个字母的输入点。当1号扰码盘旋转一周后,2号扰码盘便旋转一格,类似于秒针与分针;
  6. 输入字母脉冲穿过3号扰码盘到达一个不同的输出点,到达反射器。当2号扰码盘旋转一周后3号扰码盘也会旋转一格,类似于分针与时针;
  7. 反射器和转子一样会将一个字母连在另一个字母上,但它并不会想转子一样转动。当每个字母电脉冲到达反射器时,反射器将此电脉冲经由不同路径反射回去,穿过3号、2号、1号扰码盘到达插接板“L”;
  8. 因在插接板上“L”与“P”相连,此时显示板上的“P”便亮起,而“K”也由此被加密为了“P”。

由于其巨大的密钥空间(共有158962555217826360000种字母替换方式),所以你几乎不用担心它被穷举攻击攻破(至少以与恩尼格码同时代的计算机械来看,其计算能力很难完成这一任务),这也是恩尼格码密码的安全性所在(与当下密码不同,它的安全性仅仅依赖于巨大的密钥空间的而不是由某一数学难题,从某种意义上说,它本质上只是一个较为复杂的替换密码而已,与凯撒密码等替换密码并没有本质上的差异)。

但恩尼格码也有着一个重大的缺陷——一个字母可以被替换为任何字母,唯独无法成为它自己。且由于德国的天气报告等报告通常有着统一的格式(如以“Wetterbericht”开头,以“Heil Hitler”结束),因而可以将这类词语与密文进行比对来猜测字母间的替换关系,同时根据这些关系连接插接板进行一一验证,若所有的插接方式均被证明为错误,可以转动扰码盘来继续尝试直到找出正确的插接关系为止。为此,图灵和他的团队甚至造出一台bomb machine来专门破解恩尼格码密码,其在20分钟内便可还原出插接板的连接方式。得益于恩尼格码的破译,盟军取得了对德国的巨大优势。

【自制中字】二战德军 Enigma 密码机原理演示与破解_哔哩哔哩_bilibili

恩尼格码机的原理以及破解方法相关推荐

  1. 恩尼格码的发明和破解

    恩尼格码是二战德军所采用的电子加密机械 其基本组成可以分为三部分: 键盘,转子和显示器 键盘一共具有26个键,类似于今天的计算机键盘(显示起见,省略为6个) 转子实际上有3个,缩略起见只画了1个 显示 ...

  2. WebDriver 识别反爬虫的原理和破解方法~

    作者|志斌 来源|python笔记 有时候我们在爬取动态网页的时候,会借助渲染工具来进行爬取,这个"借助"实际上就是通过使用相应的浏览器驱动(即WebDriver)向浏览器发出命令 ...

  3. python编程挑战——使用python实现恩格玛机(1)

    想起一个好玩的事情,使用python来实现德军在二战时加密的设备--恩格玛机. 那么什么是恩格玛机,他是怎么工作的?这篇文章提供了很详细的说明: https://www.zhihu.com/quest ...

  4. 维吉尼亚密码加解密与破解

    实验目的 1.进一步理解维吉尼亚密码的加解密原理 2.进一步理解维吉尼亚密码的缺陷和利用方法 3.提高编程实践能力 实验要求 1.实现维吉尼亚加解密函数 2.破解维吉尼亚加密的密文 实验步骤 1.维吉 ...

  5. 单表恩格玛机的源码实现

    最近看了一部电影,叫<模仿游戏>,主要讲的就是二战期间图灵破解德军通讯密码的故事,最后的意义是导致二战提前两年结束,拯救了至少1400万人的生命.然后自己一时兴起就写了一个单表随机排列的恩 ...

  6. 安检x光机原理计算机实现,安检x光机成像原理介绍

    安检x光机是我们都很熟悉的一种安检设备,但很少有人去了解安检x光机成像原理.本文将为大家介绍安检x光机成像原理. 安检x光机成像原理 安检x光机主要由X光管和X光机电源以及控制电路等组成,而X光管又由 ...

  7. 【机器学习】因子分解机(FM) 原理及在召回中的应用(python实现)

    FM 原理及在召回中的应用(python实现) 1. 综述 为了学习推荐系统的召回模型,首先梳理了一下FM模型,权当是学习笔记,记录一下. FM(factor Machine,因子分解机)算法是一种基 ...

  8. 开源纯C#工控网关+组态软件(四)上下位机通讯原理

    一.   网关的功能:承上启下 最近有点忙,更新慢了.感谢园友们给予的支持,现在github上已经有.目标是最好的开源组态,看来又近一步^^ 之前有提到网关是物联网的关键环节,它的作用就是承上启下. ...

  9. 1、css引入的方式有哪些?_发泡机的原理都有哪些呢?

    点击"蓝字"关注我们更多! 发泡机的原理都有哪些呢? 发泡机是一种可以把发泡剂一定浓度的水溶液制成泡沫的设备.目前,我们所熟知的发泡机也是非常受人欢迎的设备.每种类型的发泡机都有自 ...

  10. Xcode 真机测试破解方法(转加修改)xcode 4.3 通过

    Xcode 真机测试破解方法(转加修改)xcode 4.3 通过 生成本机证书 应用程序->实用工具->钥匙串访问 菜单:钥匙串访问->证书助理->创建证书, 然后按以下图片顺 ...

最新文章

  1. mysql查询大量数据报错_mysql 查询大量数据报错
  2. C# 网站静态页面生成器 for 多线程版
  3. 微成本搭建企业高效沟通平台
  4. 中心频点计算公式_5G中的频点计算及实例分析
  5. 读书笔记:windows程序设计
  6. win10 android 手机驱动下载,小米手机驱动win10驱动
  7. 3DMax VRay 渲染笔记
  8. 金融专业英语词汇大全
  9. 1MB是多少字节 ?是多少位?
  10. c++语言程序中,main()函数必须放在程序开始的部分,C++多选题(附答案)
  11. [网鼎杯 2020 青龙组]虚幻2 详解 (python脚本)
  12. 大数据智能交通未来会是怎样的交通状况?
  13. springboot搭建redis时提示RedisCommandExecutionException: CLUSTERDOWN Hash slot not served解决办法
  14. 【隧道应用-1】netsh端口映射内网
  15. 在c语言中输出8进制数,16进制数
  16. 计算机系单身率排行榜,高校按专业单身率排名,IT类挤进前三,网友:选错专业孤独一生...
  17. 彻底卸载91 手机助手(Iphone)珍惜生命,请远离91!
  18. Jetson tk1 安装 Intel 7260ac 无线网卡驱动
  19. PhotoshopPS网页设计中的配色方案
  20. “香港科大-汇川技术” 2018百万奖金国际创业大赛(BJ)——国际智能机器人【创业营+创业比赛】...

热门文章

  1. 搜索引擎和网站中的高级搜索技巧
  2. python风变编程是骗局吗-请问风变编程的Python课怎么样?
  3. Qcom平台,dump解析环境配置
  4. 如何申请免费的腾讯企业邮箱
  5. 微信公众号、企业服务号如何配置运营管理人员
  6. java库存_java实现超市库存管理系统
  7. Java Web-----轮播图的实现
  8. zabbix监控系统
  9. md文档转换为HTML文件
  10. c语言里的pow函数(好理解,易懂)