概况
如果需要保密,信中便用暗号,也即是改变字母顺序,使局外人无法组成一个单词。如果想要读懂和理解它们的意思,得用第4个字母置换第一个字母,即以D代A,余此类推.
——苏维托尼乌斯,罗马十二帝王传
凯撒密码最早由古罗马军事统帅盖乌斯·尤利乌斯·凯撒在军队中用来传递加密信息,故称凯撒密码。此为一种位移加密手段,只对26个(大小写)字母进行位移加密,规则相当简单,容易被破解。
凯撒密码属于替代加密,即用另一个字符来替换明文中的原字符,其中的对应关系只有加密者所知。而凯撒密码就是最简单的一种替代加密手段。
到了现代,凯撒密码虽然早已经无法保证人们的信息安全,但还是会包含于一些复杂的加密方法中,通常被作为其他更复杂的加密方法中的一个步骤,例如维吉尼亚密码。
加密原理
凯撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3):
1 | 明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ |
举个例子当偏移量为左移3时,D本来是第4个字母,在字母表中向左移3位,即从第4位变成第1位。也就是在密文字母表中排名第一位。
而加密者使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。例如:
1 | 明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG |
凯撒密码的加密、解密方法还能够通过同余的数学方法进行计算。首先将字母用数字代替,A=0,B=1,…,Z=25。此时偏移量为n的加密方法即为:
$$
En(x)=(x+n)\ mod\ 26
$$
解密就是:
$$
Dn(x)=(x-n)\ mod\ 26
$$
特定凯撒密码名称
根据偏移量的不同,还存在若干特定的凯撒密码名称:
- 偏移量为10:Avocat(A→K)
- 偏移量为13:ROT13
- 偏移量为-5:Cassis (K 6)
- 偏移量为-6:Cassette (K 7)
破解方式
暴力破解
凯撒密码的原理导致,总共也就只有26种可能,在这种情况下,我们完全可以把偏移量全部试一遍。事实上现在网络上的解法都是如此。
举个例子:
密文: N FR MJWJXD
Key #1: M EQ LIVIWC Key #2: L DP KHUHVB Key #3: K CO JGTGUA Key #4: J BN IFSFTZ Key #5: I AM HERESY Key #6: H ZL GDQDRX Key #7: G YK FCPCQW Key #8: F XJ EBOBPV Key #9: E WI DANAOU Key #10: D VH CZMZNT Key #11: C UG BYLYMS Key #12: B TF AXKXLR Key #13: A SE ZWJWKQ |
Key #14: Z RD YVIVJP Key #15: Y QC XUHUIO Key #16: X PB WTGTHN Key #17: W OA VSFSGM Key #18: V NZ URERFL Key #19: U MY TQDQEK Key #20: T LX SPCPDJ Key #21: S KW ROBOCI Key #22: R JV QNANBH Key #23: Q IU PMZMAG Key #24: P HT OLYLZF Key #25: O GS NKXKYE Key #26: N FR MJWJXD |
频率分析
单纯的凯撒加密作为一种替代加密方式,并且,在这个加密过程中他原本的明文所代表的含义是没变的。
当密文长度足够大的情况下,可以先分析密文中每个字母出现的频率,然后将这一频率与正常情况下的该语言字母表中所有字母的出现频率做比较。例如在英语中,正常明文中字母E和T出现的频率特别高,而字母Q和Z出现的频率特别低,而在法语中出现频率最高的字母是E,最低的是K和W。可以通过这一特点,分析密文字母出现的频率,可以估计出正确的偏移量。此外,有时还可以将频率分析从字母推广到单词,例如英语中,出现频率最高的单词是:the, of, and, a, to, in…。我们可以通过将最常见的单词的所有可能的25组密文,编组成字典,进行分析。比如QEB可能是the,MPQY可能是单词know(当然也可能是aden)。但是频率分析也有其局限性,它对于较短或故意省略元音字母或者其他缩写方式写成的明文加密出来的密文进行解密并不适用。
举个例子:
1 | 明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG |
这段密文中,频率出现最高的是字母R和字母H。我们推断这两个应该是元音字母。并且我们可以注意到,WKH出现过两次,很有可能代表的是单词the。而且字母H也是高频率字母,所以我们可以猜测字母H代表的是字母E。
E是第5个字母,而H是第8个字母,所以显然,偏移量为3,这样便可以轻松解出明文了。