凯撒密码,又称凯撒加密。属于一种古老的加密算法,且极为简单。相传就是初中历史课本学习过的罗马帝国的尤里乌斯·凯撒(凯撒大帝),在公元前100年就懂得对传递的信息进行加密了。年代久远,无从考证。
按现代密码学来看,凯撒密码的安全性相当有限,但作为入门示例,理解加密具有一定教育价值。规则如下,
1. 凯撒密码规则
发送方与接收方共同约定了偏移量3。发送即可以通过偏移后的字母表对明文加密。接收方拿到密文,通过字母表和发送方约定好的偏移量进行解密即可。
- 偏移量(密钥)
约定一个0到25的数字作为偏移量,即密钥。
- 替换过程
对明文的每个字母,根据字母表指定偏移量对字母替换为新字母。
2. 凯撒密码示例
示例CHINA
加密过程
发送方进行加密,拿到明文CHINA、偏移量3。可以参考第二行字母表,与之相同列的第一行字母即为加密后的字符。
例如:若偏移量为3时,字母表A,为D;依次B,为E....,到达末尾Z,从A开始,如X为A,Y为B:
-
示例明文中的字母
C向后移动3位,变为字符F -
示例明文中的字母
H向后移动3位,变为字符K -
示例明文中的字母
I向后移动3位,变为字符L -
示例明文中的字母
N向后移动3位,变为字符Q -
示例明文中的字母
A向后移动3位,变为字符D
CHINA通过偏移量3,通过凯撒密码加密后结果为FKLQD。
解密过程
接收方进行解密,拿到密文FKLQD、偏移量3。可以参考第一行字母表,与之相同列的第二行即为解密后的字符。
-
示例密文中的字母
F向后移动3位,变为字符C -
示例密文中的字母
K向后移动3位,变为字符H -
示例密文中的字母
L向后移动3位,变为字符I -
示例密文中的字母
Q向后移动3位,变为字符N -
示例密文中的字母
D向后移动3位,变为字符A
凯撒密码仅依赖单一的固定位移,安全性非常低。像与同学间互相传递纸条这种保密要求性不高的情况,可以体验一下。千万不要应用于工作当中。适合作为密码学基础原理的入门实例。
忍不住要加个关注!不是我吹,但你会后悔没关注的!
公众号:字节码在跳舞