二次元世界的小伙伴對“風(fēng)林火山”這個詞不會感到陌生,日本戰(zhàn)國時期的一方諸侯武田信玄把“疾如風(fēng)、徐如林、侵掠如火、不動如山”印在自己的軍旗上,幾百年后又通過影視劇和動漫作品變得廣為人知。這句話實際上出自《孫子兵法·軍爭》中的名句“其疾如風(fēng)、其徐如林、侵掠如火、不動如山”,意思也不難理解——一支理想的軍隊,就應(yīng)該做到進(jìn)攻時要像風(fēng)和火一樣迅疾,防守時要像樹林和大山一樣整齊和穩(wěn)定。
▲其實后面沒有出現(xiàn)的兩句可能更加重要
不過,這段話后面還有兩句——“難知如陰,動如雷震”,說的就不僅僅是戰(zhàn)爭上的事了,要做到“難知如陰”,除了臨場戰(zhàn)術(shù)意義上的隱蔽之外,對己方信息的保密是更為重要的環(huán)節(jié)。因為戰(zhàn)爭打的就是突然性,展開陣勢打堂堂之陣,是成本最高的一種,如果能隱藏好自己的真實意圖,打?qū)Ψ揭粋€措手不及,就可以用小的代價換取大勝利。所以,在保密方面下點功夫,花點成本,是很劃算的。
這個道理,自從有戰(zhàn)爭以來,就為天下的兵家所懂得——不懂的都被滅了,《孫子兵法·用間》中總結(jié):“事莫密于間”、“間事未發(fā)而先聞?wù)?,間與所告者皆死”。道理不難懂,不過應(yīng)該以怎樣的具體措施來落地,那辦法可就多啦。
▲“陰符”記載于古兵書《六韜》中相傳為姜太公所發(fā)明
相傳在中國周朝,就出現(xiàn)了“陰符”和“陰書”兩種保密方法。所謂陰符,就是事先制作一些長度不同的竹片,然后約定好每個長度的竹片代表的內(nèi)容,比如,三寸表示潰敗,四寸表示將領(lǐng)陣亡,五寸表示請求增援,六寸表示堅守……一尺表示全殲敵軍等等。這種“陰符”無文字,無圖案,只有前方少數(shù)將領(lǐng)和后方指揮人員了解含義,即使傳令兵被俘或叛變,敵人也搞不懂幾張長短不一的竹片到底代表了什么。
▲竹簡可拆,使陰書成為可能
陰符保密性肯定不錯,不過能傳達(dá)的信息也有限,要是戰(zhàn)場有超出事先預(yù)料的情況,陰符也就表達(dá)不了。為了彌補這個缺點,又出現(xiàn)了“陰書”,即把信息以明文寫在竹簡或木簡上,然后將竹簡或木簡隨機分為三份,由三名傳令兵各執(zhí)一份分別送達(dá)。收件人收齊后,再把三份“陰書”拼合起來,完整內(nèi)容就出現(xiàn)了。這種“陰書”能傳遞更為復(fù)雜的信息,即使某一信使被敵方抓住,敵方也得不到完整的情報。
“陰書”兼顧了保密性和靈活性,但也同時也是為了靈活性而降低了保密性,因為如果其中一份落入敵手,雖然信息不全,但敵人也可以猜到一二,總歸是有隱患。到了宋代,為了避免這種情況,出現(xiàn)了升級版的陰符——字驗。這種方法見于宋代軍事類書《武經(jīng)總要》,大致過程是這樣的——
先收集軍事中常用的40個短語,然后給每個短語分別編碼,比如:1.請弓;2.請箭;3.請刀;4.請甲……35.戰(zhàn)大捷;36.將士投降;37.將士叛;38.士卒??;39.都將病;40.戰(zhàn)小勝。將領(lǐng)帶兵出發(fā)前,后方指揮機關(guān)同這位將領(lǐng)約定用一首四十字的五言律詩作為密鑰,并發(fā)給將領(lǐng)一本有40個短語編碼順序的密碼本,編碼順序可變化,不同的編碼順序可形成若干不同的密碼本。
如以《詠史》這首詩為密鑰:“漢家青史上,計拙是和親。社稷依明主,安危托婦人。豈能將玉貌,便擬靜胡塵。地下千年骨,誰為輔佐臣?”假如需要補充箭矢,將領(lǐng)就從密碼本中查出“請箭”的編碼是“2”,詩中第2個字是“家”字,于是,將領(lǐng)就把“家”字寫入一件無關(guān)機密的普通信件中,在“家”字蓋上印章。后方在收到信件后,查出“家”字在詩中的順序是第2個字,再對照密碼本上的編碼譯出“請箭”的信息,然后就可以決定下一步的行動了。這種辦法非常巧妙,由于信件無關(guān)機密,即使關(guān)信人叛變或被被俘,均不能從中解讀出有用的信息,蓋了印章的字更是會使人不明就里,保密的目的也就達(dá)到了。
南宋還出現(xiàn)了密寫的先進(jìn)技術(shù)。據(jù)《三朝北盟匯編》記載,公元1126年,開封被金軍圍困之時,宋欽宗“以礬書為詔”。因為“以礬書帛,入水方見”,只有把布帛浸入水中,隱藏其上的字跡才會顯露出來,金人不知道此術(shù),也就無從知道情報的內(nèi)容了。除此之外,還有譬如將情報寫于絲綢或紙張上,然后搓成圓球用蠟裹住藏在信使身上或?qū)⑵渫倘敫怪袀鬟f,這種保密性傳遞方法一直沿用至清朝。
▲凱撒密碼就是簡單的移位,在當(dāng)時是夠用了
古代的歐洲文明中,也同樣有保密技術(shù)出現(xiàn)。傳說在古希臘時期就用過一種笨辦法——把奴隸的頭發(fā)剃光,在頭上寫字,頭發(fā)長出來后再派出去傳遞秘密情報(奴隸:MD洗頭都不行……),可謂最古老的“加密”了。公元前4世紀(jì)的伯羅奔尼撒戰(zhàn)爭期間,希臘人又用了在腰帶上書寫移位后的文字來加密傳遞情報的方法。古羅馬時期發(fā)明了“愷撒密碼”,就是把明文中的各個字母換成錯開一定間隔,形成秘文傳遞。
到16世紀(jì),西班牙、英、法、意等國家之間相互競爭劇烈,情報活動也就隨之變得非常頻繁,在其利用使館進(jìn)行情報傳遞的過程,各國使節(jié)就已普遍使用編制的密碼書寫信件來向國內(nèi)報告情況,當(dāng)時威尼斯公國駐英國使節(jié)米凱爾所用的密碼,英國人絞盡腦汁也沒能搞明白,直至3個多世紀(jì)后的1863年才被人破譯。對于加密和破譯的需求,甚至直接催生了一門新的學(xué)科——“密碼學(xué)”。
第三任美國總統(tǒng)杰弗遜對密碼學(xué)很有研究,于1795年發(fā)明了一種加密裝置,被稱為“杰弗遜圓盤”(Jefferson disk),或叫做“杰弗遜轉(zhuǎn)輪加密器”(Jefferson wheel cipher)。這個裝置有36片同樣大小的木制轉(zhuǎn)輪,套在一根鐵桿上,每片轉(zhuǎn)輪上的圓周邊緣上刻有亂序的26個英文字母表。
進(jìn)行秘密通信的雙方必須各自擁有完全一樣轉(zhuǎn)輪加密器。當(dāng)要把一段文字(不超過36字)秘密通知對方時,只需轉(zhuǎn)動加密器上的各片轉(zhuǎn)輪,使這段文字正好出現(xiàn)在同一行上,這時轉(zhuǎn)輪上排列的其他25行都是無意義的亂碼;此時發(fā)信人抄寫其中任意一行的亂碼,關(guān)交給信使傳送(加密)。對方收到亂碼信后,只需拿出自己保存的同樣的裝置,轉(zhuǎn)動上面各片轉(zhuǎn)輪,讓它們的排列使得這段亂碼正好出現(xiàn)在同一行上,然后他查看其他25行上的內(nèi)容,其中必然有一行會顯示出真正的信息(解密)。
杰弗遜加密器屬于“多表替換”型加密,很難被破解,除非能得到加密裝置。據(jù)說美國軍隊直到上世紀(jì)60年代仍然在使用。當(dāng)然,這種加密器的缺點也是很明顯的,即它每次只能傳送簡單的信息(字長不能超過轉(zhuǎn)輪的片數(shù)),而且參與通信的各方不能太多。
▲這種密碼機裝備德國海軍
使英國從1942年2月到12月都沒能
解讀德國潛艇的信號
當(dāng)然,最為人所知的加密裝置,當(dāng)非二戰(zhàn)時期德國的“恩尼格瑪”密碼機莫屬。這種密碼機最初并不是軍用品,而是在20年代早期被用于傳遞商業(yè)信息(商場如戰(zhàn)場)。恩尼格瑪?shù)脑聿⒉粡?fù)雜,主要由鍵盤,擾頻器,顯示屏三部分組成,鍵盤輸入字母,擾頻器為字母加密,顯示屏顯示字母(“顯示屏”是由一系列用燈照亮的字母組成)。
▲恩尼格瑪?shù)臉?gòu)造圖
最關(guān)鍵的是擾頻器,也有三個主要部分,插線板-轉(zhuǎn)輪-發(fā)射器。通過插線板可以講字母對換,然后經(jīng)過三個聯(lián)接在一起的轉(zhuǎn)輪,每輸入一次,轉(zhuǎn)輪往前進(jìn)一步,則下一個文字轉(zhuǎn)輪狀態(tài)就已經(jīng)變化了,最后是反射器,將輸入文字變換為另一個文字返回。最初的恩尼格瑪機通過在插線板中交換6對字母,再加上三個轉(zhuǎn)輪,總共可以生成的密匙總量是10的16次方。也就是說如果每一秒鐘嘗試一個密匙,也需要3億年時間才能全部嘗試完,可以說恩尼格瑪機實現(xiàn)了加密者的夢想。
▲圖靈用來破譯的機器
可見解密比加密難多了
不過,魔高一尺道高一丈,這個堪稱完美的加密機最后由于情報泄露(構(gòu)造被賣給了英國)、操作員的失誤、使用步驟錯誤、機器或密碼本被繳獲等原因,再加上英國擁有偉大的數(shù)學(xué)家圖靈,恩尼格瑪最終還是被成功破譯,這也成為戰(zhàn)爭史乃至科學(xué)史上的一段傳奇。
除此以外,歷史上還出現(xiàn)過各種加密的奇招,比如我們非常熟悉的美軍“風(fēng)語者”——以印第安那瓦霍族人的土語為基礎(chǔ)編制密碼,由于語言的罕見,可謂密上加密。其實美國在一戰(zhàn)時間就使用過這種方法,1918年9月,在第二次索姆河戰(zhàn)役中,美國第30步兵師將一組切諾基族士兵用于電文發(fā)送,開辟了美軍將美洲土著語言用于秘密通訊的先例。美軍第36步兵師也從實踐中發(fā)現(xiàn)了印第安語的妙用,安排14名巧克陶族士兵接受電訊訓(xùn)練,幫助美軍在法國默茲-阿貢戰(zhàn)役中贏得了幾場重要戰(zhàn)斗。
▲監(jiān)聽到在正在用印第安語通話的美軍
日軍一臉懵逼
無獨有偶,在抗日戰(zhàn)爭中,來自西南的滇軍同樣用過這種土法,全部使用白族士兵當(dāng)通訊員,就算直接明語通話被日軍監(jiān)聽到也聽不懂,在八十年代的對越作戰(zhàn)中,解放軍干脆讓溫州籍戰(zhàn)士充當(dāng)通訊員,越軍長年與中國對抗,能聽懂西南方言、粵語和普通話,但依然在溫州話面前敗下陣來——保持我國境內(nèi)語言的多樣性還是很重要的,因為不知道什么時候,方言或少數(shù)民族語言就會成為自帶加密屬性的“戰(zhàn)略資源”。
加密是為了保住秘密,如果加密強度不夠,或者因為別的原因被破解,后果也就非常嚴(yán)重。甲午戰(zhàn)爭中,清政府使用的密碼過于簡單,被日本輕松破譯,不光在戰(zhàn)爭中喪師失地,在談判中也被對手牢牢控制。德軍的恩尼格瑪被破譯后,許多U艇也就隨之暴露了位置,被盟軍反潛兵力一艘接一艘的送進(jìn)了海底,這些教訓(xùn)不可謂不慘痛。
▲因為暴露位置而遭到追殺的潛艇
在我們今天的生活中,仍然大量充斥著各種密碼,你的銀行卡、手機、郵箱、社交賬號……無不要使用密碼來保證信息和財產(chǎn)安全,一旦泄露,這后果難以想象。當(dāng)然,今天我們所使用的加密技術(shù)目前還是值得信任的,只要不使用過于簡單的密碼,并且確保不會外泄,通常也不會有什么問題。
其實,密碼的存在,更多的是需要一層屏障,保護外來入侵,防止有心無心地窺探。愿你工作中也處處有安全防護!