凯撒密码加解密过程与破解原理
凯撒密码(英语:Caesar cipher),或称凯撒加密、凯撒变换、变换加密,是一种最简单且最广为人知的加密技术。 凯撒密码是
一种替换加密
技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。 例如,当偏移量是3的时候,所有的字母被替换,比如A将被替换成D,B变成E,以此类推。
无规律的加密过程
使用密文字母表,这种表格的字母(可能)是无规律的、随机的。加解密双方都需要拿到密文字母表。
举例:
假设我们通信时只使用26个英文字母(不区分大小写)
(密文字母表的顺序可以随机摆放)
当你需要加密的明文:I LOVE YOU
拿着密文字母表,对照着密文字母表映射就可以了。
变成的密文: L ORYH BRX
拿着密文字母表,对照着密文字母表解密就可以了。
无规律的解密过程——破译
原理:
- 考虑英文字母的使用频率规律,尝试用高频映射高频;
- 结合排除法。
实际案例:
TODO
有规律的加密过程
就是字母表向左或向右移动多少位,用一个图表示,方便理解:
用两个圆纸盘写好26个字母,相互叠起来,
外面的圆盘代表明文,
内部的圆盘代表密文,
在初始阶段,外A —— 内A,外B —— 内B,...都要一一对应上。
比如,向右移动3位,外A —— 内D 。
用表格表示:
比如说:
当你需要加密的明文:I LOVE YOU
你的加密方式,向右移动3位:
变成的密文: F IRYH BRX
加密只需要注意两个点:
- 偏移方向
- 偏移量
有规律的解密过程——破译
我们知道明文就是通过偏移方向+偏移量进行加密,那么如果是破译者,怎么能知道加密时使用了什么偏移量?
比如说给你一段使用凯撒加密过的文本,你怎么解密出来?
Prqd Olvd Lq Iudqfh
破译原理:
- 统计出现最高频的字母;
用凯撒密码编写的密文,字数越多就越容易破译; - 要猜出字母究竟位移了多少位,要考虑英文字母的使用频率规律,尝试用高频映射高频。
当然还可以暴力破解,毕竟只能位移1-25次,那就1-25位移全部罗列出来,哪个结果最像人写的,就是正确的。
练习:
统计
我使用在线工具:
https://uutool.cn/str-statistics/映射
参考下面的字母高频使用表格:
英文字母按使用频率从高到低排序,第一位是e、第二位是t,...q——e ,自己用圆盘计算了一下,向右位移14次,尝试解密:Bdcp Axhp Xc Ugpcrt ,看着不对。
...
d——e ,自己用圆盘算了一下,向右位移25次,尝试解密:Prqd Olvd Lq Iudqfh ,看着不对。
d——t ,自己用圆盘算了一下,向右位移16次,尝试解密:Zban Yvfn Va Senapr ,看着不对。
d——a ,自己用圆盘算了一下,向右位移3次,尝试解密:Mona Lisa In France ,恭喜!看着对了。
过程可以使用在线工具:
http://www.atoolbox.net/Tool.php?Id=778
练习
请破解:
RD IJFW OJSSD
QTANSL DTZ NX XT JFXD.
YMJWJFWJXTRFSD YMNSLX YT QTAJ FGTZY DTZ!
IT DTZ PSTB N QTAJ NY BMJS DTZ IFDIWJFR FSI DTZ YMNSP ST
TSJ NX BFYHMNSL?
IT DTZPSTB N QTAJ YMJ BFD DTZW JDJX XUFWPQJ BMJS DTZ
YJQQ F KZSSD XYTWD?
IT DTZ PSTB YMFY N QTAJ YMJ XMFUJ TK DTZW JFWX?
IT DTZ PSTB N QTAJ YT BFYHM DTZ XQJJU?
N HTZQI LT TS FSI TS.
NFR YMJWJ BNYM DTZ, QTANSL DTZ.
KWTR JIINJ