1. 程式人生 > 其它 >集合交集問題的安全計算:解讀

集合交集問題的安全計算:解讀

本文記錄閱讀該paper的筆記。

摘要


要點:
(1)集合的勢:交/並集個數
(2)該文主要討論三點:

  • 集合的勢與閾值的大小關係
  • 集合的交/並集與元素的包含關係
  • 集合的交/並集的判定

(3)模擬範例:是安全性證明的方法

引言


首先給出三個場景,依次分析一下:
(1)全部領導集合Q,全部員工集合P,員工滿意領導的集合X,現想確定X中的數量大於閾值t
(2)使用者信用判斷(多個指標),每個機構P(一個指標)都有一個信用合格的使用者名稱單X,現想確認一個使用者是否在所有名單中X,即求一個元素是否在交集中。
(3)所有員工名單A,每個機構P(一個使用者的信用指標)都有一個信用合格的使用者名稱單X,現想判斷A是否都在X的交集中,即一個集合是否在交集中。
下面也是主要分為這三塊介紹。

預備知識

安全性定義

模擬範例文中說參考:【Brief Report: Examining Driving Behavior in Young Adults with High Functioning Autism Spectrum Disorders:A Pilot Study Using a Driving Simulation Paradigm】,看著名字不像是安全性分析,倒是一個具體的場景實現。

這裡是給出半誠實參與的安全性證明,模擬器的輸入和輸出與真實情況下是不可取分的,即在半誠實安全。

門限密碼

門限密碼體制是MPC中對抗合謀攻擊的一個重要工具。

在門限密碼體制中, n 個參與者 聯合生成公鑰, 解密金鑰由 n 個參與者聯合持有. 公鑰可以直接加密訊息, 但解密需要 n 個參與者中一定 數量人員參與才能正確解密,即如果至少需要 t 個人參與才能解密, 少於 t 個人時無法獲取明文的任何資訊,這樣的密碼體制稱為 (t, n) 門限密碼體制。

本文需要的是 (n, n) 門限密碼體制。


給出ELGamal的一個變體,是門限密碼:
(1)金鑰生成和ElGamal類似,n個私鑰\(k_i\)(每人一個),一個公鑰\(h\)
(2)加密是和ElGamal一樣的,密文是兩部分
(3)解密,是需要所有人的私鑰才能解密成功
(4)具有“加法同態性”:\(E(m_1)E(m_2)=E(m_1+m_2)\),其實是密文相乘解密後相當於明文相加,當然這也算是具有同態性。
(5)這裡的小素數$\rho $就是門限,有沒有想到離散對數問題。

密文重隨機化

主要是因為:在下面加密選擇和保密替換中,使用者可能會通過觀察\(M\),判讀出上一個使用者改變了什麼,(透露出一些資料資訊),所以需要對\(M\)

中的密文重隨機數化,即重新加密,密文改變,明文不變。

集合的勢與閾值的大小關係

交集

換成標準形式是:

可以看到,目的就是判斷交集的大小與閾值的大小關係。

原理

  • 這裡的閾值\(t\in Q\)\(t\)\(Q\)按說是沒啥關係吧?\(t\)就是一個數。
  • 還有這裡的\(Q\)\(l\)個元素,每個集合\(X\)也有\(l\)個元素,這個怎麼搞?

按自己的意思舉個例子理解一下:

Q=(1,2,3,4,5)
P1:X1=(1,2,3)
P2:X2=(2,3,4)
P3:X3=(3,4,5)
Alice:t=2
對於P1:M1=(1,1,1,0,0)
對於P2:M2=(0,1,1,0,0)
對於P3:M3=(0,0,1,0,0)
L=0+0+1+0+0=1
L-t<0,即輸出為0

上面沒有加入加密,沒有安全性可言,下面加入加密:

方案



注意:
(1)Alice將\(-t\)加密\(E(-t)\),傳送給\(P_n\)
(2)\(P_n\)\(E(M_n)\)中的元素逐個相乘得到\(E(L)\),然後再將\(E(L)\)\(E(-t)\)相乘得到\(E(F)\),最後將\(E(F)\)隨機化,得到\((u,v)\),並公佈\(u\)
(3)Alice和n個使用者都是參與者,所以有\(n+1\)個私鑰\(k_i\)
(4)Alice和(n-1)和使用者各自計算\(t_i=u^{k_i}\)
(5)\(P_n\)解密,這裡需要聯合解密(n+1個參與者)
(6)注意這裡\(E(-t)*E(L)=E(L-t)\)(別忘了加法同態性!)

正確性和安全性分析

後面補充吧,先弄懂方案。

並集

這裡改成並集,即求並集的大小與閾值的大小關係:

該部分內容和前面幾乎相同,只需對交集協議中的(3)步進行簡單修改:

方案

注意:
(1)這裡的“保密替換”和交集相反。

正確性和安全性

參考交集

集合的交/並集與元素的包含關係

交集

該部分內容判斷元素與集合交 集的關係:


具體如下:

原理和前面介紹的前 3 步相同,只需修改第 (4) 步和第 (5) 步:

原理


正確性和安全性


這部分可不是模擬範例證明的!

並集

目的:

方案

集合的交/並集的判定

交集

目的:想要判斷一個集合是否在交集中


具體說:

原理


其就是就是將Alice也看作是一個參與者,最後求出交集的長度,與Alice集合的長度比較。
具體協議如下:

注意:
(1)這裡是Alice解密,\(P_i\)聯合計算出\(t_i\)(n個)

正確性和安全性

並集

目的:

原理

效能

從計算和通訊消耗來看:

計算

通訊

總結

以上協議的模指數運算依賴參與者的數量 n 和全集的勢 l, 因此協議執行時間受參與者的數量 n 和全集的勢 l 影響.