資訊與網路安全技術 第三章 現代公開鑰匙系統      下一頁

 

第三章  現代公開鑰匙系統

 『現代密碼學』,係利用數論的同餘運算,所推演出來的密碼演算法,由於同餘算術可以找出反函數,因而演變出一場兩把鑰匙的遊戲;無論如何,在未發現破解函數之前,它還是安全的。

3-1 公開鑰匙系統簡介

內容:

  • 3-1-1 公鑰系統之架構

  • 3-1-2 公鑰系統之演算法

西元 1970 可說是密碼學百花齊放的年代,密碼學領域裡出現三組偉大的開啟者。首先是 Feistel 1973 提出的乘積與重複編碼技巧,不但開啟區塊加密編碼的大門,時至今日大部分秘密鑰匙系統(對稱加密系統)還是沿用此架構。接著 Diffie Hellman 1976 年提出鑰匙交換的基本架構,仍是目前各種鑰匙交換協定主要的基礎。此外,他們又提出一個單向暗門函數密碼學的基本架構和『數位簽章』(Digital Signature的概念,只是當時他們並不知道單向暗門是否真的存在。到了 1978 年,才由美國麻省理工學院(MIT)三位先進(RivestShamir Adleman)率先提出一個藉由分解因數之指數函數作為單向暗門的函數 [117],從此開啟了『公開鑰匙密碼系統』(Public Key Cryptosystem,或簡稱公開鑰匙系統)的序幕。

公開鑰匙密碼學』與秘密鑰匙是迥然不同的演算法。秘密鑰匙密碼學是利用取代與重排的技巧來達成加密編碼的功能,故稱之為『傳統密碼學』(Conventional Cryptography);然而公鑰密碼學完全不再採用取代與重排的技巧,而是依照『數據理論』(Number Theory 原理所發展出來,因此又稱為『現代密碼學』(Modern Cryptography

3-1-1 公鑰系統之架構

公開鑰匙密碼系統』是加密與解密時所使用的鑰匙不同,又稱為『非對稱式密碼系統』(Asymmetric Cryptosystem。此概念最早是由 1976 年由史丹佛(Standford)大學兩位先進 Diffie Hellman 率先提出,期望除了加密和解密鑰匙不同之外,並要求解密鑰匙也不能由加密鑰匙求得。在他們的方案中,假設加密編碼 E、解密編碼 D 與明文 P,需滿足下列三點要求:

  • D (E (P)) = P

  • E 很困難推演出D

  • E 不會被選定明文攻擊法破解

第一個條件是,明文經過加密編碼法 E 處理後產生的密文,可以利用解密編碼法 D將他回復原來的明文 P。第二個條件是,由加密編碼法 E 中很難推演出解密編碼法 D。至於第三個條件即是抗拒明文攻擊能力(如同 2-3 節介紹)。他們提出這三個問題是希望解決數位簽章的『不可否認性』功能。因此,在提案中期望某一個編碼演算法必須是公開的,如此一來,防護選擇明文攻擊的能力就必須強一點。比如說,攻擊者選擇某些明文並利用 E 演算法(假設是公開的)加密,並利用所得到密文來破解 D 演算法(假設是隱密的)。當時 Diffie-Hellman 僅提出這個概念,並無提出解決方案,直到 1978 年才由 RivestShamir Adleman  等三人共同提出公鑰編碼系統架構出來。圖 3-1 為公開鑰匙系統的基本架構,其基本要素如下:

    • 每一位參與者(或系統)都擁有一對鑰匙,用來對訊息加密與解密。其中一把若作為加密,則另一把則為解密使用。即是,明文如用公開鑰匙加密得到密文,則須利用私有鑰匙將密文解密得到原來明文,反之亦然。

    • 參與者(或系統)會將其中一把鑰匙公佈在一個公開的註冊或檔案,該鑰匙便稱為『公開鑰匙』(Public Key, KU;另一把鑰匙必須隱密的收藏著,不可洩漏給他人知道,因此稱之為『私有鑰匙』(Private Key, KR

    • 通訊雙方皆須持有鑰匙配對中一把鑰匙;如果一方持有公開鑰匙,另一方必須擁有私有鑰匙;反之亦然。

    • 加密與解密程序,有各自的演算法(E D)與鑰匙(KU KR)。

3-1 公開鑰匙系統架構

以上是假設參與運作者都擁有鑰匙配對,但某些應用只要某一方持有鑰匙配對即可。我們用數學式子來表示圖 4-1 的運作程序,假設明文為 M、鑰匙配對為 {KR, KU}C 為密文。其加密與解密程序為:

加密程序:,利用 KR加密。

解密程序:,利用 KU解密。

至於上述式子中會用到哪一方的鑰匙配對,這屬於公開鑰匙系統所扮演的角色問題,我們下一節再介紹。

3-1-2 公鑰系統之演算法

公開鑰匙演算法之所以異於秘密鑰匙密碼學,它不再採用『換位與取代』方式,完全利用數學推導而成,其中又以『數論』(Number Theory)的同餘算術為主軸,目前較常見的演算法有:

    • RSA 演算法』(RSA Algorithm:由 RSA 資料安全公司(RSA Data Security Inc.)所推行,使用於資料加密與數位簽章(4-3節介紹)。

    • 『橢圓曲線密碼學』(Elliptic Curve Cryptography, ECC:本書未介紹,有興趣讀者可參考密碼學相關書籍 [79, 89, 98]

    • Diffie-Hellman 演算法』(Diffie-Hellman Algorithm:主要應用於鑰匙交換,已被崁入許多鑰匙交換協定之中(4-4節介紹)。

    • 『數位簽章標準』(Digital Signature Standard, DSS:主要使用於數位簽章,第七章再介紹。

    • ELGamal 演算法』(ELGamal Algorithm:主要應用於數位簽章,本書未介紹。

當然,還有許多公鑰演算法被提出來,本書侷限於篇幅並無法一一介紹,讀者對這方面有興趣的話,請參閱其它密碼學書籍。

主講人:粘添壽博士

 

資訊與網路安全技術