古代是怎麼做到讓傳遞的信息保密的呢?
感覺古代要做到信息加密很難,比如傳遞軍隊調動機密,是不是送信的人被抓了,信被收繳信息就暴露了呢?有沒有古人發明的很聰明的方式?(原問題是中國古代怎麼做到讓信息保密,但現在想拓寬問題,於是擴大至整個世界歷史)
謝邀。
就編碼與加密法來說,世界範圍中有歷史可考最早發現的是在古埃及人的墳墓里,後來希伯來人又開發了三種以替換為基本工作原理的加密法。另外,希臘人曾經有過一種辦法,將奴隸的頭髮剃光後,把消息刺在頭上待頭髮長好以後再派出送信;而斯巴達人則最早將加密法用于軍事調動,他們使用一種叫Skytale的工具把原文打亂順序後重新排列,這實際上一種換位加密法。
中國古代方面,周代兵書《六韜》就有《陰符》與《陰書》兩篇,其原文如下:
太公曰:主與將,有陰符,凡八等。有大勝克敵之符,長一尺。破軍擒將之符,長九寸。降城得邑之符,長八寸。卻敵報遠之符,長七寸。警眾堅守之符,長六寸。請糧益兵之符,長五寸。敗軍亡將之符,長四寸。失利亡士之符,長三寸。諸奉使行符,稽留,若符事聞,泄告者,皆誅之。八符者,主將秘聞,所以陰通言語,不泄中外相知之術。敵雖聖智,莫之能識。
這大致是以一種象徵符號形象傳遞密文的做法。
公曰:諸有陰事大慮,當用書,不用符。主以書遺將,將以書問主。書皆一合而再離,三發而一知。再離者,分書為三部。三發而一知者,言三人,人操一分,相參而不相知情也。此謂陰書。敵雖聖智,莫之能識。
這大致是一種將明文打亂順序分割的加密方法。
而在宋代兵書《武經總要》里,將陰符略作了改進,這個不必詳談,值得一提的是「字驗」這種加密方式:
預先約定40 種不同的軍情,然後用一首含有40 個不同字的詩,令其中每一個字對應一種軍情。傳送軍情時,寫一封普通的書信或文件,在其中的關鍵字旁加印記。將軍們收到信後,找出其中加印記的關鍵字,然後根據約定的40 字詩來查出該字所告知的情況,還可以在這些字上再加印記,以表示對有關情況的處理,並令軍使帶回。這大致上就是現在翻閱密碼本編譯密文消息的雛形了。
當時密碼學課上還講了一種方法是把紙條繞在一根粗細不均勻的木棍上然後寫上文字。紙條到地方後用一根相同的木棍繞上就可以讀出內容了……本質上還是一種簡單的移位變換,或者說是一種單表代替密碼
另外還有凱撒發明的密碼,看過《數字城堡》的應該都有印象的。其本質也是移位。
總的來說古代基本上以單表代替為主~至於引入密鑰概念的多表代替那是後話了……
手機碼字排版混亂,各位見諒了~
這個學期上了密碼學,不斷更新中。
首先講一講最有名的凱撒大帝的加密法(Caeser Cipher):
比如Alice 要給Bob發一個信息, 在發這條信息之前,Bob和Alice在一起的時候溝通過,用3作為解碼數字。
當Alice要給Bob發信息:
Meet me at the elephant lake
然後Alice要做的是把每個字母按照26個字母順序表,每個向後位移3位。
M位移三位變成:P
E位移三位變成:E
E位移三位變成:E
T位移三位變成:T
遵循上面的方法,meet me at the elephant lake, 會最後變成 phhn ph dw hohskdqw odnh
然後Alice把這封內容是:phhn ph dw hohskdqw odnh 的信通過快馬發給Bob. 即使這封信被送信的人看了,或者被敵軍截獲,那麼他們也很難弄懂信的內容到底是什麼。
當信送到Bob那裡的時候,Bob用之前跟Alice約定好的數字3, 把字母重新位移,最後的到:
meet me at the elephant lake的信息。
推薦圖書,《可怕的科學——密碼全破譯》
包含「寫在光頭上,再塗抹生髮水」,「圖形替換」,「幾種經典密碼」,「破譯入門」等
推薦閱讀:
※為什麼銀行還在使用六位數字取款密碼?
※丹布朗《數字城堡》中的「旋轉明碼電文」能實現嗎?
※暴力密碼破解器 ocl-Hashcat-plus 支持每秒猜測最多 80 億個密碼,意味著什麼?
※為什麼這麼多人蹭網?
※程序員喜歡設置怎樣的密碼?