【隱私計算筆談】MPC系列專題(十六):三方複製秘密共享(二)

PlatON技術團隊發表於2023-03-06

三方複製秘密共享(二)

 
上次科普介紹了在布林電路下的三方複製秘密共享方案,這次科普介紹把它擴充套件到環 \( 2^n \) 下的方式。
 
首先是在環\( 2^n \)下生成三個隨機數 \( ?_1,?_2,?_3 \) ,並且滿足 \( ?_1+?_2+?_3=0 \) 。上次科普已經介紹過滿足條件 \( ?_1⊕?_2⊕?_3=0 \) 的隨機數生成方式,滿足條件滿足 \( ?_1+?_2+?_3=0 \) 的只需對上次的方式進行一些小更改:
 
Alice、Bob、Candy分別生成隨機數?1,?2,?3,Alice將?1傳送給Bob,Bob將?2傳送給Candy,Candy將?3傳送給Alice。接著Alice計算?1=?1−?3,Bob計算?2=?2−?1,Candy計算?3=?3−?2。
 
顯然,\( ?_1+?_2+?_3 \)= ?1−?3+?2−?1+?3−?2=0。

圖片

--三方產生滿足?1+?2+?3=0的隨機數--
 
假設秘密為?, ?,則\( ?_1=?_3−?,?_2=?_1−?,?_3=?_2−?;?_1=?_3−?,?_2=?_1−?,?_3=?_2−? \)。Alice持有\( (?_1,?_1), (?_1,?_1) \),Bob持有\( (?_2,?_2), (?_2,?_2) \),Candy持有\( (?_3, ?_3), (?_3, ?_3) \)。
 
加法的實現方式為:布林電路上的加法原理相同,Alice、Bob和Candy在模下直接本地計算\( ?_?+?_? \)即可。如Alice計算
\( ?_1=?_1+?_1=?_3−?+?_3−?=(?_3+?_3)−(?+?),?_1=?_1+?_1 \)。同理Bob計算\( ?_2=?_2+?_2=?_1−?+?_1−?=(?_1+?_1)−(?+?),?_2=?_2+?_2 \);Candy計算

\( ?_3=(?_3+?_3)=?_2−?+?_2−?=(?_2+?_2)−(?+?),?_3=?_3+?_3 \)。可以驗證:
 

圖片

 

圖片

--三方加法實現方式--
 
乘法的實現方式為: 
 
Alice、Bob和Candy利用上述的隨機數生成方式,生成滿足?+?+?=0,條件隨機數?, ?, ?。Alice計算\( r_{1}=\frac{x_{1} y_{1}-a_{1} b_{1}+\alpha}{3} \),並且把?1傳送給Bob;Bob計算\( r_{2}=\frac{x_{2} y_{2}-a_{2} b_{2}+\beta}{3} \),並且把?2傳送給Candy;Candy計算\( r_{3}=\frac{x_{3} y_{3}-a_{3} b_{3}+\gamma}{3} \),並且把?3傳送給Alice。 
 
Alice讓\( ?_1=−2?_3−?_1,?1=?_3−?_1 \);
 
Bob讓\( ?_2=−2?_1−?_2,?2=?_1−?_2 \);
 
Candy讓\( ?_3=−2?_2−?_3,?_3=?_2−?_3 \)。
 
顯然:\( ?_1+?_2+?_3=?_3−?_1+?_1−?_2+?_2−?_3=0 \),可以驗證:
 

圖片

 
因此有:
 

圖片

 
同理可推匯出,\( ?_2=?_1−??,?_3=?_2−?? \),正確性得證
 

圖片

--三方乘法實現方式--

相關文章