Elgamal-Encryption
證明 El Gamal 加密方案的 CCA 不安全性
我試圖證明 El Gamal 加密不是 CCA-Secure。
如果攻擊者向加密預言機查詢加密 $ m=1 $ ,他會得到一雙 $ (c_1,c_2)=(g^y,g^{xy}\cdot m)=(g^y,g^{xy}\cdot 1)=(g^y,g^{xy}). $ 然後他可以計算 $ g^{-xy} $ . 然後他送給挑戰者一對 $ (m_0,m_1) $ . 當他得到挑戰密文時 $ (c_1^,c_2^) $ 他可以解密它並找出哪個消息已被加密。因此,對手以不可忽略的機率贏得實驗。
這證明有道理嗎,還是我錯過了什麼?
提前致謝。
編輯
此解決方案不起作用,因為 y 的值不屬於密鑰,但它是為每次加密隨機生成的。
正確的解決方案如下:
對手選擇一些消息 $ m_0=x\ and\ m_1=y $ . 然後他發送這兩條消息 $ (m_0,m_1) $ 給挑戰者並獲得其中之一的加密 $ <c_1,c_2> $ . 然後他選擇一些 z 並將其與 $ c_2 $ 所以他得到了一個新的密文 $ <c_1, c_2 . z> $ . 然後他向解密預言機查詢新密文的解密。因此,生成的明文是 $ x . z $ 或者 $ y . z $ . 因此,他可以知道哪個消息已被加密。
不,正如所寫,您的技術不起作用(因為沒有特定原因加密預言機使用相同的 $ y $ 作為挑戰密文)。
你需要一種不同的方法。一方面,對手不需要依賴加密預言機;如果他有公鑰,那麼他可以加密任何他想要的東西。他需要做的是使用解密預言機(因為它執行對手自己無法執行的操作)。
那麼,攻擊者如何創建一個與挑戰密文不同的密文,但在送出給解密預言機時,會告訴他答案呢?