Multiparty-Computation

顯示加密值的解密總和

  • October 4, 2016

是否有一個系統允許使用一個或多個密鑰加密值,對加密值求和,並顯示只能解密總和的密鑰。

本質上將能夠顯示加密值,任何人都可以通過添加所有加密值來驗證總和,然後解密它。

最近有一項工作正是這樣做的。稱為內積函式加密。它允許加密一個整數向量(來自一些指數空間 $ \mathbb{Z}_p $ ) 以便人們可以生成僅允許解密任何此類加密向量的組件之間的給定內積的密鑰。

在 DDH 和 LWE 下有一個簡單的構造。Paillier 密碼系統的建構涉及更多,並在今年 8 月的 CRYPTO 會議上提出。

對於基於 DDH 的變體,直覺很簡單:用不同的密鑰加密你的向量,但每次都使用相同的隨機硬幣(id est: $ E((m_1, \cdots, m_n);r) = (g^r, h^r_1g^{m_1}, \cdots, h^r_ng^{m_n}) $ , 在哪裡 $ g $ 是 DDH 很難的某個組的生成器,並且每個 $ h_i $ 是 $ g^{s_i} $ 對於一些密鑰 $ s_i $ )。解密內積的密鑰 $ a_1, \cdots, a_n $ 只是 $ \sum_i s_i a_i $ .

這是原始文章:http ://eprint.iacr.org/2015/017 。如果您想研究更高級的結構,我建議您查看引用此結構的論文。

編輯:我忘了提到,基於 DDH 的實例化具有與它所依賴的 ElGamal 的加法變體相同的缺點,即必須對離散對數執行 $ g^{\sum_i a_i m_i} $ 最後,所以它只在 $ \sum_i a_im_i $ 仍然很小(比如說,小於 $ 2^{30} $ )。如果消息可能很大,則必須使用基於 LWE 或基於 Paillier 的實例化。

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