古詩詞大全網 - 個性簽名 - 真正安全的密碼系統是什麽

真正安全的密碼系統是什麽

1,評估密碼系統安全性主要有三種方法:

(1)無條件安全性

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

(2)計算安全性

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

(3)可證明安全性

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

2,實際安全性

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

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

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

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

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

3,可證明安全性3.1 可證明安全性體系的三大要素

在可證明安全體系中,有三大要素:安全模型,安全性定義和困難性問題。

安全模型分為安全目標和敵手能力。安全目標描述了安全模型要達到什麽程度的安全,例如,對於加密算法的不可區分性(Indistinguishablity 簡稱 IND)、對於簽名算法的存在性不可偽造(Existable Unforgeble 簡稱 EU)等。

其中不可區分性(IND)也稱為語義安全(Semantic scurity),其定義如下。敵手即使獲得了密文,也不能得到其對應明文的任何信息,哪怕是 1bit 的信息。其形式化的表示方法為:已知 m0,m1以及 Cb=Enc(pk,mb),其中 m0是 m0或 m1中的任意壹個,即 Cb是 m0、m1其中之壹的密文,敵手無法有效判斷加密過程中 b 到底是 0 還是 1。

3.2?安全性定義

刻畫敵手的能力,主要有四類,選擇明文攻擊(Chosen Plaintext Attacke 簡稱 CPA)、選擇密文攻擊(Chosen Ciphertext Attack 簡稱 CCA)、惟密文攻擊(Ciphertext-Only Attack)、已知明文攻擊(Known Plaintext Attack)。常用的刻畫敵手能力是前面兩類,選擇明文攻擊(CPA)是指由敵手選擇明文並且可以得到對應的密文。選擇密文攻擊(CCA)是指敵手不僅可以選擇明文獲得密文,還能選擇有限次的密文,獲得對應的明文。CCA比 CPA 描述敵手的能力更強。

下面介紹壹下常用的安全性定義。

CPA 安全。我們把選擇明文攻擊(CPA)描述成壹個遊戲以方便我們更好的理解。首先聲明壹點,這個遊戲的目的是在選擇明文攻擊的前提下攻破系統的不可區分性(Indistinguishablity),所以下面簡稱這個遊戲為 IND-CPA。其次,還要定義兩個角色挑戰者 C 和敵手 A。挑戰者(challenger)的任務相當裁判,主持遊戲並且對敵手的行為進行反饋。敵手顧名思義,就是去攻擊當前系統,而且對於這個遊戲來說是采用選擇明文攻擊的方法進行攻擊。遊戲的描述如下:?

A. 初始化:挑戰者 C 創建 IND-CPA 系統,並且將公鑰發送給敵手 A。?

B. 敵手 A 選擇兩個長度相同的明文?m0,m1發送給挑戰者 C。挑戰者 C?隨機選擇 b∈{0,1},並將 mb加密記作 cb,然後將密文cb發送給敵手 A。

C. 敵手 A?猜測挑戰者 C 上壹步進行加密的明文是 m0還是 m1,並且將猜測結果輸出,輸出結果記為 b‘。若 b‘=b,那麽敵手攻擊成功。

敵手攻擊的優勢可以定義為如下函數:?

其中 w 是加密方案密鑰的長度。因為隨機猜測就有 1/2 的概率贏得 IND-CPA 遊戲。所以

才是敵手經過努力得到的優勢。如果對任何多項式時間的敵手 A,存在壹個可忽略的優勢σ,使得

那麽就稱這個加密算法在選擇明文攻擊下具有不可區分性,或者稱為 IND-CPA 安全。

3.3?困難問題

有了安全模型和安全性定義,通常使用規約到困難問題的方法來進行安全性證明。密碼學中常用的困難問題有離散對數困難問題(discrete logarithm problem,簡稱 DLP)、CDH 問題(Computational Diffie-Hellman) 、DDH 問題(Decisional Diffie-Hellman)以及 BDH 問題(Bilinear Diffie-Hellman)。?

3.4?可證明安全性理論

有了前面敘述了安全模型,安全性定義,困難性問題,可證有了前面敘述了安全模型,安全性定義,困難性問題,可證明安全體系也變得可行。可證明安全性是指利用“規約”的方法,將攻擊密碼算法或安全協議的方法規約到壹個攻擊困難問題上。首先確定加密體制的安全目標,如簽名體制的安全目標是簽名的不可偽造性(Existable Unforgeble),加密體制的安全目標是信息的不可區分性(Indistinguishablity)。然後根據安全性定義確定敵手的能力構建壹個安全性模型。

規約是復雜性理論中的概念, 壹個問題P1規約到問題P2是指,已知解決問題 P1的算法 M1,我們能構造另壹算法 M2,M2可以以 M1作為子程序,用來解決問題 P2。

將規約的方法應用在密碼算法或安全協議的安全性證明上,例如,可以將敵手對密碼算法或安全協議(P1)的攻擊規約到壹些已經得到深入研究的困難問題(P2)。即若敵手能夠對算法或協議發起有效的攻擊,就可以利用敵手構建壹個算法來攻破困難問題,然而困難問題是已經被證明無法攻破的,這樣就出現矛盾。根據反證法,敵手可以攻破算法或協議假設不成立,證明完畢。

壹般來說,為了證明方案 1 的安全性,我們可以將方案 1 規約到方案 2,即如果敵手 A 可以攻破方案 1,那麽敵手 B 同樣也可以攻擊方案 2,而方案 2 已經被證明是安全的,或者是壹個難題。

證明過程通過壹個思維遊戲來描述。首先,挑戰者創建方案2,B 表示方案 2 中的敵手,A 表示方案 1 中的敵手。B 為了攻破方案 2,利用 A 作為子程序來攻擊方案 1。B 想要利用 A,就需要對 A 進行訓練,所以 B 模擬了 A 的挑戰者。