天天看點

号稱“絕對安全”的量子通信到底是什麼?

世界網際網路大會正在烏鎮辦得如火如荼,《北京日報》的一篇報道稱北京有望明年用上量子通信網,稱量子通信技術“可以保證無條件安全的資訊安全和溝通”,換句話說,“無條件安全”指的就是“絕對安全”。

《北京日報》2015年12月19日的報道

不過可惜的是,這篇報道寫得非常混亂,标題說的是量子通信,裡面一大半卻在說量子計算機,而且很多地方說得驢唇不對馬嘴。量子通信和量子計算機盡管都是建立在量子實體的基礎上,但它們其實是完全不同的兩種技術,就像同一片土裡長出的洋芋和玉米一樣,硬要放在一起說簡直是添亂。那麼量子通信到底是怎麼一回事?所謂“絕對安全”到底是真的還是吹的呢?

有沒有絕對安全的密碼?

聽到“絕對”兩個字,大部分人都會覺得不靠譜,世界上哪有什麼絕對的事呢?答案恐怕出乎意料,絕對安全(即無條件安全)的密碼是存在的,而且是早在100多年前就已經存在的,這種密碼叫做“一次性密碼本”(one-time pad,簡稱OTP)。

OTP為什麼這麼神奇?其實OTP的原理非常簡單,首先我們将要加密的明文編碼成二進制序列,然後我們生成一串和明文長度一樣的完全随機二進制序列作為密鑰,将明文和密鑰做異或(XOR)運算就得到了密文,而接收者用密文和密鑰再做一次異或運算就能夠還原出明文。

就這麼簡單?對,就這麼簡單。開玩笑,這種東西會是絕對安全的?沒錯,絕對。因為密鑰是完全随機的,而且和明文長度一樣,這就意味着密鑰空間和明文空間的大小是相等的。換句話說,如果攻擊者用窮舉法窮舉了所有可能的密鑰,就相當于窮舉了所有可能的明文,而攻擊者無法從所有的可能性中判斷出哪一個才是發送者所要發送的明文,是以窮舉對于OTP來說是毫無意義的。

上面的解釋有點繞?我們舉個例子。假設發送者要加密的明文是

12345

,攻擊者在不知道密鑰的情況下進行窮舉,那麼他會得到5個字元的所有排列組合,比如

54321

12345

88888

ABCDE

*&#^!

……既然所有的可能性都會出現,那麼如何判斷哪一個才是真正的明文?不可能。

事實上,OTP的絕對安全性已經由資訊論之父克勞德·香農于1941年在數學上進行了完美而嚴格的證明,不存在任何可能性能夠在不知道密鑰的情況下破解OTP。那麼問題來了,為什麼在100年之後的今天,我們還沒有用上OTP呢?這是因為OTP在現有的技術條件下,幾乎完全沒有實用價值。

OTP的絕對安全性需要幾個條件:1) 密鑰必須是完全随機的(不可預測、不可複現);2) 密鑰必須與明文等長;3) 密鑰隻能使用一次。上面這三個條件實際上在現實中幾乎做不到,因為密鑰和明文等長,而且隻能使用一次,如果我有辦法把這麼長的密鑰安全地發送給對方,那麼我為什麼不幹脆直接把明文發送給對方呢?OTP不是脫褲子放屁嗎?正是因為這樣,一直以來OTP僅在一些不計成本的非常進階别的通信中才會用到,比如說事先編寫一部特别特别長的密碼本,派特工直接交到對方手裡,然後雙方在以後的通信中就可以用OTP了,當然了,由于OTP的密鑰是一次性的,是以密碼本全部用完之後就得再送一本新的……

量子通信:OTP的第二春

等等,我們不是講量子通信嗎,怎麼扯了半天OTP?之是以要講OTP,是因為量子通信實際上就是基于OTP的,隻不過因為量子通信所獨有的一些特點,讓OTP這個脫褲子放屁的玩意兒真正有了實用價值。

好了,現在我們講什麼是量子通信。量子力學的很多理論聽起來都特别不可思議,是以我們不講太細,我們先記住一個重要的原理:某個光子的狀态是無法準确測量的,因為測量這個行為本身就會改變它的狀态(海森堡不确定性原理)。量子通信就是利用了這一原理,簡單來說,發送方在量子信道生成并發送一串狀态随機的量子比特(偏振方向不同的光子),接收方則用随機的測量基準對這些量子比特進行測量。當然,由于不确定性原理的存在,接收方是無法準确測量每一個量子比特的,其中一半是測錯了的,但雙方可以通過某種特定的協定,利用普通信道(不需要加密)對測量基準進行對比,然後各自丢棄測錯了的那一半,剩下的量子比特都是被正确測量的,把正确的量子比特連起來,就形成了一串雙方内容一樣的二進制序列,這就相當于雙方“協商”出了一串完全随機的二進制序列。如果有人在量子信道對這一過程進行竊聽,那麼竊聽者也必須對信道中的量子比特進行測量,由于不确定性原理的存在,竊聽者同樣無法準确測量出所有比特的狀态,而且測量行為本身還會改變其中一半比特的狀态,通信雙方在進行測量基準對比的階段就會發現這些改變并丢棄被幹擾的比特,是以竊聽行為本身就是無效的。

如果上面這一段沒看懂,我實在想不出更好的方法來解釋,因為量子力學本身就不太符合我們的常識。這樣吧,我們暫且記住這樣一條結論:量子通信的核心是“量子密鑰分發”,即雙方可以安全地“協商”出一串内容相同且完全随機的二進制序列,第三方無法竊聽。這裡我們需要注意一點,量子密鑰分發隻能用來“協商”出一串内容相同的二進制序列(雙方事先都無法确定最終協商出來的序列的準确内容),而并不能用來傳送資訊本身,因為根據不确定性原理,傳送的量子比特中一半都是要被丢棄的。

有了一串完全随機的二進制序列,我們可以做什麼?沒錯,我們就可以用OTP了呀!是以完整的量子通信實際上是這樣工作的:1) 雙方通過量子密鑰分發協定協商出一串随機密鑰;2) 發送方用協商的密鑰對明文進行OTP加密;3) 發送方通過普通信道(如網際網路)将密文發送給接收方;4) 接收方用協商的密鑰進行解密。這樣一來,我們就完成了一次基于量子密鑰的OTP通信。

香農大神說,隻要你有辦法安全協商密鑰,OTP就是絕對安全的;海森堡大神說,利用量子力學的不确定性原理就能安全協商密鑰。把這兩個特性加起來,量子通信就是“絕對安全”的,貨真價實,一點都不誇張,除非量子力學從頭到尾就是錯的。是以,量子密碼很有可能就是密碼學的終極形态,如果量子通信能夠真正進入實用領域,那必将是一個曆史性的時刻。

原文釋出時間為:2015.12.22

本文作者:周花卷

本文來源:

簡書

,如需轉載請聯系原作者。

繼續閱讀