天天看點

第二十八個知識點:什麼是公鑰密碼學的IND-CCA安全定義?

第二十八個知識點:什麼是公鑰密碼學的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使得:

\[Adv_{find-and-guess}(A)=2 \cdot Adv_{real-or-random}(B)

\]

繼續閱讀