IND-CPA安全僅保證敵手是完全被動時(即僅做監聽)的安全,不能保證敵手是主動情況時(例如向網絡中注入消息)的安全。
為了描述主動攻擊,1990年Naor和Yung提出了(非適應性)選擇密文攻擊(Chosen Ciphertext Attack,CCA)的概念,其中敵手在獲得目標密文之前可以訪問解密預言機。預言機也稱為神諭、神使或者傳神諭者。神諭是古希臘的一種神諭活動,由女祭司代神傳諭,解答疑難者的扣問,她們被認為是在傳達神的旨意。因為在IND-CCA游戲中,除了要求敵手是多項式時間之外,不能對敵手的能力做任何限制。敵手除了自己有攻擊IND-CCA游戲的能力外,可能還會借助外力。這個外力是誰,我們統稱預言機。敵手獲得目標密文后,希望獲得目標密文對應的明文的部分信息。
IND-CCA如下:
1.初始化。挑戰者產生系統II,敵手獲得系統的公開鑰。
2.訓練。敵手向挑戰者(或解密預言機)做解密詢問(可多項式有屆次),即取密文CT給挑戰者,挑戰者解密后,將明文給敵手。
3.挑戰。敵手輸出兩個長度相同的消息M0和M1,再從挑戰者接收Mr的密文,隨機值r屬於{0,1}
4.猜測。敵手輸出r’,如果r=r',則敵手攻擊成功。
以上攻擊稱為“午餐時間攻擊”或“午夜時間攻擊”相當於有一個執行解密運算的黑盒,掌握黑盒的人在午餐時間離開后,敵手能使用黑盒對自己選擇的密文解密。午餐過后,給敵手一個目標密文,敵手試圖對目標密文解密,但不能再使用黑盒了。
第二步可以形象的看做是敵手發起攻擊前對自己的訓練(自學),這種訓練可通過挑戰者,也可通過解密預言機。
敵手的優勢為安全參數為K的函數:
實例
參考:密碼學中的可證明安全性_楊波