前言
之前我們介紹過兩方的「隱私集合求交算法」,可以應用到計算廣告的實際效果,尋找聯系人,聯邦學習的特征對齊等場景,例如:在新的APP上找到共同的微信好友、開會時找到所有參會者共同的空閑時間等,但是這協議是針對兩方設計的,沒辦法安全的擴展到多方。
舉個例子:現在有一個會議的發起者,他想要知道自己和其他所有參會者共同的空閑時間來確定會議的時間,一種簡單的方案就是會議發起者依次和每一個參會者執行兩方的隱私集合求交算法獲取到每個參會者和自己的共同空閑時間,再從這些共同時間中篩選出所有參會者都空閑的時間。
但是這種方案有一個很明顯的數據安全問題,會議發起者和某一個參會者有兩個共同的空閑時間,本周一上午和本周二上午,但是其他所有參會者本周一上午是空閑時間但是本周二上午不是空閑的,這就導致了參會者額外的信息被會議發起者知道了,會議發起者本應該只得到本周一上午這一共同的空閑時間的信息。
本文主要介紹一種簡潔高效的「多方隱私集合求交協議」,該協議是針對多方隱私集合求交場景設計的,解決了上述基于兩方協議簡單擴展到多方時產生的數據安全問題。該協議在CCS'21的-Simple,FastMaliciousMultipartyPrivateSetIntersection中提出,適用于半誠實無參與方勾結的場景。
相關技術
該協議主要使用不經意鍵值存儲技術和兩方隱私集合求交算法進行構建:
▲不經意鍵值存儲
人大附中物理老師李永樂科普拜占庭將軍問題和區塊鏈:5月14日,人大附中物理老師、科普視頻網紅李永樂在其公眾號發布視頻《拜占庭將軍問題是什么?區塊鏈如何防范惡意節點?》。李永樂老師在視頻中對拜占庭將軍問題和區塊鏈進行了講解,他表示,拜占庭將軍問題本質上指的是,在分布式計算機網絡中,如果存在故障和惡意節點,是否能夠保持正常節點的網絡一致性問題。在近40年的時間里,人們提出了許多方案解決這一問題,稱為拜占庭容錯法。例如蘭波特自己提出了口頭協議、書面協議法,后來有人提出了實用拜占庭容錯PBFT算法,在2008年,中本聰發明比特幣后,人們又設想了通過區塊鏈的方法解決這一問題。區塊鏈通過算力證明來保持賬本的一致性,也就是必須計算數學題,才能得到記賬的權力,其他人對這個記賬結果進行驗證,如果是對的,就認可你的結果。與拜占庭問題比起來,就增加了叛徒的成本。[2020/5/14]
不經意鍵值存儲是指能夠在隱藏key和value內容的前提下保留key-vakue映射關系的一種數據結構。有一組鍵值對{(x1,y_1),(x2,y2),(x3,y3。,那么存在一個OKVS函數f,使得f(x1)=y1,f(x2)=y2,f(x3)=y3,并且對于其他的鍵f(x_other)為隨機數。
▲兩方隱私集合求交
兩方隱私集合求交是指在不暴露雙方集合交集之外數據的前提下獲取交集部分的數據,常用的協議有基于ECDH的,基于OT的和基于同態的,本文介紹的多方隱私集合求交協議對于采用的兩方協議不做限制。在前文《悄悄地找到共同點-隱私交集》中已介紹過一種實現方案,故本文中就不再詳細講解。
聲音 | CNBC主持人:加密貨幣最大的缺點之一就是難以向外行快速科普:CNBC主持人Ran NeuNer近期發推稱,加密貨幣最大的缺點之一就是很難向外行快速解釋。當人們要求我向他們解釋比特幣時,我知道他們至少需要一個小時才能真正理解。[2019/9/10]
簡單示例
現有A、B、C、D、E五方分別擁有數據集{1,2}、{1,2}、{1,3}、{1,3}、{1,4},他們想要安全的獲取他們所有人的共同交集{1}。
所有方在進行求交之前已經協商好了共有的偽隨機函數g(k,x),簡單實現就是hash函數,k是加的鹽用于和x拼接后再hash。
A方隨機生成兩個偽隨機函數的key:k_B和k_C,分別發送給B、C兩方;A方計算自己的鍵值對:{(1,g(k_B,1)⊕g(k_C,1)),(2,g(k_B,2)⊕g(k_C,2)。,并基于此鍵值對生成OKVS函數fA,并將fA發送給E方;B方計算自己的鍵值對:{(1,g(k_B,1)),(2,g(k_B,2)。,并基于此鍵值對生成OKVS函數fB,并將fB發送給D方;C方計算自己的鍵值對:{(1,g(k_C,1)),(3,g(k_C,3)。,并基于此鍵值對生成OKVS函數fC,并將fC發送給D方;D方收到B方和C方的OKVS函數后,使用本方的數據集通過收到兩個OKVS函數計算出新的集合{fB(1)⊕fC(1),fB(3)⊕fC(3。,將構成OKVS的鍵值對帶入進去后,就等價于{g(k_B,1)⊕g(k_C,1),random_number1⊕g(k_C,3。;E方收到A方的OKVS函數后,使用本方的數據集通過收到OKVS函數計算出新的集合{fA(1),fA(4。,將構成OKVS的鍵值對帶入進去后,就等價于{g(k_B,1)⊕g(k_C,1),random_number2};D方和E方再使用兩方隱私集合求交算法求出新集合{g(k_B,1)⊕g(k_C,1),random_number1⊕g(k_C,3。和{g(k_B,1)⊕g(k_C,1),random_number2}的交集{g(k_B,1)⊕g(k_C,1。,對應位置原來的數據集{1}就是所有方集合的交集。上述流程的一個核心思路就是:前三方通過OKVS函數將自己的數據集隱藏起來,分別發送給后兩方,由后兩方的數據集通過OKVS函數計算出映射后的數據集之后再執行隱私求交,通過OKVS函數的性質可以保證后兩方的數據如果分別是前三方的集合的交集,那么映射出的數據是一致的,如果不是就變成隨機數了,對映射后的數據集再求次交集就能獲得所有方的交集。
聲音 | ETC Labs主管:科普教育是未來幾年公鏈面臨的巨大挑戰:ETCLabs主管Darin Kotalik認為,科普教育是未來幾年公鏈面臨的巨大挑戰,人們必須要對區塊鏈有基本的認識,分清楚公鏈和私鏈的區別。[2019/8/25]
具體流程
協議的設計思路是將多方求交最終轉化為兩方求交,其他方通過OKVS的Encode方法和所擁有的偽隨機函數的key來保護自己的數據集。
OKVS的Encode方法用于將一組鍵值對生成上述的OKVS函數f,Decode方法即是對一個鍵key計算出映射的f(key)
存在p1,...,pnn個參與方,分別擁有數據集a1,...,an,都擁有一個共同的OKVS方案和偽隨機函數F(k,x)。
「具體流程」
1.p1隨機生成n-2個隨機數k2,...,k(n-2),然后將ki發送給pi。
2.p1將自己的數據集元素a1j作為key,計算F(k2,a1j)⊕F(k3,a1j)⊕...⊕F(k(n-2),a1j)作為對應的value使用OKVS進行編碼生成Sn發送給pn。
3.對于所有的pi(2<=i<=n-2)分別將自己的數據集元素aij作為key,計算F(ki,aij)作為對應的value使用OKVS進行編碼生成Si發送給p(n-1)。
聲音 | 中科院姚建銓:要加快推進區塊鏈與物聯網融合的科普 培訓:據新華網消息,日前,在區塊鏈與物聯網融合發展峰會上,中國科學院院士姚建銓說,關注區塊鏈技術里面的大數據,跟區塊鏈技術結合起來進行測量和檢測,能更好地提升激光清洗技術。姚建銓建議,無錫今后要加快推進區塊鏈與物聯網融合的科普、培訓,正確引導廣大人民群眾對技術的認知;同時,建立專業、權威,但又普適、成套的理論體系和標準,以此切入區塊鏈的實際應用。[2018/9/18]
4.p(n-1)依次將自己的數據集a(n-1)的每個元素分別作為key在收到的Si(2<=i<=n-2)上進行解碼,并將所有解碼出的數據進行異或作為集合A(n-1)中的一個元素。
5.pn依次將自己的數據集an的每個元素分別作為key在收到的Sn上進行解碼后的數據作為集合An中的一個元素。
6.p(n-1)和pn對集合A(n-1)和An執行兩方隱私集合求交,獲取出的交集元素對應序號的原數據集生成時使用的a(n-1)或an中的元素即是所有方集合交集中的一個元素。
正確性分析
該協議將n個參與方分成了兩組,參與方1和參與方n是一組,參與方2到參與方n-2和參與方n-1是一組。
先看第一組的邏輯,p1將自己的數據集通過OKVS編碼后發送給pn,pn將自己的數據集通過p1的OKVS結構解碼一遍生成新的數據集An,按照OKVS的性質:如果pn的集合元素是p1集合中元素,即是這一組的集合交集元素,則對應到An中的元素就是F(k2,a1j)⊕F(k3,a1j)⊕...⊕F(k(n-2),a1j);如果pn的集合元素不是這一組的集合交集元素,則解碼后的數據就是隨機數。
財政部副部長朱光耀:數字經濟還處在發展的過程中,要以科普、推動的態度來推進數字經濟發展:今日,在中國發展高層論壇2018年會上,財政部副部長朱光耀表示:“數字經濟還處在發展的過程中,要以科普、推動的態度來推進數字經濟發展。也要關注數字經濟的其他影響,包括稅收征管、反洗錢監管措施等要跟上。”[2018/3/25]
再看第二組的邏輯,參與方2到參與方n-2也同樣使用OKVS編碼自己的數據集再發送給p(n-1),p(n-1)將自己的數據集按照上面流程4的方式通過解碼所有收到的OKVS結構再異或產生A(n-1),按照OKVS的性質:如果p(n-1)的集合元素是p2到p(n-2)集合中元素,即是這一組的集合交集元素,則對應到A(-1)中的元素就是Decode(Encode(a2j,F(k2,a2j)),a2j)⊕...⊕Decode(Encode(a2j,F(k(n2),a2j)),a2j)=F(k2,a2j)⊕F(k3,a2j)⊕...⊕F(k(n-2),a2j);如果p(n-1)的集合元素不是這一組的集合交集元素,則解碼后的數據就是隨機數。
An和A(n-1)中對于解碼正確的數據的計算后對應的表達式都是一樣的,易看出對An和A(n-1)進行隱私求交,求出的交集就表示了即是第一組內部集合交集的數據,也是第二組內部集合交集的數據,即所有方集合的交集數據。
安全性分析
對于p1來說:他將自己的數據使用k2到k(n-2)計算偽隨機數據異或進行OKVS編碼后再發送給pn,由于pn沒有這些key,就算解碼后的數據是他們的交集,pn也無法進行確定。對于p2,...,p(n-2)來說:他們將自己的數據使用自己擁有的ki計算偽隨機后進行OKVS編碼后再發送給p(n-1),由于p(n-1)沒有這些key,就算解碼后的數據是他們這一組的交集,p(n-1)也無法進行確定。對于p(n-1)和pn來說:他們只是使用了自己的數據集在收到的OKVS結構上進行解碼,解碼后再計算的數據集再和對方進行兩方隱私求交來保證新的數據集的安全性。總結
該協議的流程也簡單易理解比較實用,使用的OKVS只有一次交互且計算效率很高,只有最后的一次兩方隱私求交,使得整個協議和其他協議相比效率更高的同時數據傳輸量也極低。附錄
▲不經意鍵值存儲詳細定義
不經意鍵值存儲是指能夠在隱藏key的前提下保留鍵值映射關系的一種數據結構,包含了通過key-value構造OKVS的Encode方法和通過key查詢value的Decode方法。
Encode((x1,y1),...(xn,yn)):將鍵值對列表編碼成OKVS的數據結構,其中x是不定長bit串,y是長度為l的bit串,具體編碼方式如下圖:
其中v(x)是是預設好的將不定長的x映射到長度為m的bit串的函數。D=(d1,d2,...,dm)T,其中元素d_i是和y_i長度一致的bit串,D向量就是編碼后的OKVS數據結構,其編碼目標就是找到這個D向量,使得上述矩陣‘乘法’成立。
即將v(xi)產生的bit串中為1對應序號的D向量中的元素求異或的結果是等于yi的。
Decode(D,x):給定一個OKVS的數據結構(D向量)和一個key,獲取這個key對應的value。
OKVS和普通的哈希表的區別主要是key和value都是隱藏的,只保留了key到value的一個映射關系,因此擁有key可以解出構建時對應的value,沒有key則無法解出對應的value也無法推測有哪些key。
具體構造OKVS的方案本協議使用的是PSIfromPaXoS:Fast,MaliciousPrivateSetIntersection中提出的garbledcuckootable方案,構造出的OKVS結構體大小較小,且encode,decode效率也很高,具體實現可直接閱讀該論文的第五部分。
Simple,FastMaliciousMultipartyPrivateSetIntersection.
?PSIfromPaXoS:Fast,MaliciousPrivateSetIntersection.
據TheBlock消息,11月22日,國際貨幣基金組織工作人員在一份與中美洲國家的任務有關的結論聲明中寫道,由于比特幣帶來的金融和消費者風險,薩爾瓦多不應使用比特幣作為法定貨幣.
1900/1/1 0:00:00據韓國時報12月13日消息,韓國區塊鏈公司Lambda256完成700億韓元B輪融資,韓華集團領投100億韓元.
1900/1/1 0:00:00證券日報記者張志偉見習記者張博12月5日,蘇州相城區工信局官方公眾號發布消息,工信部于近日正式復函,支持蘇州開展區塊鏈發展先導區創建工作。這是全國首個正式獲批創建的國家級區塊鏈發展先導區.
1900/1/1 0:00:00注:原文作者是LayerZeroLabs首席技術官RyanZarick以及總工程師IsaacZhang.
1900/1/1 0:00:00來源:財聯社|區塊鏈日報 記者徐賜豪 元宇宙炒地熱潮持續延燒,從知名歌手蔓延到了商界大亨。TheSanbox上的一塊土地初始價格為99.9美元,經過三次轉手后,價格達到了6.8萬美元,漲幅超過6.
1900/1/1 0:00:00據臺灣《經濟日報》消息,12月4日,鴻海創辦人郭臺銘接受采訪時稱,“貨幣永遠不可能去中心化,那中央銀行都不要開了,虛擬貨幣是一個假議題,只有地下經濟會用虛擬貨幣.
1900/1/1 0:00:00