在密码学中,错位密码是一种使明文单元的位置(“单元”通常是字符或者字符串)通过一种有规律的方式进行移动的加密方法,生成的密文构成明文的一个置换。也就是说,明文单元的顺序被改变了(明文被重新排序了)。在数学上,一个双射函数可以用来进行加密,使用该双射函数的反函数进行解密。
下面是一些实现。
栅轨道栏密码
轨道栅栏密码是错位密码的一种形式,它的名字来源于它编码的方式。在轨道栅栏密码中,明文沿着假想的栅栏上的连续轨道向下写,之后触底反弹,再向上写。然后将写完的消息按行读取出来就是密文了。举个栗子:使用三个“轨道”加密明文WE ARE DISCOVERED. FLEE AT ONCE
,加密之后的密文是这个样子的:
(如果文字描述看不明白,可以观察图片来总结出加密方法,每次都是向右下移动,触底之后变为右上,以此类推)
按行读出:WECRL TEERD SOEEF EAOCA IVDEN
(密文被截成了以五个字符为一块的文本来避免错误,这是一个使密文更加易读的常用方式。密文中的空格与明文无关,它们不携带任何信息,只作为分隔符来使用。)
轨道栅栏密码曾被古希腊人用在密码棒中,密码棒是一个用来产生错位密文的工具。该工具由一个圆柱和缠绕在圆柱上的缎带组成。待加密的消息被写在绕成圈的缎带上。当缎带从圆柱上解下来之后,明文的单元就会被重组。尽管如此,当缎带被重新缠到和加密圆柱具有相同直径的圆柱上时,明文还是会被轻松解密。