陳 健
2018年12月4日,美國國家科學、工程與醫學院發布題為《量子計算:發展與前景》的研究報告,闡釋了量子計算的運行模式、量子計算的算法與應用、量子計算對密碼體系的影響、量子計算的硬件組成、量子計算的軟件構成等內容,并在此基礎上分析了當前量子計算技術所取得的進步與時代架構,展望了量子計算的未來發展前景。報告指出,量子計算發展至今,已引發人們極大的研究興趣,也展現出一定的商業價值,但其將來的發展速度、方向和實際應用還有待觀察;量子計算將給當前的密碼體系帶來沖擊,需要人們提前做好相應的設計與部署準備。
報告稱,當前量子計算的理論和模型已經出現,主要通過學習研究量子世界的一些特殊性,使用多種方法、通過多種途徑來實現量子計算。在過去的20年里,人們對這項技術所蘊含的巨大潛力充滿了興趣,并一直致力于推進量子計算,使其不斷發展進步,但量子計算是否能以摩爾定律的模式持續增長,還有待觀察。
當前,量子計算是唯一真正的新型計算模式,且與經典計算模式相比,將成為一種更加普遍通用的物理計算模型,有望解決一些經典計算模型所無法解決的實際問題,這就使得量子計算變得十分“有趣”,也極大激發了人們對量子計算的商業興趣。
量子計算理論是對微觀世界一種運行機制的描述,是理解和預測物理宇宙性質的最為精確的理論。量子理論主要遵循以下基本原理:
波粒二元性—— 一個量子物體同時具有類波性質和類粒子性質,當系統遵循波動方程時,任何可測量的系統都能夠返回一個與其一致的粒子。
疊加性—— 一個量子系統能夠同時存在兩種或更多種狀態,被稱之為“疊加”或“疊加狀態”。
相干性——當一個量子系統的狀態能夠被一組復雜的數據所描述時,那么系統的每一種狀態都是相干的。對于諸如量子干涉、量子疊加、量子糾纏等量子現象,相干都是必需的。
糾纏性——糾纏是一些多粒子疊加狀態(并非全部)的一種特殊性質,測量一個粒子狀態時能夠影響到另一個粒子,即使這些粒子相隔很遠且無明顯的相互作用。
可測量性——量子系統從根本上改變了測量工作,在其處于一個確定的狀態下時,系統處于與所測值相對應的狀態。
量子計算主要有兩種方法:
一種方法是通過初始化量子系統狀態,再運用漢密爾頓的直接控制方式來推進量子態演化,由此得到一個高概率的問題答案,進而得到預期結果。因為漢密爾頓通常是平滑形的,因此量子計算實質上是真正的模擬計算,且不能完全糾正誤差。
另一種方法叫做“基于門的計算”,類似于當今的經典計算方法,主要是將問題分解為一系列基本的“原始運算”或“門”,對于特定的輸入狀態都會得到一個明確的“數據”測量結果,這種數據特性意味著這些設計類型能夠以系統級的糾錯來達成容錯目的。
當前,主要的量子計算機有模擬量子計算機、基于噪聲的中等規模量子計算機、基于門的量子計算機及基于門的全糾錯量子計算機。
報告稱,量子化學、優化(包括機器學習)和破解密碼是量子計算最被認可的潛在應用,這些領域目前仍處于初始階段。現有算法可能會以尚難以預測的方式實現改進,而新的算法也可能會隨著研究的不斷深入而出現。除了密碼學之外,難以預測量子計算將會給各個商業部門帶來怎樣的影響。
量子計算的最好應用領域就是密碼領域,也就是破解密碼,這是一個基于數學的應用。對于密碼學來說,未來運用Shor算法的量子計算機將對其產生深遠影響。
量子模擬被認為是一種具有巨大潛力的具體應用,特別是在量子化學領域。雖然經典的計算方法在許多情況下都是非常有效的,但往往不能預測化學反應過程或區分反應階段的相關物質,而量子計算機能夠在經典計算方法難以奏效的情況下,有效地解決這些問題。
事實上,與經典的化學反應速率常數計算法相比,早期的一種量子計算方法在速度上已經提高了好幾個指數量級。量子計算與其他算法能夠為人們打開一扇大門,讓人們對物質的各種反應和狀態有更深的洞察力,這些成果在能量存儲、顯示器件、工業催化劑及藥物開發等方面具有巨大的商業價值。
報告稱,運用量子計算進行密碼破譯的一個關鍵性問題,是需要一臺多大規模的量子計算機才能實現密碼破解。這個問題的答案根據量子計算的具體結構和原理不同而有所不同。復雜量子計算機可以破解密碼并給數字簽名帶來威脅,但這些都只是基于當前已知的量子算法,以及對量子計算機架構和錯誤率的一種假設,相關探索研究還需繼續推進。將來也可能開發出新的算法,可對密碼體系進行不同攻擊。
報告稱,要應對量子計算密碼破譯,必需了解三個方面信息,以確定何時建立怎樣的密碼保護架構來加以抵抗:一是當前的加密架構何時會被擊破,也就是說一個足夠復雜的量子計算機何時投入使用;二是抵抗量子破解密碼的新型架構需要多長時間才能設計、建筑和部署完成;三是最長的保護間隔是多長。一旦這三個方面信息被確定,所需時間就可以計算出來,如圖1所示。
報告稱,在向后量子加密階段發展過程中,首先需要制定和批準密鑰交換與簽名的后量子加密算法標準,新的標準算法在作為官方標準被采用后,還需采用多種計算機語言、程序庫及加密硬件芯片模塊來實現。接著,新的標準算法需合并為加密格式,并由各標準委員會審查通過。隨后,供應商在需要的硬件和軟件產品中更新標準。然后,必須對公、私領域存儲的敏感數據進行重新加密,并銷毀以前模式下輸入的所有數據副本,公鑰證書也必須重新頒發或重新分發,必須對官方的所有文件進行重新簽名。最后,所有的軟件代碼必須重新升級和驗證,新的代碼也需再重新簽名和分發。
量子計算機的發明出現對所有公鑰密碼算法產生了威脅,因此,為了應對量子計算密碼破譯,需要在第一臺計算機上線之前,就設計和部署對抗量子破解密碼的算法和基礎設施。
報告稱,量子計算的硬件結構可劃分為四個層次:一是量子比特所在的“量子數據層”;二是根據需要對量子進行操作和測量的“控制和測量層”; 三是確定操作和算法序列的“控制處理器層”;四是用于處理網絡訪問、大存儲陣列和用戶界面的“主處理器層”,該層通過高速寬帶與控制處理器連接。
對于所有的量子比特技術而言,面臨的第一個挑戰是降低大規模系統中的量子位錯誤率,同時使測量能夠與比特操作相間隔。對此,提高物理量子位的保真度顯得至關重要;第二個挑戰是增加量子計算機的量子位數,這就需要對集成電路、封裝、控制和測量層面及所使用的校準方法進行整體優化。

圖1 量子計算破解密碼時間構成示意圖
量子計算除了硬件組成外,還需要廣泛的軟件組成,包括能夠讓程序員描述量子計算算法的編程語言、分析它們并將其映射到量子硬件的編譯器,以及可在特定量子硬件上實現分析、優化、調試和測試程序的其他軟件支持,如需要仿真和調試工具來調試軟硬件、需要優化工具來幫助高效實現算法、需要驗證工具來幫助確保軟硬件的正確性等,圖2為計算軟件組成示意圖。
創建和調試量子程序所需的軟件工具對于所有量子計算機來說,就像量子數據層面一樣必不可少,雖然在這一領域取得了良好進展,但仍有一些具有挑戰性的問題有待解決。例如,在算法層面,量子計算系統的狀態空間如此之大,以至于在今天的經典計算機上即使是模擬大約60位或更多量子位的量子計算算法,也無法在合理的時間或空間內完成。
量子程序的調試和驗證也是一項很大的挑戰,大多數經典計算機為程序員提供了在程序中任意點停止執行的能力,并能檢查機器狀態值和其他項值,程序員可以確定狀態是否正確,如果不正確,則查找程序錯誤。相反,量子計算程序需要一個很大的狀態空間,進行物理量子位測量時還將面臨崩潰,并且在測量后不能重啟量子計算執行,因此,設計量子程序的調試和驗證技術是推動量子計算發展的一項基本且具有根本性挑戰的要求。

圖2 量子計算軟件組成示意圖

圖3 量子計算機“里程碑式”發展圖
報告稱,一臺大規模完全糾錯量子計算機,在設計時需擴展到數千個邏輯量子位元,并且需要一個軟件基礎結構,以便有效幫助程序員使用這臺計算機解決問題。這種能力需要一系列越來越復雜的計算機系統來逐步實現,這又取決于硬件、軟件和算法的發展。這些計算機系統呈現“里程碑”式發展,依次是小型計算機、基于門的高級量子計算機、基于退火爐的高級量子計算機、成規模運行QEC的量子計算機、商用量子計算機、大型模塊量子計算機。圖3中表示了量子計算機的“里程碑式”發展圖,但有些里程碑實現起來比較困難,或不按照此順序實現。
量子計算擁有一個令人興奮的發展前景,但要實現這一前景需應對許多挑戰。在過去的20年時間里,人們對量子系統科學和工程的理解有了很大的提高,隨著理解的深化,人類控制量子計算的能力也不斷提升。然而,在建造一臺具有實用價值的量子計算機之前,仍有大量工作需要去做。同時,也很難預測量子計算的未來將以何種方式、何種速度展開,它可能增長緩慢而漸進,也可能由于意外創新而加速推進。