【隱私計算筆談】MPC系列專題(十四):雙方比較

PlatON技術團隊發表於2023-02-20

雙方比較

之前已經介紹過了利用加密電路或者位元分解來實現安全多方比較。本次再介紹一種利用不經意傳輸來實現雙方比較的方法。
圖片

不經意傳輸在之前的科普進行過介紹,該比較協議的主要思路為:將需要比較的兩個位元串分為多個部分,每個部分再進行比較,最後利用樹形結構進行組合。假設有位元串?和位元串?,將位元串?劃分為兩個部分,分別為\( ?_1,?_0 \),將位元串?也劃分為\( ?_1 \)和\( ?_0 \)。
圖片

表示式1{?<?} 表示若?<?,則表示式1{?<?} 的值為1,否則為0。同理,表示式1{?=? } 表示若?=?則表示式的值為1,反之為0。
圖片

思考如下的比較:

$$ \begin{array}{c} x=x_{1} \| x_{0} \\ y=y_{1} \| y_{0} \\ 1\{x<y\}=1\left\{x_{1}<y_{1}\right\} \oplus\left(1\left\{x_{1}=y_{1}\right\} \wedge 1\left\{x_{0}<y_{0}\right\}\right) \quad \text { 式 } 1 \end{array} $$

把位元串?和位元串?分為兩部分後,先比較\( ?_1和?_1 \)的大小,由於\( ?_1和?_1 \)都是高位部分,因此若\( ?_1<?_1 \)則位元串?<?;反之若\( ?_1>?_1 \)則?>?,在這兩種情況下無需在比較\( ?_0,?_0 \)的大小了。只有當\( ?_1=?_1 \)時,需要透過比較\( ?_0,?_0 \)的大小關係來確定?, ?的大小關係。

式1就是該比較協議的核心思想。該協議的詳細流程為:

首先假設Alice掌握位元串?,Bob掌握位元串?,先考慮最簡單的情況,?和?等長均為?位元且\( \frac{l}{m} \)為2的指數倍。

1. Alice和Bob分別對?和?進行?等分:Alice:把?進行?等分,每份?位元:

$$ x=x_{q-1}\|\cdots\| x_{0} $$

Bob:把?進行?等分,每份?位元:

$$ y=y_{q-1}\|\cdots\| y_{0} $$

2. Alice產生兩個隨機數,將其分別記為\( {<It_0,j>}_{B}^{0} , {<eq_0,j>}_{B}^{0} \)。Alice利用\( M=2^m \)個位元,分別為\( s_{j,0}...s_{j,M-1} \)來標識\( x_j \)的大小關係;利用?個位元,分別為\( t_{j,0}...t_{j,M-1} \)來標識\( x_j \)的相等關係: 
圖片

即對於\( x_j \),Alice將位元\( s_{j,0}...s_{j,M-1} \)中下標為\( s_{j,0}...s_{j,x_j-1} \)的全都設定為隨機數 \( {<It_{0,j}>}_{B}^{0}\oplus 0 \),將下標為\( s_{j,x_j}...s_{j,M-1} \)的全都設定為\( {<It_{0,j}>}_{B}^{0}\oplus 1 \)。例如段\( x_j=(1010)_2=(10)_{10} \),則?=16。Alice將\( s_{j,0}...s_{j,9} \)設定為\( {<It_{0,j}>}_{B}^{0}\oplus 0 \),將\( s_{j,10}...s_{j,15} \)設定為\( {<It_{0,j}>}_{B}^{0}\oplus 1 \)。

即下標比\( x_j \)的值小的為隨機數\( {<It_0,j>}_{0}^{B} \) 異或0,下標大於等於\( x_j \)的異或1。對於\( t_{j,0}...t_{j,M-1} \),則是隻有當下標和\( x_j \)相等時為隨機數 \( {<eq_0,j>}_{0}^{B} \)異或1,否則均為隨機數 \( {<eq_0,j>}_{0}^{B} \)異或0。 

若用黃色表示位元值為1,藍色表示位元值為0,則Alice在完成上述步驟後,\( s_{j,0}...s_{j,M-1} \)和\( t_{j,0}...t_{j,M-1} \)如下所示:
圖片

對於0≤?≤?−1,Alice對每個\( x_j \)都進行上述的步驟,因此能得到\( s_{0,0}...s_{q-1,M-1} \)共?∙?位元,得到\( t_{0,0}...t_{q-1,M-1} \)共?∙?位元。

3. Alice和Bob間呼叫?次?選1的OT協議,Alice在 OT 協議中的輸入為\( s_{j,0}...s_{j,M-1} \),Bob在OT中的輸入為\( y_i \):
圖片

?次?選1的OT結束後,Bob會獲得\( s_{0,y_0}...s_{q-1,y_{q-1}} \)。

Alice和Bob再呼叫?次?選1的OT協議,Alice在OT協議中的輸入為\( t_{j,0}...t_{j,M-1} \),Bob在OT中的輸入為\( y_i \): 
圖片
?次?選1的OT結束後,Bob會獲得{\( t_{0,y_0}...t_{q-1,y_{q-1}} \)}。

將{\( s_{0,y_0}...s_{q-1,y_{q-1}} \)}記為{\({<It_{0,0}>}_{1}^{B} ,..., {<It_{0,q-1}>}_{1}^{B} \)},將{\( t_{0,y_0}...t_{q-1,y_{q-1}} \)}記為{ \( {<eq_{0,0}>}_{1}^{B},... {<eq_{0,q-1}>}_{1}^{B} \) }。 

Alice的輸入為 \( s_{j,0}...s_{j,M-1} \),Bob的輸入為\( y_i \),那麼當\( y_i≥x_i \)時,Bob透過OT獲得的為 \( {<It_{0,j}>}_{0}^{B}\oplus 1 \),當\( y_i<x_i \)時,Bob透過OT獲得的為\( {<It_{0,j}>}_{0}^{B}\oplus 0 \)。又由於Bob 透過OT獲得的\( {<It_{0,j}>}_{0}^{B}\oplus 1 \)或者\( {<It_{0,j}>}_{0}^{B}\oplus 0 \)異或上 Alice的隨機數\( {<It_{0,j}>}_{0}^{B} \),即為\( x_j < y_j \)的比較結果,因此可以將Bob獲得的記為\( {<It_{0,j}>}_{1}^{B} \),看做是\( x_j < y_j \)的比較結果的一個子秘密。只有當Bob的子秘密\( {<It_{0,j}>}_{1}^{B} \)和 Alice的子秘密\( {<It_{0,j}>}_{0}^{B} \), 進行異或才能獲得 \( x_j < y_j \)的比較結果\( {<It_{0,j}>}^{B} \)。 

同理可將Alice的輸入為\( t_{j,0}...t_{j,M-1} \),Bob的輸入為\( y_i \),OT後Bob獲得的\( {<eq_{0,j}>}_{B}^{0}\oplus 1 \){\( x_j=y_j \)}記為\( {<eq_{0,j}>}_{1}^{B} \),作為Bob獲得的1{\( x_j=y_j \)}的子秘密。 

4. Alice和Bob執行如下演算法(Alice執行則?=0,Bob 執行則?=1): 
圖片

該演算法的目的為將需要比較的位元串分成多個部分,每個部分進行比較, 再將比較結果進行組合。舉個例子來解釋這個演算法,假設?=16,則\( x=x_{15} | ... | x_{0} ,y=y_{15} | ... | y_{0}\),要比較?和?先比較\( x_{15} | ... | x_{8} \)和\( y_{15} | ... | y_{8} \)的大小,只有當\( x_{15} | ... | x_{8} \)和\( y_{15} | ... | y_{8} \)相等時才需要接著去比較\( x_{7} | ... | x_{0} \)和\( y_{7} | ... | y_{0} \)間的大小關係。而比較\( x_{15} | ... | x_{8} \)和\( y_{15} | ... | y_{8} \)間的大小關係可以先比較\( x_{15} | ... | x_{12} \)和\( y_{15} | ... | y_{12} 間的大小關係,若二者相等再比較\( x_{11} | ... | x_{8} \)和\( y_{11} | ... | y_{8} \),以此類推,則形成了一個樹形結構。

最後最先需要比較的為和間的大小關係。用:

$$ x=x^{(i)}=\frac{x^{i}_q}{2^i}-1 \| ... \| {x_{0}}^i $$

表示該樹形結構,(?)表示位於第幾層,如
圖片
樹形結構如下圖所示:
圖片
正確性證明:

\( F_{???} \)是多方???函式,需要Alice和Bob共同完成???操作。如?????掌握\( a_0 \)和\( b_0 \),Bob掌握\( a_1 \)和\( b_1 \),二者都呼叫\( F_{???} \)後,\( F_{???} \)對Alice的輸出為\( (a\wedge b)_0 \),對Bob的輸出為\( (a\wedge b)_1 \),具體實現可以使用之前介紹過的Beaver Triple完成,因此:
圖片
輸出為:
圖片
則:
圖片
又由於:
圖片
因此對\( {<It_{i,j}>}_{B}^{b} \) 異或上 \( {<It_{i,j}>}_{B}^{1-b} \)可得:
圖片

圖片
由此得證。

相關文章