與英語(yǔ)有關(guān)的兩個(gè)密碼學(xué)小知識(shí)

字號(hào):

我以前曾寫(xiě)過(guò)幾篇介紹如何破譯日文密碼的帖子,因而結(jié)識(shí)了國(guó)內(nèi)一些業(yè)余密碼學(xué)愛(ài)好者,其中包括一位上海的胡先生,長(zhǎng)期研究二戰(zhàn)期間的日軍密碼。昨天胡先生給我發(fā)郵件,問(wèn)我是否能夠在《閑聊英語(yǔ)》中,增加一個(gè)密碼學(xué)方面的帖子,以便普及一點(diǎn)密碼學(xué)知識(shí)。我覺(jué)得這個(gè)建議很好,所以下面我就介紹兩個(gè)與英語(yǔ)有關(guān)的密碼學(xué)小知識(shí):字母概率與單詞概率。
    首先說(shuō)說(shuō)字母概率。我們隨便找一個(gè)英語(yǔ)單詞,比如cat,將每個(gè)字母向后移動(dòng)一位,cat變成dbu,將每個(gè)字母向后移動(dòng)兩位,cat變成ecv,等等,這就是一種最原始、最簡(jiǎn)單的加密方法,19世紀(jì)以前曾在歐洲廣泛使用。對(duì)于這種加密電文,我們只要知道英語(yǔ)字母的概率(probability),就可以很容易地破譯出來(lái)。什么是字母概率呢?您可以找一篇英文文章,仔細(xì)觀(guān)察一下,就會(huì)發(fā)現(xiàn),字母e出現(xiàn)的次數(shù)最多,大多數(shù)單詞中都包含它,因而我們說(shuō)字母e的概率,與此相反,字母q出現(xiàn)的次數(shù)最少,只有少數(shù)單詞中包含它,因而我們說(shuō)字母q的概率最低。下面是英語(yǔ)字母的概率表,概率值由高到低排列。
    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)
    有了這個(gè)字母概率表,我們可以看看加密電文中,哪個(gè)字母出現(xiàn)的次數(shù)最多,假如h出現(xiàn)的次數(shù)最多,那我們可以斷定h就是e,原文的每個(gè)字母都向后移動(dòng)了三位(e-f-g-h),我們只要將每個(gè)字母向前移動(dòng)三位,即可看到明文。
    下面再說(shuō)說(shuō)單詞概率。如果我們不采用上面這種字母移位的加密方法,而是用胡編亂造的單詞,代替真正的英語(yǔ)單詞,比如用tnqkv代替the,用hxdsj代替and,等等,這也是一種19世紀(jì)以前歐洲常用的加密方法。對(duì)于這種加密電文,我們必須知道英語(yǔ)單詞的概率,也就是在一般性的英語(yǔ)文章中,哪些單詞出現(xiàn)的次數(shù)最多。下面是英語(yǔ)常用單詞的概率表,概率值由高到低排列。
    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
    有了這個(gè)單詞概率表,我們可以看看加密電文中,哪個(gè)(胡編亂造的)單詞出現(xiàn)的次數(shù)最多,假如tnqkv出現(xiàn)的次數(shù)最多,那我們可以斷定tnqkv就是the.利用這種方法,可以將加密電文中最常用的冠詞、介詞、連詞、代詞、動(dòng)詞等破譯出來(lái),但破譯整篇加密電文還不可能,需要配合其它方法。
    當(dāng)然,這里介紹的只是最基礎(chǔ)的密碼學(xué)知識(shí),現(xiàn)在已經(jīng)很少有這樣簡(jiǎn)單的加密電文了,但這些基礎(chǔ)知識(shí),是我們掌握高級(jí)知識(shí)的基礎(chǔ),所以我希望這個(gè)帖子能夠引起您的興趣。