news center
新聞中心
發(fā)布時(shí)間:2023-03-06 09:28:03 信息來源: 閱讀次數(shù): 2547 次
導(dǎo)讀:
對(duì)稱密碼體制本身是安全的,但分發(fā)密鑰的信使是大漏洞。非對(duì)稱密碼體制不需要信使,但你又會(huì)擔(dān)心它被數(shù)學(xué)方法破解。山重水復(fù)疑無路,柳暗花明又一村。當(dāng)當(dāng)當(dāng)當(dāng)當(dāng),英雄閃亮登場(chǎng)的時(shí)候到了!不錯(cuò),我就是美貌與智慧并重,英雄與俠義的化身,……量子密碼術(shù)!
前文參見:
十三、為什么需要量子密碼術(shù)?
我們終于說到了量子信息的最后一個(gè)應(yīng)用“量子密碼術(shù)”,也稱為“量子保密通信”或者“量子密鑰分發(fā)”。這是迄今唯一接近實(shí)用的量子信息應(yīng)用,但這一個(gè)就具有極高的軍事和商業(yè)價(jià)值,足以證明各國對(duì)量子信息的大力投入是物有所值的。所以,我們也要用最多的篇幅來比較詳細(xì)地解釋它。
在科學(xué)界的術(shù)語中,量子通信是一個(gè)廣泛的研究領(lǐng)域,包括量子密碼術(shù)、量子隱形傳態(tài)和本文中沒有介紹的“超密編碼”等等。但由于量子密碼術(shù)是唯一接近實(shí)用的,所以當(dāng)媒體報(bào)道“量子通信”的時(shí)候,他們往往實(shí)際上指的就是量子密碼術(shù),即量子通信的一部分而非全部。這是我們?cè)诳葱侣剷r(shí)需要注意的。
看“量子密碼術(shù)”這個(gè)名字,就能知道這是一種保密的方法。為什么需要用量子力學(xué)的方法來保密呢?我們需要了解密碼學(xué)的基本原理,才能明白量子密碼術(shù)解決了傳統(tǒng)密碼術(shù)的什么“痛點(diǎn)”,以及量子因數(shù)分解對(duì)傳統(tǒng)密碼術(shù)造成了什么樣的挑戰(zhàn)。(敲黑板?。┫旅嫖覀儊砩弦惶煤喍痰拿艽a學(xué)課程。
把明文變換成密文,需要兩個(gè)元素:變換的規(guī)則和變換的參數(shù)。前者是編碼的算法,例如“在英文字母表上前進(jìn)x步”。后者是密鑰,例如上述算法中的x這個(gè)數(shù)。如果取x = 1,明文的“fly at once”(立即起飛)就會(huì)變成密文的“gmz bu podf”。
一般人常常以為,我用一個(gè)你想不到的算法,就能保密。但事實(shí)上,把希望寄托在算法不泄露上,是靠不住的。同一個(gè)算法很可能有許多人在用,這些人當(dāng)中任何一個(gè)人都可能泄露算法。如果算法用到機(jī)器(例如二戰(zhàn)中德國用的Enigma密碼機(jī)),那么敵人只要得到一臺(tái)機(jī)器,就可以知道算法。
閃電戰(zhàn)創(chuàng)始人古德里安在指揮車上,左下方是Enigma密碼機(jī)
只要你知道有一個(gè)人或一臺(tái)機(jī)器泄露了算法,那么所有人的算法就都要換,這個(gè)工作量大得驚人。如果你沒發(fā)現(xiàn)算法的泄露,那損失就更可怕了。例如在第二次世界大戰(zhàn)中,德國和日本的密碼系統(tǒng)早就被盟國破解了,而他們一直不知道,送上了無數(shù)機(jī)密。山本五十六的飛機(jī),就是因?yàn)樾谐绦孤侗粨袈涞摹?/p>
那么,靠得住的是什么呢?所有的保密方法都是通過隱藏某些東西來實(shí)現(xiàn)的,需要隱藏的越少,安全性就越高,而最容易隱藏的是密鑰。同一個(gè)算法可以有很多個(gè)密鑰,使用同樣算法的每一組人都可以用單獨(dú)的密鑰。如果有人泄露了一組密鑰,用不著驚慌,只要更換一組密鑰就行。即使你沒發(fā)現(xiàn)密鑰泄露,也只是這一組人的情報(bào)失竊,不會(huì)拖累其他人。
因此,密碼學(xué)的一個(gè)基本原則是,在設(shè)計(jì)算法時(shí),你必須假設(shè)敵人已經(jīng)知道了算法和密文,唯一不知道的就是密鑰。密碼學(xué)的研究目標(biāo)就是,讓敵人在這種情況下破譯不了密文。當(dāng)然,你可以對(duì)算法保密,這可能會(huì)增加敵人的困難。但無論如何,不能把希望寄托在這上面。
最容易想到的保密框架,是通信雙方都知道同一組密鑰,A用它將明文轉(zhuǎn)換成密文,B用它將密文變換回原文。《紅燈記》、《潛伏》等諜戰(zhàn)片中情報(bào)人員舍死忘生、殫精竭慮保護(hù)和爭奪的密碼本,就是密鑰。由于通信雙方都知道同一組密鑰,所以這種方法叫做“對(duì)稱密碼體制”。
《紅燈記》
對(duì)稱密碼體制究竟安全不安全呢?回答是:密碼本身可以是安全的,但密鑰的分發(fā)不安全。
我們先來解釋前一句話:密碼本身可以是安全的。信息論的創(chuàng)始人香農(nóng)(Claude E. Shannon)證明了一個(gè)數(shù)學(xué)定理:密鑰如果滿足三個(gè)條件,那么通信就是“絕對(duì)安全”的。這里“絕對(duì)安全”是一個(gè)數(shù)學(xué)用語,它的意思是:敵人即使截獲了密文,也無法破譯出明文,他能做的最多也只是瞎猜而已。哪三個(gè)條件呢?一,密鑰是一串隨機(jī)的字符串;二,密鑰的長度跟明文一樣,甚至更長;三,每傳送一次密文就更換密鑰,即“一次一密”。滿足這三個(gè)條件的密鑰叫做“一次性便箋”。
稍微思考一下,就能理解香農(nóng)的定理。比如說,你拿到的密文是一個(gè)8位的字符串DHDSBFKF,這其中每一位的原文都是另外一個(gè)字符,對(duì)應(yīng)規(guī)則都是“在英文字母表上前進(jìn)x步”,但x對(duì)每一位都單獨(dú)取值(這就需要密鑰的長度至少跟原文一樣,即第二個(gè)條件),而且是隨機(jī)的(第一個(gè)條件)。例如第一位的x = 1,把原文的C變成密文的D,第二位的x = 3,把原文的E變成密文的H。如果你是敵對(duì)方,你如何猜出原文?
有一個(gè)常用的辦法是基于英文中各個(gè)字母使用頻率的不同(最常見的前五位是E、T、A、O、I),統(tǒng)計(jì)密文中每個(gè)字母出現(xiàn)的頻率。但這只適用于每一位的變換規(guī)則都相同的情況(即只有一個(gè)統(tǒng)一的x),而在這里每一位都有自己隨機(jī)的x,這一招就用不上了。如果不是一次一密(第三個(gè)條件),你還可以連續(xù)截獲好幾份密文,然后在多份密文的同一個(gè)位置做這種頻率分析。但加上一次一密之后,連這個(gè)僅存的希望也破滅了。因此,你除了瞎蒙之外,還能干什么呢?
我們?cè)賮斫忉尯笠痪湓挘好荑€的分發(fā)不安全。香農(nóng)的定理聽起來好像已經(jīng)解決了保密通信的問題,但其實(shí)沒有。真正的難題在于,怎么把密鑰從一方傳給另一方?
在現(xiàn)實(shí)生活中,需要第三方的信使來傳遞。而信使可能被抓(如《紅燈記》中的李玉和)或者叛變(如《紅巖》中的甫志高),這麻煩就大了。最好是不通過信使,通信雙方直接見面分享密鑰。但是如果雙方可以輕易見面,還要通信干什么?
有人可能會(huì)想到一個(gè)“機(jī)智”的主意,讓信使一次就配送盡可能多的密鑰,足以在很長時(shí)間內(nèi)使用,比如說足夠傳輸一億次。但即使先不問“第一億零一次怎么辦”,你也很快就會(huì)明白,這只是把泄密的風(fēng)險(xiǎn)從密鑰的配送(部分地)轉(zhuǎn)移到密鑰的保存而已。只要你手里有個(gè)密鑰,敵人就可能來偷,而你手里的密鑰越多,在使用前保存的時(shí)間越長,被偷走的風(fēng)險(xiǎn)就越大。為了把密鑰保存的困難降到最低,最好是只保存一次使用的密鑰,一拿到立刻就用掉,但那樣需要的配送次數(shù)又是最多的。難哪!
為了解決密鑰配送和保存的問題,聰明的數(shù)學(xué)家們想出了另外一套辦法,稱為“非對(duì)稱密碼體制”或者“公鑰密碼體制”。現(xiàn)在不需要信使了,李鐵梅和余則成可以光榮下崗了。為什么可以做到這樣呢?請(qǐng)注意,解密只是接收方B的事,發(fā)送方A并不需要解密,他們只要能加密就行。
那好,B打造一把“鎖”和相應(yīng)的“鑰匙”,把打開的鎖公開寄給A。A把文件放到箱子里,用這把鎖鎖上,再公開把箱子寄給B。B用鑰匙打開箱子,信息傳輸就完成了。
如果有敵對(duì)者截獲了箱子,他沒有鑰匙打不開鎖,仍然無法得到文件。這里的“鎖”是公開的,任何人都能得到,所以叫做“公鑰”,而“鑰匙”只在B手里有,所以叫做“私鑰”。
這種巧妙的思想,實(shí)現(xiàn)的關(guān)鍵在于:有了私鑰可以很容易地得到公鑰,而有了公鑰卻很難得到私鑰。就是說,有些事情沿著一個(gè)方向操作很容易,逆向操作卻非常困難,“易守難攻”。因數(shù)分解就是一個(gè)典型例子。這就是因數(shù)分解能用于密碼術(shù)的原因,上文所述的RSA密碼體系就以此為基礎(chǔ)。
然而,公鑰密碼體制仍然不能保證絕對(duì)安全。無論是經(jīng)典的還是量子的算法,都在不斷改進(jìn)。RSA在理論上已經(jīng)被量子的因數(shù)分解算法攻克了。你當(dāng)然可以尋找其他的易守難攻的數(shù)學(xué)問題(這是一個(gè)活躍的研究領(lǐng)域),但誰也無法保證將來的算法進(jìn)步是不是能破解這個(gè)問題,這會(huì)成為一場(chǎng)無窮無盡的貓捉老鼠的游戲。更可怕的是,有可能敵對(duì)國家或組織已經(jīng)找到解密的算法了,而你還不知道!
我們來總結(jié)一下傳統(tǒng)密碼術(shù)的困境。對(duì)稱密碼體制本身是安全的,但分發(fā)密鑰的信使是大漏洞。非對(duì)稱密碼體制不需要信使,但你又會(huì)擔(dān)心它被數(shù)學(xué)方法破解。兩難。
山重水復(fù)疑無路,柳暗花明又一村。當(dāng)當(dāng)當(dāng)當(dāng)當(dāng),英雄閃亮登場(chǎng)的時(shí)候到了!不錯(cuò),我就是美貌與智慧并重,英雄與俠義的化身,……量子密碼術(shù)!
我就是美貌與智慧并重,英雄與俠義的化身:唐伯虎
咳咳,量子密碼術(shù)做的是什么呢?其實(shí)是回到對(duì)稱密碼體制,但取消信使。也就是說,不通過信使,就能讓雙方直接共享密鑰。這樣就吸收了對(duì)稱和非對(duì)稱兩種密碼體制的優(yōu)點(diǎn),克服了它們的缺點(diǎn),實(shí)現(xiàn)了一種真正無懈可擊的保密通信。
怪哉,不通過信使怎么共享密鑰?關(guān)鍵在于,這里的密鑰并不是預(yù)先就有的,一方拿著想交給另一方。(地下黨組織:李玉和同志,這是密電碼,這個(gè)光榮而艱巨的任務(wù)就交給你了。)在初始狀態(tài)中,密鑰并不存在?。ǖ叵曼h組織:李玉和同志,我們沒有任何東西要交給你,解散?。?/p>
量子密鑰是在雙方建立通信之后,通過雙方的一系列操作產(chǎn)生出來的。利用量子力學(xué)的特性,可以使雙方同時(shí)在各自手里產(chǎn)生一串隨機(jī)數(shù),而且不用看對(duì)方的數(shù)據(jù),就能確定對(duì)方的隨機(jī)數(shù)序列和自己的隨機(jī)數(shù)序列是完全相同的。這串隨機(jī)數(shù)序列就被用作密鑰。量子密鑰的產(chǎn)生過程,同時(shí)就是分發(fā)過程,——這就是量子密碼術(shù)不需要信使的原因。
關(guān)于量子密鑰的特點(diǎn),還可以再解釋得詳細(xì)一點(diǎn)。量子密鑰是一串隨機(jī)的字符串,長度可以任意長,而且每次需要傳輸信息時(shí)都重新產(chǎn)生一段密鑰,這樣就完全滿足了香農(nóng)定理的三個(gè)要求(密鑰隨機(jī),長度不低于明文,一次一密),因此用量子密鑰加密后的密文是不可破譯的。
雙方都有了密鑰之后,剩下的事情就跟經(jīng)典的通信完全相同了:A把明文用密鑰編碼成密文,然后用任意的通信方式發(fā)給B?!叭我獾摹蓖ㄐ欧绞降囊馑季褪恰霸趺炊夹小保嚎梢杂秒娫?,可以用電報(bào),可以用電子郵件,甚至用平信都行。香農(nóng)的定理保證了這一步不怕任何敵人,因?yàn)榻孬@了也破譯不了。
因此,量子保密通信的全過程包括兩步。第一步是密鑰的產(chǎn)生,這一步用到量子力學(xué)的特性,需要特別的方案和設(shè)備。第二步是密文的傳輸,這一步就是普通的通信,可以利用任何現(xiàn)成的通信方式和設(shè)施。量子保密通信所有的奇妙之處都在第一步上,所以它又被叫做“量子密鑰分發(fā)”,這是業(yè)內(nèi)人士常用的一個(gè)技術(shù)性的名稱。
(未完待續(xù))
背景簡介:本文作者為袁嵐峰,中國科學(xué)技術(shù)大學(xué)化學(xué)博士,中國科學(xué)技術(shù)大學(xué)合肥微尺度物質(zhì)科學(xué)國家實(shí)驗(yàn)室副研究員,科技與戰(zhàn)略風(fēng)云學(xué)會(huì)會(huì)長