Provable-Security

安全計算:獨立安全混合模型中的反應性功能

  • August 8, 2018

使(安全計算)協議描述和證明更簡單的一種常見方法是在混合模型中描述它們,其中現實世界中的協議可以訪問一些輔助的理想功能 F(例如理想的 OT 功能)。可以說我只關心獨立的安全性(與 UC 相比)。假設對 F 的所有呼叫都是順序的(即不是交錯的或併行的)並且各方在開始呼叫和結束呼叫之間不相互通信,那麼(據我所知)我可以使用獨立安全的正常順序組合協議來實例化具有獨立安全協議的混合體以獲得整體獨立安全協議。

我的問題是反應性功能,即保持狀態的功能,為了具體起見,還有承諾。比如說,我想在承諾混合模型中證明 Blum 的拋硬幣協議是安全的(有關協議和證明,請參見此處,它不在混合模型中)。

協議回顧:Alice 和 Bob 想要拋一枚公平的硬幣:

  1. 愛麗絲承諾一個隨機位 $ r_a $ .
  2. Bob 發布一個​​隨機位 $ r_b $ .
  3. Alice 打開承諾,協議的輸出定義為 $ r_a \oplus r_b $

看來我遇到了一個問題,因為我無法使用獨立的安全承諾方案來實例化我的混合,因為在 Alice 進行承諾和 Alice 打開它之間,雙方進行了通信。

規避問題的最常見方法是什麼?我現在唯一能找到的是多方計算功能的複雜性,作者在其中聲明(在第 6 頁的腳註 8 中):

通過在所有 n 方之間秘密共享功能的內部狀態,可以將反應功能簡化為非反應功能

我不明白這是什麼意思。這是什麼意思(具體是拋硬幣的例子),這是處理我在拋硬幣例子中描述的問題的最常見方法嗎?

首先,你關於那個腳註的問題。我想我可以擴展它,因為我可能是寫腳註的人。

您可以對響應式功能進行建模,如下所示:

  1. 修復(私有,內部)狀態的初始值 $ s $
  2. 永遠重複:
  • 接收輸入 $ x $ 從愛麗絲和 $ y $ 從鮑勃
  • 計算 $ (s’, a, b) \gets f(s, x,y) $
  • 給出輸出 $ a $ 給愛麗絲和 $ b $ 給 Bob,並設置 $ s := s’ $

這裡 $ f $ 是表徵此功能的確定性函式。的初始值 $ s $ 是公開資訊。該腳註中提出的是以下用於反應功能的協議:

  1. 愛麗絲和鮑勃修復秘密共享 $ s_A, s_B $ 對於初始值 $ s $
  2. 永遠重複:
  • 執行非反應性功能的安全計算:

> > $ g\Big( (s_A, x), (s_B,y) \Big) = \Big( (a,s’_A), (b, s’_B) \Big) $ , 在哪裡 $ (s’,a,b) \gets f\big(\textsf{Reconstruct}(s_A,s_B), x,y\big) $ 和 $ (s’_A, s’_B) \gets \textsf{Share}(s’) $ > > >

換句話說,愛麗絲給出了輸入 $ (s_A,x) $ Bob 提供輸入 $ (s_B,y) $ 到這個計算。愛麗絲接收輸出 $ (a, s’_A) $ 鮑勃收到 $ (b,s’_B) $ .

  • 愛麗絲更新她的分享 $ s_A := s’_A $ 鮑勃也這樣做: $ s_B := s’_B $

該協議的不變性在於,在每一步,各方都持有反應功能內部狀態的秘密份額。在每一步,它們都執行非反應式計算,重建內部狀態並執行反應式功能的一個步驟。

對於半誠實的安全性,任何標準的秘密共享方案都可以在這裡使用。對於惡意安全,您需要能夠檢測共享的篡改(因為沒有什麼可以阻止 Alice 接收 $ s’_A $ 作為一輪的輸出並給出除 $ s’_A $ 作為下一輪的輸入)。


現在針對您對承諾的具體關注。您是對的,在承諾功能的生命週期內各方之間存在通信。如果您將承諾功能的整個生命週期視為一個單元,那麼這對於獨立設置中的倒帶/模擬來說是有問題的。

但是送出功能有兩個階段:送出階段和揭示階段。解決這個問題的方法是要求每個階段都本地的模擬器。也就是說,當您模擬揭示階段時,您不能倒回到揭示階段之前(儘管您可能在送出階段進行了一些倒帶,但在您聲明送出階段完成後,您現在仍停留在該歷史記錄中)。

如果您查看承諾的典型安全定義,那正是他們所說的。

  • 在基於模擬的承諾定義中,我們通過提取遊戲來定義綁定。腐敗的送出者無法區分送出給誠實的接收者和送出給提取送出值的倒帶模擬器。這實際上只是關於送出階段的聲明(嗯,主要是)。
  • 我們通過模棱兩可的遊戲來定義隱藏。腐敗的接收者無法區分與誠實的送出者交談與與本地回放模擬器交談,後者在揭示階段開始之前無法獲得價值。同樣,允許該模擬器在送出階段和揭示階段倒帶,但不允許將揭示階段一直倒帶回到送出階段。

如果您想知道這是否意味著我們已經需要更強大的 UC 安全性而不是獨立的,那麼考慮具有 10 輪送出階段和 10 輪揭示階段的承諾協議會很有幫助。如果這個協議是 UC 安全的,你可以在更大的協議中使用它,並要求各方在送出階段的第 7 輪發送額外的消息。但這對我給出的獨立定義沒有好處,因為可能會有很多次倒帶讓我們在第 7 輪中來回走動。所以這個獨立的定義說:反應功能的每個單獨階段都應該是“原子的”。這確實是您的投幣協議描述中發生的情況:執行送出階段,等待它完成,然後才發送您的隨機位。

總而言之,各方之間的通信在反應性功能的生命週期內是潔淨的,但前提是它處於反應性功能的不同“階段”之間。

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