Homomorphic-Encryption

如何在 ElGamal 中執行同態乘法?

  • May 20, 2015

如何在 ElGamal 中計算同態乘法?即:給定兩個密文 $ (R_1,c_1) $ 和 $ (R_2,c_2) $ 對應明文 $ m_1 $ 和 $ m_2 $ 在一些公鑰下;如何計算密文 $ (R,c) $ 這是一個加密 $ m_1\cdot m_2 $ 在同一個公鑰下?

假設我們在一個循環組中工作 $ G $ 帶發電機 $ g $ 然後讓 $ A $ 表示正在使用的公鑰。

根據 ElGamal 加密的定義,我們有 $ R_i = g^{r_i} $ 和 $ c_i=A^{r_i}\cdot m_i $ , 在哪裡 $ r_i $ 是一些隨機數,對於 $ i\in{1,2} $ . 因此,與 $ R:=R_1\cdot R_2 $ 和 $ c:=c_1\cdot c_2 $ (在哪裡 $ \cdot $ 表示 $ G $ 的操作),我們得到

$$ R = g^{r_1}\cdot g^{r_2} = g^{r_1+r_2} $$ 和 $$ c = A^{r_1}m_1\cdot A^{r_2}m_2 = A^{r_1+r_2}\cdot m_1m_2 \text, $$ 所以 $ (R,c) $ 正是對消息的加密 $ m_1\cdot m_2 $ .

引用自:https://crypto.stackexchange.com/questions/25780