无论是历史著作还是小说作品中引用的大多数密码均属于同一种密码—单字母替换密码。为此我们对这一加密方法的主要漏洞进行了深入研究,借助这一漏洞并通过分析符号的频率模式就有可能破译密码。而早在计算机出现以前就曾有人对此进行过评估。
在众多旨在弥补这一漏洞的密码中,维吉尼亚密码可谓是其中几个最著名且最有趣的一种。该密码被认为由17世纪的一名法国外交官发明,但事实上却是由另外两个毫不相干的人发明。有趣的是,布莱瑟•维吉尼亚并非他们(发明人)中的一个,他只是向当时的亨利三世提出了这个密码,而人们在19世纪开始将这一密码命名为”维吉尼亚密码”并沿用至今。
该密码最早见于莱昂•巴蒂斯塔所著的《Tractate on Ciphers》一书中。他因首先提出该密码理论而为人所知,这一理论随后也被运用到绘画中的直线透视图。该密码背后的构思非常简单,但却不仅将密码学推到了一个全新的高度,也催生了之后多字码密码的出现。
#Infosec history: How a 17th century #cipher became the basis of an unbreakable 20th century cipher
Tweet
在多字码密码中,明文的每一个符号由密文的相应固定的符号替换—就好比在使用另一个字母表。其实无论替换符号是随机还是基于字母表中的特定移位值(比如凯撒密码),是用字母或数字还是任何其它符号,这些都并不重要。
在阿瑟•柯南•道尔爵士所著《跳舞的人》一书中有段关于这一密码的生动描述:”替代符号甚至还能使用象形图,但依然无法弥补该密码普遍存在的漏洞:任何人都可以对密文中所用关键词做一些假设、分析文本中特定符号的使用频率或换个办法进行猜测。
有人曾经尝试过—只是为了好玩—使用这一方法破译一封用替换编码方案写的电邮。事实上破译并不难,甚至无需特殊技能或较强的运算能力。
多字码密码则循环使用大量不同的替换字母表。维吉尼亚密码的编码模式如下:将凯撒密码作为基础,并编译出包含所有可能移位值的表格:
因此我们得出了26个不同替换字母表,现在我们需要决定替换原则。对下一个字母表做简单的改变(用新字母)会让密码变得更复杂些,而一旦采用关键短语的话,要想破解密码几乎变得不可能。
既然本文以古老故事开头,那我们就将”VINTAGE”作为我们的关键词。要想将像”THINK ABOUT”这样的短语译成密码,我们需要重复关键短语直至与明文的长度相匹配:
现在,我们用来替换的原文本各个符号位于:从关键词字母开始的行以及从明文字母开始的列。比如,我们用来替换第一个字母的符号位于T列和V行的交叉点–也就是”O”。
而破译则是完全相反的过程:先找到与关键词对应的行,再找到密码字母,随后写下标记了列的字母,最后得到明文。
神奇的是,阿尔伯蒂的最初构想是预设一个带旋转字母表环的特殊金属盘,而我们前面提到过的表格则是由另一个对该密码编制做出贡献的人提出。而有关这一密码盘的小册子(1446年发行)在美国南北战争期间被南方联邦所采用。
图片来源:维基百科
总而言之,该密码被誉为相当可靠,甚至数学家查尔斯•勒特威奇•道奇森都认为它’难以破译’,而《科学美国人》杂志也对该密码大加赞誉。而更多人知道的则是在这一基础上改进的’Gronsfeld密码’。两者之间的主要区别在于维吉尼亚密码的替换字母表数量限制在10各以内(根据数字的数量),且实际上关键词就是一个数字。
有趣的是,维吉尼亚密码在某些特定条件下容易被密码分析。通过对一些字符进行评估,可以确定密钥的长度,并通过分析用表格中相同行译成密码的字母行,任何人都能采用一种基于语言中特定字母的使用频率的标准方法。
率先在1854年对维吉尼亚密码修改版成功实施攻击的不是别人,正是计算机领域的先驱者查尔斯•巴贝奇,但9个月后另一名研究专家Friedrich Kasiski抢先发表了前者的研究方法。
尽管看上去有些奇怪,它的确有助于增强密码。其中一种方法是使用与文本本身长度相等的关键词,这样能让频率分析”无用武之地”。
然而,这种升级又带来了另一个漏洞:将易理解的文本作为关键短语使用能为密码专家提供一些有关密钥的统计信息,并能作为破译文本的线索使用。
但这也直接催生出此后对密码的改进–将随机序列符号用作关键词。
结果,这一构思被用到了一次性密码本(OTP)理念中。此类密码在变得’牢不可破’后,即被用到了民用和军事密码应用中。改天我们将为您带来这方面的内容。