The Communication Complexity of Threshold Private Set Intersection-2019:解讀

記錄閱讀論文的筆記。

什麼是閾值PSI?
Alice和Bob當兩者的交集大小不小於\(n-t\)時(兩者的不同元素的數量不大於閾值\(2t\)時),纔會求交集。
所以閾值PSI會分爲兩步:
1、檢測
2、求交

主要內容:
基於閾值的兩方PSI協議(HE)構造,並給出擴展爲多方的設想,通信複雜度是亞線性的(sublinear)(集合大小有關)。

摘要

image

1、簡單介紹了閾值PSI
2、分析了閾值PSI協議的通信複雜度的上下界。
3、兩方協議可以擴展到多方
4、閾值PSI應用廣泛
5、給出協議的通信複雜度取決於閾值\(t\),並和集合大小\(n\)呈亞線性關係(對數)

介紹

image
1、閾值PSI的應用
(1)生物特徵認證
對於給定指紋與數據庫中的指紋進行匹配,不關心具體的交集是什麼,也不關心具體的交集大小,只需要得到是/否的答案,表示指紋是否在庫中。
(2)隱私拼車
假設兩個(或更多)方正在使用拼車應用程序,如果他們的路線有很大的交集,它允許他們共享車輛。然而由於隱私問題,他們不想公開他們的行程。閾值PSI可以解決該問題,各方可以聯合執行一個閾值PSI協議,瞭解路線的交叉點,如果交叉點足夠大,共享一輛車,否則,他們就不共享一輛車,也能保證用戶的路線隱私。
(3)在線聊天好友發現
聊天軟件中對於共同興趣愛好較多(存在閾值)的兩人,會互相推薦。
2、以往的PSI的通信複雜度分析
(1)通信複雜度與最小輸入集合大小呈線性
(2)而閾值PSI通信複雜度只取決於閾值大小,而與輸入集合大小無關。

3、主要技術
(1)Cardinality Testing
(2)Linear Algebra
(3)Additively Threshold Homomorphic Encryption
(4)Secure Two-Party Computation
(5)Oblivious Linear Function Evaluation
(6)set reconciliation【Set reconciliation with nearly optimal communication complexity】

4、文章框架
(1)先介紹基礎知識
(2)再分析文章的通信複雜度
(3)再基於FHE和set reconciliation構造的協議
(4)再介紹不安全的Cardinality Testing
(5)再介紹安全的Cardinality Testing
(6)再給出不安全的兩方閾值PSI
(7)再給出安全的兩方閾值PSI
(8)最後給出擴展多方閾值PSI的設想方案

基礎知識

Alice將集合\(S_A=(a_1,...,a_n)\)編碼爲多項式\(p_A(x)=\prod_{i=1}^{n}(x-a_i)\),Bob將集合\(S_B=(b_1,...,b_n)\)編碼爲多項式\(p_B(x)=\prod_{i=1}^{n}(x-b_i)\)

代數基礎

1、多項式
(1)單項式(monomials)
對於多項式\(P_A(x)=\sum_{i=1}^{n}x^{a_i}\)中的每一項\(x^{a_i}\)就是一個單項式
(2)多項式級數(deg(p))
最高次項的冪
(3)首一多項式(monic)
首項係數爲1的多項式
(4)多項式的稀疏性(t-sparse)
若多項式\(p(x)\)中的單項式最多爲\(t\)個,則該多項式就叫做\(t-sparse\)
(5)有理多項式(rational polynomial或rational function)
\(h(x)=p(x)/q(x)\)就是有理多項式,其中\(p(x)\)\(q(x)\)的級數分別爲n和m
(6)多項式插值
一個級數爲\(d\)的多項式,需要\(d+1\)個點值對插值,若該多項式是首一多項式,則只需要\(d\)個點值對。

2、矩陣
(1)奇異矩陣(singular)
就是不可逆矩陣,即行列式爲0的方陣
(2)漢克爾矩陣(Hankel matrix)
image

引理

1、引理1
image
在後面計算點加噪音時用到。
2、引理2
image
表明\(p(x)\)\(R(x)\)是互素的,即沒有公共元素。

set reconciliation

來自【Set reconciliation with nearly optimal communication complexity】

image

主要思想是:將集合\(S_A=(a_1,...,a_n)\)編碼爲一個首一多項式(monic polynomials)\(p_A(x)=\prod_{i=1}^{n}(x-a_i)\)
多項式的級數(deg(pA))\(n\),所以也可以由\(n\)個點值對插值而來。

從上面可以看出,有理函數(rational function)\(p(x)\)\(P_A(x)/P_B(x)\)構成,消去交集,剩下的分子是集合\(S_A\)除去交集的部分\(S_{A\setminus B}\),分母是集合\(S_B\)除去交集的部分\(S_{B\setminus A}\)
滿足\(|S_{A\setminus B}\)+\(S_{B\setminus A}|\leq 2t\),即可以用\(2t\)個點值對插值出\(p(x)\)

那如何才能插值呢?
image
image
假設已經經過了檢測,接下來就是求交了。
首先,兩方各自將集合編碼爲多項式,協商出一組計算點\((\alpha_1 ,...,\alpha_n )\),並分別求值\((p_A(\alpha_{1}),...,p_A(\alpha_{2t}))\)\((p_B(\alpha_1),...,p_B(\alpha_{2t}))\)

然後雙方經過通信後可以根據\(p(x)=p_{A\setminus B}(x)/p_{B\setminus A}(x)\)的關係,再利用那些點得到\(2t\)個點\((p(\alpha_1),...,p(\alpha_{2t}))\),即可插值出多項式\(p(x)\)

如何求交呢?
以Alice爲例,根據\(p(x)\)他可以得到\(p_{A\setminus B}(x)\),然後就可以得到交集多項式\(p_{A\cap B}(x)=p_A(x)/p_{A\setminus B}(x)\)

這裏存一個問題,如何根據\(p(x)\)得到\(p_{A\setminus B}(x)\)

基於上述思想,我們可以結合安全的兩方計算(secure two-party computation)構造一個亞線性的PSI協議:
(1)雙方輸入多項式的計算點
(2)使用安全兩方計算對\(p(x)\)進行插值
(3)兩方分別輸出\(p_{A\setminus B}(x),p_{B\setminus A}(x)\)

但存在問題是,該協議並不實用或者說不滿足高效漸進性(asymptotically efficient)。

如何優化?
我們給出了一種不同的方法,僅使用“minimal secure two-party computation”獲得帶噪音的點值,進而插值出$p(x),之後求出交集。

具有過程見:

安全的兩方計算(Secure Two-Party Computation)

主要講的是UC安全模型,即方案的安全性證明方法。
更多的UC安全見:安全性證明

加法同態加密

image
這裏的加法同態性,可以立即爲密文相乘,解密相等於明文相加

不經意的線性計算(Oblivious Linear Function Evaluation)

image
主要功能就是receiver只能得到\(f(x)\),sender不知道\(x\),和OPRF是不是很像!
image

Cardinality Testing

image
Cardinality Testing,可以翻譯爲集合勢檢測,主要就是求交前的檢測。
集合的勢可以從這裏多瞭解一些:

以上三篇論文是一個實驗室的喲!

對於:

  • 判斷交集大小是否不小於\(n-t\),即\(S_A\cap S_B\geq (n-t)\)
  • 判斷集合不同元素(sets do not differ)的數量是否不大於\(n-t\)即$|(S_A\setminus S_B)\cup (S_B\setminus S_A)|\leq 2t $

兩種說法是一樣的!

如何檢測呢?
通常是先將集合\(S_A=(a_1,...,a_n)\)編碼到多項式中,之前方案是將元素作爲多項式的根,即\(Q(x)=(x-a_1)...(x-a_n)\),而這裏是將每個元素單獨編碼到一個多項式(polynomial)中的單項式(monomials)中,即\(p_A(x)=\sum_{i=1}^{n}x^{a_i}\)

檢測的核心思想是:求多項式\(p(x)=P_A(x)-P_B(x)\)中的單項式的個數是否小於\(2t\),因爲\(p(x)\)中的單項式最多爲\(2t\)個。通過這種編碼方式,再利用一種多項式的稀疏性檢測方法【polynomial sparsity test】,來自【A local decision test for sparse polynomials】。

多項式的稀疏性:
若多項式\(p(x)\)中的單項式最多爲\(t\)個,則該多項式就叫做\(t-sparse\),【A local decision test for sparse polynomials】給出了一種隨機化算法(randomized algorithm),只需要\(2t\)次計算就可以檢測出\(p(x)\)是否是\(t-sparse\)

最後結合加法同態加密隱私線性計算實現檢測,通信複雜度爲\(\widetilde{O}(t^2)\)

不安全的

image
上面介紹了cardinality testing protocol,這是閾值PSI協議的核心部件,這裏提出一個基於多項式稀疏性檢測的方式實現cardinality testing protocol,通過檢測矩陣的行列式是否爲0,判斷矩陣是否是奇異矩陣,進而判斷兩個集合是否相似!
多項式稀疏性檢測來自【A local decision test for sparse polynomials】,這是對該技術的直接應用。
image

安全的

image
安全的cardinality testing是指加入了加密運算,下面是理想情況下的cardinality testing協議:
image
這裏的\(F_{INV}\)可以當作一個可信第三方。

協議通信量

image

1、使用FHE構造的閾值PSI的通信複雜度最多爲\(\widetilde{O}(t)\),但在密文下進行插值多項式,計算量巨大。
將set reconciliation和FHE結合,構造閾值PSI協議。
image
這裏利用了同態性質,即計算\(Enc(p_A(\alpha _i))/p_B(\alpha _i)\)時,\(p(x)\)需要\(2t\)個點值對同態插值得到。
image
2、使用GC構造的閾值PSI的通信協議爲\(\widetilde{O}(t^3)\)
image
基於GC+OT+單項函數構成的閾值PSI,實用性不大。
3、我們的協議介於兩者之間,比2更優,同時使用加法同態(部分同態)在保證計算複雜度可控內,實現高效通信。

主要內容

兩方閾值PSI

還是兩步走,先檢測,再求交
理想情況下的兩方閾值PSI協議爲:
image
檢測使用的是\(F_{PICT}^{2t}\)協議,然而在求交時,協議還是不安全,以Alice爲例,他不僅能從\(p(x)\)中得到\(P_{A\setminus B}\)還能得到\(P_{B\setminus A}\),這就獲取了Bob的額外信息。

我們採用的方法是,使用帶噪音的計算點(evaluation points),從而掩蓋了對方信息,這裏關鍵點就是\(V(x)=p_A(x).R_1(x)+p_B(x).R_2(x)\)的構造。
image
注意這裏插值\(p(x)\)時有\(3t+1\)個點,我們選擇\(2t\)個分子分母互素的點即可。
正確性證明:
image

這裏依舊存有疑問:如何根據\(p(x)\)\(P_{A\setminus B}\)

非對稱場景下

上面介紹協議都是假設在對稱場景下,即參與方的數據集大小相同,那如果在非對稱場景下,兩方的數據集大小一致,如何解決?

這裏給出的方法是:填充
假設Alice的集合位\(S_A\),Bob的集合爲\(S_B\),且\(|S_A|<|S_B|\),則兩個集合中不同的元素至少爲\(t_{min}=|S_B|-|S_A|\),將對\(S_A\)進行填充\(|S_B|-|S_A|\),如下:
image
這樣無疑通信複雜度會增加。

加入“噪音”

在上面提到,Alice不僅會得到\(P_{A\setminus B}\)還能得到\(P_{B\setminus A}\),這就獲取了Bob的額外信息,所以需要加入“噪音”掩蓋\(P_{B\setminus A}\),在協議中體現在\(V(x)=p_A(x).R_1(x)+p_B(x).R_2(x)\),下面介紹如何構造\(V(x)=p_A(x).R_1(x)+p_B(x).R_2()\)

理想情況的功能:
image

該思想來自【An algebraic approach to maliciously secure private set intersection】:
1、輸入
sender:編碼得到多項式\(p_A(x)\)和隨機多項式\(R(x)\)
receiver:編碼得到多項式\(p_B(x)\)
2、輸出
返回給sender:\(p_A(x)+R(x).p_B(x)\)

具體協議:
image
感覺很像密鑰協商,最後雙方都得到了\(S_A'(\alpha_i)+S_B'(\alpha_i)\),即\(p(\alpha_i)\)
image

對於Alice而言,因爲\(U_B(x)\)是隨機的,所以根據\(s_B'(\alpha_i)\)得不到額外的信息。Bob同樣也是。
image
注意這裏的,\(R_1^A(x)+R_1^B()\)相當於\(R_1()\),\(R_2^A(x)+R_2^B()\)相當於\(R_2()\)

多方閾值PSI

這篇論文還是以介紹兩方爲主,最後給出一個擴展多方的想法。這裏以三方爲例:

Alice,Bob,張三,數據集分別是\(S_A,S_B,S_C\)(大小爲n),編碼爲多項式\(p_A(x)=\prod_{i=1}^{n}(x-a_i),p_B(x)=\prod_{i=1}^{n}(x-b_i),p_C(x)=\prod_{i=1}^{n}(x-c_i)\)

方案中給出的基於閾值的FHE方案是來自【Threshold cryptosystems from threshold fully homomorphic encryption-2018】。

多方也是兩步走,先檢測,後求交。

檢測(Cardinality Testing)

就是判斷\(|S_A \cap S_B \cap S_C|\)是否大於\(n-t\)

三方的多項式滿足:
image
需要\(2t\)個點就能插值出來。但是存在一個問題就是,分子和分母中可能會約有公共的根(share additional roots),這樣就會影響分子分母約分。

這點我不太明白,公共的根肯定是會約去的,怎麼會影響呢?

解決的辦法就是加入隨機值:
image
這樣,Alcie、Bob和張三,協商出一個公鑰\(pk\),每人一個私鑰分割值\(sk_A,sk_B,sk_C\),解密時需要所有人的私鑰分割值。
1、Bob和張三分別發送加密的\((p_B(\alpha_1),...p_B(\alpha_{2t}),p_B(z)),(p_C(\alpha_1),...p_C(\alpha_{2t}),p_C(z))\)給Alice,其中\(z\)是一個隨機值。
2、Alice使用這\(2t\)個點值對進行同態插值,求出\(p(x)\),並帶入\(z\),判斷\(p(z)\)是否等於\((p_B(z)+rp_C(z))/p_A(z)\),如果相等則爲1的加密,否則是0的加密。
3、最後三方聯合解密,做最後判斷。

這裏留一個疑問:如何判斷\(p(z)\)是否等於\((p_B(z)+rp_C(z))/p_A(z)\),做同態減法,同態除法?

總的來說,檢測步驟的通信複雜度爲\(\widetilde{O}(t)\)

求交

理想情況下的功能:
image

具體過程:
1、Alice,Bob,張三輸入自己的數據:\((p_A(x),R_1^A(),R_2^A(),R_3^A(),U_A()),(p_B(x),R_1^B(),R_2^B(),R_3^B(),U_B()),(p_C(x),R_1^C(),R_2^C(),R_3^C(),U_C())\)
2、各自得到\(3t+1\)個點\((\alpha_1,...,\alpha_{3t+1})\)值對\(p_A(x)R_1(x)+p_B(x)R_2(x)+p_C(X)R_3(x)\)
3、以Alice爲例,Alice最後插值出\(p(x)\),進而求出\(p_{A\setminus (A\cap B \cap C)}(x)\),最後求出交集。

image

總結

1、插值是在密文域,所以計算量很大
2、檢測和求交中的同態加密方案,可以用同一個,比如TFHE
3、該論文只是給出一個模型、思路,具體實用性不強。
4、後續在下一篇論文介紹改進,增強實用性!

參考

1、什麼是亞線性和超線性?
(1)線性
數學上看:一階導數不隨自變量的變化而變化
例如:\(y=a+bx\)
image

亞線性和超線性都稱爲非線性

(2)亞線性
數學上看:一階導數隨自變量的增大而減少
例如:\(y=ln x\)
image

(3)超線性
數學上看:一階導數隨自變量的增大而增大
例如:\(y=a+bx^n\)
image

2、數學當中的非平凡解和平凡解如何理解?非平凡性呢?
(1)平凡
平凡解就是顯而易見的解、沒有討論的必要但是爲了結果的完整性仍需要考慮的結果。
通常我們運用數學歸納法解題的時候,會先討論\(n=0\)或者\(n=1\)時的簡單情況,然後假設\(n\)時成立,那麼對於\(n+1\)時也成立。\(n=0\)或1時的解就是平凡解。
比如Ax=0中的零解,即x=0,即爲平凡解。
(2)非平凡
我們更關心的是非平凡(nontrivial)解,也就是非零解。
比如求一個數的因子,正負的1和它本身是這個數最顯而易見的解,所以這兩個因子就是平凡解,其他的是不平凡的。
3、漸進標準
image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章