陸繼宗?雋武
陸繼宗
上海師范大學(xué)物理系教授(已退休)。曾任物理系系主任,上海物理學(xué)會(huì)副理事長(zhǎng)。
美國(guó)曾拍了一部別出心裁的偵破系列劇,名為《Numbers》,直譯意思為“一些數(shù)字”,中文意譯為《數(shù)字追兇》。劇中有兩個(gè)主要人物,一為聯(lián)邦調(diào)查局特工丹·埃普斯,一為他的弟弟——數(shù)學(xué)家查利。每一集都圍繞查利如何用他掌握的數(shù)學(xué)知識(shí)和數(shù)學(xué)工具來幫助哥哥破獲刑事兇案,使數(shù)學(xué)成為協(xié)助破案的利器?!稊?shù)字追兇》第一季第五集《首要嫌疑人》講述的是一起有關(guān)編碼解碼的數(shù)學(xué)理論的綁架案。
綁架小女孩疑案
在這集電視劇中,一對(duì)父母為他們五歲大的女兒慶祝生日時(shí),小女孩被綁架了。正當(dāng)?shù)ず退耐聜兊脚⒓伊私馇闆r時(shí),她的父親接了一個(gè)電話后,突然表示不希望丹和他的聯(lián)邦調(diào)查局團(tuán)隊(duì)介入這個(gè)綁架案。
小女孩被綁架
丹感到事有蹊蹺,而且又發(fā)現(xiàn)這個(gè)女孩的父親依桑是一名數(shù)學(xué)家,于是他就請(qǐng)求查利幫助調(diào)查。到女孩家中,查利看到一塊白板上有一些數(shù)學(xué)式,是依桑隨手寫下的。查利知道這是數(shù)學(xué)上著名的黎曼猜想的式子,這說明依桑正在研究黎曼猜想。
黎曼猜想是一個(gè)世界著名數(shù)學(xué)難題,150多年來一直未被破解,以致在2000年被列為千禧年問題之一。所謂千禧年問題,是時(shí)值世紀(jì)之交的2000年,由國(guó)際著名數(shù)學(xué)家組成的一個(gè)專家小組列出的7個(gè)尚未解決的數(shù)學(xué)問題,并且懸賞100萬美元征求解法。任何人只要破解其中的一題,就能得此巨額獎(jiǎng)金。其實(shí),破解黎曼猜想不僅可以聲名大振并獲得巨額獎(jiǎng)金,更為重要的是還能得到一個(gè)破解加密系統(tǒng)密碼的方法。
當(dāng)?shù)姆N種蛛絲馬跡中確定了綁架者之一的身份,并了解到綁架者并非索要贖金,他們的計(jì)劃是“破解世界上最大的金融秘密”,綁架依桑女兒的目的就很清楚了——綁架者就是想得到依桑解決黎曼難題的方法,利用它去入侵美國(guó)聯(lián)邦儲(chǔ)備委員會(huì)的計(jì)算機(jī)網(wǎng)站,獲取諸如何時(shí)加息等極其重要的核心機(jī)密,從而能獲得幾百萬美元甚至更高的收益。丹決定讓依桑向這幫家伙提供他的研究結(jié)論,從而讓他們能夠進(jìn)入美聯(lián)儲(chǔ)網(wǎng)站(其實(shí)是丹他們偽造的),以便丹的團(tuán)隊(duì)同時(shí)進(jìn)行電子跟蹤,抓住這些竊賊。查利發(fā)現(xiàn)在依桑的解決方案中有一個(gè)重要錯(cuò)誤,其實(shí)依桑并未真正解決黎曼難題。于是,丹設(shè)計(jì)了一個(gè)具體的方案,即一個(gè)愚弄綁架者的方法:一方面設(shè)置一個(gè)假的美聯(lián)儲(chǔ)網(wǎng)站,另一方面讓依桑提供一個(gè)竊賊們所要求的互聯(lián)網(wǎng)解密的假密鑰,由此追蹤到他們的所在位置以解救依桑女兒。
查利看到一塊白板上有一些數(shù)學(xué)式
為了破案的需要,查利給聯(lián)邦調(diào)查局的特工們講解了互聯(lián)網(wǎng)的加密原理?,F(xiàn)在主要的加密方法是利用大數(shù)分解成素?cái)?shù)的難度(這在后面會(huì)作簡(jiǎn)單介紹)。眾所周知,由兩個(gè)已知的素?cái)?shù)得到它們的乘積(合數(shù))是很容易的,不論這兩個(gè)素?cái)?shù)有多大,把它們相乘就可以得到乘積。但是反過來——即把此乘積分解為兩個(gè)素?cái)?shù)——卻異常困難?,F(xiàn)在的加密系統(tǒng)就是利用這個(gè)特性進(jìn)行加密的。解密過程就是從一個(gè)乘積尋找出兩個(gè)素?cái)?shù)因子。在這個(gè)故事中,查利和依桑一起將依桑的解法轉(zhuǎn)變成了一個(gè)算法,并把這個(gè)算法提供給了綁架者,讓他們利用這個(gè)算法得到密鑰。查利斷定綁架者們不會(huì)擁有超級(jí)計(jì)算機(jī),他們只能將許多臺(tái)PC機(jī)連起來,構(gòu)成一臺(tái)超級(jí)計(jì)算機(jī)來運(yùn)算此算法,才能得到破解網(wǎng)站的密鑰。由于多臺(tái)PC機(jī)同時(shí)運(yùn)轉(zhuǎn)會(huì)散發(fā)大量熱量,竊賊們就需要買多臺(tái)空調(diào)機(jī)散熱,而且至少需要運(yùn)行好幾個(gè)小時(shí)。這樣一來,不但使得丹的團(tuán)隊(duì)有了偵查的目標(biāo)——多臺(tái)空調(diào)機(jī),還為他們爭(zhēng)取了時(shí)間。最后,按照這個(gè)方案,聯(lián)邦調(diào)查局果然引誘竊賊上鉤,將他們一網(wǎng)打盡,順利地解救了被擄去作為人質(zhì)的小女孩。
如何遏制網(wǎng)絡(luò)犯罪?
像通常那樣,《數(shù)字追兇》劇中的陳述都是在數(shù)學(xué)上有意義的,也有真實(shí)背景的故事。本集的基本前提是:黎曼問題的一個(gè)解,非??赡軙?huì)導(dǎo)致現(xiàn)在所用的保持互聯(lián)網(wǎng)秘密的方法崩潰。
現(xiàn)在偷錢并不需要槍和刀,一臺(tái)廉價(jià)的PC機(jī)和互聯(lián)網(wǎng)的一個(gè)連接就能偷走大量的錢。這叫做網(wǎng)絡(luò)犯罪,是一種新的犯罪方式,不僅案例多,而且還在日益增長(zhǎng)。它包括范圍廣泛的非法活動(dòng):諸如軟件盜版、音樂盜版、(多種形式的)信用卡詐騙、身份詐騙、股票操縱、公司間諜以及“釣魚網(wǎng)站”(假冒從一個(gè)金融機(jī)構(gòu)給計(jì)算機(jī)用戶發(fā)送電子郵件,目的是使收件人泄露他們的銀行信息和其他個(gè)人資料)等。我們中國(guó)屢屢發(fā)生的金融詐騙事件,從廣義上說也是網(wǎng)絡(luò)犯罪。
關(guān)于網(wǎng)絡(luò)犯罪的猖獗程度,尚無可靠的數(shù)據(jù),因?yàn)樵S多銀行和互聯(lián)網(wǎng)商務(wù)公司對(duì)這樣的信息往往三緘其口,以避免造成你的金錢或信用卡號(hào)碼在他們手中不安全的印象。已有估計(jì)認(rèn)為,網(wǎng)絡(luò)犯罪一年的收益在1,000億美元以上。如果這是真實(shí)的,它將超過世界上非法毒品銷售的收益。不管實(shí)際的數(shù)字如何,網(wǎng)絡(luò)犯罪足以稱得上是一個(gè)重大問題,美國(guó)司法部和聯(lián)邦調(diào)查局兩個(gè)部門都有整套班子盯著這類犯罪活動(dòng)。
把注意力集中在網(wǎng)絡(luò)犯罪上的執(zhí)法人員,大多在工作中使用各種數(shù)學(xué)工具。他們?cè)谶@一領(lǐng)域,天才般地使用一些深?yuàn)W的數(shù)學(xué)知識(shí),已經(jīng)取得了重大的進(jìn)展,這些成果為互聯(lián)網(wǎng)通訊的安全提供非??煽康谋U?。但是道高一尺,魔高一丈,犯罪分子也在利用種種手段與執(zhí)法人員較量。
從古到今的加密方法
當(dāng)你使用自動(dòng)取款機(jī)從銀行賬戶上取錢,或向網(wǎng)絡(luò)商家發(fā)送你的信用卡卡號(hào)和密碼時(shí),你當(dāng)然會(huì)認(rèn)為,只有認(rèn)定的接受人才能獲得你所輸出的詳情,不允許未授權(quán)的第三方“竊取”你發(fā)送的這些電子信息。然而,互聯(lián)網(wǎng)是一個(gè)開放系統(tǒng),這意味著組成網(wǎng)絡(luò)的千百萬臺(tái)計(jì)算機(jī)之間的連接是公開的?;ヂ?lián)網(wǎng)信息交流通道的安全保障只能借助于加密——即“改變”此信息,使得未經(jīng)授權(quán)的第三方即使竊取到了所發(fā)射的信號(hào),也搞不清它的含義。
加密的概念并不是什么新鮮事。使用秘密代碼來保護(hù)秘密信息內(nèi)容的想法,至少可以追溯到古羅馬時(shí)代。當(dāng)時(shí)羅馬統(tǒng)帥尤利烏斯·凱撒就使用密碼以確保高盧戰(zhàn)爭(zhēng)期間他送給將軍們的命令的安全。現(xiàn)在把這種密碼叫做凱撒碼,在凱撒碼中,原始信息中一個(gè)詞中的每一字母都按某種固定規(guī)則由另一字母代替,例如,讓字母表中的每一個(gè)字母由它后面的第三個(gè)字母代替,即A用D來代替,G用J來代替,Y用B來代替。這樣一來,“mathematics”這個(gè)詞就變成了“pdwkhpdwlfv”。
古羅馬統(tǒng)帥尤利烏斯·凱撒
一個(gè)信息經(jīng)過凱撒碼加密后被傳遞出去,如果不知道所用的規(guī)則,表面上看它雜亂無章,完全無法辨認(rèn)。但實(shí)際并非如此,因?yàn)橛⒄Z只有26個(gè)字母,所以只有25套這樣的“移位”密碼,對(duì)你所用密碼有懷疑的敵人只需依次一個(gè)個(gè)地來試,就能找到破解密碼的“鑰匙”。
另一種更好一些的方法是使用不像字母替代那樣明顯的其他規(guī)則。不幸的是,任何此類替代密碼,即簡(jiǎn)單地用一個(gè)字母替代另一個(gè),對(duì)于簡(jiǎn)單的模式分析來說都是不堪一擊的。例如,出現(xiàn)在英語(或任何其他語言)中的字母都有非常確定的出現(xiàn)頻率,通過計(jì)算你的編碼文本每一個(gè)字母的出現(xiàn)率,敵人就可以簡(jiǎn)單地推導(dǎo)出你的替代規(guī)則。現(xiàn)在,計(jì)算機(jī)的使用,可以大大加速破解
過程。
除了簡(jiǎn)單的替代法外,當(dāng)然你還能進(jìn)行其他嘗試。但是不管你如何選擇,類似的危險(xiǎn)還是會(huì)出現(xiàn)。只要你的編碼文本包含任何一類可識(shí)別模式,一個(gè)老練的統(tǒng)計(jì)分析人員就能不太困難地破解此密碼。
所以,第二次世界大戰(zhàn)結(jié)束以來,所有的密碼體系都依賴于數(shù)學(xué),都使用計(jì)算機(jī),而且不得不這樣做。因?yàn)橥耆梢约僭O(shè),敵人也有強(qiáng)有力的計(jì)算機(jī)用來分析你的加密信息,你的系統(tǒng)必須足夠復(fù)雜,才能阻止計(jì)算機(jī)的破解分析。于是人們花了大量的時(shí)間和努力,設(shè)計(jì)和建立安全加密系統(tǒng)。
現(xiàn)代加密系統(tǒng)都包含兩個(gè)組元:加密步驟和“密鑰”。加密步驟一般是一個(gè)計(jì)算機(jī)程序或可能是一臺(tái)專門設(shè)計(jì)的計(jì)算機(jī)。為了加密信息,這個(gè)系統(tǒng)不僅需要處理信息,還需要選定的密鑰,它通常是個(gè)秘密的數(shù)字。加密程序以一種與所選密鑰有關(guān)的方式來對(duì)信息編碼,只有知道了密鑰才能將加密文本解密。因?yàn)榘踩蕾囉诿荑€,只要敵方得不到密鑰,同樣的加密程序可以被多人在一個(gè)較長(zhǎng)的時(shí)期內(nèi)使用而不致泄密。
有一個(gè)明顯的類似密匙的例子,那就是保險(xiǎn)箱或鎖具的制造商,他們靠設(shè)計(jì)一種鎖具銷售給數(shù)以百計(jì)的用戶來維持生意,這些用戶憑借他們鑰匙(實(shí)物鑰匙、數(shù)字組合或兩者的組合)的唯一性而確保安全。就像敵人盡管知道你的鎖具是如何設(shè)計(jì)的,但沒有實(shí)物鑰匙或不知道該數(shù)字組合,還是不能打開你的保險(xiǎn)箱那樣;敵人知道你正在使用的加密體系的情況下,如果得不到密鑰,他仍然不能破解你編碼的信息。
在某些以密鑰為基礎(chǔ)的加密系統(tǒng)中,信息發(fā)送者和接受者事先約定好用某種密鑰,然后用它來傳送彼此的信息。只要保持了這個(gè)“鑰匙”的秘密,這個(gè)體系(如果它是很好地設(shè)計(jì)的)則是安全的。1976年美國(guó)制訂的數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)曾使用多年,DES的密鑰是一個(gè)56位的二進(jìn)位數(shù)(換句話說,是56個(gè)0或者1組成的一串?dāng)?shù)字)。為什么要用這么長(zhǎng)的密鑰?因?yàn)镈ES設(shè)計(jì)的所有細(xì)節(jié)都曾被公布出來,這意味著敵人只要一個(gè)接一個(gè)地簡(jiǎn)單試用每一個(gè)可能的密鑰,就可以破解你的編碼信息。但是DES共有256個(gè)可能的密鑰需要試用,這是個(gè)天文數(shù)字,所以在最初使用此系統(tǒng)的時(shí),是幾乎不可能被破解的。當(dāng)然它現(xiàn)在已經(jīng)老了,已經(jīng)經(jīng)不起新型的、比最初開發(fā)它時(shí)所用的快得多的計(jì)算機(jī)對(duì)它的
攻擊。
同時(shí),諸如DES這樣的加密系統(tǒng)有一個(gè)明顯的弊端,即傳輸信息前,發(fā)送方和接受方必須商定他們將要使用的密鑰。很明顯,在任何通信通道上發(fā)送密鑰是不安全的,所以他們必須見面以轉(zhuǎn)交密鑰,或者找一個(gè)可靠的傳遞人轉(zhuǎn)交密鑰。這種加密系統(tǒng),對(duì)于你與銀行打交道是很合適的,因?yàn)槟憧梢院芊奖愕氐姐y行的地區(qū)分支機(jī)構(gòu)去建立一個(gè)供你個(gè)人使用的密鑰。但是,這種方法特別不適用于網(wǎng)絡(luò)商務(wù),因?yàn)槲覀儫o法安全地把密鑰交給世界某個(gè)地方的一個(gè)我們從未見過面的人。
公開密鑰的加密算法
1976年,美國(guó)斯坦福大學(xué)兩名青年研究人員懷特菲爾德·迪菲和馬丁·赫爾曼發(fā)表了一篇里程碑式的論文,題目為“密碼學(xué)的新方向”。在這篇論文中,他們提出了一種新類型的加密算法。在他們?cè)O(shè)計(jì)的密鑰系統(tǒng)中,加密需要不是一個(gè)而是兩個(gè)密鑰——一個(gè)供加密用,另一個(gè)供解密用。這就像一具鎖,需要用一把鑰匙上鎖,用另一把鑰匙開鎖。他們的建議可以用下面的假設(shè)例子通俗地解釋。
一個(gè)人,讓我們稱她為艾麗斯,希望使用這個(gè)加密系統(tǒng)來傳遞保密信息,而購(gòu)買了由某個(gè)通訊網(wǎng)絡(luò)所有成員使用的標(biāo)準(zhǔn)程序(或特殊計(jì)算機(jī))。然后,艾麗斯制作了兩個(gè)密鑰。其中一個(gè)是解密密鑰,她把它秘密收藏好。另一個(gè)密鑰由她在此網(wǎng)絡(luò)用戶的指南上公布,供此網(wǎng)絡(luò)上的任何人要發(fā)送編碼信息給她時(shí)使用。
如果網(wǎng)絡(luò)中的另一用戶叫鮑勃,希望送一條加密信息給艾麗斯,他查到艾麗斯的公開編碼密鑰,用此密鑰將信息加密,然后將此信息傳送給艾麗斯。要將信息解密,就需要收件人艾麗斯事先秘密收藏的解碼密鑰。而且這樣的系統(tǒng)有一個(gè)特征:即當(dāng)鮑勃用公開的密鑰對(duì)信息加密后,連他自己也不能將它解密。所以如果他想以后查看它,最好的辦法是保存原始信息,即未經(jīng)加密的版本。
RSA系統(tǒng)加密法
然而,迪菲和赫爾曼雖然提出了這個(gè)了不起的方案,卻沒有能提出如何構(gòu)造這樣一個(gè)系統(tǒng)的具體方法。不久之后,美國(guó)麻省理工學(xué)院的三個(gè)研究人員羅納爾·里夫斯特、阿里·沙米爾和倫納德·阿德爾曼發(fā)現(xiàn)了如何去做這項(xiàng)加密工作的方法。這時(shí)就要用到“數(shù)學(xué)”這門高大上的學(xué)問了。
這種加密方法的基礎(chǔ)是關(guān)于素?cái)?shù)的數(shù)學(xué)知識(shí)。其實(shí)我們?cè)谛W(xué)數(shù)學(xué)中就學(xué)過,素?cái)?shù),又稱為質(zhì)數(shù),即除了1和它本身以外不能再被其他的除數(shù)整除的數(shù),比如2、3、5、7,可以參見下方圖中的素?cái)?shù)表。不少數(shù)學(xué)家已經(jīng)證明,素?cái)?shù)的個(gè)數(shù)是無窮多的。圍繞素?cái)?shù)數(shù)目的計(jì)算和素?cái)?shù)分布的規(guī)律等問題,數(shù)學(xué)家們進(jìn)行了大量研究,其中也有一些天才的猜想有待解決,包括我國(guó)數(shù)學(xué)家陳景潤(rùn)部分解決的哥德巴赫猜想以及上面提到的黎曼猜想等。
再回到如何應(yīng)用素?cái)?shù)的知識(shí)和規(guī)律來加密的問題。我們知道,編寫尋找一個(gè)大素?cái)?shù)(例如長(zhǎng)達(dá)150位的素?cái)?shù))的計(jì)算機(jī)程序是相對(duì)容易的,將這樣兩個(gè)大素?cái)?shù)相乘得到一個(gè)300位(或更多)的數(shù)(合數(shù))也很容易。但是,反過來,要將這么大的合數(shù)分解為它的素因子,那就不是一件容易的事,事實(shí)上,幾乎根本是不可能的。更正確地講,用最快的計(jì)算機(jī)來尋找這樣的素因子要化幾十年,甚至幾個(gè)世紀(jì)?;谶@樣概念的公開密鑰系統(tǒng)叫做RSA系統(tǒng),這是上面那三位發(fā)明人姓的首字母縮寫。這個(gè)方法的成功導(dǎo)致成立了一個(gè)專門從事數(shù)據(jù)安全工作的商業(yè)公司—美國(guó)RSA數(shù)據(jù)安全公司。
具體來說,RSA方法中使用的解碼密鑰主要是由用戶挑選的兩個(gè)大素?cái)?shù)組成。這里應(yīng)當(dāng)由計(jì)算機(jī)挑選,不要從任何公開的素?cái)?shù)表中挑出,因?yàn)槟鞘菨撛诘臄橙撕苋菀装l(fā)現(xiàn)的。公開的編碼密鑰是這兩個(gè)素?cái)?shù)的乘積。因?yàn)椴淮嬖谟幸阎姆纸獯髷?shù)快速分解方法,要從公開的編碼密鑰揭露出解碼密鑰,即這兩個(gè)素因子,事實(shí)上是不可能的。
我們需要指出,編碼實(shí)際上并不是將兩個(gè)素?cái)?shù)相乘得到,解碼也不是由分解因子來進(jìn)行,而是指密鑰是如何產(chǎn)生的,具體方法因?yàn)楹軓?fù)雜,就不詳細(xì)介紹了。概括地說,要加密的信息首先被轉(zhuǎn)換成數(shù)字形式,用相當(dāng)簡(jiǎn)單地用數(shù)字進(jìn)行算術(shù)運(yùn)算,就構(gòu)成了編碼和解碼
過程。
很清楚,RSA系統(tǒng)的安全性(這是許多國(guó)際數(shù)據(jù)網(wǎng)絡(luò)使用它的原因)是建筑在數(shù)學(xué)家不可能發(fā)現(xiàn)大數(shù)因子化的有效方法的基礎(chǔ)上的。
正如你能期待的那樣,賭注是如此之高,RSA系統(tǒng)的廣泛使用大大地刺激了對(duì)尋找素?cái)?shù)和將大數(shù)因子化的方法的研究。所以上述電視劇中提到伊桑解決了黎曼難題,實(shí)際上就是將大數(shù)因子化的一種方法。
順便講一句,原則上講RSA系統(tǒng)(以及任何其他系統(tǒng))加的密,無一例外都是可以破解的,只不過是時(shí)間長(zhǎng)一些罷了,要花上幾十年、甚至幾個(gè)世紀(jì)。惟一從本質(zhì)上講無法解密的加密系統(tǒng),只有一個(gè),即目前還處于開發(fā)階段的“量子密鑰”。量子體系有一個(gè)奇特的性質(zhì):一個(gè)狀態(tài)下,只要對(duì)它進(jìn)行“測(cè)量”,它就會(huì)變掉。要破解量子密鑰,就要對(duì)它“測(cè)量”,但一經(jīng)“測(cè)量”它就變掉了,所以量子密鑰是永遠(yuǎn)無法破解的。量子密鑰是量子信息理論中的一個(gè)部分。我國(guó)在量子信息的研究方面,處于國(guó)際領(lǐng)先地位。
(本文材料主要取自《數(shù)學(xué)緝兇》一書,上??萍冀逃霭嫔?011年第1版)