凯撒密码-密码术的奥秘

时间:2024-07-01 19:53:02

凯撒密码

最早的密码实例之一是凯撒密码。尤利乌斯·凯撒(Julius Caesar)在其作品《高卢战记》中首先介绍了这一密码。在这种密码中,从AW的每个字母在加密时用字母表中位于其后三位的那个字母代替,字母X、Y、Z则分别被替换成ABC。在这里,凯撒对字母进行了3“移位”,但用从1到25中的任何数的移位都能产生类似的效果。事实上,任一种移位现在通常都视为是使用了凯撒密码。

凯撒密码-密码术的奥秘

实施凯撒密码的一个“机器”

我们再次用一个图表来解释这种密码。该图表标示了两个同心环,外面的环可以自由转动。如果我们从外环的字母A对应于内环的A开始,经2次移位外环的C就到了内环A处,等等。包括0移位(当然它与26移位是同等的)在内,共有26种移位方式。就凯撒密码而言,其加密密钥与解密密钥都是用移位数来决定的。

一旦双方同意选定一种移位,那么一个凯撒密码的加密就可以这样来完成了:在内环上找到明文中的每个字母,再将它替换成图中外环上与之对应的那个字母。而解密时只要实施相反的运作即可。于是,由该图可知经3移位后明文信息DOG变为GRJ,而密码文FDW的明文则为CAT。为了使读者更确信自己理解这个系统,我们列出以下陈述供读者验证:如果是7移位,那么对应于VERY的密文是CLYF;而对于17移位,则对应于JLE的明文是SUN

在我们所描述的凯撒密码中,加密密钥和解密密钥都等于移位数,但加密和解密的规则是不同的。不过我们可稍稍改变一下公式,让这两个规则完全相同而让加密密钥和解密密钥变得不同。为此,我们只须注意26移位和0移位具有相同的作用,对任一个从0到25的移位而言,以此移位进行的加密等同于从26中减去原移位数得到的新移位数所进行的解密。例如,8移位加密与18移位解密是一样的,因为26-8=18。这让我们能对加密和解密使用同样的规则,此时解密密钥是18,相对应的加密密钥是8。

我们已经提到过密钥穷举搜索法,很明显,因为只有26种密钥,因此凯撒密码是很容易被这种攻击破译的。在给出例子之前,我们必须指出这种密码的另一个弱点,那就是只要知道一组对应的明文与密文(这是一个非常小的信息量),就可确定出这个密钥。

为简单起见,我们通过讲述一个完整的例子来解释密钥穷举搜索法。因为只有26个密钥,凯撒密码对于这种破译法而言尤为简单。假定我们已经知道使用的是凯撒密码,并预料信息所用语言是英文,我们拦截到一段密码文XMZVH。如果发送方是用25移位来加密的,则解密只需实施1移位,得出的信息便是YNAWI。这在英语中没意义,所以我们可以放心地在密钥值范围中将25移位排除,我们可以按降序逐一尝试从25到1的这些密钥值,其结果见表1。

表1.密钥穷举搜索法一例:密码文XMZVH

在这26个潜在的信息中,只有一个是英文单词,即CREAM,因此,我们可以推论出加密密钥为21。这使我们能够破译在此之后的所有信息,直到该密钥变更为止。尽管这一密钥搜索圆满成功,但以下认识很重要:一般而论,对于更复杂的密码,一次密钥穷举搜索可能无法确定出唯一密钥。它更可能是通过删去一些明显错误的密钥而限定了潜在的密钥数目。我们还是回到凯撒密码来解释,注意,当用穷举搜索法寻找密文HSPPW的加密密钥时会产生两种可能的密钥,它们皆导出了对应于假设信息的完整的英语单词(移位4,得出DOLLS;移位11,得出WHEEL)。

出现这种情形时,我们就需要更多的信息,可能是该信息的背景或一些额外的密文,直到我们能够定出唯一密钥。无论如何,搜索的结果的确表明,我们已显著地减少了可能的密钥的数目,并且,当我们拦截到新的密码文时不需要再进行一次全面搜索。实际上,对于这个小例子,我们仅需要再试试4和11这两个值。

从这个例子我们还可以观察到另一个有趣的结果。在解决这个问题的过程中,读者可能会发现两个由5个字母组成的英语单词,其中一个单词可以用7移位的凯撒密码从另一个词得到。读者也许会有兴趣循此办法再找一些更长的对应的词,甚或是一些有意义的短语,它们彼此是可以通过字母移位得到的。

通过以上简单的举例说明,读者应该已经很清楚凯撒密码是很容易破译的。然而,凯撒当时很成功地使用了这种密码,这也许是因为他的敌人绝未想到他是在使用密码。而如今人们对加密都有了更清楚的认识。

利用凯撒轮作为工具对凯撒密码的描述可以改换成用数学的方式来定义。我们将在此阐述这部分内容,不过读者若对使用数学概念感到胆怯,完全可以跳过这段文字,继续去读下一节。

在介绍凯撒密码时,我们注意到26移位与0移位是相同的。这是因为26移位恰是凯撒轮旋转了一整圈。这一推理可以应用至其他移位,即任一移位等价于0到25之间的某个数的移位。例如37移位,是通过凯撒轮转一整圈然后再经过11移位得到的。那么,这个例子中的37移位等价于11移位这种说法就可以写成37=11(mod 26)。

这就是使用了模26的算术,其中的26称为。模算术——除26外还有很多其他的模——在一些密码学领域里起着关键作用。所以在本章末我们增加了一个附录,以使读者熟悉初等数论这一数学分支中的相关定义与作用。

凯撒密码有时也称为加法密码。为了说明缘由,我们只需以如下方式为各个字母分派一个整数值:

A=0,B=1,……,Z=25

用y移位的凯撒密码进行的加密,就是用数x+y(mod 26)来代替数x。例如,N是字母表中第14个字母,所以N=13。用15移位对N加密,那么x=13,y=15,这意味着加密后的N是13+15=28=2(mod 26),所以N就被加密成了C。

正如我们所看到的,加法密码的密钥个数太少了。如果想得到密钥个数多的密码系统,那我们可以试着扩展该系统,考虑引入乘法作为一个替代的加密法则。然而,如果我们要这样做,由于加密必须是一个可逆的过程,“乘法密钥”的个数就必须有所限制。

假设我们想用乘2来加密,仍利用模26的算术,这样做的结果是AN两者都被加密为ABO则都被加密为C,等等。这样只有偶数代表的字母才会出现在密码文中,而密码文中每个这样的字母可能代表着两个字母中的一个。这使得解密几乎变得不可能了,因此不能用乘2来加密。另一个更为有趣的例子是用乘以13来加密,这时字母表中有一半的字母会被加密为A,而另一半字母被加密为N。事实上只有1、3、5、7、9、11、15、17、19、21、23或25这些数可以用作乘数来进行加密。