Paillier
由於 CryptDB 中的密文等價和順序導致 Paillier 密碼系統的弱化
Paillier 密碼系統本質上是機率性的並且 IND-CPA 是安全的。通過設計給定兩個密文,人們無法區分解密這兩個密文是否會導致相同或不同的明文。
但在某些情況下,例如 CryptDB 中的洋蔥層加密。還有其他洋蔥,如 DET 和 OPE,它們揭示了兩個密文是否映射到相同的底層明文,或者明文相互比較時是更大還是更少。
例如,在 CryptDB 中,明文使用多種方案加密並單獨儲存。所以兩種不同的明文 $ m_1,m_2 $ ,假設兩者都是數字,將在下表中查看
- HOM洋蔥:Paillier_Enc( $ m_n,k_1 $ ) = $ c^h_n $ , $ h $ 表示同態層
- DET 洋蔥:AES_Enc ( $ m_n, k_2 $ ) = $ c^d_n $ , $ d $ 表示確定性層
- OPE洋蔥:OPE_ENC( $ m_n, k_3 $ ) = $ c^o_n $ , $ o $ 表示順序保持層
現在雖然 $ c^h_1 , c^h_2 $ 不透露是否 $ m_1, m_2 $ 是相等的,因為 Paillier 方案是機率的。還有其他洋蔥層揭示了 $ m_1,m_2 $ 彼此相同或更少或更大。
我的預感是來自其他層的這些推論削弱了 Paillier 密碼系統的安全保證,但我想不出一種方法來削弱它們。那麼我們如何利用其他洋蔥洩漏的推論(關於平等、比較)以某種方式打破 Paillier 系統?
由於 CPA 安全性的定義,您的預感是錯誤的:假設某些人知道兩個明文之間的某種關係會給攻擊者帶來優勢。
現在想想 INC-CPA 遊戲:沒有什麼能阻止攻擊者選擇這種關係。如果該方案是 IND-CPA 安全的,則了解這種關係不會破壞該方案。正如 mikeazo 指出的:即使你只使用一個消息空間 $ {0,1} $ , CPA 安全仍然確保攻擊者無法區分他們的加密。
您暗示的另一個方面:在 CPA 安全下,無法區分兩個密文是否加密相同的明文:攻擊者可以加密 $ m_1 $ 和 $ m_2 $ 隨心所欲。如果有一種方法可以確定其中一個加密加密與挑戰相同的密文,他就贏了。