關於古典密碼的小研究

其疾如風,其徐如林,侵掠如火,不動如山,難知如陰,動如雷震。
《孫子兵法·軍爭篇》

在戰場上,敵我雙方的情報,事關重大,所以訊息保密肯定是十分重要的事,思考到這裡,我開始好奇,以前沒有電腦做過於複雜的運算,那古時候的人都是怎麼加密訊息的。
我在課堂上有學過凱薩密碼和維吉尼亞密碼,但是這些比較適合用在類似英文字母這樣的拼音系統上,那如果是中文呢?除此之外,這世界還有什麼奇特的加密方法,也是這篇報告的研究對象。以下利用我在網路上找到的資料來細細說明,到頭來還是靠google

※注意:以下內容因為疫情在家裡憋太久所以有點放飛自我,如果討厭請直接關閉視窗上一頁謝謝。


1. 陰符和陰書

周武王曾向姜子牙詢問,征戰時皇帝該如何和主將傳遞訊息,而姜子牙說了一堆讓人聽不懂的文言文,「主與將,有陰符,凡八等……(後面都在講不同長度的棒子各自代表什麼意思)」、「諸有陰事大慮,當用書,不用符。書皆一合而再離,三發而一知。」大意是說,使用陰符,陰符有八種不同長度,各自代表不同的訊息,可以把戰場上的資訊轉成敵人看不懂的符號。而陰書呢,則是說機軍書要分成三份,每一份由不同的人傳遞,之後要重新拼湊在一起才能還原原本的資訊。


2. 密碼棒

自製的圖片,覺得自己弄了一個糟糕的東西

在古希臘,斯巴達人有一種奇特的加密方法,他們會先準備一條夾帶加密訊息的皮革(可以想成明文的字母被移位成讓人看不懂的密文),只要把這條皮革纏在一根木棒上,就能夠解讀上面的訊息(將字母移回原位),所以接受到密文的人需要拿同樣尺寸的木棒才能解密。


3. 豬圈密碼


圖片做太醜了真是不好意思。

早在1700年代,共濟會利用這種加密方法來保護一些祕密或重要訊息。在加密時,字母會題換成上圖中,字母對上的符號。拿維基百科上的的例子來舉例,明文「Star wars」的加密結果將呈現如下:


4. 培根密碼

               
A AAAAA G AABBA N ABBAA T BAABA
B AAAAB H AABBB O ABBAB U-V BAABB
C AAABA I-J ABAAA P ABBBA W BABAA
D AAABB K ABAAB Q ABBBB X BABAB
E AABAA L ABABA R BAAAA Y BABBA
F AABAB M ABABB S BAAAB Z BABBB

培根密碼是英國著名的法蘭西斯.培根發明的,加密時,每個英文字母(其實中文應該也行)都會轉換成上表顯示的五個字母(不就是二進位的0跟1換成A和B)。只是實際加密時其實更複雜,加密時會事先準備兩種字形,分別代表A和B,所以人們看到密文時可能只是覺得這篇文章怪怪的,怎麼有兩種字形,不知道其實它隱藏了祕密訊息。

舉例來說,A是正常字形,B是加粗字形(連逗號加密和句號都是密文的一部分),那就可以把LOVE加密成下面的訊息:真的有加密到嗎

路 阿姨洗路 阿姨洗鐵路 阿姨鐵路


5.戰國時代上杉氏使用的加密法

  1 2 3 4 5 6 7
1 i ro ha ni ho he to
2 chi ri nu ru wo wa ka
3 yo ta re so tsu ne na
4 ra mu u i no o ku
5 ya ma ke fu ko e te
6 a sa ki yu me mi shi
7 e hi mo se su n  

據說戰國時代的上杉曾使用上面的表格來加密訊息,這個表格中的文字,從左到右、從上到下,是按照伊呂波歌的歌詞來排序。順代一提,伊呂波歌是日本平安時代的和歌,全文以47個不重複的假名組成(上面表格多加了n),回想起以前當提督的日子了

如果想要加密的話,就從每個假名對到的索引來當密文,以a i shi te ru為例(羞恥心什麼的隨他去吧),因為a位在(6, 1),所以密文是61,所以整個明文會轉成61 44 67 57 24。


參考資料

密碼學歷史

密碼棒

豬圈密碼

伊呂波歌

陰符和陰書

Japanese cryptology from the 1500s to Meiji

培根密碼