enigma机的原理

                ENIGMA   

ENIGMA看起来是一个装满了复杂而精致的元件的盒子。不过要是我们把它打开来,就可以看到它可以被分解成相当简单的几部分。下面的图是它的最基本部分的示意图,我们可以看见它的三个部分:键盘、转子和显示器。

在上面ENIGMA的照片上,我们看见水平面板的下面部分就是键盘,一共有26个键,键盘排列接近我们现在使用的计算机键盘。为了使消息尽量地短和更难以破译,空格和标点符号都被省略。在示意图中我们只画了六个键。实物照片中,键盘上方就是显示器,它由标示了同样字母的26个小灯组成,当键盘上的某个键被按下时,和此字母被加密后的密文相对应的小灯就在显示器上亮起来。同样地,在示意图上我们只画了六个小灯。在显示器的上方是三个转子,它们的主要部分隐藏在面板之下,在示意图中我们暂时只画了一个转子。

键盘、转子和显示器由电线相连,转子本身也集成了6条线路(在实物中是26条),把键盘的信号对应到显示器不同的小灯上去。在示意图中我们可以看到,如果按下a键,那么灯B就会亮,这意味着a被加密成了B。同样地我们看到,b被加密成了A,c被加密成了D,d被加密成了F,e被加密成了E,f被加密成了C。于是如果我们在键盘上依次键入cafe(咖啡),显示器上就会依次显示DBCE。这是最简单的加密方法之一,把每一个字母都按一一对应的方法替换为另一个字母,这样的加密方式叫做“简单替换密码”。

简单替换密码在历史上很早就出现了。著名的“凯撒法”就是一种简单替换法,它把每个字母和它在字母表中后若干个位置中的那个字母相对应。比如说我们取后三个位置,那么字母的一一对应就如下表所示:

明码字母表:abcdefghijklmnopqrstuvwxyz

密码字母表:DEFGHIJKLMNOPQRSTUVWXYZABC

于是我们就可以从明文得到密文:(veni, vidi, vici,“我来,我见,我征服”是儒勒·凯撒征服本都王法那西斯后向罗马元老院宣告的名言)

明文:veni, vidi, vici

密文:YHAL, YLGL, YLFL

很明显,这种简单的方法只有26种可能性,不足以实际应用。一般上是规定一个比较随意的一一对应,比如

明码字母表:abcdefghijklmnopqrstuvwxyz

密码字母表:JQKLZNDOWECPAHRBSMYITUGVXF

甚至可以自己定义一个密码字母图形而不采用拉丁字母。但是用这种方法所得到的密文还是相当容易被破解的。至迟在公元九世纪,阿拉伯的密码破译专家就已经娴熟地掌握了用统计字母出现频率的方法来击破简单替换密码。破解的原理很简单:在每种拼音文字语言中,每个字母出现的频率并不相同,比如说在英语中,e出现的次数就要大大高于其他字母。所以如果取得了足够多的密文,通过统计每个字母出现的频率,我们就可以猜出密码中的一个字母对应于明码中哪个字母(当然还要通过揣摩上下文等基本密码破译手段)。柯南·道尔在他著名的福尔摩斯探案集中《跳舞的人》里详细叙述了福尔摩斯使用频率统计法破译跳舞人形密码的过程。

所以如果转子的作用仅仅是把一个字母换成另一个字母,那就没有太大的意思了。但是大家可能已经猜出来了,所谓的“转子”,它会转动!这就是ENIGMA的最重要的设计——当键盘上一个键被按下时,相应的密文在显示器上显示,然后转子的方向就自动地转动一个字母的位置(在示意图中就是转动1/6圈,而在实际中转动1/26圈)。下面的示意图表示了连续键入3个b的情况:

当第一次键入b时,信号通过转子中的连线,灯A亮起来,放开键后,转子转动一格,各字母所对应的密码就改变了;第二次键入b时,它所对应的字母就变成了C;同样地,第三次键入b时,灯E闪亮。

照片左方是一个完整的转子,右方是转子的分解,我们可以看到安装在转子中的电线。

这里我们看到了ENIGMA加密的关键:这不是一种简单替换密码。同一个字母b在明文的不同位置时,可以被不同的字母替换,而密文中不同位置的同一个字母,可以代表明文中的不同字母,频率分析法在这里就没有用武之地了。这种加密方式被称为“复式替换密码”。

但是我们看到,如果连续键入6个字母(实物中26个字母),转子就会整整转一圈,回到原始的方向上,这时编码就和最初重复了。而在加密过程中,重复的现象是很危险的,这可以使试图破译密码的人看见规律性的东西。于是我们可以再加一个转子。当第一个转子转动整整一圈以后,它上面有一个齿拨动第二个转子,使得它的方向转动一个字母的位置。看下面的示意图(为了简单起见,现在我们将它表示为平面形式):

这里(a)图中我们假设第一个转子(左边的那个)已经整整转了一圈,按b键时显示器上D灯亮;当放开b键时第一个转子上的齿也带动第二个转子同时转动一格,于是(b)图中第二次键入b时,加密的字母为F;而再次放开键b时,就只有第一个转子转动了,于是(c)图中第三次键入b 时,与b相对应的就是字母B。

我们看到用这样的方法,要6*6=36(实物中为26*26=676)个字母后才会重复原来的编码。而事实上ENIGMA里有三个转子(二战后期德国海军用ENIGMA甚至有四个转子),不重复的方向个数达到26*26*26 =17576个。

不仅如此在三个转子的一端还十分巧妙地加了一个反射器,而把键盘和显示器中的相同字母用电线连在一起。反射器和转子一样,把某一个字母连在另一个字母上,但是它并不转动。乍一看这么一个固定的反射器好象没什么用处,它并不增加可以使用的编码数目,但是把它和解码联系起来就会看出这种设计的别具匠心了。见下图:

我们看见这里键盘和显示器中的相同字母由电线连在一起。事实上那是一个很巧妙的开关,不过我们并不需要知道它的具体情况。我们只需要知道,当一个键被按下时,信号不是直接从键盘传到显示器(要是这样就没有加密了),而是首先通过三个转子连成的一条线路,然后经过反射器再回到三个转子,通过另一条线路再到达显示器上,比如说上图中b键被按下时,亮的是D灯。我们看看如果这时按的不是b键而是d键,那么信号恰好按照上面b键被按下时的相反方向通行,最后到达B灯。换句话说,在这种设计下,反射器虽然没有象转子那样增加可能的不重复的方向,但是它可以使译码的过程和编码的过程完全一样。

                  反射器

想象一下要用ENIGMA发送一条消息。发信人首先要调节三个转子的方向,使它们处于17576个方向中的一个(事实上转子的初始方向就是密匙,这是收发双方必须预先约定好的),然后依次键入明文,并把闪亮的字母依次记下来,然后就可以把加密后的消息用比如电报的方式发送出去。当收信方收到电文后,使用一台相同的ENIGMA,按照原来的约定,把转子的方向调整到和发信方相同的初始方向上,然后依次键入收到的密文,并把闪亮的字母依次记下来,就得到了明文。于是加密和解密的过程就是完全一样的——这都是反射器起的作用。稍微考虑一下,我们很容易明白,反射器带来的一个副作用就是一个字母永远也不会被加密成它自己,因为反射器中一个字母总是被连接到另一个不同的字母。  

        安装在ENIGMA中的反射器和三个转子

于是转子的初始方向决定了整个密文的加密方式。如果通讯当中有敌人监听,他会收到完整的密文,但是由于不知道三个转子的初始方向,他就不得不一个个方向地试验来找到这个密匙。问题在于17576 个初始方向这个数目并不是太大。如果试图破译密文的人把转子调整到某一方向,然后键入密文开始的一段,看看输出是否象是有意义的信息。如果不象,那就再试转子的下一个初始方向……如果试一个方向大约要一分钟,而他二十四小时日夜工作,那么在大约两星期里就可以找遍转子所有可能的初始方向。如果对手用许多台机器同时破译,那么所需要的时间就会大大缩短。这种保密程度是不太足够的。

当然还可以再多加转子,但是我们看见每加一个转子初始方向的可能性只是乘以了26。尤其是,增加转子会增加ENIGMA 的体积和成本。然而这种加密机器必须是要便于携带的(事实上它最终的尺寸是34cm*28cm*15cm),而不是一个具有十几个转子的庞然大物。在Enigma的设计当中,机器的三个转子是可以拆卸下来互相交换的,这样一来初始方向的可能性变成了原来的六倍。假设三个转子的编号为1、2、3,那么它们可以被放成123-132-213-231-312-321六种不同位置,当然现在收发消息的双方除了要预先约定转子自身的初始方向,还要约定好这六种排列中的使用一种。

其次,键盘和第一转子之间还设计了一个连接板。这块连接板允许使用者用一根连线把某个字母和另一个字母连接起来,这样这个字母的信号在进入转子之前就会转变为另一个字母的信号。这种连线最多可以有六根(后期的ENIGMA具有更多的连线),这样就可以使6对字母的信号互换,其他没有插上连线的字母保持不变。在上面ENIGMA的实物图里,我们看见这个连接板处于键盘的下方。当然连接板上的连线状况也是收发信息的双方需要预先约定的。

在上面示意图中,当b键被按下时,灯C亮。

于是转子自身的初始方向,转子之间的相互位置,以及连接板连线的状况就组成了所有可能的密匙,让我们来算一算一共到底有多少种。

三个转子不同的方向组成了26*26*26=17576种不同可能性;

三个转子间不同的相对位置为6种可能性;

连接板上两两交换6对字母的可能性数目非常巨大,有100391791500种;

于是一共有17576*6*100391791500,大约为10000000000000000,即一亿亿种可能性。

只要约定好上面所说的密匙,收发双方利用ENIGMA就可以十分容易地进行加密和解密。但是如果不知道密匙,在这巨大的可能性面前,一一尝试来试图找出密匙是完全没有可能的。我们看见连接板对可能性的增加贡献最大,那么为什么要那么麻烦地设计转子之类的东西呢?原因在于连接板本身其实就是一个简单替换密码系统,在整个加密过程中,连接是固定的,所以单使用它是十分容易用频率分析法来破译的。转子系统虽然提供的可能性不多,但是在加密过程中它们不停地转动,使整个系统变成了复式替换系统,频率分析法对它再也无能为力,与此同时,连接板却使得可能性数目大大增加,使得暴力破译法(即一个一个尝试所有可能性的方法)望而却步。

ps:转自新浪微博。

感兴趣手动编程实现破译的同学请看zoj1009

时间: 2024-10-18 11:56:07

enigma机的原理的相关文章

麒麟来源堡垒机设计原理

1序言 运维堡垒机,主要功能为认证.授权.审计,而各厂商又略有不同,麒麟开源堡垒机是一套完整的开源堡垒机系统,具有通用商业堡垒机一切功能模块,安装便利,运用简单,功能全面.易用性都与商业硬件堡垒机完全一样. 2堡垒机的概念和品种   堡垒机从运用拓朴上说,分为两种. 2.1网关型堡垒机 一般选用二层透明桥方法接入网络,一般拓朴方位在运维用户前方,运维用户做运维时,流量经过网关堡垒机,堡垒机对用户的操作进行审计.这种堡垒机曾经在2012年前在国外的一些厂商从么设计,国内厂商很少有这么设计.因为这种

手机锁机软件原理

这两天在手机论坛里面发现好多手机被锁屏软件锁屏了,锁屏效果(模拟器中)如下: 初次接触这个软件,我一直以为是锁定了fastloader,但是问哪些被锁屏的人,他们没有root,也没有刷过机,只是单单的安装了这个软件,所以就得排除锁定loader的方式. 直到后来反编译这个锁屏软件的安装包,才解开它真正实现的原理: 1. 通过锁定home键,锁定返回键,这样单凭按键是无法退出该应用. 2. 用户可能选择强制关机,一旦开机之后,系统就会恢复到桌面应用,而不是本应用,为了开机之后打开本应用,就需要是在

支撑向量机SVM-1.原理

支撑向量机的英文名叫: Support Vector Machine,是机器学习领域中的很重要的一种算法.它的思想背后有极强的统计理论的支撑,也是统计学上常用的一种方法.此算法在机器学习中既能解决分类问题,又能解决回归问题.且对真实的数据具有很好的泛化能力. 原理:考虑如下样本数据集,如何分辨此数据集? 之前的逻辑回归算法,确定决策边界的思路是定义了一个概率函数,根据这个概率函数进行建模,形成了损失函数,最小化损失函数来确定决策边界. 支撑向量机和逻辑回归不同,它的实现是找到一条最优的决策边界,

Linux堡垒机实现原理

堡垒机 堡垒机登录 可通过google authenticator 这有一篇不错的文章:http://www.osyunwei.com/archives/9045.html 命令审计 本文提供2中记录方式: 第一种着重于会话的录制,可进行播放,能记录vim里面的编辑情况. 第二种着重于命令行的记录. A.使用TermRecord在Ubuntu上录制和回放终端会话(主要是用户录制当时情况) TermRecord是一款用Python语言编写而成的开源工具,它可以将终端会话录制成一个独立的HTML文件

因子分解机FM原理及SGD训练

1.背景 Steffen Rendle于2010年提出Factorization Machines(下面简称FM),并发布开源工具libFM.FM的提出主要对比对象是SVM,与SVM相比,有如下几个优势 (1)对于输入数据是非常稀疏(比如自动推荐系统),FM可以,而SVM会效果很差,因为训出的SVM模型会面临较高的bias. (2)FMs拥有线性的复杂度, 可以通过 primal 来优化而不依赖于像SVM的支持向量机. 2.模型 2-way FM(degree = 2)是FM中具有代表性,且比较

堡垒机的作用与原理

目录   摘要 1 前言 2 堡垒机的概念和种类 3 堡垒机运维操作审计的工作原理 4 如何选择一款好的堡垒机产品 5 结束语   摘要: 在信息化社会,企事业单位业务对信息系统高度依赖,而信息系统维护人员往往拥有系统最高管理权限,其操作行为必须得到有效监管与审计.作为运维操作审计最佳解决方案的堡垒机通常会给人一种神秘莫测的感觉,为了让大家更清楚的了解堡垒机和运维操作审计,本文对堡垒机的概念及主要工作原理进行简要分析. 关键词:堡垒机.运维操作审计.工作原理 1 前言 当今的时代是一个信息化社会

半导体除湿机工作原理

半导体除湿机,适用于存放电子器件.仪表.半导体.光学仪器.精密机械.科学物品.百货.中药材和银行票库其他需要除湿的空间. 半导体除湿机,过高的湿度,电子元器件及精密仪器因受潮生锈短路而产生各种故障,精密仪器仓库的湿度要求标准为45~55%RH左右,因此,就必须采用使用除湿机等空气湿度控制设备进行防潮除湿工作,使空气湿度达到最佳的标准要求. 半导体除湿机,适用面积100-150平方米_标准型除湿机_空气干燥机的详细资料:杭州东井电器专业生产除湿设备.加湿设备,致力于为各行业用户提供高品质的家用去湿

堡垒机jumpserver集群部署

本文参考老广开发二次开发后的堡垒机部署方案,在此基础上进行集群部署,提高其可靠性.尽管国外已经有类似的功能的堡垒机的发布,但是还是要感谢老广在百忙之中再次开发出精简功能,更加使用的jumpserver堡垒机. 本文内容虽然亲测,但难免仍有错误指出.各位同行发现有请帮忙反馈,以便及时改进. 目 录 堡垒机jumpserver集群部署手册... 1 目录... 2 部分一  堡垒机架构原理... 3 jumpserver基本架构... 3 jumpserver集群架构... 4 部分二部署... 5

铜米机开启再生金属产业新征程

城市的高速建设发展使我国的废旧电线电缆的存储量一再上升,这样下去废旧电线电缆的逐渐增多将会阻碍我国的铜铝资源的再生利用.这些家用电器中的线缆中的金属具有再利用价值,同时全自动铜米机的原理与作用可以保证金属中的纯度以及质量,这种机械设备对于社会上对于铜.铝的需求起到很大的缓解作用.废旧电线电缆回收是再生金属行业的重点回收对象.随着国家环保政策重视,国家对与治理环境力度加大,以及我国金属废弃物的大量增加,很多商家就看中了这一商机,利用先进的回收技术将废旧电线电缆.杂线回收利用,生产出来的成品铜和各种