攻擊行為
加密算法設計中,安全性受到廣泛關注,而可證明安全性理論作為其相關研究領域,是構造密碼方案的基本理論,也是目前公鑰密碼學研究領域的熱點。可證明安全性理論的核心是將加密方案的安全性規約到某個算法的困難性上,利用該算法的困難性求解特定的實例問題,該方法被稱為加密方案的安全規約證明。
在可證明安全理論中,語義安全一般可由不可區分性游戲來給出。游戲模型主要包括敵手和挑戰者,挑戰者建立加密方案,敵手對該加密方案進行攻擊,同時挑戰者應對敵手的攻擊。在可證明安全過程中,通常根據游戲模型中攻擊者的攻擊能力不同,將不可區分性游戲分為選擇明文攻擊的不可區分性(Indistinguishability Chosen Plaintext Attack,IND-CPA)和選擇密文攻擊的不可區分性(Indistinguishability Chosen Ciphertext Attack,IND-CCA)。常用的攻擊方法可分為以下三類:
選擇明文攻擊
選擇明文攻擊(Chosen Plaintext Atack, CPA)。在選擇明文攻擊中,敵手擁有所需要的明文,敵手可訪問一個黑盒,黑盒僅能執行加密,不能執行解密。除目標明文外,任何人均可產生明文密文對,並利用得到的明文密文對完成對加密方案的攻擊。在密碼方案實際使用的過程中,CPA模擬了一種較弱的攻擊行為。
選擇密文攻擊
選擇密文攻擊(Chosen Cipertext Accack, CCA1)。選擇密文攻擊也被稱為午餐攻擊,敵手可訪問一個黑盒,黑盒進行解密,午餐時間敵手可選擇除目標密文外的特定密文,詢問並通過訪問解密預言機進行解密,訪問解密預言機要在午餐時間完成。因為能夠訪問解密預言機,CCA1使得敵手擁有比CPA攻擊更強的能力。
自適應選擇密文攻擊
自適應選擇密文攻擊(Adaptive Chosen Cipertext Accack,CCA2)。自適應性選擇密文攻擊除目標密文外,敵手可選擇任何密文對解密盒進行詢問,目前一般要求公鑰加密算法要在自適應選擇密文攻擊達到多項式安全。CCA2攻擊行為下的敵手的攻擊能力與CCA1相比更強大。
安全目標
安全目標分為兩類:
不可區分性(IND)
給定一個挑戰密文,敵手無法獲取對應明文的任何信息泄露。對於基於比特的明文加密方案,敵手在得到挑戰密文的條件下,也無法正確得到對應的比特明文,也就是說敵手攻擊成功的概率為1/2。
非延展性(NM)
一個可延展的加密體制在適應性選擇密文攻擊下是不安全的。因此要求方案具有非延展性,非延展性指的是給定一個挑戰密文c ,對應的明文為$\mu $,敵手無法獲取到另外一個密文c',該密文對應的明文為 $\mu '$,且兩個明文$\mu $ 和 $\mu '$是相互獨立的。
依據攻擊行為和安全目標的區別,可分別得到IND-CPA,IND-CCA1,INDCCA2,NM-CPA,NM-CCA1,NM-CCA2等多個安全模型。我們稱加密方案是安全的,如果加密方案在某種安全模型下是可證安全的。一般情況下可證明IND-CPA安全和語義安全是等價的。
下面對可證明安全涉及到的幾個重要定義進行介紹: