希伯來也是同樣古老的文明,公元前21世紀,希伯亞民族發源于兩河流域的美索不達米亞的吾珥(Ur),在這批游牧民族為了尋找牧場而遷移,踏上迦南,巴勒斯坦的土地之后,他們被稱為希伯來,即迦南語“越河者”之意。而希伯來民族的偉大領袖亞伯拉罕的孫子雅各,在傳說中一次與神的角力中獲勝后,這個民族有了一個更加為人所知的名字--以色列,即“與神角力”之意,雅各也成為以色列的祖先。希伯來人開發出了三種加密法,稱為“atbah”、“atbash”和“albam”,是否覺得眼熟呢?丹·布朗的Fans一定想到了吧,《達芬奇密碼》中,達芬奇密碼筒中詩句的一句:“埃特巴什使道昭顯”(and atbash will reveal the truth to thee.)這里的埃特巴什正是指希伯來三種加密法中最為有名的atbash。在介紹這三種加密法前,先讓我們了解一下希伯來字母,希伯來字母共有22個:(雖然對丹·布朗的真實性很懷疑,但還是決定引用《達芬奇密碼》中的希伯來字母表)
A(Alef) B(Beit) G(Gimel) D(Dalet) H(Hei) V(Vav) Z(Zayin) Ch(Chet) T(Tet) Y(Yud) K(Kaf) L(Lamed) M(Mem) N(Nun) S(Samech) O(Ayin) P(Pei) Tz(Tzadik) Q(Kuf) R(Reish) Sh(Shin) Th(Tav)
這三種加密方式都是把字母兩兩配對后進行互相替換,atbash,即《達芬奇密碼》中的這種密碼,是將字母表顛倒后配對,其配對如下:
A B G D H V Z Ch T Y K
Th Sh R Q Tz P O S N M L
這種密碼顯然更容易被應用到拉丁字母當中,其實,這就是我們常說的字母倒序。:
A B C D E F G H I J K L M
Z Y X W V U T S R Q P O N
出一道例題來幫助理解:
密文:OLLP,GSV ERITRM HSZOO XLMXVREV ZMW YVZI Z HLM,ZMW GSVB HSZOO MZNV SRN VNNZMFVO
將密文中所有的字母用配對表中與之配對的字母代替后,不難得到
明文:look,the virgin shall conceive and bear a son,and they shall name him Emmanuel。(“必有童女懷孕生子,人要稱他的名為以馬內利?!边x自《圣經--馬太福音》第一章)
順帶一提,這是D最為常用的密碼,每個人都有自己的喜好,即對一種簡單密碼有著頻繁的使用,當然他們更多地把這種簡單密碼與其他密碼復合后再應用,D就曾經把字母倒序與柵欄、Playfair等密碼結合,出一些復合密碼的題目。
albam的配對表則是這樣的:
A B G D H V Z Ch T Y K
L M N S O P Tz Q R Sh Th
這是將字母表的后半部分直接移到下一行,這同樣適用于拉丁字母:
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
例題密文:NAQ LBH,ORGUYRURZ,VA GUR YNAQ BS WHQNU,NER OL AB ZRNAF YRNFG NZBAT GUR EHYRF BS WHQNU;SBE SEBZ LBH FUNYY PBZR N EHYRE JUB VF GB FURCUREQ ZL CRBCYR VFENRY.
同上題一樣,易得
明文:and you,Bethlehem,in the land of Judah,are by no means least among the rules of Judah;for from you shall come a ruler who is to shepherd my people Israel。(“猶大地的伯利恒啊,你在猶大諸城中并不是最小的,因為將來有一位君王要從你那里出來,牧養我以色列民?!边x自《圣經--馬太福音》第二章)
atbah碼,根據我手上的資料,我推測其配對表如下:
A B G D H Y K L M N S O
T Ch Z V H Th Sh R Q Tz P O
但是沒有任何證據說明這一點,我也不敢肯定,因為這種配對尚和部分資料沖突不符。和竹子商量了一下,決定這里先暫時跳過,等有了詳細且可靠的資料時,再出個補丁修正。這個配對表,各位看看就算了,不必注意。
在密碼發展的早期,希臘人無疑扮演了重要的角色,除了斯巴達人貢獻了天書這一最早的密碼之外,希臘人還創造了其它形式的密碼。
首先登場的是希臘方盤,這是一種古老的密碼,大約形成于公元前2世紀,有時也被稱為希臘棋盤,它使用一個5×5的棋盤式方格來加密,把字母按照順序填入,隨后使用這個字母所在的行和列,也就是坐標,來代指這個字母。你可能意識到一個問題,即26個字母如何能填入一個5×5的棋盤式方格?這個原因在于,希臘人并不使用一種擁有26個字母的語言。事實上,希臘字母只有24個(alpha,beta,gamma,delta,epsilon,zeta,eta,thet,iot,kappa,lambda,mu,nu,xi,omicron,pi,rho,sigma,tau,upsilon,phi,chi,psi,omega),因而可以成功填入這個棋盤。我們當然不會使用希臘語來傳遞信息,正如同上次的希伯來密碼一樣,我們希望這種密碼可以應用于拉丁字母,使得我們可以用英語,甚至是拼音來作為明文。在這里,通常將i和j填入一個方格內。構成方陣:
A B C D E
F G H I/J K
L M N O P
Q R S T U
V W X Y Z
每個字母由對應的坐標代替,比如T就加密為44, Terry用希臘方盤來加密的結果是4415424254。你不會對這種密碼感到陌生,如果你看過夏理的連鎖謎題帖,最后一題正是希臘方盤,夏理沒有依常規使用標準方陣,他去掉了方陣中的W,這個的提示是“它們共有25個,即便再加上一個它就成了前者的兩倍,把它們放在一個恰好可以容納它們的正方形里,此時真正的鑰匙就會出現”,是指W是之前的字母V的兩倍(明白么?看字母形狀),從而得到答案“SS.Vadine”。密碼不拘泥于其標準形式,這正是一個很好的例子,正如同標準的愷撒是后退三位,但是沒人這么做,這使得密碼有更多變化,本章正希望向你闡明這一點。
那么我們來看看這個方盤有什么可變化的余地。首先,密碼本身的加密法取決于那個方陣的排布,夏理沒有使用標準排布(當然他對這一點給出了提示,這是個關鍵,密碼需要變化,但如何使這個密碼不像有些帖子一樣石沉大海,一個好的提示是關鍵,以后如果有機會我再討論這個問題),使用一個方陣進行加密時,如何決定其排布呢?
第一種方法是如夏理一樣,去掉一個字母,使其形成完美的矩陣造型,這里有26種手法,或者說26個密鑰。這里有一個問題,我們將缺少一個字母的加密法,我們的明文如果出現這個字母,我們毫無辦法。(顯然你不能去掉像E、S這樣的字母,我們的明文幾乎不可能避開它們)
第二種,調整字母順序,為何一定要按照字母順序填寫方盤呢?我們當然可以按照自己喜歡的順序填寫,比如鍵盤順序(QWERTYUIOPASDFGHJKLZXCVBNM),一個常見的手法?;蛘呤褂藐P鍵字順序,我會在關鍵字加密法中詳細介紹這種字母排列。
第三種,我們還可以改變方盤的形狀,一個5×5的方陣固然好,但是變成4×7的也不壞,我們還可以多出三個方格放其它的東西(標點?常用詞組?)。
以上只是隨意舉例,當你希望并思考變化時,你會發現一種極其簡單的密碼也有著復雜的變化,T拋磚引玉,希望引出你們的無限創意,本章的主題就在于此,希臘的智慧,也是你們的智慧。
現在來看看另外一種密碼,公元前4世紀,希臘人艾奈阿斯發明了艾奈阿斯繩結,這種密碼使用一根繩子來傳遞信息,繩子上系著距離不等的繩結,而兩個繩結之間的距離代指一個字母,這段距離當然是事先規定好的。(我很懷疑他們是否能準確的打這個結,以至不產生誤解)
這種看似不能被我們在網絡上應用的密碼有什么意義呢?我們試著在這里做一點變化:aaaaaaaaaaaaaaaaaaaaaaa sssss ddddddddddddddddddd ffffffffffffffffff ggggggggggggggggggggggggg。如果我說這還是我的名字,你是否能明白其加密原理?每兩個空格之間的字母個數是指字母序數,這還是艾奈阿斯繩結。當然這個密文太長了,五個字母的明文被加密成了七八十個字母的密文,我們可以再看看另一種變化:aa bbbbb abbbbbbbb abbbbbbbb aabbbbb,還是名字,這里用a的個數代指十位,b做個位。當然還可以更短:aa b abccc abccc aab,a、b、c分別代表10、5、1。