澎湃問吧
世界著名密碼史學(xué)家戴維·卡恩曾說:“人類使用密碼的歷史幾乎與使用文字的時(shí)間一樣長”,這意味著人類密碼領(lǐng)域的較量已近五千年。提及“密碼”一詞,大多數(shù)人會(huì)想到日常所用的手機(jī)密碼、銀行卡密碼、二維碼等等。其實(shí),這些散見于我們生活中的各類登錄密碼,嚴(yán)格來說只是驗(yàn)證口令,是密碼技術(shù)應(yīng)用的冰山一角。
密碼起源可以追溯到何時(shí)?在歷史長河中,密碼在戰(zhàn)爭、商業(yè)、外交和間諜活動(dòng)中發(fā)揮了怎樣的作用?有哪些竊密陰謀和風(fēng)云故事?本期澎湃問吧邀請《破譯者:人類密碼史》責(zé)編李曉凌,聊聊世界密碼學(xué)領(lǐng)域的故事。
歷史上最早的密碼
@ donottag:歷史上第一個(gè)密碼長什么樣?
李曉凌 :約4000年前,尼羅河如緞帶般向前流淌,河畔坐落著一個(gè)名為梅內(nèi)特·庫孚的小鎮(zhèn),鎮(zhèn)里有一個(gè)高明的書寫員,他用象形文字記下了他主人的生平,從此開創(chuàng)了有文字記載的密碼學(xué)史。這可能是較早的有文字記載的記錄,沒有記載的就無法考證了。
@Chelsea:最早的密碼是在什么情境下誕生的?
李曉凌:最早發(fā)明密碼的人?這個(gè)問題相當(dāng)于問誰是第一個(gè)吃螃蟹的人,著實(shí)很難考證。不過我可以告訴您很多有名的密碼專家,如西方密碼學(xué)之父萊昂·巴蒂斯塔·阿爾貝蒂,法國密碼學(xué)之父安托萬·羅西尼奧爾,英國密碼學(xué)之父約翰·沃利斯,美國編碼學(xué)開創(chuàng)者托馬斯·杰弗遜,現(xiàn)代密碼學(xué)先驅(qū)奧古斯特·克爾克霍夫,一戰(zhàn)中最偉大的密碼分析家喬治·潘萬,美國密碼破譯之父、黑室(密碼局)創(chuàng)始人赫伯特·雅德利等等,他們背后都藏著很多精彩的故事。
我認(rèn)為密碼發(fā)明的目的是為了保密,不讓信息被通信雙方之外的第三人知曉。發(fā)信人將明文通過密鑰加密成密文,傳遞給收信人,這樣除了收信人之外的其他人就無法解讀了。但是,越來越多的人想嘗試在不知道密鑰的情況下破解密碼,于是就發(fā)生了許許多多的密碼破譯故事。
@ 西瓜可樂味:密碼最初的設(shè)定是怎樣讓其他人能懂得其中規(guī)則,并且進(jìn)行破譯呢?
李曉凌:編制密碼時(shí),一般有三個(gè)要素:明文、密鑰和密文。明文是指需要加密的信息,通常用通信雙方母語寫就;密鑰,多數(shù)情況下使用單詞、短語或數(shù)字;通過密鑰加密后得出的秘密信息就成了密文。包裹在秘密外衣下傳遞出去的信息,就叫“密報(bào)”、“密信”或“密電”。一般來說,只有收信人才知道密鑰,從而解密出信息。但是不排除被密碼破譯者從半道截獲并破開,而破譯者是不知道密鑰或密碼系統(tǒng)的人(第三方或“敵人”)。破譯者和編碼者的較量一直貫穿在人類歷史發(fā)展的長河中。
@道遠(yuǎn)心寬:您見過最離譜的密鑰是什么?
李曉凌:一般來說密鑰是由數(shù)字、字母和符號(hào)構(gòu)成,利用它們出現(xiàn)的頻率、順序等進(jìn)行加密。在分析字母頻率時(shí),作者分享了很有意思的一本書:《蓋茲比——5萬個(gè)無字母E單詞寫成的故事》(Gadsby, A Story of Over 50,000 words Without Using the Letter E)。這是個(gè)令人驚嘆的絕活。不相信的讀者請?jiān)囋嚹呐率窃煲粋€(gè)沒有e的句子要花多長時(shí)間?!渡w茲比》的作者歐內(nèi)斯特·文森特·賴特(Ernest Vincent Wright),一個(gè)不屈不撓的白發(fā)老者,列舉了在這項(xiàng)自找麻煩的工作中遇到的問題。他要避免大部分過去式動(dòng)詞,因?yàn)樗鼈円?ed結(jié)尾。他永遠(yuǎn)不能用the或代詞he、she、they、we、me和them,并且不得不排除一些似乎不可或缺的動(dòng)詞,如are、have、were、be 和been及一些基本單詞如there、these、those、when、then、more、after 和very。也因此不能用6到30間的數(shù)字,寫成數(shù)字也不行,因?yàn)樗鼈兤磳懗鰜砭蜁?huì)出現(xiàn)e。
密碼使用的多重場景
@ 澎湃網(wǎng)友niIrqe:怎樣讀懂摩斯電碼?戰(zhàn)爭中還有哪些常用的密碼?
李曉凌:關(guān)于莫爾斯電碼的一些基本知識(shí):通過點(diǎn)、劃、點(diǎn)和劃之間的停頓等等來表達(dá)不同的意思。戴維·卡恩曾舉例:若一個(gè)詞里出現(xiàn)兩個(gè)空格錯(cuò)誤,結(jié)果可能與原文相去甚遠(yuǎn),如BANEFUL(有害的)(—••• •— —• • ••—• ••— •—••)可能變成DUTIFUL(盡職的)(—•• ••— — •• ••—• ••— •—••)。想完全讀懂莫爾斯電碼,恐怕不是一時(shí)半會(huì)兒就能行的,唯有下功夫多學(xué)習(xí)研究。戰(zhàn)爭中使用的密碼則種類繁多,如大西洋密碼戰(zhàn)中的恩尼格瑪密碼、二戰(zhàn)中的紫密等等。
使用中的恩尼格瑪密碼機(jī) 1943年
@oxford: 我國在軍事上最早使用密碼是在什么時(shí)候?有哪些密碼類型?
李曉凌:在軍事應(yīng)用中,古代中國11世紀(jì)編纂的《武經(jīng)總要》(Wu-ching tsung-yao)記載了一種真切小巧的代碼。按照一張寫有40個(gè)條目的清單,通信雙方用一首詩的前40個(gè)字代表各條目,這些條目的內(nèi)容不等,其中包括請求支援弓和箭、遞送捷報(bào)等。例如一個(gè)副將欲請箭,就把相應(yīng)的字寫在一封普通書信的特定位置,字上蓋自己的印。將軍可以寫下同樣的字,蓋上自己的印以示批準(zhǔn),或者只蓋印不寫字表示拒絕。即使書信被人截取,保密內(nèi)容依然不會(huì)被泄露。
在中國古代,還有一些使節(jié)和將領(lǐng)主要通過口述傳信,信差記住信息然后轉(zhuǎn)達(dá)。至于書面函件,中國人往往用極薄的帛或紙寫就,卷成球、封入蠟丸。信差把蠟丸藏在身上,或塞進(jìn)直腸,或吞入腹中。這是隱寫術(shù)的一種形式。傳遞消息過程中,如果某人的名字里有“菊”字,通信人會(huì)把他說成“黃花”,這是使用了隱語。這些只有發(fā)信人和收信人才知曉。
@一只餃子:銀行卡密碼只有6位數(shù),真的能保障安全么?
李曉凌:我們所謂的銀行卡密碼,其實(shí)是“口令”(password)。暴力破解沒有規(guī)律的6位數(shù)口令平均需要嘗試50萬次,假設(shè)銀行每天給你三次嘗試機(jī)會(huì),破解一則密碼需要456年多。
@二炭:李老師,怎樣設(shè)置密碼才安全而又不易被自己忘記?
李曉凌:即使別人知道你的銀行卡密碼是你家狗狗生日,他也查不到,哈哈。
《破譯者:人類密碼史》,[美]戴維·卡恩(David Kahn)著,朱鴻飛、張其宏譯,金城出版社2021年6月。
責(zé)任編輯:鞠文韜
校對:欒夢






