摘要:PSI全稱隱私保護集合交集(Private Set Intersection, PSI),是指持有數據的兩方能夠計算得到雙方數據集合的交集部分,而不暴露交集以外的任何數據集合信息。
本文分享自華為雲社區《淺談PSI隱私集合求交》,原文作者:tics神奇海螺 。
1、簡介
PSI全稱隱私保護集合交集(Private Set Intersection, PSI),是指持有數據的兩方能夠計算得到雙方數據集合的交集部分,而不暴露交集以外的任何數據集合信息。
PSI通常具有以下三個特點:
- 半可信場景:數據雙方不願意暴露所有數據,僅希望求得數據集合交集
- 數據最小化:除了數據集合交集以外的數據不能泄露給任意一方
- 安全雙方計算:參與計算的雙方需要共同實現一套安全的計算協議,以保證數據的安全性。
PSI有多種實現方式,以下是一些常見的實現方式及復雜度。
2、簡單案例
根據兩方選擇的數據和唯一標識數據的字段(可以理解為主鍵,例如id、身份證、手機號),找到兩方數據集共有的記錄,並按一樣的順序排列存儲為對齊結果。
例如:A、B兩方有兩張表a和b,分別為
表a 人員存款表:
表b 消費匯總表:
雙方通過身份證字段進行PSI,計算出最后共有的記錄是標紅的三條,結果如下:
在此過程中,A方不希望B方知道交集數據的銀行卡存款,B方也不希望A方知道交集數據的年消費額等數據,同時A方也不該知道B方還有“01234”身份證的用戶,反之亦然。雙方應該只知道結果中的身份證是數據集合的交集。
3、技術原理
以下簡單介紹一下使用偽隨機函數實現的PSI。
假設有兩方A、B,分別有X、Y數據id集合。
- H()是指A、B雙方對自己的數據id集合做一次hash,確保兩方PSI計算數據等長
- B方使用偽隨機函數生成的隨機因子r,乘以自己的H(Y),並發給A方
- A方使用偽隨機函數生成的密鑰k,分別乘以自己的H(X)和B方發送過來的B1得到A和B2,再把兩個計算結果都發送給B方
- B方在使用隨機因子r的逆r-1乘以B2,消去隨機因子r,得到B
- A和B使用相同的密鑰k加密,即可進行密文比較計算交集。
4、應用場景
-
計算廣告的實際效果
線上廣告是一種重要的廣告形式。對於廣告的有效程度的衡量的常見方法是計算所謂的轉換率,也就是瀏覽廣告的用戶中有多少用戶最終瀏覽了相應的商品頁面,或是最終購買了相應的商品或是服務。一種通用的計算方法是由計算瀏覽廣告的用戶信息(由廣告發送方占有)和完成相應交易的用戶信息(由商家占有)的交集來計算(如計算交易總額或是總交易量等)。
-
尋找聯系人
當一個用戶注冊使用一種新的服務(如微信、Whatsapp 等)的時候,從用戶的現有聯系人中尋找有哪些已經注冊了同類的服務是一種在大多數情況下十分必要的操作。通過將用戶的聯系人發送給服務提供商可以有效地完成這項功能,但是與此同時用戶的聯系人信息,一種在大多數情況下被認為是隱私的信息,也被暴露給服務提供商了。因此在這種場景下,將用戶的聯系人信息作為一方的輸入,將服務提供商的所有用戶信息作為另一方的輸入來進行PSI 協議可以完成發現聯系人的功能,而且可以防止交集以外的信息泄露給任何一方。
-
聯邦學習樣本對齊
在聯邦學習發起訓練之前,必須基於雙方的數據進行PSI,使用雙方共有的用戶信息(例如用戶ID)找出交集,從而對應兩方數據的特征和標簽,在對齊的數據集上進行模型訓練才有意義。
5、參考
- 隱私保護集合求交技術PSI — 曉鹿(https://blog.alienx.cn/2020/10/10/E10101535/)
- 崔泓睿,劉天怡,郁昱,程越強,張煜龍,韋韜:多方安全計算熱點-隱私保護集合求交技術(PSI)分析研究報告 (https://anquan.baidu.com/upload/ue/file/20190814/1565763561975581.pdf)