與英語 關的兩個密碼學小知識

首先說說字母機率。我們隨便找一個英語單詞,比如cat,將每個字母向後移動一位,cat變成dbu,將每個字母向後移動兩位,cat變成ecv,等等,這就是一種最原始、最簡單的加密方法,19世紀以前曾在歐洲廣泛使用。對於這種加密電文,我們只要知道英語字母的機率(probability),就可以很容易地破譯出來。什麼是字母機率呢?您可以找一篇英文文章,仔細觀察一下,就會發現,字母e出現的次數最多,大多數單詞中都包含它,因而我們說字母e的機率最高,與此相反,字母q出現的次數最少,只有少數單詞中包含它,因而我們說字母q的機率最低。下面是英語字母的機率表,機率值由高到低排列。

e(57) a(43) r(39) i(38) o(37) t(35) n(34) s(29) l(28) c(23) u(19) d(17) p(16) m(15) h(15) g(13) b(11) f(9) y(9) w(7) k(6) v(5) x(1) z(1) j(1) q(1)

有了這個字母機率表,我們可以看看加密電文中,哪個字母出現的次數最多,假如h出現的次數最多,那我們可以斷定h就是e,原文的每個字母都向後移動了三位(e-f-g-h),我們只要將每個字母向前移動三位,即可看到明文。

下面再說說單詞機率。如果我們不採用上面這種字母移位的加密方法,而是用胡編亂造的單詞,代替真正的英語單詞,比如用tnqkv代替the,用hxdsj代替and,等等,這也是一種19世紀以前歐洲常用的加密方法。對於這種加密電文,我們必須知道英語單詞的機率,也就是在一般性的英語文章中,哪些單詞出現的次數最多。下面是英語常用單詞的機率表,機率值由高到低排列。

the - of - and - a - to - in - is - that - it - was - he - for - as - on - with - his - be - at - you - i - are - this - by - from - had - have - they - not - or - one

有了這個單詞機率表,我們可以看看加密電文中,哪個(胡編亂造的)單詞出現的次數最多,假如tnqkv出現的次數最多,那我們可以斷定tnqkv就是the。利用這種方法,可以將加密電文中最常用的冠詞、介詞、連詞、代詞、動詞等破譯出來,但破譯整篇加密電文還不可能,需要配合其它方法。

當然,這裡介紹的只是最基礎的密碼學知識,現在已經很少有這樣簡單的加密電文了,但這些基礎知識,是我們掌握高級知識的基礎,所以我希望這個帖子能夠引起您的興趣。