Homomorphic-Encryption
同態加密後隨機遮罩可逆
我想知道這個過程在同態加密下是否可行,最好是在paillier或任何其他加法方案下
- 應用遮罩X來混淆消息*A,即。Am = A (op) X其中(op)*可以是 +, x, …
- 同態加密Am => E(Am)
- 從E(Am)中移除X以獲得*E(A)*而無需任何解密(不知道私鑰)
A可以是矩陣、向量等。
聽起來您正在尋找一種方法來進行盲加密(即,以加密者不知道他在加密什麼的方式進行加密)。
Paillier 當然可以。這是一種方法:
- (op) 將是乘法模 $ n $ Paillier 模數(在公鑰中)。
- 為了掩蔽,我們隨機選擇一個 $ r $ 相對於 $ n $ , 併計算 $ Am = A \cdot r \bmod n $ . 我們可以看到,如果我們選擇 $ r $ 均勻,那麼 $ Am $ 是獨立分佈的 $ A $ (除了不是相對質數的值 $ n $ )
- 我們要求加密器採取 $ Am $ 計算 $ E(Am) $
- 為了揭露,我們計算 $ rinv = r^{-1} \bmod n $ ,然後同態計算 $ E(rinv \cdot Am) $ ; 這個Paillier,這是通過計算完成的 $ E(Am)^{rinv} \bmod n = E(A) $ .
這樣做的一個缺點是它實際上並沒有掩蓋價值 $ A=0 $ ; 這是一個問題嗎?
如果是,您仍然可以通過要求加密器執行兩個遮罩加密操作來做到這一點。
首先,您生成兩個隨機值 $ r, s $ ,確保兩者都不是 $ 0 $
然後,您讓加密器加密這些值 $ A-s $ 和 $ r\cdot s $ , 生產 $ E(A-s) $ 和 $ E(r \cdot s) $ . 然後,您使用上述過程進行恢復 $ E(s) $ 從 $ E(r \cdot s) $ . 然後,你同態地添加 $ E(s) $ 至 $ E(A-s) $ , 生產 $ E(A) $
你可以生成 $ E(s) $ 自己與 $ s $ 和公鑰。但是,如果您可以自己執行加密,則可以生成 $ E(A) $ 從 $ A $ ,看起來你想避免這種情況……