天天看點

密碼 計算安全性 可證明安全性 無條件安全性

一個密碼系統的安全性主要與兩個方面的因素有關。

(1)一個是所使用密碼算法本身的保密強度。密碼算法的保密強度取決于密碼設計水準、破譯技術等。可以說一個密碼系統所使用密碼算法的保密強度是該系統安全性的技術保證。

(2)另外一個方面就是密碼算法之外的不安全因素。

是以,密碼算法的保密強度并不等價于密碼系統整體的安全性。—個密碼系統必須同時完善技術與管理要求,才能保證整個密碼系統的安全。本教材僅讨論影響一個密碼系統安全性的技術因素,即密碼算法本身。 評估密碼系統安全性主要有三種方法:

(1)無條件安全性

這種評價方法考慮的是假定攻擊者擁有無限的計算資源,但仍然無法破譯該密碼系統。

(2)計算安全性

這種方法是指使用目前最好的方法攻破它所需要的計算遠遠超出攻擊者的計算資源水準,則可以定義這個密碼體制是安全的。

(3)可證明安全性

這種方法是将密碼系統的安全性歸結為某個經過深入研究的數學難題(如大整數素因子分解、計算離散對數等),數學難題被證明求解困難。這種評估方法存在的問題是它隻說明了這個密碼方法的安全性與某個困難問題相關,沒有完全證明問題本身的安全性,并給出它們的等價性證明。

對于實際應用中的密碼系統而言,由于至少存在一種破譯方法,即強力攻擊法,是以都不能滿足無條件安全性,隻提供計算安全性。密碼系統要達到實際安全性,就要滿足以下準則:

(1)破譯該密碼系統的實際計算量(包括計算時間或費用)十分巨大,以緻于在實際上是無法實作的。

(2)破譯該密碼系統所需要的計算時間超過被加密資訊有用的生命周期。例如,戰争中發起戰鬥攻擊的作戰指令隻需要在戰鬥打響前需要保密;重要新聞消息在公開報道前需要保密的時間往往也隻有幾個小時。

(3)破譯該密碼系統的費用超過被加密資訊本身的價值。

如果一個密碼系統能夠滿足以上準則之一,就可以認為是滿足實際安全性的。