集合交集問題的安全計算:解讀
本文記錄閱讀該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 影響.