多表密码攻防战(二)

来源 :科学Fans | 被引量 : 0次 | 上传用户:thardway
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  上期我们讲到,文艺复兴时期,意大利一位著名的不务正业的建筑师阿尔伯蒂,居然在15世纪就设计出了一种划时代的“密码盘”,就连之后两百年出现的密码学家跟他相比都显得黯然失色了。上期我们还演示了如何用阿尔伯蒂的密码盘来进行加密和解密,那么接下来的问题就是,这种密码盘到底先进在哪里,又有什么弱点呢?
  密钥轮换的秘密
  阿尔伯蒂的密码盘到底先进在哪里呢?让我们先回忆一下之前加密过的内容。之前我们把“TI AMO, TU MI AMI”这句话加密成了“Bivg&yCqiztezt”,而要把这段密文进行解密,需要具备两个条件:一个是和加密者一模一样的密码盘,二是加密者设定的基准字母(在这个例子中是k)。为了让大家看得更清楚一些,我们把原文和明文做成一张对应表:
  1. 原文: T I A M O T U M I A M I
  2. 密文: B i v g & y C q i z t e z t
  这里要提醒一下,密文中的两个大写字母(B和C)代表密码盘的位置设定,所以它们不对应原文中的任何字母。我们之前讲过,传统的单表密码最大的弱点就是原文的字母和密文的字母之间存在“一对一”或者“一对多”的确定的对应关系,利用这种关系,破译者就可以使出频率分析大法,抽丝剥茧般地干掉你的密码。那么,这种确定的对应关系,在阿尔伯蒂的密码中是不是真的被消除了呢?别着急,我们一步一步地来分析。
  首先,原文中一些重复出现的字母,比如T和A各出现了2次,I和M各出现了3次。拿T为例,我们可以看出,兩个T都分别被加密成了不同的字母(i和q),其他几个字母的情况也差不多,这说明阿尔伯蒂的密码至少摆脱了“一 一对应”的关系。
  这里你可能要问了,单表密码通过“一字多码”的方法,也能做到这一点啊?这话在理,但我们前面也讲过,一字多码只能实现“一对多”的对应关系,也就是说,一个原文字母能对应多个不同的密文字母,但一个密文字母还是只能对应一个确定的原文字母。我们来看看阿尔伯蒂的密码,密文中也有一些重复出现的字母,比如i就出现了2次,但是你看出来了没,这两个i对应的原文字母却是不同的(T和U),这才是阿尔伯蒂密码盘的精髓(画重点!)。
  如果破译者不知道密码盘的结构和用法,仅凭频率分析的话是肯定要抓瞎的,因为一旦打破了确定的对应关系,就意味着所有字母的频率都被混合在了一起,搅成了一锅粥,很难各归各位,整体上也就无法体现固有的频率分布规律了。阿尔伯蒂的密码盘之所以能够实现这一点,靠的其实就是“密钥轮换”。换句话说,每次遇到大写字母时,都要改变密码盘中内圈和外圈的位置关系,也就意味着每次遇到大写字母都会“换”一张新的密码表——这也正是“多表置换密码”(Polyalphabetic substitution cipher)这个名字的由来。
  密码盘的弱点
  由以上看来,阿尔伯蒂的密码盘确实是该得个科技进步一等奖,不过,这玩意儿真的完全干翻了频率分析吗?真的就无懈可击了吗?答案就算我不说你也知道,肯定没那么好的事儿,下面我们来找找这个密码盘的弱点吧。其实,这个密码盘的最大弱点就是密码盘本身。还记得我们之前说的吗——这种密码要确保安全,有一个很重要的前提,即“破译者不知道密码盘的结构和用法”。换句话说,如果我知道了这个密码盘是如何轮换密钥的,那破译它也就不难了吧?
  现在我们假设破译者手里也有一个密码盘,这个密码盘有可能是和加密者手上的一模一样,也有可能不是一模一样。如果是一模一样的,那事情就简单了,因为只要知道了加密者用的基准字母,那破译者和解密者不就拥有完全一样的信息了嘛。现在的问题是,怎么才能知道基准字母呢?这也不难,因为内圈和外圈的位置组合只有24种可能性,一个一个试呗!
  当然,上面这种情况好像有点太理想化了,你可以投诉破译者“作弊”。那么假设破译者手上的密码盘和加密者手上的不一样,也就是内外圈字母的排列顺序都不一样,但是破译者知道密码盘是怎么用的,这样的条件下,破译者要怎么玩呢?如果破译者知道密码盘的用法,那么他肯定知道大写字母代表密钥轮换,而在同一个轮换周期之中,这个密码盘也就相当于一个简单的单表密码。拿我们那个例子来说,C后面的密文都属于同一个轮换周期,里面的原文字母和密文字母也就都是简单的一对一关系,你看这段原文里面有两个字母I,加密之后的密文也就变成了两个一样的字母t。而且,如果两段密文前面的大写字母相同,也就意味着它们所用的置换表(内外圈位置关系)也相同,如果把整篇密文按照所用的置换表做个分组,那么对于其中的每一组我们都可以用频率分析来搞定,因为它们都只是简单的、一对一的单表置换而已,随便找一个略懂频率分析的菜鸟都能秒杀之。
  多表密码的进化
  其实,阿尔伯蒂在他的专著里描述了两种密码盘的用法,我们之前演示的只是其中一种。这种用法有个明显的弱点,那就是把密钥轮换摆在了明处,因为代表密钥轮换的是大写字母,破译者一眼就能看出来它们跟别的字母不一样,这不是此地无银三百两嘛。阿尔伯蒂描述的另一种用法似乎解决了这个问题,在这种用法当中,轮换密钥的标记也是用密文字母(小写字母)来表示——还记得密码盘的外圈上有4个数字对吧?如果解密者发现某个密文字母解密之后是1~4其中的某个数字,那么就代表在对接下来的密文进行解密之前,需要先按照数字来进行密钥轮换。
  第二种用法看起来比第一种要靠谱一点吗?其实也未必,在第一种用法中,我们总共可以搭配出24种不同的置换表,但在第二种用法中,置换表的种类被迫缩减到了4种,这样一来,对频率分布的掩盖效果就差了很多。更何况,那几个数字本来的设计是为了搭配密码字典来用的,如果把它们征用了做密钥轮换,那也就相当于把字典这个用法给腰斩了。
  讲到这里大家应该已经看出来了,阿尔伯蒂是个密码学天才,这一点没毛病,他设计的密码盘可以算是多表置换密码的老祖宗,对后世的密码影响也是相当大。然而,密码盘的弱点也同样非常明显,它的弱点可以概括成下面这两方面。   第一个弱点是它的密钥轮换频率太低。想想看,在什么时候进行密钥轮换是加密者人工选择的,实际使用中往往是一句话一换,甚至是几句话一换。尽管从整体上来看,频率分布确实被打乱了,但其实每一个轮换周期中连续的文字都是用同一张置换表来加密的,这就很容易被那些眼尖的破译者抓住小辫子。
  第二个弱点是它的安全性极大地依赖于密码盘的结构不被破译者知道。我们之前分析过了,一旦破译者知道了密码盘的结构和用法,那么这种密码的安全性就会大大降低,甚至可以说,安全性完全不如设计得稍微像样一点的单表置换密码。这种弱点,现代密码学里还给它专门起了一个名字,叫做“隐匿式安全”(Security through obscurity),意思就是说通过隐匿密码方案上的一些细节(比如这个密码盘的结构)来确保安全性。
  毋庸置疑,这必须是个反面教材,隐匿式安全那是彻头彻尾的自欺欺人、掩耳盗铃—— 一个密码方案,就不应该有什么藏着掖着的,哪怕我把所有的技术细节都公开给你看,你照样破解不了我的密码,这才是货真价实的安全呐!上面这句话,其实是密码学中一条非常重要的原则,它还有个名字叫做“柯克霍夫原则”(Kerckhoffs’s principle),而且伟大的信息学宗师克劳德·香农(Claude Shannon)也曾经说过一句名言:“敌人了解系统”,意思就是说,在设计一个系统时应当假设敌人有能力完全了解该系统的全部细节。实际上,我们现在用的最主流的那些密码算法,比如AES、RSA之类的,都遵循柯克霍夫原则。也就是说,它们的所有细节,无论是设计原理还是源代码,全都是公开的,你想看就能看(只要你能看得懂),但这丝毫不会影响它们的安全性——只要你不知道密钥,要破解这些密码依然是极其困难的。
  上面这两个弱点,不务正业的阿尔伯蒂到最后也都没能解决,估计是忙着盖楼没空管这摊子事儿吧。那么后人有没有解决这两个问题,设计出更先进的多表置换密码呢?答案当然是肯定的,只不过事情得一步一步来,问题也得一个一个解决。
  1508年,有一位名叫约翰尼斯·特里特米乌斯(Johannes Trithemius)的德国人写了一部叫Polygraphia的著作,这个词现在的意思已经变了,那个时候的意思类似于“多重密码”(poly-代表“多”,-graphia代表“记录”)。这个特里特米乌斯挺有意思的,他是个修道士,经常写一些神秘兮兮的书,比如讲占星术啦、通灵啦什么的。除此之外,他还负责编纂过一部编年史,但是这货的业务水平实在不咋地,写个历史书居然也能开脑洞,各种胡编乱造夹带私货,都快把历史写成小说了。
  除了上面说的这本Polygraphia,他在更早的1499年还写过另外一本更奇葩的书叫做Stegnographia。如果你看过本专栏之前的连载,肯定对这个词有点印象,它就是我们讲希波战争的时候提到的“隐写术”(Stegnography)嘛——没错,而且更重要的是,这个词还就是特里特米乌斯在这本书里“首创”的。为啥说这本书奇葩呢?因为这本书的内容看起来都是讲魔法和通灵的,但其实里面另有玄机,在他去世100年之后,这本书才正式印刷出版,其中给出了一部分解密用的“密钥”,用这些密钥解密之后,人们才恍然大悟——原来这本书是讲隐写术和密码术的!
  那么,这本Polygraphia又是讲啥的呢?特里特米乌斯在这本书里面介绍了一种新的多表置换密码,还给它起了个名字叫“方表”(Tabula recta)。方表方表,顾名思义,就是一张方形的表呗,这有什么稀奇的呢?其实,特里特米乌斯的方表在多表密碼的发展史上具有非常重要的意义,因为它是最著名的一种多表密码——“维热纳尔方表”的原型,而围绕维热纳尔方表,还曾上演过一场精彩的攻防战。
  (特里特米乌斯的方表到底是什么样的呢?它解决了阿尔伯蒂密码盘的哪些问题呢?关于维热纳尔方表的攻防战又是怎么一回事?我们下期继续讲。)
其他文献
妇女每天清洗外阴早已成为习惯,而很多男性认为生殖系统没有女性那么复杂,80%左右的男性每日最多以洗脚而告结束,对清洗下体不以为然。其实这种想法做法是错误的,男性为了预防生殖系统疾病,也应该养成经常清洗下身的习惯。这是为什么呢?首先我们来看看男性生殖器的构造。    了解男性外生殖器    男性生殖器主要包括:  阴部:位于腹部下端的覆盖在耻骨之上的三角形区域。在青春期发育过程中,阴毛会逐渐地覆盖这
37岁的金先生是某公司的业务主管,经常为生意上的事到处奔波,饮食无规律,久而久之,落下了胃痛的毛病。每次胃痛时,就到药店买点口服药来缓解一下,一种药不止痛再换另外一种,然而时间长了,用什么止痛剂也无济于事了。后来,金先生到医院做胃镜检查,竟被发现患上了晚期胃癌,癌细胞已浸润到胃壁浆膜层外面,和周围的组织、器官严重地粘连到一起了。  现实生活中,像金先生这样的胃病患者不在少数,他们总是习惯于胃痛了自
问:在性生活时、走路时或负重时,为什么会阴部偶尔会痛一下,大约持续十秒钟。答:这种情况很可能就是“前列腺痛”。
肿块在身体任何部位只要发现有异常的肿块,尤其是质硬、不规则、表面不平、发展迅速的肿块,常提示为恶性肿瘤。
<正>师:今天,老师要在这里跟小朋友们一起上一堂口语交际课。还记不记得老师教给大家的口语交际儿歌?生(齐):口语交际真正好,要说的话儿真不少,你说我说大家说,小朋友们真快
对于大部分西药来说,服药前后千万别喝酒,就是含酒精度数低的啤酒、果料酒和滋补的药酒,也不能饮用。可以说,酒精与西药是一对不折不扣的“冤家”,两者狭路相逢的话,会惹出不少“事端”。    酒精+安定:昏迷甚至死亡    失眠症患者在饮酒后服用安定、水合氯醛等镇静安眠药物的话,是非常危险的。由于酒精和安眠药都可以产生强烈的大脑神经抑制作用,病人因此容易昏迷不醒或者中毒死亡。    酒精+降糖药:低血糖
论连锁经营的系统效应欧阳晓慧连锁经营是当今世界上通行的一种由若干个同行业门店,以共同进货或授予特许权等方式连接起来,共享规模效益的、先进的商业经营方式和流通组织形式
发挥国有工业品批发商业主导作用福建省贸易厅邓本川当前工业品批发流通秩序还比较乱。诸如市场竞争无序,偷漏税收现象严重,假冒伪劣商品泛滥,走私贩私猖獗,市场物价攀升,调控失灵
氯霉素眼药水是治疗沙眼和细菌性结膜炎、角膜炎的常用药物。近年来人们发现它还有其他作用。  1.治淋病:用0.25%~0.4%氯霉素眼药水1支,早晚各1次,男性于尿道口注入半支,女性于阴道口注入半支。每次用药前用75%酒精消毒瓶口周围,一般1~2天症状消失。  2.治细菌性鼻炎:将氯霉素眼药水(约6~8滴)滴在消毒棉花球上,然后将棉花球塞入鼻腔内,让药液沿鼻壁向下流渗,直至在咽部感觉到药的苦味。每天
试论国有企业职工的地位问题付景田孙中海蔡立平国有企业是国民经济的主体,是国家政权赖以生存的经济基础,是社会主义公有制主体地位的具体体现。《中共中央关于进一步加强和改