第35部分(第3/4 頁)
想駭客們大搖大擺地破解你的密碼,侵入你的系統篡改你的資料,然後把你銀行裡的存款提得精光,這就需要我們對私隱資料執行嚴格的加密保護。目前流行的加密演算法不少,很多都是依賴於這樣一個靠山,也即所謂的“大數不可分解性”。大家中學裡都苦練過因式分解,也做過質因數分解的練習,比如把15這個數字分解成它的質因數的乘積,我們就會得到15=5×3這樣一個唯一的答案。
問題是,分解15看起來很簡單,但如果要分解一個很大很大的數,我們所遭遇到的困難就變得幾乎不可克服了。比如,把10949769651859分解成它的質因數的乘積,我們該怎麼做呢?糟糕的是,在解決這種問題上,我們還沒有發現一種有效的演算法。一種笨辦法就是用所有已知的質數去一個一個地試,最後我們會發現10949769651859=4220851×2594209(數字取自德義奇的著作The Fabric of Reality),但這是異常低效的。更遺憾的是,隨著數字的加大,這種方法所費的時間呈現出幾何式的增長!每當它增加一位數,我們就要多費3倍多的時間來分解它,很快我們就會發現,就算計算時間超過宇宙的年齡,我們也無法完成這個任務。當然我們可以改進我們的演算法,但目前所知最好的演算法(我想應該是GNFS)所需的複雜性也只不過比指數性的增長稍好,仍未達到多項式的要求(所謂多項式,指的是當處理數字的位數n增大時,演算法所費時間按照多項式的形式,也就是n^k的速度增長)。
所以,如果我們用一個大數來保護我們的秘密,只有當這個大數被成功分解時才會洩密,我們應當是可以感覺非常安全的。因為從上面的分析可以看出,想使用“暴力”方法,也就是窮舉法來破解這樣的密碼幾乎是不可能的。雖然我們的處理器速度每隔18個月就翻倍,但也遠遠追不上安全性的增長:只要給我們的大數增加一兩位數,就可以保好幾十年的平安。目前最流行的一些加密術,比如公鑰的RSA演算法正是建築在這個基礎之上。
但量子計算機實現的可能使得所有的這些演算法在瞬間人人自危。量子計算機的並行機制使得它可以同時處理多個計算,這使得大數不再成為障礙!1994年,貝爾實驗室的彼得•;肖(Peter Shor)創造了一種利用量子計算機的演算法,可以有效地分解大數(複雜性符合多項式!)。比如我們要分解一個250位的數字,如果用傳統計算機的話,就算我們利用最有效的演算法,把全世界所有的計算機都聯網到一起聯合工作,也要花上幾百萬年的漫長時間。但如果用量子計算機的話,只需幾分鐘!一臺量子計算機在分解250位數的時候,同時處理了10^500個不同的計算!
更糟的事情接踵而來。在肖發明了他的演算法之後,1996年貝爾實驗室的另一位科學家洛弗•;格魯弗(Lov Grover)很快發現了另一種演算法,可以有效地搜尋未排序的資料庫。如果我們想從一個有n個記錄但未排序的資料庫中找出一個特定的記錄的話,大概只好靠隨機地碰運氣,平均試n/2次才會得到結果,但如果用格魯弗的演算法,複雜性則下降到根號n次。這使得另一種著名的非公鑰系統加密演算法,DES面臨崩潰。現在幾乎所有的人都開始關注量子計算,更多的量子演算法肯定會接連不斷地被創造出來,如果真的能夠造出量子計算機,那麼對於現在所有的加密演算法,不管是RSA,DES,或者別的什麼橢圓曲線,都可以看成是末日的來臨。最可怕的是,因為量子並行運算內在的機制,即使我們不斷增加密碼的位數,也只不過給破解者增加很小的代價罷了,這些加密術實際上都破產了!
2001年,IBM的一個小組演示了肖的演算法,他們利用7個量子位元把15分解成了3和5的乘積。當然,這只是非常初步的進展,我們還不知道,是否真的可以造出有實際價值的量子計算機,量子態的糾纏非常容易退相干,這使得我們面臨著技術上的嚴重困難。雖然2002年,斯坦弗和日本的科學家聲稱,一臺矽量子計算機是可以利用現在的技術實現的,2003年,馬里蘭大學的科學家們成功地實現了相距0。7毫米的兩個量子位元的互相糾纏,一切都在向好的方向發展,但也許量子計算機真正的運用還要過好幾十年才會實現。這個專案是目前最為熱門的話題之一,讓我們且拭目以待。
就算強大的量子計算機真的問世了,電子安全的前景也並非一片黯淡,俗話說得好,上帝在這裡關上了門,但又在別處開了一扇
本章未完,點選下一頁繼續。