掷硬币协议
模型
Ideal Model
計算函數f:{0,1}?×{0,1}?→{0,1}?×{0,1}?f: \{0,1\}^* \times \{0,1\}^* \rightarrow \{0,1\}^* \times \{0,1\}^*f:{0,1}?×{0,1}?→{0,1}?×{0,1}?的兩方協議π\piπ,參與方是P1,P2P_1,P_2P1?,P2?。存在敵手AAA完全控制損壞的一方Pi,i∈{0,1}P_i,i \in \{0,1\}Pi?,i∈{0,1},誠實的另一方記做Pj,j=1?iP_j,j=1-iPj?,j=1?i,另外存在一個可信第三方(trusted party)TTT,一共444個實體。
上述過程的輸出叫做在(x,y),z,n(x,y),z,n(x,y),z,n下的函數fff的ideal execution,記做IDEALf,A(z),i(x,y,n)IDEAL_{f,A(z),i}(x,y,n)IDEALf,A(z),i?(x,y,n),包含PjP_jPj?和AAA的輸出。
Real Model
計算函數f:{0,1}?×{0,1}?→{0,1}?×{0,1}?f: \{0,1\}^* \times \{0,1\}^* \rightarrow \{0,1\}^* \times \{0,1\}^*f:{0,1}?×{0,1}?→{0,1}?×{0,1}?的兩方協議π\piπ,參與方是P1,P2P_1,P_2P1?,P2?。存在敵手AAA完全控制損壞的一方Pi,i∈{0,1}P_i,i \in \{0,1\}Pi?,i∈{0,1},誠實的另一方記做Pj,j=1?iP_j,j=1-iPj?,j=1?i,不存在可信第三方,一共333個實體。
上述過程的輸出叫做在(x,y),z,n(x,y),z,n(x,y),z,n下的函數fff的real execution,記做REALπ,A(z),i(x,y,n)REAL_{\pi,A(z),i}(x,y,n)REALπ,A(z),i?(x,y,n),包含PjP_jPj?和AAA的輸出。
惡意敵手下的安全性定義
令fff是兩方協議π\piπ要計算的函數,我們說π\piπ在惡意敵手下帶終止的安全地計算fff(securely compute fff with abort in the presence of static malicious adversaries),如果對于任意非均勻PPT的真實模型下的敵手AAA,都存在一個非均勻PPT的理想模型下的敵手SSS,對于任意的i∈{0,1}i \in \{0,1\}i∈{0,1},都有
{IDEALf,S(z),i(x,y,n)}x,y,z,n≡c{REALπ,A(z),i(x,y,n)}x,y,z,n\{IDEAL_{f,S(z),i}(x,y,n)\}_{x,y,z,n} \overset{c}{\equiv} \{REAL_{\pi,A(z),i}(x,y,n)\}_{x,y,z,n} {IDEALf,S(z),i?(x,y,n)}x,y,z,n?≡c{REALπ,A(z),i?(x,y,n)}x,y,z,n?
其中x,y∈{0,1}?x,y \in \{0,1\}^*x,y∈{0,1}?,∣x∣=∣y∣|x|=|y|∣x∣=∣y∣,以及z∈{0,1}?z \in \{0,1\}^*z∈{0,1}?,n∈Nn \in Nn∈N
在討論安全計算時,我們總是考慮“abort”的。另外,真實世界的概率性敵手AAA往往被當做黑盒,于是模擬器SSS可以定義A′(?):=A(x,z,r;?)A'(\cdot) := A(x,z,r;\cdot)A′(?):=A(x,z,r;?),其中rrr是隨機帶,那么A′A'A′就是確定性敵手。在證明中只需考慮確定性敵手即可。
Modular Sequential Composition
順序組合定理(Sequential composition theorems):如果一個協議在獨立模型下(in the stand-alone model)是XXX定義下安全的(secure under definition XXX),那么它在順序組合(每一個進程在下一個進程開始前結束)下是XXX定義下安全的。
在設計協議時,我們可以令這個協議包含一個理想模型下的子例程。首先證明子例程是安全的,然后用可信第三方計算這個子例程,在理想模型下證明協議的安全性。
Hybrid Model:協議參與方之間進行交互(as in the real model),同時也使用可信第三方(as in the ideal model)。即,協議π\piπ包含一系列理想調用(ideal calls)來計算f1,?,fp(n)f_1,\cdots,f_{p(n)}f1?,?,fp(n)?,且fif_ifi?在fi+1f_{i+1}fi+1?之前被調用。調用期間參與方之間不交互。每次理想調用是獨立的,可信第三方不保存調用狀態。參與方的交互信息記做standard message,與可信第三方的交互信息記做ideal message。
Blum擲硬幣協議
擲硬幣(Coin Tossing):一個兩方協議計算函數fct(λ,λ)=(U1,U1)f_{ct}(\lambda,\lambda) = (U_1,U_1)fct?(λ,λ)=(U1?,U1?),其中U1∈{0,1}U_1 \in \{0,1\}U1?∈{0,1}是單個隨機比特。
如何擲硬幣?很簡單:P1P_1P1?和P2P_2P2?各自選擇一個隨機比特b1,b2b_1,b_2b1?,b2?,然后發送給對方,計算兩者的異或值b=b1⊕b2b=b_1 \oplus b_2b=b1?⊕b2?。但是,如果在PiP_iPi?發送bib_ibi?之前就收到了b1?ib_{1-i}b1?i?,那么他就可以選擇bi←b⊕bi?1b_i \leftarrow b \oplus b_{i-1}bi?←b⊕bi?1?使得擲硬幣結果偏向于bbb。解決方案是:“同時”發送,但同步信道難以實現。
Blum協議:使用承諾方案來解決同步問題。
解釋:P2P_2P2?接收到ccc之后,P1P_1P1?便無法再更改b1b_1b1?(承諾協議的綁定性),同時P2P_2P2?也無法獲得關于b1b_1b1?的信息來使得結果偏向bbb(承諾協議的隱藏性)。
證明安全性:模擬器SSS的挑戰目標是,讓它模擬的擲硬幣結果等于理想模型下可信第三方返回的結果。
由于擲單個硬幣,因此期望上只需要回滾222次即可令結果相同。SSS輸出failfailfail的概率是μ(n)\mu(n)μ(n);當輸出的不是failfailfail時,它在IDEALIDEALIDEAL下和REALREALREAL下的輸出分布不可區分。
詳細證明過程很長,雖然協議看起來是如此簡單。結論是:假設ComComCom是完美綁定的,那么Blum協議可以安全擲硬幣。
常數輪擲多個硬幣協議
應用順序組合定理,我們l(n)l(n)l(n)次擲單個硬幣,依然是安全的。然而,我們更希望獲得常數輪的擲多個硬幣。如果只是簡單地將Blum協議中的單個隨機比特bi∈{0,1}?b_i \in \{0,1\}^*bi?∈{0,1}?替換成ρi∈{0,1}l(n)\rho_i \in \{0,1\}^{l(n)}ρi?∈{0,1}l(n),這就沒法用模擬技術來證明安全性了,因為期望上這需要2l(n)2^{l(n)}2l(n)次回滾。
解決方案是,做承諾ccc之后,P1P_1P1?不發送解承諾(ρ1,r)(\rho_1,r)(ρ1?,r),而僅發送ρ1\rho_1ρ1?,并用零知識證明ccc就是ρ1\rho_1ρ1?對應的承諾。
令fzkR((x,w),x)f_{zk}^R((x,w),x)fzkR?((x,w),x)是關于語言R∈NPR \in NPR∈NP的常數輪零知識證明協議,
fzkR((x,w),x):={(λ,R(x,w))x=x′(λ,0)otherwisef_{zk}^R((x,w),x) := \left\{ \begin{aligned} (\lambda,R(x,w)) && x=x'\\ (\lambda,0) && otherwise\\ \end{aligned} \right. fzkR?((x,w),x):={(λ,R(x,w))(λ,0)??x=x′otherwise?
協議為:
利用混雜模型,可以證明:如果ComComCom是完美綁定的,且l(n)l(n)l(n)是多項式的,那么上述協議 securely computes the functionality fctl(λ,λ)=(Ul(n),Ul(n))f_{ct}^l(\lambda,\lambda)=(U_{l(n)},U_{l(n)})fctl?(λ,λ)=(Ul(n)?,Ul(n)?) in the (fzkR1,fzkR2)?(f_{zk}^{R_1},f_{zk}^{R_2})-(fzkR1??,fzkR2??)?hybrid model.
總結
- 上一篇: 行翻转和列翻转_用量子计算机翻转硬币
- 下一篇: 模拟投硬币,一次一投