Homomorphic-Encryption

同態加密能否提供程序完整性和程序混淆?

  • August 9, 2018

通過程序完整性,我的意思是我收到的(加密的)結果確實是預期的結果,而不是中間結果或受對手影響的結果。同態加密能否防禦主動攻擊?

通過程序混淆,我的意思是對手無法推斷出執行了哪些操作(除了數據訪問模式)。

如果同態評估過程是確定性的,通常情況下,程序完整性要求很容易滿足:給定一個函式 $ f $ , 輸入密文 $ C $ 和輸出密文 $ C’ $ , 任何人都可以公開評價 $ f $ 上 $ C $ (同態)並檢查結果是否確實 $ C’ $ . 但是,這與標準的其他要求相衝突,其中一個人想要輸出 $ C’ $ 以均勻隨機硬幣的加密方式分發。

當輸出密文被隨機化時,為了保證程序的完整性,通常的策略是使用零知識證明系統。即,給定一個函式 $ f $ , 輸入密文 $ C $ 和輸出密文 $ C’ $ ,同態評估器將在零知識中證明 $ C’ $ 作為同態評估的結果獲得 $ f $ 上 $ C $ (並隨機化輸出)。存在許多解決方案來實現這一點,具體取決於其他約束(例如,如果我們希望此驗證比執行整個同態評估更便宜,則可以使用簡潔的零知識證明)。

關於您的“程序混淆”要求,這聽起來像通常所說的電路隱私(即,在評估 $ f $ 上 $ C $ 同態並獲得輸出 $ C’ $ , 看到 $ (C,C’) $ 不應該洩露任何資訊 $ f $ )。我們知道的任何“部分同態”加密方案(Paillier、ElGamal、Goldwasser-Micali 等)都是可重新隨機化的(給定密文 $ C $ , 任何人都可以公開構造密文 $ C’ $ 用均勻分佈的隨機硬幣加密相同的值),因此可以很容易地實現電路私有。對於完全同態加密,它有點複雜,但也有一些成熟的技術,比如使用雜訊泛洪,或者一些更高級的策略,比如這個

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