上文說到若量子電腦可以普及,會對政治和經濟做成嚴重的沖擊,我本想今次討論一下這問題,但想來想去,還收聽了一些清談節目,發覺很多人(不乏甚麼博士云云),都對這問題的誤解多於理解,究其原因,就是對一些基本概念的無知,所以,我想還是先討論一些基本概念。
我先會以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,就是一條這樣的數學題。答得到,便可由’公開密鑰’推算出’私人密鑰’。
吓!那麼我們還有秘密可言!?但這題目,真是難到全世界已知的超級電腦的!這話何說,下文再續。
沒有留言:
張貼留言