换位密码
到目前为止,我们给出的所有例子都是将信息以及替代信息的字母或字母组代换成另外的字母或字母组。所以,它们都可归入替代密码的行列。然而,还存在着另外一族基于改换字母书写次序的密码。这就是所谓的换位密码。下面我们给出一个很简单的例子。
在我们的这个例子中,密钥是一个很小的数。我们用5作为密钥。在利用这个密钥加密信息时,我们先将信息按5个字母一行写好,加密时则从第一列字母开始写,然后写第二列字母,等等。如果这个信息的长度不是5的倍数,那么加密前需要在信息的末端加上适当个数的Z。整个过程通过讲解一个小例子便一目了然。
我们来加密信息WHAT WAS THE WEATHER LIKE ON FRIDAY(星期五的天气怎么样)。因为密钥是5,加密过程的第一步是将信息写为5个字母一行的形式,即:
因为信息长度不是5的倍数,我们必须加上一个Z,从而得到:
现在我们依此按一列一列的顺序读出如下密文:
WAWEEIHSERODATALNATHTIFYWEHKRZ
为了得到解密密钥,我们只需用信息长度除以密钥。在此例中即用30除以5,答案为6。解密算法与加密算法相同。对于此例,我们将密文按6个字母一行来书写,得到:
现在很容易看出,依次读出每一列的字母即可还原为原始信息。
这里给出的这种换位密码很容易破译。因为密钥必须是密文长度的除数,攻击者只须算出密文长度,然后依次试它的每个除数即可。