許多密碼安全的概念源自克勞德·夏農(Claude Shannon)的思想,特別是擴散(diffusion)與混淆(confusion)。以下概念雖非全由夏農提出,但他關於完美保密與資訊理論的想法深刻影響了安全的定義。
無條件安全#
若一個密碼系統即使有無限的運算資源也無法被破解,就稱為無條件安全(unconditionally secure)。這意味著密碼分析不可能,即使窮舉每個可能金鑰做暴力攻擊,也無法判斷哪個金鑰才是正確的。
一次性密碼本#
一次性密碼本(one-time pad) 是無條件安全的例子,使用稱為「pad」的隨機資料區塊:
- pad 至少要與明文一樣長,其隨機資料必須是字面意義上的真正隨機。
- 收發雙方各持一份相同的 pad。
- 加密:把明文每個位元與 pad 對應位元 XOR,加密後銷毀 pad 以確保只用一次。
- 解密:收件者把密文每個位元與其 pad 對應位元 XOR,還原明文。
一次性密碼本理論上無法破解,實務上卻不太實用。它的安全性繫於 pad 的安全性。 分發 pad 時假設傳輸通道安全——真正安全可能需面對面交換,但為了方便又可能用另一套密碼傳輸 pad。此時整個系統的強度只等於最弱的一環(傳 pad 的密碼)。既然 pad 是與明文等長的隨機資料,通常還不如直接用那套密碼傳明文。
量子金鑰分發#
量子計算為一次性密碼本帶來實用的實作——量子金鑰分發(quantum key distribution),利用量子糾纏可靠而祕密地傳送一串可當金鑰的隨機位元。
BB84 方案:非正交量子態如何偵測竊聽
光子的偏振(polarization) 是其電場的振盪方向,此處可沿水平、垂直、或兩條對角線之一。非正交(nonorthogonal) 指這些態之間的夾角不是 90 度。
由於海森堡測不準原理,水平/垂直的直角基與兩對角線的對角基無法同時測量。用對的濾鏡測量時偏振不變,用錯的濾鏡則會隨機改變偏振——這意味著任何竊聽的測量嘗試都有很大機會擾亂資料,暴露通道不安全。
Charles Bennett 與 Gilles Brassard 的 BB84 方案:
- 收發雙方約定四種偏振的位元表示,使每個基都同時有 1 與 0(例如垂直與正 45 度代表 1,水平與負 45 度代表 0)。
- 發送方送出一串隨機光子,每個來自隨機選的基。
- 接收方也隨機選直角或對角基測量、記錄。
- 雙方公開比對各自用了哪個基,只保留兩人用同一基測量的資料——這不洩露位元值(每個基都有 1 和 0),構成一次性密碼本的金鑰。
- 竊聽者終究會改變某些光子的偏振、擾亂資料,所以計算金鑰隨機子集的錯誤率即可偵測竊聽:錯誤太多就丟棄金鑰。
計算安全#
若破解一個密碼系統的最佳已知演算法需要不合理的運算資源與時間,就稱為計算安全(computationally secure)——理論上可破,實務上不可行,因為所需時間資源遠超過被加密資訊的價值(通常以數萬年計)。大多數現代密碼系統屬於此類。
重點是:破解演算法一直在演進改良。理想上應以「最佳演算法」定義計算安全,但目前無法證明某個演算法是且永遠是最佳的,所以只能用當前最佳已知演算法來衡量安全性。