Homomorphic-Encryption
同態 ElGamal 和的正確性證明
假設我們使用指數 ElGamal 作為公鑰加密方案,所以我們加密 $ g^m $ 代替 $ m $ , 對於一些生成器 $ g $ . 讓 $ x $ 是私鑰,並且 $ h=g^x $ 成為公鑰。
我們有兩方,每一方都有一個用相同公鑰加密的密文: $ (R_1,S_1)=(g^{r_1}, g^{m_1} h^{r_1}) $ 和 $ (R_2,S_2)=(g^{r_2}, g^{m_2} h^{r_2}) $ , 分別。
然後,這兩方通過計算其密文的乘積來收集並執行其密文的同態和: $ (R_3,S_3) = (R_1,S_1) \cdot (R_2, S_2) = (g^{r_1+r_2}, g^{m_1+m_2} h^{r_1+r_2}) $ .
他們有什麼方法可以在零知識中證明總和是正確的?也就是說,那 $ (R_3,S_3) $ 是正確的加密 $ m_1+m_2 $ 沒有透露關於加數的任何其他資訊( $ m_1 $ 和 $ m_2 $ 應該保密)也不是(明文)值 $ m_1+m_2 $ ?
這個問題不太清楚你想要證明什麼以及什麼是公開的,但這是我的答案,基於我對你的意思的最佳猜測:
- 各方應公佈 $ (R_1,S_1) $ 和 $ (R_2,S_2) $ . 他們還應該發布 $ (R_3,S_3) $ .
- 現在任何人都可以驗證 $ (R_3,S_3) $ 是對對應於的消息總和的正確格式的加密 $ (R_1,S_1) $ 和 $ (R_2,S_2) $ . 事實上,不需要任何花哨的零知識證明:給定 $ (R_1,S_1) $ 和 $ (R_2,S_2) $ , 有興趣的可以重新計算 $ (R_3,S_3) $ 並驗證他們獲得的結果是否與發布的結果相符。