2012年1月17日 星期二

密碼學的第二課:換位加密法和替代加密法

大家好,
關於換位加密法和替代加密法,大家好像有些搞不清楚,再說明一下。

換位加密法是明文中出現的字母,在密文中也會出現,只是順序被打散(明文沒出現的字母,密文也不會出現)。
譬如將The tree is green分成三列書寫(去掉空格),再以橫式抄錄回來(左-->右,上-->下)
就會變成 Ttegehrirneese

Ttege
hrirn
eese

(動畫: http://www.nsa.gov/kids/ciphers/cipherKey.swf)

替代加密法則是將原有明文中的所有字母都以其他字母取代了。
譬如由A至Z的字母順序中的位置往後移k個位置所得的新字母取代,其中k是一個介於0與25間的整數。
當k=5時,A變成F,B變成G,C變成H...
那麼The tree is green就會變成ocz omzz dn bmzzi

那假如a~z以0~25表示,舊字母的位置為x,字母的新位置y=25-x
將字母反序排列,A變成Z,B變成Y,C變成X...
那麼The tree is green會變成gsv givv rh tivvm

(動畫: http://www.nsa.gov/kids/ciphers/cipherCaesar.swf)

這樣就可以達到將訊息隱藏的效果了。

有沒有注意到一個特性,這樣的方法,某些字母會出現的特別多次,
尤其當加密的文章很長時,這樣的特性就會更明顯。
這也就給了解密者一些資訊,就造成了這種方法的不安全。

根據英文字的特性,
字母e是用的最多的,
其次是a i o u t s r y
然後是m n b o p d g h j k l
最後q w z x v

所以在解密的時候,把密文中最常出現的字母先代換為e,其次代換為a
或是最常見的雙字母組代換為th和三字母組代換為the...
再根據前後文,大致上就可以得到原來的訊息囉(也就是明文)

(想看看專家用這種方法的解密過程,可以閱讀 http://goo.gl/Dysz0)

(字母頻率表,http://goo.gl/Rl4ZS)
A 8.19 B 1.47 C 3.83 D 3.91 E 12.25
F 2.26 G 1.71 H 4.57 I 7.10 J 0.14
K 0.41 L 3.77 M 3.34 N 7.06 O 7.26
P 2.89 Q 0.09 R 6.85 S 6.36 T 9.41
U 2.58 V 1.09 W 1.59 X 0.21 Y 1.58 Z 0.08

著名的小說《福爾摩斯偵探集》中,有一章《跳舞的小人》也有類似的情節。

值得一提的是,中文也有類似的統計頻率唷~
例如最常見的中文字是"的",其次大概是"一"或"是" (根據文章屬性的不同)
可以參見 http://crypt.math.fju.edu.tw/09/Freq.html

利用頻率分析,有時候也可以解答別人的問題呢!

沒有留言:

張貼留言