A. 密碼那些事兒|(五)換個位置,面目全非
移位法和替代法大約5000年前出現,但直到9世紀才被阿拉伯人發明的頻率分析法破解,中間隔了足足有4000年。在另一邊的歐洲,實際上直到16世紀,都還沒掌握這種破解方法。從這里我們也能感受到,阿拉伯文明曾經的輝煌。
移位法很簡單。我舉個例子,比如你的答乎電話號碼13911095871,把每個數字都在數列中往後加1,那麼1變2,2變3,加密後就變成了24022106982。
13911095871叫做明文,24022106982則是它對應的密文。
字母的移位也是同樣的道理,因為字母是遵循著abcdef……xyz的順序排列,一共26個,看起來會比單純的數字移位復雜一些,但本質上仍是一樣的。
比如要對iron man加密,加密規則選擇每個字母都向後移動3位, 「iron man」就變成了「lurq pdq」。
沒有經驗的人乍看一下,完全就是亂碼,實際上它只不過做了基礎加密而已。這就是最基礎的移位法。
大約在公元前700年左右,出現了用一種叫做Scytale的圓木棍來進行保密通信的方式。這種Scytale圓木棍也許是人類最早使用的文字加密解密工具,據說主要是古希臘城邦中的斯巴達人(Sparta)在使用它,所以又被叫做「斯巴達棒」。
相傳雅典和斯巴達之間的伯羅奔尼撒戰爭中,斯巴達軍隊截獲了一條寫滿雜亂無章的希臘字母的腰帶,斯巴達將軍在百思不得其解之際,胡亂將腰帶纏到自己的寶劍上,從而誤打誤撞發清豎悉現了其中隱藏的軍機。這就是斯巴達密纖緩碼棒的由來。
「斯巴達棒」的加密原理就是,把長帶子狀羊皮紙纏繞在圓木棍上,然後在上面寫字;解下羊皮紙後,上面只有雜亂無章的字元,只有再次以同樣的方式纏繞到同樣粗細的棍子上,才能看出所寫的內容。
比如像上圖那樣,在纏好的布帶上寫上「 YOU ARE IN DANGER」,然後再拆下來,布帶上的文字順序就變成了「YIONUDAARNEGER」,完全看不出任何頭緒,這樣就起到了加密的作用。
2100年前,古羅馬的執政官和軍隊統帥愷撒(Julius Caesar,公元前100—前44)發明了一種把所有的字母按字母表順序循環移位的文字加密方法。例如,當規定按字母表順移3位的話,那麼a就寫成d,b寫成e,c寫成f,…,x寫成a,y寫成b,z寫成c。單詞Hello就寫成了Khoor。如果不知道加密方法,誰也不會知道這個詞的意思。解密時,只需把所有的字母逆移3位,就能讀到正確的文本了。
上圖就是根據愷撒加密法的原理而製作的字母循環移位盤。可以根據需要設定加密時移位的位數,以供加密或解密時快速查詢。據說愷撒當年就是使用這種加密方法與手下的將軍們通信的。
從密碼學的角度來看,雖然愷撒加密法的規則很簡單,然而,愷撒加密的思想對於西方古典密碼學的發展有著很大影響。
事實上,直到第二次世界大戰結束,西方所使用的加密方法原理大多與愷撒加密法類似,只是規則越來越復雜而已。
盡管移位法加密在西方得到了很普遍的應用,但在中國的史書上卻很少記載,各位朋友可以想一想是為什麼?
感興趣的朋友們不妨在評論區一起聊一聊。
下一次,我們繼續了解移位法和替代法的故事。
往期文章:
密碼那些事兒|(四)隱藏的消息
密碼那些事兒|(三)「風語者」——從未被破解的密碼
密碼那些事兒|(二)密碼學發展的七個階段
密碼那些事兒|(一)無所不在的密碼
本人是官方授權會員推廣專員,點擊 會員專屬通道 成為會員,您將會獲得鑽獎勵及諸多權益!
《鑽獎勵調整公告》