Bear's House
資訊科技

PKI:資料保密與身份認證的機制

 
 

首  頁

資訊科技

教育學習

有感而發

相關鏈結

批評指教

 

中研院計算中心 曾士熊  《計算中心通訊》第15卷第3期,1999年2月

  文件要保密,除了避免被偷看之外,更重要的是設法做到即使文件被偷看了,對方也看不懂,這就有賴「加密」技術。文件加密,簡單的說,就是把文件裡的每一個字元(包括字母、數字、標點符號等)替換成別的字元,甚至還變更字元的次序,使整份文件變成不知所云。最簡單也最原始的加密技術是把字元移位,例如“FHFIJRNF XNSNHF”乍看之下毫無意義,其實是把原文“ACADEMIA SINICA”裡的每一個字母往後移五個字母位置,使得A變成F、C變為H,依此類推,所得出來的加密文字。解密時,只需反向將“FHFIJRNF XNSNHF”的每一個字母往前移五個字母位置即可。這種加密技術,因為原始字元和加密字元之間只運用了簡單的移位規則,只需人工多試幾次就可以輕易破解。

  另一種比較高明的加密技術則是將原始字元,混雜的變更為別的字元,例如A變為X、B變為逗點…等。混雜加密技術,有如把所有字元放在摸彩箱裡,首先從箱子裡摸出一個字元(例如X)做為原始字元A的加密字元,接著就箱子裡剩餘的字元(扣除X)摸出原始字元B的加密字元,依此類推,直到所有原始字元都有一個加密字元為止。很顯然,原始字元與加密字元之間的對應關係是隨意的,因此很難直接破解。就英文而言,原始字元至少46個(包括26個字母、10個阿拉伯數字,加上假設10個各式符號),使用混雜加密技術時,原始字元和加密字元之間的可能對應多達45×44×43×…×2≒1.14×1056組。想從近乎天文數字的可能組合中,猜對真正用來加密的那一組對應關係,將加密文件還原為原始文件(即解密),要比樂透中獎難上許多。換言之,文件的加密和解密工作都必須倚賴密碼表,因而如何保管好密碼表以免被偷,就成為重要課題。此外,如果長期使用同一份密碼表,將造成每個原始字元都固定轉換成某個加密字元(例如所有A都變成X、所有B都變成逗點……),截收者只要收集足夠的加密文件,就可以利用語言特性猜出原始字元和加密字元間的對應關係。例如在英文文件裡,空白、字母E和T、句點等的出現率最高,只要從加密文件裡找出最高出現率的幾個字元,嘗試替換成這些原始字元,慢慢摸索還是有可能破解密碼。利用語言特性破解混雜加密文件,對人而言是件極為艱辛的工作,必須藉助於電腦才可能完成,二次世界大戰期間英國人就為了破解德軍的電報密碼而發明了真空管電腦Colossus。時至今日,電腦科技和語言學知識足以讓破解混雜加密文件不再是難事,因此除了少數軍事用途之外(例如下令給潛水艦),幾乎已經不用這種加密技術了。

  進入電腦時代之後,文件加密和解密的工作變的簡單許多。位元邏輯運算XOR(Exclusive OR,運算符號為♁)具有一種特性:給相同長度的兩個字元串(bit string)T和K,T♁K♁K=T。XOR運算應用於文件加密時,T代表文件片段,而K則稱為Key。假設我們把原始文件的電子檔每16bit一切(相當於T),分別和一個16bit的任意位元串K(但每個bit都為0者除外)做XOR運算,所產生的新電子檔就成為加密文件。解密時,只要再把加密文件電子檔每16bit一切,分別和K做XOR運算,即可還原成原始文件。16bit的Key只有216-1=65535種組合,使用電腦窮舉測試,很容易就能破解。所以,實用上Key越長越好,如果Key夠長的話,電腦甚至要花上數年的時間才能破解密碼。不論多長,只要有Key,電腦就能輕易做好加密和解密的工作。除了方法簡單、保密性高之外,XOR加密技術還有另一項優點:不論是文字、語音或圖像,只要數位化之後都變成字元串,都能加密。被廣泛使用的DES (Data Encryption Standard)就是以這種技術為基礎所發展出來的。DES雖然好用,卻有個嚴重缺點:加密和解密都使用相同的Key。換句話說,當你把加密文件的電子檔傳送給收件人時,必須同時給他Key,否則無法解密。如何安全無虞的把Key送交對方,於是成為DES的一大難題。

  1976年,Diffie和Hellman提出公鑰加密系統(Public Key Cryptosystems)的構想:讓文件加密和解密用的Key變的不同,一舉解決了多年來Key保管與傳送的難題。PK加密系統需要兩個經過特別計算所得出的字元串,稱為公鑰和私鑰。資料經過公鑰加密之後必須用私鑰才能解密,反之亦然。1978年,Rivest、Shamir和Adleman共同發表了第一個用以產生公鑰和私鑰的數學方程式,稱為RSA密碼。本院的PKI (Public Key Infrastructure)就是利用RSA密碼技術和Diffie-Hellman加密技術所建立起來的。同仁可利用本院的FTP下載PK的使用者軟體,自行產生公鑰和私鑰後,經由規定程序向計算中心登記個人資料和寄存公鑰,私鑰則必須自行謹慎保管。本院PKI的Key長度共有512bit、1024bit、2048bit等,可由使用者自選,較美國政府限制PK軟體出口的512bit更具保密性。

  PKI的作用包括資料保密和身份認證兩方面。當你需要寄送加密檔案給某人(假設為A君)時,需先向PK伺服器查詢A君的公鑰,再以取得的公鑰進行資料加密。由於檔案是用A君的公鑰加密的,因此只有A君的私鑰才能解密。只要A君妥善保管好自己的私鑰,就能確保檔案的隱密性。至於身份確認方面,你需要事先透過適當的安全管道把代表自己身份的電子簽章檔送給A君,電子簽章檔可以是文字檔或簽名、印章的影像檔。當你把利用A君公鑰加密的資料檔Email給對方時,可以附加上利用自己私鑰加密的電子簽章檔。A君收到你寄送去的資料檔和電子簽章檔之後,可以使用他自己的私鑰對資料檔解密,同時向PK伺服器查詢你的公鑰,再利用取得的公鑰對電子簽章檔解密。比對解密後的電子簽章檔和你事先交付的電子簽章檔無誤之後,A君就能確認資料檔確實是你寄送給他的。PK登記手續只需辦理一次,之後就可以透過網路隨時更換寄存在PK伺服器裡的公鑰。使用者只要勤於更換公鑰和私鑰,甚至每一對公鑰和私鑰只用一次,用過即換,即可保障通訊內容安全無虞。

  PK加密機制可說是有史以來最安全可靠的資料加密技術,其重要性與需求必將隨著網路的發展而日增。未來的發展趨勢將是由各業務主管機構(例如金融資訊中心、證券交易中心、網路主管機構等)各自依業務需求設置PK伺服器,並透過協議簽約彼此提供公鑰查詢服務。本院建置PKI,除了為本院同仁提供資料保密與身份認證服務之外,還希望將來能與各學術機構發展合作關係,讓彼此間可以透過網路和PKI傳遞公文以及交換各種研究資訊。


 

註1:每一份密碼表記錄一組原始字元和加密字元的對應關係。

註2:Colossus是由Flower等人於1940年發明的,但正式運用於解碼工作則是1943年底。當1946年美國賓州大學的Mauchly和Eckert發明ENIAC時,英國軍方已經先後擁有十部Colossus。直到1976年相關文獻解禁之後,世人才得知Colossus的存在,三十多年保密的代價是歷史上第一部真空管電腦的美名拱手讓給ENIAC。詳情請參見Ira Flatow原著,尖端出版社出版的《樂在發明》一書的第19章。