Secret-Sharing

是否有不使用秘密共享的安全多方計算 (SMPC) 方案?

  • May 20, 2020

根據關於 SMPC 的維基百科文章

安全 MPC 與秘密共享問題密切相關,並建立在秘密共享問題之上,更具體地說,可驗證秘密共享 (VSS) 是 許多安全 MPC 協議用來對付活躍對手的。

那麼,有沒有不使用秘密共享的 SMPC 方案呢?有沒有流行的?

背景:我不熟悉關於 SMPC 的文獻,我只是將其作為秘密共享的擴展進行研究。

秘密共享涵蓋了非常廣泛的技術,“不使用秘密共享”的定義有點不明確。讓我舉個例子:兩方計算的開創性解決方案使用了 Yao 的亂碼電路。它的工作原理如下(非常粗略):

發送者對目標函式的電路進行了亂碼,這提供了以下保證:為輸入的每一位和亂碼電路提供一個適當的密鑰,接收者可以評估整個電路,除了最終結果之外什麼都看不到。

發送者為他的每個輸入位發送密鑰,接收者使用不經意的傳輸來檢索她自己的每個輸入位的密鑰,而不會洩露這些輸入位。然後,她評估亂碼電路並將結果發回。

與 GMW 及其變體不同,上述內容不是根據秘密共享來製定的。但是,很容易找到隱藏在表面之下的“秘密共享”:對於電路的每個門,發送者將持有兩個密鑰 $ (K_0, K_1) $ ,而接收者將持有密鑰 $ K_b $ , 在哪裡 $ b $ 是門評估的結果。從某種意義上說, $ (K_0, K_1) $ 和 $ K_b $ 形成秘密價值的份額 $ b $ :他們每個人都單獨洩漏沒有關於 $ b $ ,但知道兩者都可以恢復 $ b $ . 事實上,它們甚至“幾乎”形成了 $ b $ , 自從 $ K_b = b\cdot K_1 + (1-b)\cdot K_0 = b\cdot (K_0-K_1) + K_0 $ , 因此 $ K_0 $ 和 $ K_b $ 形成附加股 $ b\cdot (K_0-K_1) $ , 在哪裡 $ (K_0-K_1) $ 是發送者已知的值。

所以,這只是說秘密共享的概念是如此基本,以至於“不使用秘密共享”沒有多大意義。但是,如果您對不直接建立在已知秘密共享方案上的協議感興趣,那麼有很多:

  • 姚明的亂碼電路,以及它所有的現代改進,也許是最自然的例子。
  • 基於同態加密的 MPC 協議——2000 年以來的一些協議使用了加法加密,也有許多協議依賴於完全同態加密。
  • 一些實現各種“高端”屬性的更理論上的 MPC 方案並不固有地建立在秘密共享之上,例如那些基於不可區分性混淆的方案。

您看到大量使用基於秘密共享的技術的原因很簡單:您越依賴秘密共享或其他資訊論技術,您的協議在實踐中的效率就越高。加密、不經意傳輸或任何其他公鑰密碼原語都是昂貴的,因為它們使用非常繁重的代數運算,或者涉及非常大的密鑰大小。另一方面,秘密共享盡可能簡單高效:一些異或,也許是一些插值。

儘管基於秘密共享的 MPC 計算效率更高,但我們仍然聽到很多關於基於亂碼電路的 MPC 的原因是因為前者允許以恆定輪數進行安全計算,而由秘密建構的協議大多數時候,共享技術將涉及更多的輪次。在實踐中,如果您通過 Internet 執行協議,則輪數非常重要。

(實際上,一些最新的最先進的 MPC 協議通過結合這兩種方法獲得了兩全其美)

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