Homomorphic-Encryption
我怎樣才能在 Paillier 密碼系統中減去明文?
我們有 $ E(a) $ , $ E(b) $ 在相同的 Paillier 密鑰下加密。
眾所周知,我們可以得到 $ E(a+b) $ 通過計算 $ E(a)*E(b) $ .
但我們能得到 $ E(a-b) $ , 通過計算 $ E(a)/E(b) $ ?
我試著計算 $ E(a)/E(b) $ 通過使用GMP庫中的mpz_divexact函式。但我無法得到正確的結果。
正如您所注意到的,在 Paillier 中,密文域中的乘法轉換為明文域中的加法。由於 Paillier 背後的代數結構,你可以做的就是使用乘法來獲得減法。當結果為正時,這工作正常。但是,當結果為負時,您希望返回該值,但解密將返回的是介於 $ 0 $ 和 $ n-1 $ . 例如,如果結果是 $ -1 $ , 你會看見 $ n-1 $ . 為了解決這個問題,我們可以設置一些門檻值(取決於應用程序)。如果解密的值大於該門檻值,則返回該值減去 $ n $ . 例如,如果我們看到 $ n-1 $ 解密時,我們將返回 $ n-1-n=-1 $ .