布莱切利公园的数学家们是如何确定谜机的关键设置的 (图灵怎样找到密码机关键词)

2023-03-31 16:58:58 密码用途 思思

问:布莱切利公园的数学家们是如何确定谜机的关键设置的?

经过大量艰苦的工作,一些机器的帮助和巧妙的演绎。

让我们从谜机开始。有许多不同的变体,从民用版本的3个转盘,陆军版本(你从5个转盘中选择3个并有一个配线板),到海军谜机(8个转盘中选择4个转盘)。

这是一个四旋翼海军M4谜机:

主要部分有:

键盘,它基本上是一组电子触点,用来闭合电路。

前面的配线板。你用一根电线连接两个字母,它交叉连接它们,从而交换它们。如果把T和A连接起来,按A实际上就是按T。

转子,可以设置为起始位置和环设置。

每按下一个键,旋翼就向前移动一步。

电信号进入每个转子,然后在另一个点出来,然后进入下一个转子,再从另一个点出来,以此类推。然后它进入一个反射器,反射器将信号发送回所有的转子。

最后是灯板,它能点亮一个字母。

信号是这样通过机器的:

这是一个典型的日常设置页面:

为了设置谜机,你在第一栏取了每个月的日期。在下一篇专栏文章中,您将阅读要挑选哪些转子并按什么顺序组装。下一个是ringstellung,机器的环设置,这是多少你抵消环在转子上。steckerverindungen是插板设置,或使用插头交叉连接的字母。kenngruppen是转子的日常启动设置。

这给了你总共28亿亿亿的设置,一个陆军三旋翼谜机。海军的版本更糟糕。

在战争早期,发送消息的协议是选择一个消息设置,三个随机字母,然后使用日常设置加密。为了额外的纠错,你要这样做两次。然后将转子设置为消息设置,并加密实际的消息。整个文本是通过无线电用莫尔斯电码传送的。

在另一端,操作员将他的机器设置为相同的每日设置,并输入收到的加密信息的前六个字母。因此,他获得消息设置。他将转子设置为消息设置,输入消息的其余部分,并获取明文。

这意味着任何侦听器都可以通过6个字母推断出消息设置,这是读取消息的其余部分所必需的。即使敌人有一台真正的英格玛密码机,他们也无法读取信息!它甚至是为了这个目的而设计的:它认为敌人迟早会得到机器本身。设计的目的是让机器不像密码本那么重要,而密码本很快就会过期。

显然不可能破解!

大概德国人是这么认为的。

波兰密码局有个叫玛丽安·瑞尤斯基的人,他有个绝妙的主意。假设您选择了消息设置FEZ。你按日常设定在谜机里输入两次就能得到PULTOX。

Rejewsky的精彩推论是,如果他听过PULTOX,那么他就知道P后面跟着两个键,然后是T,以某种方式代表了同一个字母。u也是一样,两个键- o,和l -两个键- x。利用这些数据和转子的内部连接,他想出了一种方法来推断日常设置是什么。

他还意识到,当转盘向前移动,为每个字母设置新设置,为每条信息设置不同的起始位置时,配线板的设置一整天都是静态的。这意味着在确定消息设置时,您可以在很大程度上忽略这些。而转子顺序、环的设置和启动位置则是一个更容易处理的问题,“只有”7.12亿种组合。

他们还发现,无线电操作员很懒,经常在一天中使用相同的信息设置。通常是像QWE(看看你的键盘)或他们女朋友的首字母或类似的东西。这种马虎让破解密码变得容易多了。通过使用这种技术和一个“bomba”机器去迭代设置,波兰的Cypher Buro能够在战争前一年读取陆军谜机。

战争爆发了,波兰被入侵,雷哲乌斯基和波兰密码局的杰出作品被偷运到法国,然后又被运到英国。大约在那个时候,德国人发现发送两次信息设置是一个弱点,所以他们停止了这样做。

这时,布莱切利公园已经成立,他们继续破解谜机。

艾伦·图灵意识到另一件关键的事情:由于旋翼和反射器的内部连接,一封信永远不能自己加密。一个A可以被加密到任何其他的lett

密码那些事儿|(二十一)再下一城,图灵破解最高级别恩尼格玛机

在布莱切利园中,德国海军的恩尼格玛密码一直被认为是最难以破解的。

德国海军历来极其重视无线通信的可靠性和保密性,就是他们率先使用了恩尼格玛机来加密。而且,德国海军还频繁地在结构和操作方式上对恩尼格玛机进行改进,以确保它无懈可击、牢不可破。

第二次世界大战前夕,德国陆军和空军将恩尼格玛机的转子从3个增加到了5个,而德国海军则是继续增加到了7个,最后更是丧心病狂的增加到了8个。

而且,德国海军还使用了与陆军及空军不一样的新操作规程,主要包括两个方面:

一、增加“密钥手册”,规定每天0点更新初始参数。

(a)选择8个转子中的3个并规定其基左中右位置;

(b)设定各转子的内外轮之间的相对位置;

(c)设定接线板上的10对接线;

(d)设定3个转子的初始位置。

二、采用“双字替换表”

(a)发报前,先从密钥手册中选3个字母,比如ABC,作为密钥,然后把恩尼格玛机的3个转子调到当天规定的初始位置,输入ABC,假设得到FTN,再把转子调到FTN的位置,开始加密正式电文;

(b)再从密钥手册中选另一组字母,比如XYZ,在XYZ的左边和密钥ABC的右边任意增加一个字母,比如P、Q,列成两行,上下对齐。

P X Y Z 

A B C Q

(c)根据当天有效的“双字替换表”把各列的字母对PA、XB、YC、ZQ分别替换,比如替换成IS、OW、MD、UV;

(d)发送电报时,把这4对字母加在正式密文的首尾;

(e)对方接收到电报后,先对4对字母反向操作,得到3个字母ABC,再得到FTN,然后开始解密正文。

这样一来,原来重复加密3个字母密钥的操作就不存在了,以致雷杰夫斯基发明的破解方法完全失效。

在图灵来到布莱切利园之前,几乎所有人都认为德国海军的密码是无法破译的,因此没有人愿意为它浪费时间。图灵到来之后,发明了基于crib方法的“炸弹”机,理论上是可以对德国海军的密码进行破译的,但由于早期的“炸弹”机性能过低,所以破解的效率极为低下。

当时德国的U-潜艇正在严重威胁盟军的大西洋生命线,寻找有效的破解德国海军密码的方法变得刻不容缓。经过一段时间的摸索和研究,图灵终于发明了基于贝叶斯统计原理的“班布里方法”,能够有效破解德国海军的恩尼格玛机。

班布里方法基于语言学中的一个统计事实:把任意两段文字拿来排成行上下对齐进行比较,查看其中有多少对字母是相同的;当这两段文字属于同一编码系统时出现相同字母对的概率,明显高于当它们不属于同一编码系统时的相应概率。

基于这个原理,图灵找到了破解德国海军恩尼格玛机的途径。不过图灵所用的方法包含了大量数学理论,过程也相当繁琐,这里就不详细表述了,我们只说一下图灵的大致思路。

首先,通过对比分析大量的电文头尾的明文字母,部分甚至完全破解“双字替换表”,从而获得电文密钥;

其次,用班布里方法,确定右边转子是8个转子中的哪一个;

再次,重复使用班布里方法,进一步确定中间转子是哪一个;

最后,用“炸弹”机破解全部密文。

这个步骤被验证是行之有效的,图灵就这样搞定了最高级别的德国海军恩尼格玛机。

1940年5月8日,用班布里方法破解德国海军密码首次获得成功。以后的三年里,此方法结合“炸弹”机成为英国破解德国海军密码的主要手段,为盟军重创德国U-潜艇舰队、守住大西洋生命线做出了巨大贡献。

据不完全统计,破解之后,盟军全年被击沉船只的吨位下降了60%;而德军潜艇的损失率,从破译前的不到7%,猛增到50%。

更多文章:

密码那些事儿|(二十)破解恩尼格玛机的图灵方法

密码那些事儿|(十九)在人性与规则中找寻漏洞

密码那些事儿|(十八)跨越英吉利海峡的恩尼格玛机

密码那些事儿|(十七)年轻数学家首次破解恩尼格玛机

密码那些事儿|(十六)二战中大放异彩的“超级情报”

密码那些事儿|(十五)坚持就是胜利——初代恩尼格玛机

密码那些事儿|(十四)古典密码的巅峰——恩尼格玛机

密码那些事儿|(十三)尴尬的维吉尼亚3.0

密码那些事儿|(十二)短命的维吉尼亚2.0

密码那些事儿|(十一)南北战争时的维吉尼亚密码较量

密码那些事儿|(十)“钥匙”打开维吉尼亚的锁

本人是官方授权会员推广专员,点击 会员专属通道 成为会员,您将会获得钻奖励及诸多权益!

《钻奖励调整公告》

究竟图灵是怎样破解德军的密码系统 Enigma

网上都有,按照现在PC的能力~秒破

只是最后一步及其困难——破解后得到的是不是原文,而是类似字母替代的半原文

例如,原文是hello world,破解后有可能是abccd edfcg,其中a对应h、b对应e、c对应l,而且有可能每次对应关系不一样

到这一步得靠对原文语言的熟练程度,而不是对算法的掌握能力

二战德国人的报文中,很少使用缩写,经常有类似国防部Oberkommando,党卫队Schutzstaffel的单词,所以相对容易

但如果只是想破解“hello world”,“bye bye”这种短语,就困难了

顺便说一句,别用波兰人的那个破译方法,用英国图灵的破译算法。

波兰人的是基于德国对密码机使用上的弱点,而图灵是针对密码机的弱点。

图灵发明的人工智能,破译了德国恩格密码机

图灵发明了破译德国格恩密码机,是计算机的雏形。但并不是人工智能,但对人工智能有很多贡献。艾伦·麦席森·图灵(Alan Mathison Turing,1912年6月23日-1954年6月7日),英国数学家、逻辑学家,称为计算机科学之父,人工智能之父。图灵对于人工智能的发展有诸多贡献,提出了一种用于判定机器是否具有智能的试验方法,即图灵试验,至今,每年都有试验的比赛。图灵发明了破译德国格恩密码机,是计算机的雏形。但并不是人工智能,但对人工智能有很多贡献。艾伦·麦席森·图灵(Alan Mathison Turing,1912年6月23日-1954年6月7日),英国数学家、逻辑学家,称为计算机科学之父,人工智能之父。图灵对于人工智能的发展有诸多贡献,提出了一种用于判定机器是否具有智能的试验方法,即图灵试验,至今,每年都有试验的比赛。