標題取的很大劲厌,主要是為了將文章上升到科學的層次路呜,而不僅僅是某一項具體的應(yīng)用。
本文簡述卡方統(tǒng)計量的思想轻掩,及其在Caesar加密破解中的應(yīng)用幸乒。
Caesar 加密,將每個字母用其在字母表之后的某個位置的字母代替唇牧,比如用d
代替a
罕扎, e
代替b
,f
代替c
丐重,對于z
腔召,用c
代替。1 如果將a, b, c, ..., z
從0開始編號扮惦,這種替換的過程臀蛛,可以看成是字母的循環(huán)右移(或者左移)。在古典加密中崖蜜,這個位置參數(shù)是保密的掺栅,如果被第三方知道,密文也就隨之破解纳猪。
比如每個字母右移12位氧卧,將 "All models are wrong, but some are useful."通過Caesar加密,得到如下密文:
"Mxx yapqxe mdq idazs, ngf eayq mdq geqrgx."
加密后的文本不可讀氏堤,但若得到位置信息沙绝,即可將每個字母左移12位搏明,即可得到原文。如果不知道這個位置信息闪檬,就需要暴力窮舉星著,對于Caesar加密而言,只有25種情況(因為看到的密文已經(jīng)是一種)粗悯,這適合用計算來解決虚循。
再進一步論述之前,需要說說英語本身的一種特性样傍。在英語中横缔,每個字母出現(xiàn)的頻次是不一樣的,有的很高衫哥,有的很少出現(xiàn)茎刚,比如字母e
經(jīng)常出現(xiàn),而字母z
則很少出現(xiàn)撤逢。理論上膛锭,可以得到每個字母的出現(xiàn)百分比。
a | b | c | d | e | f | g | h | i | j | k | l | m |
---|---|---|---|---|---|---|---|---|---|---|---|---|
8.2 | 1.5 | 2.8 | 4.3 | 12.7 | 2.2 | 2 | 6.1 | 7 | 0.2 | 0.8 | 4 | 2.4 |
n | o | p | q | r | s | t | u | v | w | x | y | z |
---|---|---|---|---|---|---|---|---|---|---|---|---|
6.7 | 7.5 | 1.9 | 0.1 | 6 | 6.3 | 9.1 | 2.8 | 1 | 2.4 | 0.2 | 2 | 0.1 |
對于Caesar加密蚊荣,雖然字母被映射成別的字母初狰,但是也將相應(yīng)字母的出現(xiàn)頻率映射給新的字母,比如出現(xiàn)幾率最高的e
互例,如果被映射成h
奢入,則在Caesar加密后,統(tǒng)計詞頻敲霍,可以發(fā)現(xiàn)h
的出現(xiàn)幾率最高俊马。對于其他的字母,有類似的情況肩杈。這也為通過詞頻破解Caesar加密提供了思路柴我。
對于一段密文,左移(或者右移)扩然,然后統(tǒng)計其詞頻艘儒,并與標準的英語字母詞頻做比較。若移動的位數(shù)正好是Caesar加密所使用的位數(shù)夫偶,則每個字母的詞頻與標準英語字母的詞頻比較接近界睁,否則相差應(yīng)該較大。這種差異可以通過卡方統(tǒng)計量來刻畫兵拢,
對于26個字母翻斟,在標準英語下,每個字母具有比例$\pi_{1i}$说铃,其中$i = 1, 2, 3, .., 26$访惜;對于待解密的文本嘹履,某次移動后,每個字母的出現(xiàn)頻率為$\pi_{2i}$债热,其中$i = 1, 2, 3, ..., 26$砾嫉。
可以構(gòu)建極大似然統(tǒng)計量,當文本較多時窒篱,可以等價地構(gòu)建皮爾遜卡方統(tǒng)計量焕刮。[2][]
$$\chi^2 = n\sum_{i = 1} ^{26} \frac{ (\pi_{2i} - \pi_{1i})^2 } { \pi_{1i} }$$
其中$n$是帶解密文本中字母的個數(shù)。如果$\pi_{2i}$與$\pi_{1i}$一致墙杯,則該統(tǒng)計量較小配并,否則該統(tǒng)計量較大。也就是說卡方統(tǒng)計量的大小衡量移位后詞頻與標準詞頻之間的匹配程度霍转。對于Caesar加密荐绝,窮舉所有可能的移位一汽,計算其對應(yīng)的卡方統(tǒng)計量避消,其最小值對應(yīng)的文本,很有可能是正確解密的文本召夹。由于對于一段固定的密文岩喷,$n$是常數(shù),故可在計算中忽略不計监憎。
$$\chi^2 = \sum_{i = 1} ^{26} \frac{ (\pi_{2i} - \pi_{1i})^2 } { \pi_{1i} }$$
[2]: John A. Rice, 數(shù)理統(tǒng)計與數(shù)據(jù)分析, page 263.