漫談量子保密通信的中間人攻擊問題_風聞
返朴-返朴官方账号-关注返朴(ID:fanpu2019),阅读更多!2021-11-28 18:31
撰文 | 龍桂魯
(1.低維量子物理國家重點實驗室、清華大學物理系;2. 教育部量子信息前沿中心;3. 北京信息科學與技術國家研究中心;4. 北京量子信息科學研究院)
來源 | 本文選自《現代物理知識》2021年第2期
量子保密通信主要包括量子密鑰分發和量子直接通信。
Bennett 和Brassard 在1984 年提出的量子密鑰分發,實際上是密碼學中的密鑰協商,Alice 和Bob 雙方傳輸隨機數,在確定其安全後,將傳輸的隨機數升級為密鑰,用於經典保密通信。密碼學中的密鑰分發是把事先確定好的密鑰傳送給指定的接收方。不過由於歷史原因,大家一直這麼稱呼。由於稱呼的不同,有時候會引起密碼學家對量子密鑰分發的誤解。
量子直接通信, 簡稱量子直通,在量子信道直接安全地傳輸信息,是清華大學學者在2000 年提出的。這是信息論意義上的通信,它直接傳輸有意義的信息,也可以傳輸事先確定的密鑰。
量子信道指的是用於攜載信號的量子態以及傳輸它們的介質,如用單光子極化量子態在光纖中傳輸,就給出了一個量子信道。經典通信本身不考慮安全性,考慮的是如何把信息可靠的傳輸到目的地。著名的香農理論保證了信息的可靠傳輸,即在信道容量大於零時,總可以找到一個編碼,以小於或者等於信道容量的速率可靠的通信。量子直通是在有噪聲和竊聽的信道下,既可靠又安全地通信。
有一個説法是量子保密通信無法抵禦中間人攻擊,即竊聽者在通信線路的中間假裝是通信的合法用户,來套取通信雙方的內容。這種説法最早從什麼地方提出不得而知,但是影響最大的可能是著名法國通信專家Emmanuel Desurvire 教授。他是摻鉺放大器的發明者,獲得包括富蘭克林工程獎章、IEEE Tyndall 獎等國際大獎。在他的《Classical and Quantum Information Theory》的最後一章,專門講了這一攻擊手段。大致的方法是這樣:假如Alice和Bob 是合法通信雙方,Eve 是竊聽者。Eve 假裝是Bob 和Alice 進行量子密鑰分發,同時假裝是Alice 來和Bob 進行量子密鑰分發,這樣Eve 就可以獲得雙方所有的密鑰和通信而不被發現,而且這也不違背量子力學的原理。
為了後面的敍述,我們先介紹公開密碼體系。公開密碼體系是一種經典加密和解密方法。例如,在RSA公開密碼體系中,每個用户有三個參數,一個大數N,公鑰E,私鑰D,其中N和公鑰E都是公開的,D 是私鑰,不公開。Alice 有(Na,Ea,Da),Bob有(Nb,Eb,Db),竊聽者Eve 是其中的一個用户,有(Ne,Ee,De)。如果Bob 要給Alice 發一封加密信,內容是x,則Bob 用Alice 的(Na,Ea)加密,即x^Ea=C,C即是加密後的密文,Alice 收到C後,利用私鑰Da解密得到原文,C^Da=x。在現在的網絡裏,一般用公開密碼體系,如RSA,SM2 加密小量的密鑰;用對稱密碼,如AES,SM1,SM4來加密大量的信息。
中間人攻擊的實質就是認證問題。這裏面有兩個認證,一個是網絡認證,即證明Alice 就是使用公鑰Ea 的人;第二個是身份認證,即證明信息確實是擁有公鑰Ea 的人發出的。如果Alice 和Bob已經完成身份認證和網絡認證,Eve 就無法對他們的量子通信進行中間人攻擊。中間人攻擊這一問題在經典通信也是存在的。網絡認證問題可以用西遊記中的真假孫悟空例子來説明。在西遊記的五十七回,六耳獼猴冒充孫悟空,兩個長得一模一樣的齊天大聖站在唐僧和師弟們面前,他們都分不出來哪個是真的。
現在經典密碼學中普遍採用的認證方法,是利用公開密碼體系。公開密碼體系RSA也可以做認證。假如Bob 有一筆很大的款項要發給Alice,他要確認Alice 是不是真的Alice。作為身份認證,Alice 可用私鑰加密一個認證信息A,y=A^Da,把y 發送給Bob 以證明她就是擁有公鑰Ea的用户。Bob 收到y 後,利用公鑰Ea 解密y 得到A,y^Ea=A。這一步確認了這個信息y 是發自公鑰為Ea 的用户。但是這並不能證明這個有公鑰Ea 的用户就是Alice。如果另一個用户Eve 假裝是Alice,用她自己的私鑰De加密A,得到A^De=y’,並將y’發送給Bob,Bob 用Eve 的公鑰Ee 解密y’,也可以得到A,這樣Bob 就無法判斷哪個是真正的Alice。就像孫悟空、六耳獼猴長得一模一樣、都有金箍棒,唐僧無法判斷一樣。在經典網絡中,這一問題是靠一個大家都信任的超級網絡管理者來解決的。
網絡超級管理者用自己的私鑰Dsuper 加密一個證書,上面寫着證明Alice 的公鑰為Ea,大數為Na。他也給Bob 做一個證書,證明Bob 的公鑰為Eb,大數為Nb。這樣,任何人都可以使用超級管理者的公鑰Esuper 來解密這個證書,讀出證書的內容,認可Ea的擁有者就是Alice。Eve 得不到這樣的證書,就無法假裝成Alice 了。在西遊記中,這個超級網絡管理者就是如來佛。網絡管理者需要做的認證書的個數,就是網絡中的用户數目,每個用户只需要有一個大數N和一個公鑰E即可。
在量子保密通信中,尚沒有量子版本的非對稱密碼體系。身份認證和網絡認證可通過讓Alice 和Bob 事先共享一組密鑰K 來解決。由於Alice 和Bob 事先見過,他們能夠肯定掌握這組密碼的人就是Alice 和Bob,這樣解決了網絡認證的問題,即擁有這組密碼的人就是Alice 和Bob。Alice 和Bob 有這組密鑰,而Eve 沒有,這樣Bob 讓Alice 發來共享的密鑰K,就可證明發信息的人是Alice。當然Alice發送的時候,一定要保密,不然的話,Eve 得到了這個共享密鑰,就可以假裝成Alice,使得Bob 無法判斷真假。在西遊記中就有生動的例子,本來唐僧或者觀音菩薩可以採用念緊箍咒,看是否頭疼的方法來判斷,只有真的孫悟空才會頭疼。如果他用這個方法分別地來測試,就可以判斷真假。但是他把兩個猴子叫到一起,這時候六耳獼猴就偷偷地學孫悟空裝疼,躲過了甄別。
採用共享密鑰的方法進行認證,比用公開密鑰生成證書的方法要複雜。任何兩個用户都需要共享一組密鑰,這樣,整個網絡裏需要共享的密鑰數量就是N(N-1)/2,也就是N的平方量級,N是網絡的用户數量。對於一個擁有5 萬用户的網絡,採用公開密碼方法生成證書的方法認證,只需要發放5萬個證書,而採用互相共享密鑰的方法,則需要共享的25億組密鑰,大大增加了複雜度。
如果Alice 和Bob事先沒有共享密鑰K,他們可以通過都信任的第三方Charlie 來完成。Charlie 可以分別和Alice 和Bob 進行保密通信,例如可以採用量子密鑰分發+一次一密經典加密通信,或者量子直接通信,讓Alice 和Bob 共享密鑰,以便他們完成認證。這樣Charlie 要首先和每個用户都建立一組密鑰,任何其他兩個用户想進行認證,都需要Charlie 來幫助他們,共享一組密鑰。其數量和事先見面共享密鑰的數量一樣,也是平方的複雜度。
總之,量子保密通信中,由於網絡認證和身份認證出現的中間人攻擊是可以解決的。並不像Emmanuel Desurvire 教授書中説的那樣沒有解決。經典認證和量子認證各有自己的優缺點。基於RSA 等公開密碼體系的身份認證體系在複雜度上更有優勢,適合在大型網絡中使用。但是由於經典密碼算法的絕對安全性沒有得到證明,即使現在發展的後量子密碼算法,也無法證明其絕對安全性,就像NIST 負責後量子密碼的首席科學家Dustin Moody 所説,因為擔心未來有人破解,所選擇的候選後量子密碼算法選擇了多種途徑。而採用量子通信來建立的網絡認證和身份認證,其安全性在原理上已經得到了證明,其缺點是複雜度高,不利於在大型網絡中使用。因而在實際應用中,可以根據其不同的使用場景,選擇相應的認證方法。
本文經授權轉載自微信公眾號“現在物理知識雜誌”,YWA摘編。