一.量子計算機如何工作
量子計算聽起來非常炫。大傢最近都瞭解到大量的投資去瞭量子計算領域,使這個領域成為現實,並且量子計算承諾在許多行業會取得突破。但大傢包括媒體通常對它是什麼以及如何運作缺乏瞭解。這是有原因的:量子計算與傳統的數字計算非常不同,我們需要以非直覺的方式思考問題。這個不同的思考方式還包括數學。相關需要非常規思考的例子還有很多。
這篇文章不會讓你成為專傢,但它會幫助你理解什麼是量子計算,為什麼量子計算很重要,為什麼量子計算如此令人興奮。如果你已經有瞭量子力學和研究生數學的背景,你可能不需要閱讀這篇文章。你可以直接讀一本書,比如《量子計算溫和入門》(提示,“溫和”是一個相對的術語)。但是,如果你像我們大多數人一樣,沒有這樣的背景,讓我們盡我們最大的努力來揭開計算機領域最神秘的話題之一的神秘面紗。
量子計算的概念
量子計算機使用量子位而不是傳統的二進制位。量子位位與傳統位不同,因為在它們被讀出(即被測量)之前,它們可能存在於一種不確定的狀態,在這種狀態下,我們不知道它們是被測量為0還是1。這是因為一種叫做疊加的獨特性質。
疊加使量子位變得有趣,但量子真正的超能力是量子糾纏。糾纏的量子位可以立即相互作用。為瞭制造功能量子位,量子計算機必須被冷卻到接近絕對零度。即使是過冷,量子位也不能維持它們的糾纏態(相幹態)很長時間。
這使得編程變得格外棘手。量子計算機是用各種邏輯門序列編程的,但程序需要運行得足夠快,以保證量子位在被測量之前不會失去相幹性。對於任何上過邏輯課或用觸發器設計數字電路的人來說,量子邏輯門似乎有點熟悉,盡管量子計算機本身本質上是模擬的。然而,量子疊加和量子糾纏的結合使這個過程更加混亂。
量子比特和疊加
我們在典型的數字計算機中使用的普通位是0或1。你可以隨時閱讀它們,除非硬件有缺陷,否則它們不會改變。量子位不是這樣的。它們有0和1的概率,但在你測量它們之前,它們可能處於不確定狀態。這種狀態,連同其他一些允許額外計算復雜性的狀態信息,可以被描述為在球體(半徑為1)上的任意點上,這反映瞭被測量為0或1(即北極和南極)的概率。
538b23885a5e6f2659526e9077838249
量子比特的狀態是沿三個軸的值的組合。這叫做疊加。一些文本將這種性質描述為“同時處於所有可能的狀態”,而另一些文本則認為這有點誤導人,我們最好堅持用概率解釋。無論哪種方式,量子計算機實際上可以在量子位疊加時進行數學運算——通過邏輯門以各種方式改變概率——然後通過測量最終讀出結果。然而,在所有情況下,一旦一個量子位被讀取,它要麼是1,要麼是0,並失去它的其他狀態信息。
量子位通常從0開始存在,盡管它們通常會通過哈達瑪門進入不確定狀態,這導致量子位一半時間讀取為0,另一半時間讀取為1。其他的門可以通過改變數量和方向來翻轉量子位的狀態——既相對於0和1軸,也相對於代表相位的第三軸,並為表示信息提供瞭額外的可能性。可用的具體操作和門取決於您使用的量子計算機和工具包。
量子糾纏:量子行為位置
獨立的量子位元組本身並不足以創造量子計算所承諾的巨大突破。當量子物理學的糾纏概念被實現時,奇跡才真正開始發生。一位業內專傢把沒有糾纏的量子位比作“非常昂貴的經典計算機”。當被測量時,糾纏的量子位元會立即相互影響,無論它們相距多遠,這是基於愛因斯坦所說的“幽靈的遠距離作用”。就傳統計算而言,這有點像一個邏輯門,將內存中的每一位連接到其他每一位。
4597e421c3e272f169150245e60552d7
您可以開始看到,與傳統計算機相比,在操作之前需要分別讀寫內存中的每塊,這是多麼強大。因此,從量子糾纏中有許多巨大的潛在增益。首先,至少對於某些類型的問題而言,可執行的編程復雜性大幅增加。最令人興奮的是對復雜分子和材料的建模,這是傳統計算機很難模擬的。另一個可能是在長距離安全通信方面的創新——如果和當它成為可能在長距離保存量子態。使用糾纏的編程通常從C-NOT門開始,如果一個糾纏粒子的同伴被讀出為1,它就會翻轉糾纏粒子的狀態。這有點像傳統的異或門,隻不過它隻在進行測量時才工作。
量子算法將改變密碼學
量子疊加和量子糾纏是令人印象深刻的物理現象,但利用它們進行計算需要一個非常不同的狀態和編程模型。你不能簡單地把你的C代碼扔到量子計算機上就指望它能運行,當然也不能跑得更快。幸運的是,數學傢和物理學傢遠遠領先於這裡的計算機建造者,在量子計算機開始出現的幾十年前,他們就開發出瞭利用量子計算機的聰明算法。
最初創建的一些量子算法,老實說,我發現的一些有用的算法,你不需要數學碩士學位就能理解,它們是用於安全加密密鑰分發的。這些算法利用量子糾纏特性,允許密鑰創建者向接收方發送多個量子位對中的每一對中的一個。完整的解釋很長,但算法依賴的事實是:如果有人在途中攔截並讀取其中一個糾纏比特,發送方的伴生量子位將受到影響。通過來回傳遞一些統計數據,發送方和接收方可以確定密鑰是安全傳輸的,還是在傳輸過程中被黑客攻擊的。
有的讀者可能讀到過,量子計算機有一天可以破解目前大多數的密碼系統。他們能夠做到這一點,是因為有一些非常聰明的算法被設計在量子計算機上運行,可以解決一個困難的數學問題,反過來可以用來分解非常大的數字。其中最著名的是肖爾分解算法。分解大數字的難度對於所有公鑰-私鑰系統(目前最常用的密鑰系統)的安全至關重要。目前的量子計算機幾乎沒有足夠的量子位元來嘗試這項任務,但許多專傢預測在未來3-8年內他們會做到。這導致瞭一些潛在的危險情況,比如,如果隻有政府和超級富豪可以使用量子計算機提供的超安全加密技術。
為什麼建造量子計算機很難
量子計算機的發展需要很長時間,原因有很多。對於初學者來說,需要找到一種方法來隔離和控制實現量子位的物理對象。這也需要將其冷卻到基本零度(IBM的量子一號就是0.015開氏度)。即使在如此低的溫度下,量子位元也隻能在很短的時間內保持穩定(保持相幹)。這極大地限制瞭程序員在需要讀出結果之前可以執行多少操作的靈活性。
程序不僅需要受到約束,而且需要多次運行,因為當前的量子位實現有很高的錯誤率。此外,在硬件上實現糾纏也不容易。在許多設計中,隻有部分量子位糾纏在一起,所以編譯器需要足夠聰明,能夠根據需要交換比特,以幫助模擬一個所有比特都可能糾纏在一起的系統。
量子計算入門
好消息是,微不足道的量子計算程序實際上很容易理解,雖然一開始會讓人有點困惑。有很多教程可以幫助您編寫您的第一個量子程序,以及讓您在模擬器上運行它,甚至可能在真正的量子計算機上。
d0a7c3aebf750668e0d1ce92155e52e9
最好的起點之一是IBM的QISKit,這是IBM Q Research提供的免費量子工具包,包括一個可視化的編者、一個模擬器,並在您的代碼在模擬器上運行後可以訪問實際的IBM量子計算機。Rigetti量子計算還發佈瞭一個簡單的入門應用程序,該應用程序依賴於他們的工具包,可以在他們的雲計算機器上運行。
不幸的是,瑣碎的應用程序就是:瑣碎。所以簡單地跟隨每個例子中的代碼並不能真正幫助你掌握更復雜的量子算法的復雜性。這是一個更難的任務。
二.解密量子密碼學:如何用通俗語言運作
我們已經在《量子計算如何工作》這篇文章中介紹瞭量子計算的基礎知識,現在是時候深入研究它最廣為人知的應用之一:量子密碼學瞭。量子密碼學對我們目前的加密基礎設施既有希望,也有威脅。最明顯的威脅是量子計算機可以解密使用我們現有系統加密的數據。但它也為密鑰分發提供瞭安全的通信通道。最終,利用量子技術,甚至有可能建立整個被認為是不可破解的加密系統。
量子計算解密:迫在眉睫的危機還是另一場千年蟲盲目恐慌?
幾乎所有廣泛使用的加密系統都依賴於密鑰——通常是龐大的、隨機的數字,可以用來加密或解密數據。當前的加密包通常使用對稱或非對稱密鑰構建——許多使用非對稱密鑰來傳輸共享的、對稱的密鑰來進行實際的數據加密。這兩種密鑰都很容易受到量子計算機黑客的攻擊。對稱系統依賴於一個共享的密鑰,而要破解密鑰,每增加一位就需要大約兩倍的計算工作。有瞭這樣的可伸縮性,隨著計算機變得越來越強大,就有可能繼續使用更大的密鑰。然而,通過實現格羅弗的算法,量子計算機本質上可以將密鑰長度縮短一半——這幾乎是無法想象的,減少瞭破解密鑰所需的時間。好消息是,現在我們已經意識到瞭這個挑戰,把關鍵長度翻倍應該是一個很好的防守戰術。
非對稱系統(如公鑰基礎設施- PKI)使用數學生成的公鑰/私鑰對。在廣泛使用的RSA算法傢族中,數學是相當復雜的。但如果你能把一個很大的數分解成兩個質數因子就有可能破解。如果使用一個有足夠位的密鑰,這對傳統計算機來說是一個幾乎難以解決的問題,但量子計算機可以使用一種叫做肖爾算法的東西,以更快地找到因子。粗略估計所需的計算能力是密鑰的每位長度兩個量子位。所以1024位的密鑰需要2048位的量子計算機。專傢預計這些技術將在10年內實現,有些人認為可能更快。請註意,今天1024位的密鑰已經被認為是潛在的不安全的,因為在大型計算機上,隻要有足夠的時間,它們就可以被破解,但一旦量子計算機能夠處理這項任務,隻需要很少的時間。
就像Y2K(千年蟲問題)要求的軟件遷移的情況一樣,還有其他的加密技術不容易被量子計算機破解。抵抗量子攻擊的(非量子)加密系統的例子包括McEliece和NTRUEncrypt。這意味著:問題在於將大量已經就位的系統和數據遷移到新的系統。此外,就像千年蟲問題一樣,這種威脅將會有多真實、多普遍還有待觀察,因為當足夠大的量子計算機最終面世時,它們將會非常昂貴。這意味著它們不太可能被用來竊取信息,除非這些信息被認為非常有價值。為瞭運行肖爾的所有算法,量子計算機還需要與功能強大的傳統計算機配對,這將進一步提高密鑰破解系統的成本。
使用量子密鑰分發的安全通信
當你聽到量子密碼學這個術語時,通常指的是量子密鑰分配(QKD)。QKD實際上並不加密用戶數據,但用戶可以安全地相互分發密鑰,然後使用這些密鑰進行後續加密通信。
無論使用何種加密系統,幾乎總有某種類型的私人信息必須保密。對於對稱密鑰系統,它以密鑰的形式共享信息,而在非對稱系統中,每個節點都有自己的密鑰,同時共享一個匹配的公鑰。在這兩種情況下,初始化通信時都存在漏洞。對稱密鑰系統通常依賴於密鑰的物理共享(一些金融機構使用帶有便攜式存儲設備的實際信使)來引導。或者它們可能依賴使用非對稱系統保護的連接來共享後續使用所需的加密密鑰。原因之一是,像公鑰這樣的非對稱系統不需要通過通道發送秘密(在本例中是私鑰),而對稱系統對於密鑰交換後的大量數據更有效,而且通常更安全。
雖然量子密鑰分配還沒有被廣泛使用,但它已經從2007年開始在歐洲進行商業使用,從2010年開始在美國進行商業使用。對於銀行間通信和選舉結果傳輸等高價值交易來說,量子密鑰分配的好處有時是值得付出代價的。更廣泛采用量子密鑰分配的另一個障礙是,當前的系統不能在不同的供應商之間互操作。幸運的是,這種情況正在開始改變。在一項旨在尋找確保電網安全方法的研究中,美國橡樹嶺國傢實驗室和洛斯阿拉莫斯國傢實驗室的團隊首次成功地在不同的實現中使用瞭量子密鑰分配。佈裡斯托爾大學(University of Bristol)也剛剛發表瞭一項研究,研究如何做類似的事情來幫助確保多供應商5G無線網絡的安全。
但真正的量子密碼學呢?
雖然量子加密比量子密鑰分配解密更難,但最終還是有可能使用量子計算技術加密數據,這種技術特別能抵抗竊聽和各種其他形式的黑客攻擊。目前最流行的方法是Kak協議。從本質上說,它是著名的雙鎖算法的量子版本,允許兩個用戶安全地交換數據,而不共享任何密鑰。
雙鎖協議非常簡單。我們將使用通用約定,並假設小明和小強想要交換信息,而不被竊聽者小剛修改。他們還想知道是否有人成功竊聽瞭他們的通訊頻道。為瞭做到這一點,他們通過三個步驟交換鎖。
在Kak的協議中,小明和小強使用加密函數UA和UB作為傳統雙鎖協議的物理鎖的代理。
作為第一步,小明鎖定他的數據(在數字情況下,使用密鑰加密),並將其發送給小強。小強依次添加他的鎖(用自己的密鑰對小明已經加密的數據進行加密),並將其發送回小明。小明移除她的鎖並將結果發送回小強。然後小強可以移除他的鎖,並讀取原始數據。
對於物理鎖和鑰匙來說,這一切都工作得很好,但當涉及到數字加密時,就有點復雜瞭。要使協議工作,加密過程必須是可交換的(因為加密是按照小明, 小強的順序應用的,但是小明需要能夠在小強刪除他的加密之前刪除她的加密)。一個可能的、流行的加密例子是乘上一個很大的數字。到目前為止,一切順利。但是現在想象小剛在聽。當數據來回移動時,他可以看到數據乘以小明的密鑰,數據乘以兩個密鑰,數據乘以小強的密鑰。由此,小剛可以計算出小明和小強的密鑰。
Kak提出使用特定的量子旋轉來創建一個不會被竊聽的雙鎖協議版本。他建議的旋轉可以以任何順序應用,但是任何通過讀取中間數據來監聽的嘗試都會導致損壞的數據。其他研究人員繼續發展該協議,使其具有更抗篡改的特性,但與QKD不同的是,目前還沒有任何商業實現。雖然需要更強大的量子計算機來實現真正的基於量子的加密,但研究人員正在接近這一目標。
去年秋天,中國科技大學的一個研究小組成功地利用量子糾纏光子在奧地利的一個衛星和地面站之間創建並共享一次性墊子。使用一次性密碼本加密可以證明是安全的,隻要密碼本沒有被破壞,是隨機的,隻使用一次,並且比正在傳輸的數據長。量子技術在前三個方面有所幫助,但其性能仍然相當緩慢。盡管如此,該團隊仍然能夠使用他們的量子系統加密、傳輸和解密超過2GB的數據。
wx: ScienceWorks
黄鹤楼1916香烟是手工工艺制作的香烟,于2004年底面市,拥有多达13项专利技术。该产品具备低调奢华的优雅气质,有“天赐淡雅 ...