柱形密码是利用密钥重新排列明文中的字母位置的一种加密方法。
【加密原理】
1、比如我们要对“tomorrow is another day”加密,密钥是“KEY”。首先将密钥循环对应明文,列出一个表格:
2、然后根据KEY三个密钥字母分别对应的明文字母,列出一个柱状表格。例如:Y对应明文M、R、I、N、H、D,则依序排成一列:
3、将密钥按照字母顺序表重新排列,相应的明文一列也交换顺序。例如:KEY按照字母顺序表变成EKY,表格转换如下:
将表格中的明文进行纵向排列,得到密文:orwatrytoosoeamrinhd
【解密原理】
1、首先要知道密钥为KEY,共有3个字符。密文为orwatrytoosoeamrinhd,共有20个字符。
明文每列字符数=密文的长度20/密钥长度3= 6,余数2,不能整除的话结果还需要+1,所以每列字符数为7。
2、把密钥KEY按字母顺序排列为EKY,然后将密文每列7个重新排列:
3、把密钥按照原本单词顺序排列:
4、将表格中的密文进行横向排列,得到明文:tomorrowisanotherday.
【代码实现】