第二十八個知識點:什么是公鑰密碼學的IND-CCA安全定義?
我們將在這篇博客中討論公鑰加密的IND-CCA安全。
IND-CCA安全代表選擇明文的不可偽造性。這樣的安全方案的思想就是給定一個密文,攻擊者不能說出給定密文是什么樣的明文加密得到的。在這個模型中,攻擊者被允許使用加密問詢和解密問詢。聞訊既可以在第三步和第四步之前也可以在之后。公鑰的IND-CCA的find-then-guess安全游戲的描述:
1.生成公鑰和私鑰\((p_k,s_k)\)。攻擊者A能夠獲得公鑰\(p_k\)。
2.私密的指定\(b \leftarrow \{0,1\}\)。
3.攻擊者A可以進行解密問詢\(Dec_{s_k}\),和加密問詢\(Enc_{p_k}\)。
4.A輸出一對消息\((m_0,m_1)\)。
5.我們輸出加密\(c = Enc_{p_k}(m_b)\)。
6.攻擊者被允許使用更多的加密和解密,例如在第三步中,但是我們不被允許要求解密\(c\)。
7.A輸出\(b^{‘}\)。如果\(b = b^{‘}\),A就獲勝了。
我們說A獲勝的概率\(Adv(A) = 2*|Pr[A wins]-1/2|\)。如果這個概率是可忽略的(negligible),那么就說這個方案是IND-CCA安全的。
IND-CCA安全有另外一個版本,真實還是隨機。主要的不同就是第五步中並不是由攻擊者輸出的消息。二十一個隨機的\(m^{‘}\)。A必須區分它是真的還是隨機的。概率和安全和上述定義基本相同。
這兩個定義是等價的,如果一個方案在實數或隨機意義上對對手a是IND-CCA安全的,我們可以構造一個對手B用於查找和猜測,這樣兩個優勢都是相等的。類似地,如果一個方案對對手a是發現和猜測安全的,我們可以構造一個這樣的對手B使得: