凯撒密码
凯撒密码是一种相传尤利乌斯·凯撒曾使用过的密码。凯撒于公元前100年左右诞生于古罗马,是一位著名的军事统帅。
凯撒密码是通过字母按照一定的字数“平移”来进行加密的。
举例一下:小写字母(a,b,c…)表示明文,大写字母(A,B,C…)表示密文
现在我们将字母平移三个字母,于是明文中的a在加密后变成了与其相隔三个字母的D,以此类推到x则会回到字母的开头变成A,相应的y变成B,z变成C。
a–b--c–d--e–f--g–h--i–j—k–…—w–x--y–z
D-E–F-G–H--I–J--K-L-M-N-…—Z–A--B-C
凯撒密码的加密:
我们假设保密的信息为danshengou。
此时铭文包含下列10个字母。
danshengou
接下来我们将明文的字母逐一进行加密
d——>G
a——>D
n——>Q
s——>V
h——>K
e——>H
n——>Q
g——>J
o——>R
u——>X
这样明文danshengou就被转换成了密文GDQVKHQJRX
开啥密码中,将字母表中的字母平移这个操作就是密码的算法,而平移的字母数量则相当于密钥
明文——————————>密钥———————————>密文
danshengou——————>密钥3———————————>GDQVKHQJRX
凯撒密码解密
现在接收者已经收到密文GDQVKHQJRX,由于密文本身看不懂,因此要解密成明文
解密过程是使用与加密时相同的密钥进行反向的平移操作。
d<——G
a<——D
n<——Q
s<——V
h<——K
e<——H
n<——Q
g<——J
o<——R
u<——X
这样我们就得到了明文danshengou
在这个场景中,密钥33必须有发送者和接收者提前约定好。
明文<——————————密钥<———————————密文
danshengou<——————密钥3<———————————GDQVKHQJRX
用暴力破解来破译密码
通过上面的讲解,我们知道了凯撒密码加密的密文,接收者能够解密,那么接收者以外的人(不知道密钥3的人)在看到密文后,怎么知道明文呢?
在凯撒密码中,密钥就是字母表平移的字数。由于字母表只有26个字母,因此加密的密钥只有0到25共26种(平移0个字母实际上表示没有加密,但在这里我们也考虑进去)
下面按顺序将这26种密钥都尝试一遍
GDQVKHQJRX———>密钥25———>herwlirksy
GDQVKHQJRX———>密钥24———>ifsxmjsltz
GDQVKHQJRX———>密钥23———>jgtynktmua
GDQVKHQJRX———>密钥22———>khuzolunvb
GDQVKHQJRX———>密钥21———>livapmvowc
GDQVKHQJRX———>密钥20———>mjwbqnwpxd
GDQVKHQJRX———>密钥19———>nkxcroxqye
GDQVKHQJRX———>密钥18———>olydspyrzf
GDQVKHQJRX———>密钥17———>pmzetqzsag
GDQVKHQJRX———>密钥16———>qnafuratbh
GDQVKHQJRX———>密钥15———>robgvsbuci
GDQVKHQJRX———>密钥14———>spchwtcvdj
GDQVKHQJRX———>密钥13———>tqdixudwek
GDQVKHQJRX———>密钥12———>urejyvexfl