本密码源自于古老的Z字栅栏形状,这种栅栏,目前在英国等许多国家依然可以看到, 栅栏密码是一种非常简单且容易被破解的置换密码,它主要的加密原理是,将明文中的字母混合起来形成密文。 栅栏密码密码基本上没有什么安全性可言,很容易被破译。 虽然栅栏密码本身很弱,但它可以与其他密码组合一起使用,如替换密码,这比单独使用任何一种密码都更难破解。 下面是一个简单的例子: 栅栏密码的密钥就是栅栏的数量,这个数量决定了明文写成多少行。 在这个例子中,我们使用的栅栏数是3。 我们要加密的明文是:GeeksforGeeks 然后我们以“锯齿”形将明文写在栅栏上,如下:
之后只需以行的方式,抄下字母,即为密文。 加密中的一些需要注意的地方,不建议在明文中使用空格,如果一定要加上空格,可以在写入栅栏上的时候用X代替,如果明文长度不够形成锯齿,也可以用X代替。 关于解密: 栅栏密码的解密过程包括重建用于加密明文使用的栅栏。 我们首先制作一个栅栏,栅栏的行数和密钥一样,然后我们将密文的第一个字母写入栅栏的左上角,然后依照锯齿形的路径,重新回到栅栏的第一行,在这个位置写入第二个密文字母,根据这个规律,在栅栏的第一行写完密文。 例如: 我们要解密密文:TEKOOHRACIRMNREATANFTETYTGHH 栅栏数量:4 我们先将第一个字母T写入栅栏左上角,然后用‘-’标示出路径,回到第一行栅栏,写入第二个字母E,根据这个规律继续填充最上面一行栅栏,如下图所示
然后,依照上面的规律,再次填充第二行:
继续填充第三行:
继续填充第四行:
现在,我们已经将所有密文写入了栅栏里面,接着只要以锯齿形的方式写下明文即可。 明文:theyareattackingfromthenorth 至此,我们就完成了整个解密的过程,当然,这个过程是建立在知道对方加密所使用的栅栏数量的前提下完成的。 如果不知道栅栏数量该怎么解密呢? 方法有两个:第一就是暴力分析,通过机器测算出栅栏数量的可能性,然后一个个试。如果你知道某个明文的字母,那就更简单了,基本上很容易就能找到栅栏数量。 第二个就是利用频率分析。因为包括栅栏密码在内的置换密码都有一个特点,就是字母的频率分布与英语文本的频率分布相同,(因为没有替换明文,只是打乱明文的顺序,形成密文),所以,只需要花一点时间,依然可以破解密文。
|