2008年9月18日 星期四

非對稱密鑰(一)

若論上世紀偉大發明,非對稱密鑰(Asymmetric Cipher)可謂當之無愧。在未來的幾天,我便討論一下這是甚麼。

雍正建立了一個嚴密的密探系統,據說當時可以直接上書雍正就有千多人。雍正會授予這些‘密探’一個盒子,這個上鎖的盒子有兩條一樣的鎖匙,雍正和‘密探’各持其一,於是當雍正接到這個上鎖盒子,便可肯定訊息是來自‘密探’,在傳送途中亦無被偷看。

要這個系統成功運作,當然會有很多假設,例如,雍正和‘密探’都沒有掉失鎖匙,盒子足夠堅固,不用鎖匙便不能開鎖等等……

以上的描述我作了一個不嚴謹的推論,這和鎖的設計有關,就是我假設上鎖時是需要用鎖匙的。這樣,雍正才可肯定訊息是來自‘密探’。今天,很多鎖都無需使用鎖匙上鎖,若是這樣,雍正便不能肯定訊息來自‘密探’了。事實是怎樣,我尚未考證得到。

先假設當時的鎖是要用鎖匙來上鎖的,那麼,若用今天密碼學的術語,這便是對稱式密鑰(Symmetric Cipher),‘對稱’的意思就是上鎖的鎖匙,便等如開鎖的鎖匙。而雍正與‘密探’之間就要有一個‘共享秘密’(shared secret),這就是一式兩條的銷匙。

以當時的科技,要做出千多把不同的鎖和鎖匙(有一說是從荷蘭進口的),就一點也不簡單,何況雍正還要有系統地存貯和提取相應的鎖匙,可以想像是何等的複雜!

這個理所當然的系統,又有甚麼問題呢?讓我們先研究一個‘密碼學’的經典問題,這就比較容易理解問題的核心。

在一個極度貪污的國度,其郵政系統已完全腐化了,若你以不上鎖的方法寄送任何東西,郵差都會偷去,但他們也極度懶惰,祗要你把要寄的東西放在上了鎖的箱子內,他們便懶得去解鎖,你的物品便可安全送達。

假設郵寄是你和朋友溝通的唯一途徑,你又如何能使用這個腐化的系統完成物品的傳送呢?

問題的核心就是你可以上鎖然後寄出箱子,箱子也會安全送達,可是,你的朋友並沒有開鎖的鎖匙!你當然可以用另一個箱子和鎖,寄出鎖匙,但你的朋友仍無鎖匙去開這個箱子的鎖。我必需說明,這題目並不是那些‘曲解’字義的IQ題。請不要答:‘用密碼鎖,然後用電話通知朋友開鎖密碼。’‘郵寄是溝通的唯一途徑’,‘唯一’便排除一切郵寄以外的通訊可能。用電話便犯規了!同樣,不要說打爛箱子、找開鎖專家、用百合匙等等……

沒有留言:

網誌存檔