Homomorphic-Encryption

同態加密後隨機遮罩可逆

  • January 30, 2021

我想知道這個過程在同態加密下是否可行,最好是在paillier或任何其他加法方案下

  1. 應用遮罩X來混淆消息*A,即。Am = A (op) X其中(op)*可以是 +, x, …
  2. 同態加密Am => E(Am)
  3. 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 $ ,看起來你想避免這種情況……

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