初级侦探学校吧 关注:783贴子:11,676

(上课)ENIGMA的兴亡

只看楼主收藏回复

ENIGMA的兴亡


  人类使用密码的历史,从今天已知的,最早可以一直追溯到古巴
比伦人的泥板文字。古埃及人,古罗马人,古阿拉伯人……几乎世界
历史上所有文明都使用过密码。军事和外交一直是密码应用的最重要
的领域,国王、将军、外交官以及阴谋分子等,为了在通讯过程中保
护自己信息不被外人所知,使用过形形色色的密码;而为了刺探于己
不利的秘密,他们又绞尽脑汁地试图破译对手的密码。加密与解密一
直是密码学这枚硬币互相对抗又互相促进的两面。在所有用于军事和
外交的密码里,最著名的恐怕应属第二次世界大战中德国方面使用的
ENIGMA(读作“恩尼格玛”,意为“谜”)。


一、诞生

  直到第一次世界大战结束为止,所有密码都是使用手工来编码的。
直接了当地说,就是铅笔加纸的方式。在我国,邮电局电报编码和译
码直到很晚(大概是上个世纪八十年代初)还在使用这种手工方法。
手工编码的方式给使用密码的一方带来很多的不便。首先,这使得发
送信息的效率极其低下。明文(就是没有经过加密的原始文本)必须
由加密员人工一个一个字母地转换为密文。考虑到不能多次重复同一
种明文到密文的转换方式(这很容易使敌人猜出这种转换方式),和
民用的电报编码解码不同,加密人员并不能把转换方式牢记于心。转
换通常是采用查表的方法,所查表又每日不同,所以解码速度极慢。
而接收密码一方又要用同样的方式将密文转为明文。其次,这种效率
的低下的手工操作也使得许多复杂的保密性能更好的加密方法不能被
实际应用,而简单的加密方法根本不能抵挡解密学的威力。

  解密一方当时正值春风得意之时,几百年来被认为坚不可破的维
吉耐尔(Vigenere)密码和它的变种也被破解。而无线电报的发明,使得
截获密文易如反掌。无论是军事方面还是民用商业方面都需要一种可
靠而又有效的方法来保证通讯的安全。

  1918年,德国发明家亚瑟·谢尔比乌斯(Arthur Scherbius)和他的朋
友理查德·里特(Richard Ritter)创办了谢尔比乌斯和里特公司。这是一
家专营把新技术转化为应用方面的企业,很象现在的高新技术公司,
利润不小,可是风险也很大。谢尔比乌斯负责研究和开发方面,紧追
当时的新潮流。他曾在汉诺威和慕尼黑研究过电气应用,他的一个想
法就是要用二十世纪的电气技术来取代那种过时的铅笔加纸的加密方
法。
          
                  亚瑟·谢尔比乌斯

  谢尔比乌斯发明的加密电子机械名叫ENIGMA,在以后的年代里,
它将被证明是有史以来最为可靠的加密系统之一,而对这种可靠性的
盲目乐观,又使它的使用者遭到了灭顶之灾。这是后话,暂且不提。

      
                  ENIGMA

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

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

  键盘、转子和显示器由电线相连,转子本身也集成了6条线路(在
实物中是26条),把键盘的信号对应到显示器不同的小灯上去。在示
意图中我们可以看到,如果按下a键,那么灯B就会亮,这意味着a被加



1楼2005-09-24 19:34回复
    二、弱点(上)

      在一次大战其间,英国的情报机关非常严密地监控了德国方面的
    通讯,丘吉尔的书和英国海军部的报告中透露的消息只不过是一鳞半
    爪。事实上,将美国引入一次大战的齐末曼(Arthur Zimmermann,1916
    年起任德国外交部长)电报就是由著名的英国40局破译的。在此电报
    中德国密谋墨西哥对美国发动攻击,这使得美国最终决定对德宣战。
    但是英国人的障眼法用得如此之好,使得德国人一直以为是墨西哥方
    面泄漏了秘密。

      战后英国仍旧保持着对德国通讯的监听,并保持着很高的破译率。
    但是从1926年开始,他们开始收到一些不知所云的信息——ENIGMA
    开始投入使用。德国方面使用的ENIGMA越多,40局破解不了的电文
    就越多。美国人和法国人碰到的情况也一样,他们对ENIGMA一筹莫
    展。德国从此拥有了世界上最为可靠的通讯保密系统。

      一次大战的战胜国很快就放弃了破译这种新型密码的努力。也许
    是出于自信,在他们看来,在凡尔赛条约约束下的德国已经造成不了
    什么危害。由于看不到破译德国密码的必要性,盟国的密码分析专家
    懒散下来,干这一行的头脑似乎也变得越来越平庸。在科学的其他领
    域,我们说失败乃成功之母;而在密码分析领域,我们则应该说恐惧
    乃成功之母。普法战争造就了法国一代优秀的密码分析专家,而一次
    大战中英国能够破译德国的通讯密码,对失败的极大恐惧产生的动力
    无疑起了巨大的作用。

      历史又一次重演。因为在欧洲有一个国家对德国抱有这种极大的
    恐惧——这就是在一战灰烬中浴火重生的新独立的波兰。在她的西面,
    是对失去旧日领土耿耿于怀的德国,而在东面,则是要输出革命的苏
    维埃联盟。对于波兰来说,关于这两个强邻的情报是有关生死存亡的
    大事,波兰的密码分析专家不可能象他们的英美法同事那样爱干不干
    ——他们必须知道这两个大国都在想什么。在此情况下波兰设立了自
    己的破译机构,波军总参二局密码处(Biuro Szyfrow)。密码处的高效率
    在1919-1920年波苏战争中明显地体现出来,军事上屡尝败绩的波兰在
    密码分析方面却一枝独秀。在苏军兵临华沙城下的情况下,1920年一
    年他们破译了大约400条苏军信息。在对西面德国的通讯的监控方面,
    波兰人也保持了同样的高效率——直到1926年ENIGMA登场。

      波兰人想方设法搞到了一台商用的ENIGMA机器,大致弄清楚了
    它的工作原理。但是军用型的转子内部布线和商用型的完全不同,没
    有这个情报,想要破译德军的电报可谓难如登天。波兰人使出了浑身
    的解数,甚至病急乱投医,请了个据说有天眼通功能的“大师”来遥
    感德国人机器里转子的线路图——当然和所有的“大师”一样,一遇
    上这种硬碰硬的事情,神乎其神的天眼通也不灵了。

      这时事情有了转机。

      汉斯—提罗·施密特(Hans-Thilo Schimdt) 于1888年出生在柏林的
    一个中产阶级家庭里,一次大战时当过兵打过仗。根据凡尔赛条约,
    战败后的德国进行了裁军,施密特就在被裁之列。退了伍后他开了个
    小肥皂厂,心想下海从商赚点钱。结果战后的经济萧条和通货膨胀让
    他破了产。此时他不名一文,却还有一个家要养。
              
                     汉斯-提罗·施密特
      和他潦倒的处境相反,他的大哥鲁道夫(Rudolph)在战后春风得意。
    和汉斯—提罗一样都是一次大战的老兵,可鲁道夫没有被裁减,相反却
    一路高升。到了二十年代,他当上了德国通讯部门的头头,就是他正
    式命令在军队中使用ENIGMA。和大哥的成功比起来,汉斯—提罗自
    然觉得脸上无光。

      可是破产后汉斯-提罗不得不放下自尊心来去见大哥,求他在政府
    部门替自己谋个职位。鲁道夫给他的二弟在密码处(Chiffrierstelle)找了
    个位置。这是专门负责德国密码通讯的机构——ENIGMA的指挥中心,
    拥有大量绝密情报。汉斯—提罗把一家留在巴伐利亚,因为在那里生活
    


    5楼2005-09-24 19:38
    回复
      素数。

        在上面这个例子里我们甚至可以看到,在此时更换加密算法已经
      变得实际上不可能,因为DVD作为标准已经被固定下来,于是它的加
      密算法也就从此形同虚设。

        正如前面所言,ENIGMA的设计使得搞到了它的秘密的法国人也
      一筹莫展。法国密码分析人员断定这种密码是不可破译的。他们甚至
      根本就懒得根据搞到的情报去复制一台ENIGMA。

        在十年前法国和波兰签订过一个军事合作协议。波兰方面一直坚
      持要取得所有关于ENIGMA的情报。既然看来自己拿着也没什么用,法
      国人就把从施密特那里买来的情报交给了波兰人。和法国人不同,破
      译ENIGMA对波兰来说至关重要,就算死马也要当作活马医。现在他们
      总算能迈出最初的一步了。

        在施密特提供的关于ENIGMA的情报中,不仅有关于ENIGMA构造
      和转子内部连线的描述,还有德国人使用ENIGMA进行编码的具体规定。
      每个月每台ENIGMA机的操作员都会收到一本当月的新密钥,上面有此
      月每天使用的密钥。比如说,第一天的密钥可以是这个样子:

      1.连接板的连接:A/L-P/R-T/D-B/W-K/F-O/Y
      2.转子的顺序:2,3,1
      3.转子的初始方向:Q-C-W

        当操作员要发送某条消息时,他首先从密钥本中查到以上信息。
      然后按照上面的规定,首先用连线把连接板上的A字母和L字母,P字
      母和R字母……连接起来;然后把2号转子放在ENIGMA的第一个转子
      位置上,把3号转子放在第二个位置上,把1号转子放在第三个位置上
      ;最后,他调整转子的方向(从照片上可以看到每个转子的边上都刻
      着一圈字母用来显示转子所处的方向),使得三个转子上的字母Q、C
      和W分别朝上。在接收信息的另一方,操作员也进行同样的准备(他
      也有一本同样的密钥本),就可以进行收信解码的工作了。


      模拟ENIGMA的Java Applet。你要打开WEB浏览器的Java功能才能使用。
      这里各部件的位置和真正的ENIGMA机差不多,最上方为三个转子,方向由0到25的数字
      表示,其下为显示器,再往下为键盘,最后是连接板(你可以用鼠标把两个字母连起来)。
      在最下方你可以在九个备用转子里选三个装在ENIGMA上(这比当初德国人的选择要多,
      最开始他们仅有三个备用转子,后来增加到五个),也可以在那里选择转子的初始方向。
      本程序由Russell Schwager编写,源码可在http://hops.cs.jhu.edu/~russell/cla...enigma.html取得

        调整好ENIGMA,现在操作员可以开始对明文加密了。但是我们看
      到每天只有一个密钥,如果这一天的几百封电报都以这个密钥加密发
      送的话,暗中截听信号的敌方就会取得大量的以同一密钥加密的信息,
      这对保密工作来说不是个好兆头。我们记得在简单替换密码的情况下,
      如果密码分析专家能得到大量的密文,就可以使用统计方法将其破解。

        尽管不知道对ENIGMA是否可以采用类似的统计方法,德国人还是
      留了个心眼。他们决定在按当日密钥调整好ENIGMA机后并不直接加密
      要发送的明文。相反地,首先发送的是一个新的密钥。连接板的连线顺
      序和转子的顺序并不改变,和当日通用的密钥相同;想反地,转子的初
      始方向将被改变。操作员首先按照上面所说的方法按当日密钥调整好
      ENIGMA,然后随机地选择三个字母,比如说PGH。他把PGH在键盘上
      连打两遍,加密为比如说KIVBJE(注意到两次PGH被加密为不同的形式,
      第一次KIV,第二次BJE,这正是ENIGMA的特点,它是一种复式替换密
      码)。然后他把KIVBJE记在电文的最前面。接着他重新调整三个转子的
      初始方向到PGH,然后才正式对明文加密。

        用这种方法每一条电文都有属于自己的三个表示转子初始方向的
      密钥。把密钥输入两遍是为了防止偶然的发报或者接收错误,起着纠
      错的作用。收报一方在按当日密钥调整好ENIGMA机后,先输入密文
      的头六个字母KIVBJE,解密得到PGHPGH,于是确认没有错误。然后
      把三个转子的初始方向调整到PGH,接着就可以正式解密其余的密文了。
      


      7楼2005-09-24 19:38
      回复
          1931年图灵如愿以偿地进入剑桥大学国王学院。当时的数理逻辑
        学界正热烈地讨论着二十世纪最伟大的数学发现之一——昆特·哥德
        尔的不完全性定理。在那以前,数学家们总以为,一个数学问题,虽
        然要找到回答也许很困难,但是理论上总有一个确定的答案。一个数
        学命题,要么是真的,要么是假的。但是哥德尔的不完全性定理指出,
        在一个稍微复杂一点的数学公理系统中,总存在那样的命题,我们既
        不能证明它是真的,也不能证明它是假的。数学家们大吃一惊,发现
        以往大家认为绝对严明的数学中原来有如此令人不安的不确定性。

          每个逻辑学家都在苦苦思索,试图替陷入了危机的数学找到一条
        出路,他们包括当时在剑桥的贝特朗·罗素(Bertrand Russell)、阿尔弗
        雷德·怀特海(Alfred Whitehead)、路德维格·维特根斯坦(Ludwig 
        Wittgenstein)这样著名的逻辑学家。在这种环境下,图灵作出了他一生
        中最重要的科学贡献,在他著名的论文《论可计算数》(On Computable 
        Numbers)中,他提出了日后以他名字命名的虚拟计算机器——图灵机。

        三、灭亡(中)

          图灵设想的虚拟机器拥有一条无限长的纸带、一个读写头,和一
        个控制装置。控制装置具有有限个内部状态,它能够根据这些内部状
        态来控制读写头作出相应的动作,比如说沿着纸带前后移动,在纸带
        上记录改变或抹去信息,或者读取纸带上的信息并据此改变自己的内
        部状态。你可以把纸带上的信息看做是指令或者数据,读写头根据这
        些指令和数据来完成一系列的动作。图灵提出了各种各样这样的机器,
        有些能做加法(只要在纸带上先写好两个数,然后让图灵机运行,最
        后机器停止时写在纸条上的那个数就是起先两数的和),有些能做乘
        法,等等等等。当然有些似乎什么也不做,或者在纸带上乱涂乱画,
        而另外有一些,好像永远也不停下来。这就是在信息科学史上和“冯
        ·诺依曼机器”齐名的“图灵机”。

          图灵机的个数是可数无限个,所以我们可以用自然数把所有的图
        灵机都标上号。图灵发现了这样一种图灵机,它能够做到任何一台图
        灵机能办到的事情,只要在纸带上首先标出想要模拟的图灵机的号码,
        然后给出相应的输入,最后它的输出将是号码被指定的那台图灵机的
        输出。可以说这是一台“万能”图灵机,当然它只是一种理想的计算
        模型,或者说是一种理想中的计算机。事实上我们平时使用的计算机
        就可以被看做是这样一台“万能”图灵机(只是它没有一条无限长的
        纸带,也就是内存。不过如今内存便宜得这个模样,对于一般的问题
        来说,差不多可以说有无穷的内存了),纸带上的那些指令就相当于
        程序和数据,如果程序不同,计算机可以完成的任务也不同。

          图灵发现,有些问题是这台“万能”图灵机也不能回答的。比如
        说著名的“停机问题”:给定一台图灵机的编号,和纸带上的输入,
        是否总能回答它最终是否会停下来?不能。这是和哥德尔不完全性定
        理密切相关的,图灵的结果从另一个侧面支持了数学中的“不确定性”。
        但是和不完全性定理不同的是,图灵的成果给数学家指出了一条具体
        构造这样一台“万能机器”的途径。虽然那还是在二十世纪的三十年
        代,当时的技术能力还不能将图灵的设想变为现实,但是他毫不怀疑
        自己的设想能够实现。这无疑是二十世纪科学理论最重要的发展之一,
        在计算机被广泛应用,甚至影响到我们每个人的日常生活的今天来看,
        尤其如此。当年,图灵年仅二十六岁。

          这是图灵事业最为辉煌的时期,他在国王学院取得了教职,在剑
        桥过着平静的学术生活。1938年迪斯尼公司著名的动画片《白雪公主
        和七个小矮人》上映,图灵兴冲冲地跑去看。在后来的一些日子里,
        他的同事听见他不停地哼哼电影中巫婆王后泡制毒苹果时的歌:“毒
        液浸透苹果,如睡之死渗入。”
            
          图灵喜欢他在剑桥的岁月,成功的事业,活跃和宽容的环境。大
        


        14楼2005-09-24 19:38
        回复
          素数。

            在上面这个例子里我们甚至可以看到,在此时更换加密算法已经
          变得实际上不可能,因为DVD作为标准已经被固定下来,于是它的加
          密算法也就从此形同虚设。

            正如前面所言,ENIGMA的设计使得搞到了它的秘密的法国人也
          一筹莫展。法国密码分析人员断定这种密码是不可破译的。他们甚至
          根本就懒得根据搞到的情报去复制一台ENIGMA。

            在十年前法国和波兰签订过一个军事合作协议。波兰方面一直坚
          持要取得所有关于ENIGMA的情报。既然看来自己拿着也没什么用,法
          国人就把从施密特那里买来的情报交给了波兰人。和法国人不同,破
          译ENIGMA对波兰来说至关重要,就算死马也要当作活马医。现在他们
          总算能迈出最初的一步了。

            在施密特提供的关于ENIGMA的情报中,不仅有关于ENIGMA构造
          和转子内部连线的描述,还有德国人使用ENIGMA进行编码的具体规定。
          每个月每台ENIGMA机的操作员都会收到一本当月的新密钥,上面有此
          月每天使用的密钥。比如说,第一天的密钥可以是这个样子:

          1.连接板的连接:A/L-P/R-T/D-B/W-K/F-O/Y
          2.转子的顺序:2,3,1
          3.转子的初始方向:Q-C-W

            当操作员要发送某条消息时,他首先从密钥本中查到以上信息。
          然后按照上面的规定,首先用连线把连接板上的A字母和L字母,P字
          母和R字母……连接起来;然后把2号转子放在ENIGMA的第一个转子
          位置上,把3号转子放在第二个位置上,把1号转子放在第三个位置上
          ;最后,他调整转子的方向(从照片上可以看到每个转子的边上都刻
          着一圈字母用来显示转子所处的方向),使得三个转子上的字母Q、C
          和W分别朝上。在接收信息的另一方,操作员也进行同样的准备(他
          也有一本同样的密钥本),就可以进行收信解码的工作了。


          模拟ENIGMA的Java Applet。你要打开WEB浏览器的Java功能才能使用。
          这里各部件的位置和真正的ENIGMA机差不多,最上方为三个转子,方向由0到25的数字
          表示,其下为显示器,再往下为键盘,最后是连接板(你可以用鼠标把两个字母连起来)。
          在最下方你可以在九个备用转子里选三个装在ENIGMA上(这比当初德国人的选择要多,
          最开始他们仅有三个备用转子,后来增加到五个),也可以在那里选择转子的初始方向。
          本程序由Russell Schwager编写,源码可在http://hops.cs.jhu.edu/~russell/cla...enigma.html取得

            调整好ENIGMA,现在操作员可以开始对明文加密了。但是我们看
          到每天只有一个密钥,如果这一天的几百封电报都以这个密钥加密发
          送的话,暗中截听信号的敌方就会取得大量的以同一密钥加密的信息,
          这对保密工作来说不是个好兆头。我们记得在简单替换密码的情况下,
          如果密码分析专家能得到大量的密文,就可以使用统计方法将其破解。

            尽管不知道对ENIGMA是否可以采用类似的统计方法,德国人还是
          留了个心眼。他们决定在按当日密钥调整好ENIGMA机后并不直接加密
          要发送的明文。相反地,首先发送的是一个新的密钥。连接板的连线顺
          序和转子的顺序并不改变,和当日通用的密钥相同;想反地,转子的初
          始方向将被改变。操作员首先按照上面所说的方法按当日密钥调整好
          ENIGMA,然后随机地选择三个字母,比如说PGH。他把PGH在键盘上
          连打两遍,加密为比如说KIVBJE(注意到两次PGH被加密为不同的形式,
          第一次KIV,第二次BJE,这正是ENIGMA的特点,它是一种复式替换密
          码)。然后他把KIVBJE记在电文的最前面。接着他重新调整三个转子的
          初始方向到PGH,然后才正式对明文加密。

            用这种方法每一条电文都有属于自己的三个表示转子初始方向的
          密钥。把密钥输入两遍是为了防止偶然的发报或者接收错误,起着纠
          错的作用。收报一方在按当日密钥调整好ENIGMA机后,先输入密文
          的头六个字母KIVBJE,解密得到PGHPGH,于是确认没有错误。然后
          把三个转子的初始方向调整到PGH,接着就可以正式解密其余的密文了。
          


          21楼2005-09-24 19:39
          回复
            如果不使用对每条电文都不同的密钥,那么每天很可能总共会有
            几千条电文也就是几百万个字母的消息以同一个密钥加密。而采用每
            条电文都有自己的密钥这个方法后,当日密钥所加密的就是很少的几
            万个字母,而且这些字母都是随机选取,和有意义的电文性质不同,
            不可能用统计方法破译。

              乍一看来这种方法无懈可击。可是波兰人铁了心,必须在这厚厚
            的护甲上撕出一个口子来。

              在此以前,密码分析人员通常是语言天才,精通对语言方面特征
            的分析。但是既然ENIGMA是一种机械加密装置,波兰总参二局密码
            处就考虑到,是否一个具有科学头脑的人更适合于它的破译工作呢?

              1929年1月,波兹南大学数学系主任兹德齐斯罗·克里格罗夫斯基
            (Zdzislaw Krygowski)教授开列了一张系里最优秀的数学家的名单,在这
            张名单上,有以后被称为密码研究“波兰三杰”的马里安·雷杰夫斯基
            (Marian Rejewski),杰尔兹·罗佐基(Jerzy Rozycki)和亨里克·佐加尔斯
            基(Henryk Zygalski)。波兹南大学并非当时波兰最有名的大学,但是它地
            处波兰南部,那里直到1918年还是德国领土,所以所有这些数学家都能
            讲流利的德语。
                 
                         马里安·雷杰夫斯基
              在三位被密码局招聘的数学家中,雷杰夫斯基的表现最为出色。
            当年他是个架着一副近视眼镜,脸上略带羞色的二十三岁小伙子。他
            的在大学里学的专业是统计学,打算以后去干保险业行当,也许在此
            之前他从未想到会在密码分析方面大展身手。在经过短期的密码分析
            训练后,他把所有的精力都投入到破解ENIGMA的工作中去。

              雷杰夫斯基深知“重复乃密码大敌”。在ENIGMA密码中,最明显
            的重复莫过于每条电文最开始的那六个字母——它由三个字母的密钥
            重复两次加密而成。德国人没有想到这里会是看似固若金汤的ENIGMA
            防线的弱点。


            26楼2005-09-24 19:41
            回复
              最好多一点有关密码的~!我想买有关密码的书但是找不到


              39楼2005-09-24 20:34
              回复
                好厉害啊


                41楼2005-09-25 08:47
                回复
                  赞个


                  42楼2005-09-25 15:41
                  回复
                    • 219.132.92.*
                    我们这的图书馆没那本书,我也想买,可也没有


                    43楼2005-09-29 12:35
                    回复
                      《密码故事》 
                       我强力推荐呀!

                      我刚从图书馆借了!


                      44楼2005-09-30 17:19
                      回复
                        强啊`````


                        45楼2005-10-03 13:33
                        回复
                          狂顶啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~哪来的那么多资料哦~~~你好厉害哦~~


                          46楼2005-10-04 11:17
                          回复
                            • 220.168.127.*
                            哪里有THE CODE BOOK,谁能提供


                            48楼2005-10-27 22:00
                            回复
                              顶~


                              IP属地:北京49楼2006-12-01 19:02
                              回复