2013年5月28日 星期二

量子電腦(四)

上文說到若量子電腦可以普及,會對政治和經濟做成嚴重的沖擊,我本想今次討論一下這問題,但想來想去,還收聽了一些清談節目,發覺很多人(不乏甚麼博士云云),都對這問題的誤解多於理解,究其原因,就是對一些基本概念的無知,所以,我想還是先討論一些基本概念。

我先會以RSA做例子,我曾在這裏寫過多篇討論RSA算法的文章,大家若有興趣在這裏搜尋一下便可以了。雖然我已寫得盡量淺白,但行外人始終很難理解。今次,我嘗試用效果的觀點,討論一下這個問題,希望這樣會讓大家明白問題的所在。

RSA可說是上世紀最重要發明之一,但由於祗是個算法,又不是甚麼飛機大炮,所以常人鮮有留意。但你也總會聽過電子證書,前幾年,香港更通過法例,賦予經由電子證書簽署的文件,簽署人便會負上不可推翻的法律責任。

電子證書背後的科技就是RSA。RSA的突破,就是非對稱密鑰(asymmetric key cipher),原理就是加密和解密需要兩個不同的密鑰(key)。舉個例子,你可與友人約定,當你寫英文時,會故意把a寫成z,把b寫成d……把26個字母根據一個轉換表進行轉換,然後,你與友人各持一份,理論上,其他人看到這些通訊便會摸不著頭腦,這便是加密!但必需要提醒一下,這種轉換,在密碼學來說是’石器時代’的方法,今天的電腦不用幾百份一秒便可完全破解。

但你可想想,在加密和解密的過程,都是會用同一套的轉換表,這便是密鑰(key),簡單來說,你懂得如何加密,便會自然懂得如何解密,反之亦然!你和朋友間就是拿著一份相同的轉換表,你們便可進行加密或解密。我們便稱此為對稱密鑰。

對稱密鑰有著數千年計的歷史,甚至可以說,自有通訊便有這個概念,所以是’常識’。就是在上世紀,由一位英國軍方人員,想出了一個突破性的算法,就是加密和解密會用上不用的密鑰(key)。但他也想不到可以怎樣應用這技術,加上軍方的保密要求,他沒有發表這項重要發明。及後,三位美國的研究生,獨立地再開發出這套方法,更加申請了專利,RSA就是他們名字的簡寫。

非對稱密鑰又有甚麼偉大之處呢?就以電子證書為例,當你成功申請到一張電子證書,你會收到兩個密鑰(key),稱之為’公開’和’私人’(public key, private key)。你的公開密鑰會公開發佈(還會有認證過程,從略),要和你秘密通訊的人,就可以用你的公開密鑰把訊息加密傳送。訊息就算被其他人看到,他們也知道你的公開密鑰,但也不能解拆其內容。祗有你才有對應的私人密鑰,才可解拆其內容。

於是,完全不認識,更沒有任何秘密約定的人,都可以進行安全保密的電子通訊。若你在上網時,使用https其實就正使用這項科技。

這方法還可簽署名件,方法就是你用私人密鑰加密文件,其他人就可以使用你的公開密鑰解密,由於祗有你才擁有私人密鑰,因此,你便不能否認,這份文件是由你發出的!

但關鍵是,絕不能由公開密鑰推導出私人密鑰,若可,就沒有任何秘密可言了!

要由公開密鑰推導出私人密鑰(反之亦然),其實不是不可能,祗要你可解答一個數學問題便可!

而這個並不是甚麼高深的難題,題目本身就是在小學課程裏。是甚麼?就是因子分解(factorization)。

我沒有看錯,我也沒有寫錯。就是因子分解。這就是我給你一個6,你把它分解為2X3,就是一條這樣的數學題。答得到,便可由’公開密鑰’推算出’私人密鑰’。

吓!那麼我們還有秘密可言!?但這題目,真是難到全世界已知的超級電腦的!這話何說,下文再續。


2013年5月27日 星期一

量子電腦(三)

上文提到現時的超級電腦就是用上了極多部的電腦,作’平行’運算。不要說甚麼超級電腦,我現在就是用一部i7 cpu的電腦,已經是四核心,某程度上就是四部電腦集合在一起。

量子電腦,在某個意義上就是極多部電腦的組合,但就和把多部物理電腦集合在一起的運作原理完全不同。我們可理解成,量子電腦祗有一個處理器,但就是有以億計電腦的計算力,這就是基於一個非常難理解的現象:平行宇宙!

在繼續說下去前,我想引用量子力學鼻祖Bohr的一句話:’若你不覺得量子物理學古怪和不合理,你便是不真正理解量子物理學’和諾貝爾物理學獎得主Richard Feynman所說的:’任何可與日常生活經驗類比的,都不是量子物理學。’我已警告了你!

我在大學時,量子物理讀得一團糟,原因正是我的專長就是類比,我有能力把很複雜的理論和日常生活的現象類比,所以,讀不了量子物理學!

平行宇宙或多宇宙的理念,就是說存在著無限多的宇宙。舉個例子,你和友人擲毫決定誰請客,可能出現的結果是公或字,亦祗可能有一個結果,不可能是同時是公和字。但平行宇宙的理論就是說結果是公和字是同時出現的,祗是在兩個不同的宇宙,又或更確切的說,每個時刻都會演化出多個宇宙,每個宇宙都包括著一個狀態(可能性)。

平行宇宙理論本是一篇博士論文,起初學術界頗難接受這個觀念,因為按這個推論,我們必會有接近無限多的宇宙。這實難用常識去理解!

在日常生活的宏觀世界,平行宇宙論真是難以想像的。但在微觀的量子世界,科學家就發覺鐵證如山,特別是量子級的干涉現象,可以說是接近判別實驗了。上面提到的Richard Feynman就是開發了一個獨特的計算方法,因而得了諾貝爾獎,其理念就是要累加所有平行宇宙的路徑,來解決很多量子力學的問題。

看不明白上面說甚麼?正常的!我已一早警告了你。但要理解的重點是在平行宇宙裏,所有狀態(可能性)都同時在發生,在電腦學上,我們會稱一個二進制位元為bit,bit可以是0或1,但在同一時間內,祗可以是其中之一。但在量子電腦上bit變成了qbit,qbit一樣可以是0或1,但不同於bit,它可以同時是0和1,亦即是進入了兩個平行的宇宙。

想像一下,若進入了兩個平行宇宙,不就是可以分別進行運算,問題是如何返回結果,因為量子物理學會告訴我們,一觀察一粒量子,就會引發其狀態的崩坍。一個著名的例子便是把一隻貓放在一個盒子內,而盒內有一個隨機裝置可能會,也可能不會殺死這隻貓。量子理論便告訴我們,在我們打開盒子觀察貓的生死前,貓其實是同生同死,亦即在生死兩個平行宇宙。祗是我們的觀察,就令狀態發生崩坍,貓的生死也固定下來。

以上的比喻在學術界仍有不少爭論,但重要的是,在量子世界,平行宇宙確實存在。量子電腦便是按這原理構作,我剛才說一個qbit便會有2個可能性,亦即兩個平行宇宙,2個qbit便會有4個平行宇宙,10個qbit便會有1024個平行宇宙,而20個qbit便會有超過1,000,000個平行宇宙!

今天我們的電腦大部份都是採用64 bit的處理器,若我們能構建一部64 qbit的量子電腦,請你算一算會是多少個平行宇宙!若能在每個宇宙獨立運算,然後又有辦法組合其結果,想想這是甚麼級別的計算力!

現時的量子電腦究竟能做到多好尚是高度機密。但可以肯定的是現時量子電腦的制作成本非常高昂,按公開的資料,一部量子電腦的入門價是 一千五百萬美元。這還不止,操作時要保持在0.02K,即非常接近絕對零度,液態氮(醫療界常用來作冷凍治療)其沸點都祗是77K!要達到這個低溫,就祗有用液態He-3,運作成本之高昂,可想而知。再說,這樣的操作必定很困難,穩定性亦必然很低!

不要說量子電腦可以普及到放在你我的桌面,祗要其價格再便宜一些,操作再簡易一些,穩定性再改善一些,政府就可以大量使用,其驚人之計算力就會顛覆我們的很多基本概念。其對政治和經濟的影響,下文再續。

2013年5月26日 星期日

量子電腦(二)

上文提到量子電腦有超越現時電腦多個級別的計算力,而這樣的計算力,是會完全顛覆現時很多概念的。今次,我便嘗計一下解釋箇中的原理。但有一點是必需事先聲明,我所寫的都是基於公開資料,這是項先進科技,很多細節都是高度機密。這些都是我無法得知的。

或讓我先解釋一下計算力的基本概念。假設,我們有一堆資料,它們無序地排列,而其中一筆是我們需要的,任務就是要找出這筆資料。由於,資料是無序的排列,找出這筆資料的唯一方法就是逐筆對比。若運氣好,就是第一筆便是需要的,而若運氣最差時,可能就是要找到最後一筆才找到。

若用一點數學,假設資料有n筆,最佳情況就是比對1筆,而最差情況就是要比對n筆,跳去一點嚴謹,可以想像平均就是要比對(n+1)/2筆的資料。仔細是否加一或又為何要除二不用太執著,反正你可能不是數學家。但有一個概念這樣的搜索所用的平均時間,就是與n成線性正比例。我們會把這個難度記成o(n),這裏的o是order的簡寫。

想想,若每個比對可以在一百萬份之一秒內完成,那麼當n=2,000,000時,任務就需約1秒去完成,而當n=20,000,000時就需時約10秒,如此類推。

所謂計算力也者,就是可以在多短的時間內,完成一個特定的任務,若在上例中,完成每個對比的時間不是一百萬份一秒,而是一秒,你想想這個任務要多少時間去完成呢?

講一件小事給大家參考,十多年前,流行過一些廉價賀卡,當你打開賀卡時,會自動播放音樂和閃燈,幾’得意’,節日一過,大家可能都會隨手拋掉。但大家可有想過,這張賀卡其實就是部極小型電腦,而其計算力,已遠超二次大戰時,盟軍所擁有的計算力總和!當年傾多國的全力搞出來的,今天我們會毫不猶疑地放進垃圾桶!

電腦界有一個應用定律,就是說計算力每十八個月會增長一倍。但最近這個定律已受一些物理和技術的基本困難所限制,計算力的增長開始遇到了瓶頸,電腦處理事情的速度無法再任意加快。所以,工程師就想出了其他的方法。

又再回到上面的例子,假設我們已沒法再加快一百萬份之一這個速度,那麼,我們就把資料分成二堆,例如,當n=2,000,000,我們便得到每堆一百萬筆的兩堆,然後交給兩部’獨立’的電腦去進行搜索,理論上平均搜索時間每祗需原來的一半,即0.5秒。

所謂超級電腦也者,就是把極多的電腦結合在一起,’平行’處理問題,理論上,若我們有n部電腦,最理想的情況,計算力便可提高n倍。為甚麼是最理想呢?不是所有處理都可以這樣分割的。而且把任務分割都要用上計算力。超級電腦的編程就是一門高深學問。

但我們可以想像可以將多少部電腦連接,組成一部超級電腦呢?1千!?1萬!?10萬!?還是100萬!?

但就是我們可以把100萬部電腦連起來,其計算力仍是不可與量子電腦相題並論,下文我會介紹平行宇宙和qbit,這些就構成了量子電腦的概念飛躍!下文再續。

量子電腦(一)


昨天我有幸能和名中醫秦鴻教授交流,他的識見實在令我佩服,我們由身體談到中醫,再談到量子物理學,再談到秦教授由中醫原典整理出來,跨時代跨科技的中醫體系理論.實在令我獲益良多.

除了秦教授,還有他的高足,他問了我一條很簡單,但又很難回答的問題,這就是我的工作與這些理論,有沒有關係.

一個簡單的答案是‘沒有’!理由是我現在做的都祗算是小型系統,考慮到成本和時間上的投入,祗能做一些非常基本的功能.這就與量子,混沌等等概念難拉上關係.但又不能這麼簡單去思考,這可能用‘逆行菩薩’的概念可以解釋一下.

何謂‘逆行菩薩’呢?幫助我們的恩人,可以理解為菩薩.但對得我們不好,甚至加害於我們的人,也可以是‘菩薩’,因為他們可以令我們成長,令我們變得更堅強,又或我們可得到反面教材,知道甚麼是行不通的.

就是我了解我現在的工作和技術,我就越知她們的限制.就會更知道宇宙之大.不要說大宇宙,就是人類現時的科技小宇宙,對我來說也是無限大,有關科技世界之大和其脆弱性,我在這裏都多次提及.不贅.

前幾天出了一條重要新聞,香港的傳媒的反應非常冷淡,其實極之重要,這就是美國太空總署(NASA)和谷歌(Google)合作購置和共同使用量子電腦,這是一個重要的科技里程碑,但又是一個值得令人擔憂的政治問題.

要理解這個問題,或我由一個例子說起.前些時間,我在銀行碰到一位鄰居,她要入數到公司的戶口,但她又忘了帳號,理所當然地說了公司名稱,期望銀行職員可以幫她查找帳號.但糾纏了數分鐘,櫃員亦未能找到,她當然非常火光,最後發覺完來問題是她的公司名稱內有香港一詞,她給櫃員的資料是Hong Kong,而銀行內的紀錄是HK!我的鄰居就更火光了,她就是說,為甚麼你們的電腦這麼‘蠢’,Hong Kong 和 HK又有甚麼分別呢?

我這個閒人就為銀行說了句‘公道話’,我對鄰居說:‘我們都給Google寵壞了,當我們用Google搜索時,不要說輸入Hong Kong和HK沒有分別,祗要我們輸入一些極為模糊的字句,都可以得出非常有用的結果,但這是Google,我們難於期望銀行的系統可以相題並論的!’

我說的確是公道話,最少,我絕無能力和投資,可以寫出一個如Google的智能搜索系統.我肯定我寫的系統會把Hong Kong和HK視為兩件事!初學者不要輕說你能,你能的原因祗有兩個,第一,你不了解這個問題,我們當然可以將Hong Kong與HK互換,但九龍呢?新界呢?九龍可以是Kowloon,亦有人會寫成Kln,Google並不是簡單地轉換幾個地名,而是要適應極多種語言、風俗、地理、行業……你可以寫出一個這樣的系統嗎?另一個可能,你便是在使用別人的引擎!

Google數據中心通常都選擇在有水力發電設施的地區,按我中學時上的地理課,祗是一些需要大量用電的工業,如鋁提煉和加工等行業,才有這個考慮,以節省能源支出.可想而知,Google的數據中心的用電量是如何的厲害.Google就是要極聰明的軟件和極高效能的電腦,才可以令其系統有這個水平的‘智慧’.

越了解電腦,就越知電腦的限制,一些對人來說是常識的東西,電腦也要很大的投資才能達成,如果能達成的話.

這就是我在上面所說的,我沒有能力去達成量子計算和混沌.但我就是知道若電腦擁有這個計算力,很多概念都會被顛覆.例如,今天很多人都接受了網上銀行的概念,但我可以說,若電腦的計算力能戲劇性的提高,網上銀行便會變得完全不可行.

為甚麼?今天,我們主要是倚賴RSA作為安全加密的算法,以今天最頂級的超級電腦的計算力,破解一個RSA的public key最少都要以千年計,但若量子電腦一普及,破解時間可能祗需要幾分鐘,甚至是幾秒,世界便再無秘密可言.

若美國政府掌握了這個科技,就不得不令人擔心.

為甚麼量子電腦可以這麼厲害呢?下文再續.