同態模p反對pbmod p手術
讓 $ E(m) $ a 是使用 Paillier 加密方案的加密操作。讓 $ N $ 是公鑰和 $ p $ 是一個大素數,這樣 $ p<N $ .
問題:是否有任何協議,給出 $ E(m) $ 可以計算同態 $ \mod p $ , 所以解密後我們會在 $ \mathbb{F}_p $ ?
或者有沒有多方計算協議可以做到?
是否有任何協議,給出 $ E(m) $ 可以計算同態 $ E(m \bmod p)? $
如果有辦法執行該操作(對於任何 $ p>1 $ 相對於 $ N $ ) 如果不涉及 Pallier 私鑰,那麼您剛剛證明了 Pallier 是完全同態的;也就是說,您可以同態地實現任何計算;至少,通過進行同質電路評估。
展示這一點的一種方法是實現一個 NAND 函式,我們可以這樣做:
$$ \textit{NAND}(x, y) = 1 + p^{-1} \cdot ( \lambda(x + y) \bmod p - \lambda(x+y)) $$ 在哪裡:
- 所有的操作都是同態完成的,例如, $ x + y $ 表示同態加法 $ x $ 和 $ y $
- $ \lambda $ 是一個整數 $ p > \lambda \ge p/2 $
- $ p^{-1} $ 是乘法的逆 $ p $ 模組 $ N $
NAND定義中包含的所有計算都是常數的加法、減法、乘法 $ \lambda $ 和 $ p^{-1} $ (所有這些都可以在 Pallier 中同態地執行),並且 $ \bmod p $ 我們假設的操作也可以同態地執行。
而且,如果我們評估 NAND(假設 $ x, y $ 被約束為 0 或 1,我們發現如果 $ x, y $ 加密為 0(或兩者皆為),NAND 評估為加密 1;如果兩者都為 1,則計算結果為加密的 0。
並且,已知 NAND 是完整的;我們可以將任何電路建構為足夠大的一堆。也就是說,我們可以設計一個電路來評估我們的函式(例如 SHA-3),然後將輸入作為一系列加密的 0 和 1,並將輸出作為一系列加密的 0 和 1。