凱撒密碼-最古老的加密算法

凱撒密碼
凱撒密碼(Caesar's code)是最古老的加密算法,當然目前看來也是最簡單的加密算法。它的發(fā)明人是羅馬史上第一位獨裁者、羅馬帝國之父、攻無不克的名將、日歷發(fā)明家、拉丁語文學家、埃及艷后克利奧帕特拉背后的男人凱撒大帝。

凱撒密碼是一種替換加密技術(shù),明文中的所有字母都在字母表上向后(或向前)按照一個固定數(shù)目進行偏移后被替換成密文。例如,當偏移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推。

今天看來,這種算法極易破解,毫無技術(shù)含量可言。但在當時還是很安全的,因為愷撒大部分敵人都是目不識丁的。

凱撒密碼算法實現(xiàn):

加密:
C=E(p)=(p+k) mod 26

p就是需要加密的字符,k就是數(shù)字密鑰(英語:1 -25)

解密
p=D(C)=(C-k) mod 26
C就是需要解密的字符,k就是加密時的數(shù)字密鑰(英語:1 -25)

凱撒密碼的破解
1 通過使用諸如頻率分析或者樣式單詞分析的方法來分析是否使用的是凱撒密碼。
2 使用愷撒密碼進行加密的語言一般都是字母文字系統(tǒng),因此密碼中可能是使用的偏移量也是有限的,例如使用26個字母的英語,它的偏移量最多就是25(偏移量26等同于偏移量0,即明文;偏移量超過26,等同于偏移量1-25)。因此可以通過窮舉法,很輕易地進行破解。

凱撒大帝并不是歷史上第一個想出加密算法的人。姜子牙在3000年前就發(fā)明了古裝版密碼本《陰書》。公元前四世紀,古希臘人發(fā)明了卷軸式密碼本《天書》;公元前五世紀的斯巴達漢子,也會把皮帶卷在一根木棒上,只有特定直徑的“密碼棒”,才能把皮帶上的字還原成明文。今天我們?nèi)耘f把密碼學歸功于凱撒,是因為凱撒密碼是首個廣泛運用到軍事通信領(lǐng)域的加密技術(shù)。