密碼學中的安全性定義


“規約”的概念:
規約是復雜性理論中的概念,如果存在一個多項式時間可計算的函數f:{0,1}->{0,1},使得x屬於L1,當且僅當f(x)屬於L2,則稱語言L1可以多項式時間規約到預言L2.

  1. 如果語言L1可以多項式時間規約到預言L2,且L2屬於NP,則L1屬於NP。
  2. 一般的如果一個問題P1規約到問題P2,且已知解決問題P1的算法為M1,就能構造另外一個算法M2,M2可以用M1作為子程序,用來解決問題P2,把規約方法用在密碼算法或者安全協議的安全性證明,可把敵手對密碼算法或者安全協議(問題P1)的攻擊規約到一些已經得到深入研究的困難問題(P2)。即如果敵手A能夠對算法或者協議發起有效的攻擊,就可以利用A構造一個算法B來攻破困難問題,從而得出矛盾。根據反證法,敵手能夠對算法或者協議發起有效攻擊的假設不成立。注意規約和反證法的區別,反證法是確定性的,而規約一般是概率性的。

    一般的,為了證明方案1的安全性,可將方案1規約到方案2,即如果敵手A能夠攻擊方案1,則敵手B能夠攻擊方案2,其中方案2是以證明安全的,或者是一個困難問題,或者是一個密碼本原。
    證明過程還是通過思維實驗來描述,首先由挑戰者建立方案2,方案2中的敵手用B表示,方案1中的敵手用A表示,B為了攻擊方案2,利用A作為子程序來攻擊方案1。B為了利用A,必須模擬A的挑戰者對A加以訓練,因此B又成為模擬器。如下圖:

對於加密算法,圖1-7中的方案1取為加密算法,如果其安全目標是語義安全的,即敵手A攻擊它的不可區分性,敵手B模擬A的挑戰者,和A進行IND游戲,不可區分性游戲,稱此時A對方案1的攻擊為模擬攻擊,在這各過程中A為了達到自己的目標而利用A,但是如果A不能判斷是和自己的挑戰者交互還是和模擬的挑戰者交互的話,則稱B的模擬是完備的。
對於其他的密碼算法或者安全協議來說的話,首先要確定它要達到的安全目標,如簽名方案的不可偽造性,然后構造一個形式化的敵手模型及思維實驗,利用概率論和計算復雜性理論,把對密碼算法或者密碼協議的攻擊規約到已知困哪問題的攻擊。這種方法就是可證明安全性。
可證明安全是密碼學和計算復雜性理論的天作之和。過去幾十年,密碼學的最大進展就是將密碼學建立在復雜性理論之上。

參考文獻:《密碼學中的可證明安全性-楊波》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM