Homomorphic-Encryption

FHE 如何僅使用一位加密方案加密 k 位消息?

  • December 1, 2019

我在看《整數上的全同態加密》——第一代FHE。但是,本文似乎詳細介紹了一種加密消息中每個位的方案。我對如何實現整個 k 位消息的同態加密感到非常困惑。進一步來說,

如果我想實現密文的同態相加,比如encryption(3)+encrpytion(3)=encrpytion(6),僅僅使用一位FHE方案似乎是不夠的。

我的問題是有什麼方法可以實現喜歡進位功能的方法。或者布爾函式的同態加密,它能夠將一位同態算術運算擴展到k位同態算術運算。

任何參考或答案將不勝感激!

正如您所說的,一位 FHE 方案實際上足以實現全加器

您只需加密消息的每一位,然後使用同態邏輯門來執行您想要的電路。

例如,如果您有 2 位消息 $ a = (a_0, a_1) $ 和 $ b = (b_0, b_1) $ ,只需加密四位,得到 $ c_{a, i} $ 和 $ c_{b, i} $ (為了 $ i = 1, 2 $ ),使用同態邏輯異或門將兩個位相加並邏輯與門得到進位,即用+表示XOR,用AND表示 $ \cdot $ , 我們有

結果的第一位: $ r_0 := c_{a,0} + c_{b,0} $ (因此, $ r_0 $ 加密 $ a_0 $ 異或 $ b_0 $ )

第一次攜帶: $ c_0 := c_{a,0} \cdot c_{b,0} $

然後,結果的第二位: $ r_1 := c_{a,1} + c_{b,1} + c_0 $ .

第二次攜帶: $ c_1 := (c_{a,1} \cdot c_{b,1}) + (c_{a,1} \cdot c_0) + (c_{b,1} \cdot c_0) $

結果的第三位: $ r_2 := c_1 $ (只需使用最後一個進位作為最重要的位)

因此,生成的消息是 $ (r_0, r_1, r_2) $ .

您可能需要檢查TFHE 項目。他們同態地實現了幾個電路(特別是在連結的教程中,您可以執行一個計算兩個值的最大值的電路)。

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