密碼系統的安全性(二)

Lois發表於2020-07-12

在設計和評估密碼系統時還應當遵循公開設計原則,這就是著名柯克霍夫斯(Kerckhoffs)原則。其核心內容是:即使密碼系統中的演算法為密碼分析者所知,也難以從截獲的密文推匯出明文或金鑰。也就是說,密碼體制的安全性僅應依賴於對金鑰的保密,而不依賴對演算法的保密。只有在假設攻擊者對密碼演算法有充分的研究,並且擁有足夠的計算資源的情況下仍然安全的密碼才是安全的密碼系統。
不把密碼系統的安全性建立在演算法的保密上意味著密碼演算法可以公開,也可以被分析,即使攻擊者知道密碼演算法也沒有關係。對於商用密碼系統而言,公開密碼演算法的優點包括以下幾個方面:

  1. 有利於對密碼演算法的安全性進行公開測試評估;
  2. 防止密碼演算法設計者在演算法中隱藏後門;
  3. 易於實現密碼演算法的標準化;
  4. 有利於使用密碼演算法產品的規模化生產,實現低成本和高效能。

但是必須要指出的是,密碼設計的公開原則並不等於所有的密碼演算法在應用時都一定要公開密碼演算法。
一個提供機密性服務的密碼系統是實際可用的,必須滿足如下的基本要求:

  1. 系統的保密性不依賴於對加密體制或演算法的保密,而僅依賴於金鑰的安全性。“一切秘密寓於金鑰之中”是密碼系統設計的一個重要原則。
  2. 滿足實際安全性,使破譯者取得密文後在有效時間和成本範圍內,確定金鑰或相應明文在計算上是不可行的。
  3. 加密和解密演算法應適用於明文空間、金鑰空間中的所有元素。
  4. 加密和解密演算法能有效地計算,密碼系統易於實現和使用。
本作品採用《CC 協議》,轉載必須註明作者和本文連結
Hacking

相關文章