凯撒密码是一种简单的替代密码,根据苏维托尼乌斯的记载,凯撒密码是由罗马共和国独裁官盖乌斯·尤利乌斯·恺撒发明的,他曾用凯撒密码来加密重要的军事情报。 作为一种替代加密算法,凯撒密码在如今看来,并非那么安全,它的加密方式只是简单的移位和替换,例如,如果明文移位1,则A被B替代,B将变为C,依此类推。 下面是一个简单的例子: 我们要加密的信息是“Defend the east wall of the castle”,偏移位数(密钥)为1。 加密之前,我们需要制作一个偏移位密钥表: 正常字母表:
移位密钥表(偏移位数为1):
然后,我们只需把明文字母替换为移位后的字母表即可,比如,明文是第一个字母“D”在正常字母表中是第四位,将之替换为移位密钥表的第四位字母“E”即可,根据这个规律,完全所有字母的加密。 如下: - 明文:defendtheeastwallofthecastle
复制代码- 密文:efgfoeuiffbtuxbmmpguifdbtumf
复制代码我们可以很容易看出明文中的每个字母是如何沿字母表移动并替换的。 如果知道偏移位密钥,对密文解密是很简单的,只需用移位密钥表替换回正常字母表字母即可,比如,密文的第一个字母“E”,在移位密钥表中是第四位, 将之替换为正常字母表的第四位字母“D”即可,根据这个规律,完全所有字母的解密。 值得注意的要点是,我们在加密中使用的偏移位数(密钥)不同,我们的移位密钥表也不同,所以在手工加密的时候,需要自己写出移位密钥表。 移位密钥表的规律很简单,不管偏移几位数,这些字母都移动到正常字母表的最后。 例如:偏移位数(密钥)为4 移位密钥表就是: - E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
复制代码如果不知道偏移位数密钥,怎么解密密文呢,方式其实也并不困难,因为凯撒密码只有25种偏移位数的可能性,所以,只需要计算出这25种结果,必然有一种结果是明文。
|