- 隱私計算:推進數據“可用不可見”的關鍵技術
- 閆樹等
- 1073字
- 2022-05-06 17:14:38
? 多方安全計算的起源
多方安全計算誕生于密碼學領域中的一個學術討論問題。
1982年,圖靈獎獲得者、中國科學院院士姚期智教授提出了著名的百萬富翁問題:兩個爭強好勝的富翁如何在不暴露各自財富的前提下比較出誰更富有?
姚氏百萬富翁問題有很多解決方案,下面給出了一個巧妙的解決方案。
(1)假設兩個富翁的財富值都是百萬的整數倍。找來10個一模一樣的箱子,排成一列,并按1~10的順序標號依次代表100萬、200萬······1000萬。
(2)富翁A可以按照自己的財富值依次往箱子中放入水果。如果箱子編號小于自己的財富值,就放入蘋果;如果編號等于財富值,就放入梨;如果編號大于自己的財富值,就放入香蕉。全部放好后,分別加上外觀一樣的鎖。此時,從外觀看,除了編號,10個箱子沒有任何區別。
(3)此時富翁B過來可以按照自己財富值對應的編號留下一個箱子,去掉編號,再把剩余所有箱子銷毀。
(4)只保留一個箱子后,富翁B拿到富翁A的鑰匙打開箱子,拿出水果后就知道兩人財富值的對比情況。如果里面放著蘋果,則A更富有;如果里面放著香蕉,則B更富有;如果是梨,則兩人財富相等。
以上這個方案就是多方安全計算思想的起步,兩個參與方雖然沒有交換彼此的原始數據,但共同完成了同一個計算目標,并獲得了計算結果,實現了對自有數據的安全保護。
在此基礎上,如果擴展成多個參與方的更廣泛場景,多方安全計算問題就可以抽象概括成如下數學模型。
設P={P1,P2,…,Pn}是n個參與者的集合,他們想要安全地合作完成某個給定函數f(x1,x2,…,xn)=(y1,y2,…,yn)的計算,其中函數f的n個輸入(x1,x2,…,xn)分別由n個參與者P1,P2,…,Pn秘密地掌握而不被其他人知道,在計算結束后P1,P2,…,Pn分別得到y1,y2,…,yn,這里的安全主要指參與者Pi(i=1,2,…,n)只能根據自己的輸入xi來獲得輸出yi,而得不到任何有關其他參與者的額外信息。
在百萬富翁問題提出后的很長一段時間(20世紀八九十年代),多方安全計算始終停留在學術研究層面,有少數論文發表,主要集中在證明技術的可行性上,但討論的場景距離實際應用相差甚遠。21世紀的前10年里,多方安全計算進入實驗室階段,開始有一些項目研究與實際問題的結合,例如在數據挖掘中為保護隱私設計多方安全計算協議。2010年之后,一些行業巨頭開始嘗試應用多方安全計算解決數據安全交換的問題,但性能上的瓶頸嚴重影響了技術的可用性。直到2017年左右,隨著數據應用與流通的監管趨嚴,越來越多的產業應用期待利用技術來解決數據合規問題,越來越多的企業加入技術研發的隊伍中,多方安全計算的可用性得到明顯提升,技術進入了規模化蓬勃發展的階段。