古典密码也可以称为“凯撒密码”,它是古罗马凯撒大帝在传递重要军事情报时,所使用的一种加密方法。
在加密过程中,需要发送的信息原文称为明文,明文经过加密后形成的不被识别的信息称为密文。
古典密码采用的是简单的“字符换位”加密技术。它是将明文中的每个字母,用其后面的字母来替换,产生字面上没有任何意义的密文。
比如,凯撒大帝向正在前线作战的部队发出了密文“VWRSDWWDFNLQJ”,同时附带另一条指令:“前进3步。”这条密文代表什么意思呢?
“前进3步”非常重要,它的含义是把密文中的每个字母按字母表的顺序向后移动3个字母进行对位。即有如下的对应关系:
因此,我们可以推算出,凯撒命令的明文是“STOPATTACKING”(停止进攻)。
若给每个字母一个整数编号,就可以得到一个数字密码本:
“前进3步”中的“3”,指明了明文字母与密文字母的错位数。实际上,只要有了“3”,通过上述的整数编号,就可以用一个“取模运算”来表示整个密码本:
密文字母=(明文字母+3)mod 26
mod运算称为取模运算,即求余数的运算,它的表示形式是“n mod p”,其运算结果是一个整数n除以另一个整数p的余数,且不考虑运算的商。因此,上述算式的含义是:将代表明文字母的数字加上3,再除以26,就得到了代表密文字母的数字,反推出字母。
例如,表示明文字母S的数字是19,加3后再除以26,商为0,余数为22,即(19+3)mod 26=22,因此,S的密文字母应该是数字为22的V。
根据数字密码本,可以先将明文的文字串“STOPATTACKING”置换成数字串“19201516120213119147”,再按照运算公式对这个数字串进行加密,得到密文“22231819423234614121710”。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。