Homomorphic-Encryption

如何理解引導中的“同態解密”?

  • June 20, 2019

我在本教程中遇到了以下關於引導的解釋:

一旦密文中的“噪音”變得太大,它就不再能夠被正確解密。自舉解決了這個問題。它通過同態解密密文,對其執行一次計算,然後在不同的公鑰下重新加密來實現。

同態解密是什麼意思?這是否意味著首先解密為明文然後再次重新加密?

這是否意味著首先解密為明文然後再次重新加密?

不,它沒有。它只是意味著執行解密函式的“同態版本”。由於同態求值只是使用同態運算,而這些運算總是返回密文,所以同態解密的結果也是密文。而且由於解密消除了噪音,這個新的密文是新鮮的。

同態評估視為一個函式,我們將其稱為 $ Eval $ .

所以,同態地評估任何函式 $ f $ 關於論點 $ m_0 $ , $ m_1 $ , …, $ m_\ell $ 執行的意思 $ Eval(pk, f, [m_0]{pk}, [m_1]{pk}, …, [m_\ell]{pk}) $ ,它返回 $ [f(m_0, m_1, …, m\ell)]_{pk} $ .

(這裡我用 $ [m]_{pk} $ 來表示加密 $ m $ 在公鑰下 $ pk $ ).

那是, $ Eval $ 在給定函式、這些參數的加密以及用於加密它們的公鑰的情況下,返回在參數中評估的函式的加密。

現在,假設你有一對鑰匙 $ sk $ 和 $ pk $ 你想刷新一個密文 $ c = [m]{pk} $ . 然後,你必須同態解密 $ c $ . 為此,請更換 $ f $ 經過 $ Dec $ . 還有,論據 $ Dec $ 是 $ sk $ 和 $ c $ ,所以,你應該使用 $ [sk]{pk_1} $ 和 $ [c]_{pk_1} $ , 對於一些公鑰 $ pk_1 $ . 然後,我們得到:

$ \begin{align} Eval(pk_1, Dec, [sk]{pk_1}, [c]{pk_1}) &= [Dec(sk, c)]{pk_1}\ &= [m]{pk_1}\ \end{align} $

也就是說,一個新的加密 $ m $ 在公鑰下 $ pk_1 $ .

請注意,這 $ pk_1 $ 可能是一個新的公鑰,在這種情況下,我們需要一個新的密鑰 $ sk_1 $ 解密 $ [m]_{pk_1} $ , 也可以等於原始公鑰 $ pk $ ,在這種情況下,我們假設循環安全……

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