概述
恺撒加密
恺撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,它的基本思想是:通过把字母移动一定的位数来实现加密和解密。例如,密匙是把明文字母的位数向后移动三位,那么明文字母B就变成了密文的E,依次类推,X将变成A,Y变成B,Z变成C,由此可见,位数就是恺撒密码加密和解密的密钥。这个加密方法是以恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。恺撒密码通常被作为其他更复杂的加密方法中的一个步骤,例如维吉尼亚密码。恺撒密码还在现代的ROT13系统中被应用。但是和所有的利用字母表进行替换的加密技术一样,恺撒密码非常容易被破解,而且在实际应用中也无法保证通信安全。
密码的使用最早可以追溯到古罗马时期,《高卢战记》有描述恺撒曾经使用密码来传递信息,即所谓的“恺撒密码”,它是一种替代密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。据历史记载恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。这是一种简单的加密方法,这种密码的密度是很低的,只需简单地统计字频就可以破译。现今又叫“移位密码”,只不过移动的位数不一定是3位而已。
密码术可以大致分为两种,即易位和替换,当然也有两者结合得更复杂的方法。在易位中字母不变,位置改变;替换中字母改变,位置不变。将替换密码用于军事用途的第一个文件记载是恺撒著的《高卢战记》。恺撒描述了他如何将密信送到正处在被围困、濒临投降的西塞罗。其中罗马字母被替换成希腊字母使得敌人根本无法看懂信息。苏托尼厄斯在公元二世纪写的《恺撒传》中对恺撒用过的其中一种替换密码作了详细的描写。恺撒只是简单地把信息中的每一个字母用字母表中的该字母后的第三个字母代替。这种密码替换通常叫做恺撒移位密码,或简单地地,恺撒密码。
1320次播放03:00凯撒密码——密码学的数学原理公式
加密公式:密文=(明文+位移数)Mod 26
解密公式:明文=(密文-位移数)Mod 26
恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3):
明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ ;
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC。
使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。例如:
明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG ;
密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ。
恺撒密码的加密、解密方法还能够通过同余的数学方法进行计算。首先将字母用数字代替,A=0,B=1,...,Z=25。
此系统因罗马时代的发明人Julius Caesar(盖乌斯·尤利乌斯·恺撒)得名。传说被恺撒大帝使用过。
恺撒系统的密码是自己选的一个单词。
例如,选用mountain,写出以下的字母序列:mountaibcdefghjklpqrsvwxyz。
看出来了吗?就是在正常字母序列中抽掉你的密码mountain。由于mountain中有两个n,把第二个去掉。
然后,把正常字母序列写在这个序列下面:
Mountaibcdefghjklpqrsvwxyz.......密文字母序
Abcdefghijklmnopqrstuvwxyz.......明文字母序
在加密的时候,用上面那个序列里的字母代替原文中的字母写成密文。例如,m代替a,o代替b。解密时方向相反。所以,加密heishere的结果是:btcqbkpt。
如果你的文本中有数字,那么不妨写一个36字符的序列,并把数字加在你的密码中。
评价:这种方法比简单移位系统安全,可以在你的日记中使用。但是,如果加密的文字有(大约)400字符以上,那么攻击者手工花费1天时间即可破解,因为英文和其它语言中每个字母都有一定的使用频率,破解者根据这些频率就可以破译。
特定名称
根据偏移量的不同,还存在若干特定的恺撒密码名称:
偏移量 | 恺撒密码名称 |
10 | Avocat(A→K) |
13 | ROT13 |
-5 | Cassis (K 6) |
-6 | Cassette (K 7) |
破译密码
即使使用唯密文攻击,恺撒密码也是一种非常容易破解的加密方式。可能有两种情况需要考虑:
(1)攻击者知道(或者猜测)密码中使用了某个简单的替换加密方式,但是不确定是恺撒密码;
(2)攻击者知道(或者猜测)使用了恺撒密码,但是不知道其偏移量。
对于第一种情况,攻击者可以通过使用诸如频率分析或者样式单词分析的方法, 马上就能从分析结果中看出规律,得出加密者使用的是恺撒密码。
对于第二种情况,解决方法更加简单。由于使用恺撒密码进行加密的语言一般都是字母文字系统,因此密码中可能是使用的偏移量也是有限的,例如使用26个字母的英语,它的偏移量最多就是25(偏移量26等同于偏移量0,即明文;偏移量超过26,等同于偏移量1-25)。因此可以通过穷举法,很轻易地进行破解。其中一种方法是在表格中写下密文中的某个小片段使用所有可能的偏移量解密后的内容——称为候选明文,然后分析表格中的候选明文是否具有实际含义,得出正确的偏移量,解密整个密文。例如,被选择出的密文片段是"EXXEGOEXSRGI",从右表中的候选明文,我们可以很快看出其正确的偏移量是4。也可以通过在每一个密文单词的每一个字母下面,纵向写下整个字母表其他字母,然后可以通过分析,得出其中的某一行便是明文。
另外一种攻击方法是通过频率分析。当密文长度足够大的情况下,可以先分析密文中每个字母出现的频率,然后将这一频率与正常情况下的该语言字母表中所有字母的出现频率做比较。例如在英语中,正常明文中字母E和T出现的频率特别高,而字母Q和Z出现的频率特别低,而在法语中出现频率最高的字母是E,最低的是K和W。可以通过这一特点,分析密文字母出现的频率,可以估计出正确的偏移量。此外,有时还可以将频率分析从字母推广到单词,例如英语中,出现频率最高的单词是:the, of, and, a, to, in...。我们可以通过将最常见的单词的所有可能的25组密文,编组成字典,进行分析。比如QEB可能是the,MPQY可能是单词know(当然也可能是aden)。但是频率分析也有其局限性,它对于较短或故意省略元音字母或者其他缩写方式写成的明文加密出来的密文进行解密并不适用。
另外,通过多次使用恺撒密码来加密并不能获得更大的安全性,因为使用偏移量A加密得到的结果再用偏移量B加密,等同于使用A+B的偏移量进行加密的结果。
历史
6028次播放02:46凯撒密码:最经典的古代密码,加密方式却很简单|军事科技2355次播放01:14恺撒大帝发明的密码到底有多神秘?根据苏维托尼乌斯的记载,恺撒曾用此方法对重要的军事信息进行加密:
如果需要保密,信中便用暗号,也即是改变字母顺序,使局外人无法组成一个单词。如果想要读懂和理解它们的意思,得用第4个字母置换第一个字母,即以D代A,余此类推。
同样,奥古斯都也使用过类似方式,只不过他是把字母向右移动一位,而且末尾不折回。每当他用密语写作时,他都用B代表A,C代表B,其余的字母也依照依照样的规则;他用A代表Z。
另外,有证据表明,恺撒曾经使用过更为复杂的密码系统:文法学家普罗布斯曾经写过一份独具创新的手稿,研究恺撒书信中包含有秘密信息的字母。
已经无法弄清恺撒密码在当时有多大的效果,但是有理由相信它是安全的。因为恺撒大部分敌人都是目不识丁的,而其余的则可能将这些消息当作是某个未知的外语。即使有某个敌人获取了恺撒的加密信息,根据现有的记载,当时也没有任何技术能够解决这一最基本、最简单的替换密码。现存最早的破解方法记载在公元9世纪阿拉伯的阿尔·肯迪的有关发现频率分析的著作中。
历史上以维吉尼亚密表为基础又演变出很多种加密方法,其基本元素无非是密表与密钥,并一直沿用到二战以后的初级电子密码机上。