文章專區

2018-06-01網路安全技術 與比特幣 582 期

Author 作者 賴昭正/前清大化學系教授、系主任、所長;合創 《科學月刊》。
去(2017)年的世界一大新聞是: 比特幣(bitcoin)從年初的不到美 金 1000 元,在 12 月初暴跳到幾乎 美金20000 元,最後以16500 元左 右收盤!這一沒有任何政府做後盾的貨幣,如雲霄飛車的升降,實在很難令人相信人類的經濟活動是理性的 (《科學月刊》2014 年 5 月號)。 雖曾看過些比特幣文章,但除了一些名詞外,可以說什麼都沒學到;難道真有什麼特別的技術讓它值這麼多錢嗎?此一新聞突然讓筆者再次對比特幣感到興趣。作為一位喜好科普的科學家,當然心裡癢癢的,也想寫一篇比較深入點的技術性比特幣文章。底 下便是筆者猛K相關文獻後的心得報導,希望在這裡與讀者分享。

密碼學

資訊在網路上的傳送,最重要的當然是需要能保密。所以我們在這裡先談一談網路上的保密是如何達成的。保密當然並不是網路出現後才有的—— 早在公元前2000年就有保 密的記載;二次世界大戰之聯軍所以能夠打敗德國,事實上可能還得歸功於解碼的成功:使得聯軍對德軍的一切行動瞭若指掌。

保密是透過一定的規則將原來的資料改成無法理解的文字組合,在密碼學裡我們稱此一過程為「加密(碼) (encryption)」。例如:
I Love Science
透過「加密函數」變成  
J3Mpwd5Tdjdodf

 
要想得回原來的信息,我們當然需要知道加碼規則才能「解(密)碼 (decryption)」。全世界有上億人口使用網路,因此每個團體都使用自己的密碼規則是不實際的。通用的「密碼函數」只有數種,因此除了加密外,還需加鎖。雖然你知道我所使用的加密規則,但沒有我特別製造的鑰匙,你還是無法打開我加密後的資料。

如果用來開鎖的鑰匙與加鎖的鑰匙相同, 我們稱之為「 對稱加密 (symmetric encryption)」, 其鑰匙稱為「(對稱)鑰匙」; 如果不一樣, 則稱之為「不對稱加密(asymmetric encryption)」:自己保有的鑰匙稱為「私鑰(private key)」,發給大家的鑰匙則稱為「公鑰(public key)」。「私鑰」與「公鑰」是成對的:用「私鑰」鎖住的東西只能用其相對之「公鑰」來開。反之亦然:用「公鑰」鎖住的東西只能用其相對之「私鑰」來開。

從上面的闡釋看來,加密及加鎖好像是先後使用的兩碼事;但事實上它們大部分都是同時使用上的:

 
(資料 + 鑰匙)→
加密軟體→diwlae;ajp2$
(diwlae;ajp2$ +鑰匙)→
解密碼軟體→資料
 

網路保密傳送

 
我們現在就用一個實際的例子來說明它們的使用方法:你在臺灣銀行有戶頭,想到臺灣銀行網頁轉一些錢到另外一個銀行的戶頭。當你上臺灣銀行網頁時,第一個注意到的應是網頁前 的「https:」:與一般網頁前之「http:」 比,多的 s是告訴你這是安全網站,一切資訊來往均需加密碼及加鎖保護。


在經過一番「握手」談如何交換資訊後,臺灣銀行網頁就將它的「公鑰」寄給你,要你用同意後之加碼規則及它的公鑰、將你的電腦軟體製造之「對稱鑰匙」及其它資料加密及加鎖寄給它:此後你們的資訊來往就全使用這把「對稱鑰匙」來加密及加鎖(圖一)。



讀者可以自己分析一下:在上述的資訊交換中,萬一有人偷偷攔劫了,他會因為缺少正確的鑰匙,沒法得到任何保密過的資訊!……【更多內容請閱讀科學月刊第582期】