本頁使用了標題或全文手工轉換

公開金鑰加密

維基百科,自由的百科全書
跳至導覽 跳至搜尋
此流桯圖顯示非對稱加密過程是單向的,其中一條密鑰加密後只能用相對應的另一條密鑰解密。

公開金鑰密碼學(英語:Public-key cryptography)也稱非對稱式密碼學(英語:Asymmetric cryptography)是密碼學的一種演算法,它需要兩個金鑰,一個是公開密鑰,另一個是私有密鑰;一個用作加密,另一個則用作解密。使用其中一個金鑰把明文加密後所得的密文,只能用相對應的另一個金鑰才能解密得到原本的明文;甚至連最初用來加密的密鑰也不能用作解密。由於加密和解密需要兩個不同的密鑰,故被稱為非對稱加密;不同於加密和解密都使用同一個密鑰的對稱加密。雖然兩個密鑰在數學上相關,但如果知道了其中一個,並不能憑此計算出另外一個[來源請求];因此其中一個可以公開,稱為公鑰,任意向外發布;不公開的金鑰為私鑰,必須由用戶自行嚴格秘密保管,絕不透過任何途徑向任何人提供,也不會透露給被信任的要通訊的另一方。

基於公開密鑰加密的特性,它還提供數位簽章的功能,使電子檔案可以得到如同在紙本檔案上親筆簽署的效果。

公開金鑰基礎建設透過信任數位憑證認證機構根憑證、及其使用公開金鑰加密作數位簽章核發的公開金鑰認證,形成信任鏈架構,已在TLS實現並在全球資訊網HTTPHTTPS、在電子郵件SMTPSTARTTLS引入。

另一方面,信任網路則採用去中心化的概念,取代了依賴數字憑證認證機構的公鑰基礎設施,因為每一張電子憑證在信任鏈中最終只由一個根憑證授權信任,信任網路的公鑰則可以累積多個用戶的信任。PGP就是其中一個例子。

概述[編輯]

加密[編輯]

非對稱加密往往需要密碼學安全偽亂數生成器的協助來產生一對金鑰,其中一個可以隨便公開,稱為公鑰;另一個不公開,稱為私鑰,必須由用戶自行嚴格秘密保管,絕不透過任何途徑向任何人提供。

如果任何人使用公鑰加密明文,得到的密文可以透過不安全的途徑(如網路)傳送,只有對應的私鑰持有者才可以解密得到明文;其他人即使從網路上竊取到密文及加密公鑰,也無法(在數以年計的合理時間內)解密得出明文。典型例子是在網路銀行或購物網站上,因為客戶需要輸入敏感訊息,瀏覽器連接時使用網站伺服器提供的公鑰加密並上傳資料,可保證只有信任的網站伺服器才能解密得知訊息,不必擔心敏感個人資訊因為在網路上傳送而被竊取。

在現實世界上可作比擬的例子是,一個傳統保管箱,開門和關門都是使用同一條鑰匙,這是對稱加密;而一個公開的電子信箱,投遞口是任何人都可以寄信進去的,這可視為公鑰;而只有信箱主人擁有鑰匙可以打開信箱,這就視為私鑰。

加密過程[編輯]

在非對稱加密中,愛麗絲使用鮑伯的公鑰加密明文,得到密文,而只有鮑伯因為持有私鑰才可以解密,得到明文。

在數學上,,讓我們使用典型的愛麗絲與鮑伯假設來解釋:

  1. 愛麗絲與鮑伯事先互不認識,也沒有可靠安全的溝通管道,但愛麗絲現在卻要透過不安全的網際網路向鮑伯傳送資訊
  2. 愛麗絲撰寫好原文,原文在未加密的狀態下稱之為明文
  3. 鮑伯使用密碼學安全偽亂數生成器產生一對密鑰,其中一個作為公鑰為 ,另一個作為私鑰
  4. 鮑伯可以用任何方法傳送公鑰 給愛麗絲,即使伊夫在中間竊聽到 也沒問題
  5. 愛麗絲用公鑰 把明文 進行加密,得到密文
  6. 愛麗絲可以用任何方法傳輸密文 給鮑伯,即使伊夫在中間竊聽到密文 也沒問題
  7. 鮑伯收到密文,用私鑰 對密文進行解密 ,得到愛麗絲撰寫的明文
  8. 由於伊夫沒有得到鮑伯的私鑰 ,所以無法得知明文
  9. 如果愛麗絲遺失了她自己撰寫的原文 ,在沒有得到鮑伯的私鑰 的情況下,她的處境將等同伊夫,即無法透過鮑伯的公鑰 和密文 重新得到原文

數位簽章[編輯]

相反,如果某一用戶使用他的私鑰加密明文,任何人都可以用該用戶的公鑰解密密文;由於私鑰只由該用戶自己持有,故可以肯定該檔案必定出自於該用戶;公眾可以驗證該用戶發布的資料或檔案是否完整、中途有否曾被篡改,接收者可信賴這條資訊確實來自於該用戶,該用戶亦無法抵賴,這被稱作數位簽章,大部份國家已經立法承認數位簽章擁有等同傳統親筆簽章的法律效力。公鑰可以透過數位憑證認證機構簽授的電子憑證形式公布,接收者透過信任鏈形成一套完整的公開金鑰基礎建設。例如,從網上下載的安裝程式,一般都帶有程式製作者的數位簽章,可以證明該程式的確是該作者(公司)發布的而不是第三方偽造的且未被篡改過(身分認證/驗證)。而在網路銀行或購物網站,一般也會使用HTTPS,避免溝通過程中的資訊泄露。

與對稱密碼學的比較[編輯]

對稱密碼是指在加密和解密時使用同一個金鑰的方式,公鑰密碼則是指在加密和解密時使用不同金鑰的方式。[1]

對稱金鑰加密牽涉到金鑰管理的問題,尤其是金鑰交換,它需要作者和讀者在通訊之前先透過另一個安全的管道交換共享的金鑰,才可以安全地把密文透過不安全的管道傳送;對稱金鑰一旦被竊,其所作的加密將即時失效;而在網際網路,如果通訊雙方分隔異地而素未謀面,則對稱加密事先所需要的「安全管道」變得不可行;非對稱加密則容許加密公鑰隨便散布,解密的私鑰不發往任何用戶,只在單方保管;如此,即使公鑰在網上被截獲,如果沒有與其匹配的私鑰,也無法解密,極為適合在網際網路上使用。

另一方面,公鑰解密的特性可以形成數位簽章,使資料和檔案受到保護並可信賴;如果公鑰透過數位憑證認證機構簽授成為電子憑證,更可作為數位身分的認證,這都是對稱金鑰加密無法實現的。

不過,公鑰加密在在計算上相當複雜,效能欠佳、遠遠不比對稱加密;因此,在一般實際情況下,往往通過公鑰加密來隨機建立臨時的對稱秘鑰,亦即對話鍵,然後才通過對稱加密來傳輸大量、主體的資料。

歷史[編輯]

該思想最早由瑞夫·墨克Ralph C. Merkle)在1974年提出[2],之後在1976年。惠特菲爾德·迪菲Whitfield Diffie)與馬丁·赫爾曼Martin Hellman)兩位學者以單向函式與單向暗門函式為基礎,為發訊與收訊的兩方建立金鑰。

常見的公鑰加密演算法有:RSAElGamal、背包演算法、Rabin(RSA的特例)、迪菲-赫爾曼金鑰交換協定中的公鑰加密演算法、橢圓曲線加密演算法(英語:Elliptic Curve Cryptography, ECC)。使用最廣泛的是RSA演算法(由發明者Rivest、Shmir和Adleman姓氏首字母縮寫而來)是著名的公開秘鑰加密演算法,ElGamal是另一種常用的非對稱加密演算法。

參見[編輯]

參考文獻[編輯]

  1. ^ 結城浩. 圖解密碼技術(第3版). 人民郵電出版社. 2016: 8–9頁. ISBN 978-7-115-42491-4. 
  2. ^ Publishing a new idea. Merkle個人網站. [2010-12-08].