目前為止我們只考慮對稱加密(symmetric encryption),也就是雙方共用一把金鑰的情況。

非對稱加密(asymmetric encryption)中則有兩把金鑰:一把用來加密,另一把用來解密。

  • 公鑰(public key):加密用的金鑰,一般被視為公開可得,任何想寄加密訊息給你的人都能取用。
  • 私鑰(private key):解密用的金鑰,必須保密。

單向性:公鑰密碼學的核心#

公鑰可以從私鑰算出來,但反過來顯然不行——私鑰不能從公鑰算出。

換句話說,它在一個方向上容易計算,在另一個方向上卻不然

這正是公鑰密碼學(public-key cryptography)的重點:它的函式在一個方向上容易計算,反向卻實際上不可能求逆。

安全模型的差異#

非對稱加密的攻擊模型與安全目標,大致與對稱加密相同,但有一個關鍵差別:

由於加密金鑰是公開的,任何攻擊者都能用公鑰執行加密查詢

因此非對稱加密的預設模型就是選擇明文攻擊者(CPA)。

兩者如何搭配#

對稱加密與非對稱加密是加密的兩大類型,實務上通常會結合使用來建構安全的通訊系統。它們也是更精巧方案的基礎。