最近有這樣一個(gè)新聞:科大潘建偉院士、張強(qiáng)教授團(tuán)隊(duì)與云南大學(xué)、上海交通大學(xué)等單位合作,實(shí)現(xiàn)了量子密鑰分發(fā)(QKD)和后量子算法(PQC)的融合應(yīng)用(參考圖一)。這是什么意思?我來向大家解釋一下。這個(gè)成果至少是三層的非平凡,而普通人了解第一層都難。
首先,如果你經(jīng)常看我的節(jié)目,你很可能知道量子密鑰分發(fā)(quantum key distribution,簡稱QKD)是一種保密通信的方法。順便說一句,“鑰匙”的“鑰”字是個(gè)多音字,它在密碼學(xué)的“密鑰”這個(gè)詞里念yuè,你百度一下就會(huì)發(fā)現(xiàn)(圖二)。
量子密鑰分發(fā)的好處在于,它不可能被數(shù)學(xué)破解。傳統(tǒng)的密碼有可能被數(shù)學(xué)破解,因?yàn)樗鼈儽C艿幕A(chǔ)是數(shù)學(xué)難題。而量子密鑰分發(fā)保密的基礎(chǔ)在于量子力學(xué),只要量子力學(xué)的物理原理不被推翻,它就不可能被數(shù)學(xué)破解,即使敵人有無限的計(jì)算能力都不行。這是第一層的非平凡。如果達(dá)到這一層,你的知識水平就超過了90%的人(圖三,中科院跨越 4600 公里成功分發(fā)量子密鑰)。
然后,任何通信都有個(gè)前提,就是身份認(rèn)證。也就是說,你得確認(rèn)跟你通話的人真的是你認(rèn)為的那個(gè)人,而不是冒充的。大家打電話的時(shí)候,每次先說一聲“喂”,就是這個(gè)目的。
量子密鑰分發(fā)能夠保證的是,如果對方的身份是正確的,那么你的通信絕對安全,但它本身并不做身份認(rèn)證。那么怎么確認(rèn)對方的身份呢?以前的辦法叫做預(yù)置密鑰,也就是說雙方先存下來一段密鑰用作身份認(rèn)證,聯(lián)系上之后用量子密鑰分發(fā)產(chǎn)生新的密鑰。這些新的密鑰大部分用于通信,少部分再存下來用于下一次身份認(rèn)證。
這個(gè)方法在邏輯上很嚴(yán)密,但前提是要在通信之前至少聯(lián)系一次。那么問題來了,如果是兩個(gè)素昧平生的人,從來沒有聯(lián)系過,沒有預(yù)存密鑰,那該怎么辦呢?也就是說,最初的信任怎么建立起來?
其實(shí),傳統(tǒng)的密碼學(xué)就有身份認(rèn)證的方法。在公鑰密碼體系中,用公鑰加密的只能用私鑰解密,用私鑰加密的只能用公鑰解密。因此,如果一個(gè)人用自己的私鑰加密一段信息發(fā)給你,你用他的公鑰發(fā)現(xiàn)確實(shí)能解密,那么你就可以確認(rèn)他是他。這叫做數(shù)字簽名。
這個(gè)方法很巧妙,但問題在于,它整個(gè)的前提是密碼體系沒有被破解。而事實(shí)上,我們已經(jīng)知道許多密碼體系是會(huì)被量子計(jì)算機(jī)破解的。例如最著名的公鑰密碼體系之一RSA,就會(huì)被1994年提出的Shor量子算法破解(圖四,RSA的三位創(chuàng)始人 )。只是大規(guī)模實(shí)現(xiàn)這個(gè)算法的量子計(jì)算機(jī)還沒造出來,這正是學(xué)術(shù)界努力的目標(biāo)。這是第二層的非平凡。如果你達(dá)到這一層,你的知識水平就超過了99%的人。
然后,為了對抗量子計(jì)算機(jī)的發(fā)展,密碼學(xué)界提出了兩條思路。一個(gè)就是量子密鑰分發(fā),它一勞永逸地封住了所有計(jì)算機(jī)的攻擊,包括量子計(jì)算機(jī)。但它仍然有需要預(yù)置密鑰的問題。另一個(gè)叫做后量子密碼(post-quantum cryptography,簡稱PQC)或者抗量子密碼(quantum resistant cryptography),意思是能抵抗量子計(jì)算機(jī)的密碼。它們基于一些更難的數(shù)學(xué)問題,對這些數(shù)學(xué)問題現(xiàn)在已知的量子算法都不能破解。至于將來能不能破解?那沒有人知道,因?yàn)樗鼈內(nèi)匀皇腔跀?shù)學(xué)的,原理上就可能被數(shù)學(xué)破解。不但有可能被量子計(jì)算機(jī)破解,甚至有可能被經(jīng)典計(jì)算機(jī)破解,這些可能性一直都是存在的??傊@對矛與盾會(huì)不停地升級下去。
了解了這些背景,你終于可以明白潘建偉、張強(qiáng)等人做的是什么了(圖五,潘建偉教授)。他們在身份認(rèn)證環(huán)節(jié)采用了后量子密碼,這樣通信雙方就不需要事先聯(lián)系一次了。
真正有趣的問題是:如果這個(gè)后量子密碼被破解了怎么辦?回答是:只要敵人不是立刻破解,而是花了一段時(shí)間,那么在這段時(shí)間里通信雙方已經(jīng)做過量子密鑰分發(fā)了。他們已經(jīng)產(chǎn)生了新的密鑰,存起了一部分用作下一次的身份認(rèn)證。所以如果敵人不能抓住第一次這個(gè)稍縱即逝的機(jī)會(huì),那么以后就沒機(jī)會(huì)了。這樣,我們即使不能完全排除風(fēng)險(xiǎn),但至少把它壓縮到了非常低。
你也許會(huì)問,何不從頭到尾都用PQC呢?先用它來身份認(rèn)證,再用它來加密解密,不是更省勁嗎?回答是:這樣不能保證長期的安全。無論敵人花了多長的時(shí)間破解,只要他破解出來,你的信息就泄漏了。而QKD的好處在于,敵人永遠(yuǎn)不可能用數(shù)學(xué)破解你的信息,因?yàn)楦緵]有數(shù)學(xué)難題讓他去破解。
現(xiàn)在,你明白QKD與PQC聯(lián)用的價(jià)值了吧?QKD保證長期的安全性,PQC把身份認(rèn)證擴(kuò)大到?jīng)]有預(yù)置密鑰的通信方。這是第三層的非平凡。如果你達(dá)到這一層,你的知識水平就超過了99.9%的人。
如果諸位想了解后量子密碼,請?jiān)陲L(fēng)云之聲搜這個(gè)關(guān)鍵詞,我有篇文章解釋過這個(gè)問題。