阿里首次實現(xiàn)“公開可驗證” 的安全多方計算方案

安全多方計算介紹

安全多方計算( Secure Multi-Party Computation,MPC)于1986 年由姚期智院士提出【2】肉瓦。安全多方計算協(xié)議允許多個數(shù)據(jù)所有者在互不信任的情況下進(jìn)行協(xié)同計算,輸出計算結(jié)果船殉,并保證任何一方均無法得到除應(yīng)得的計算結(jié)果之外的其他任何信息挨厚。換句話說疫剃,MPC技術(shù)可以獲取數(shù)據(jù)使用價值,卻不泄露原始數(shù)據(jù)內(nèi)容壤躲。

互聯(lián)網(wǎng)已經(jīng)完成了從IT時代向DT時代的轉(zhuǎn)變,數(shù)據(jù)已經(jīng)成為DT時代企業(yè)的核心競爭力漏麦。數(shù)據(jù)作為一種新能源撕贞,只有流動起來才能產(chǎn)生價值。不過脊奋,大多數(shù)企業(yè)考慮到數(shù)據(jù)安全和個人隱私等問題诚隙,對數(shù)據(jù)共享都非常謹(jǐn)慎久又。而MPC對打破數(shù)據(jù)孤島炉峰,實現(xiàn)數(shù)據(jù)的可控共享疼阔,具有重要的理論和現(xiàn)實意義。

MPC方案主要可分為基于混淆電路(Garbled Circuit淘邻,GC)和基于秘密共享兩種宾舅。本文主要關(guān)注GC類方案。

不經(jīng)意傳輸(Oblivious Transfer)

我們首先介紹一種基礎(chǔ)的安全多方計算協(xié)議:不經(jīng)意傳輸(Oblivious Transfer, OT)崎溃。

來看一個例子:假設(shè)某旅行社擁有N個景點的旅游資料袁串,小淘想去其中的A景點游玩,希望向旅行社購買相關(guān)資料做好出游功課破镰。但是小淘非常在意自己的隱私鲜漩,不希望向旅行社泄露自己的目的地是哪里。因此雙方希望這筆交易能夠滿足以下隱私條件:

  1. 小淘不希望向旅行社泄露“我準(zhǔn)備去A景點”這一信息喉祭;
  2. 旅行社只希望出售小淘出錢購買的那份資料泛烙,而不泄露小淘未購買的N-1份資料傻工;

粗看起來這種隱私條件似乎是無法滿足的:旅行社只要把景點A的資料給到小淘,就必然了解了“小淘正在關(guān)注A景點”這一信息坊饶;除非旅行社把所有N份資料都給出匿级,但是這又違背了旅行社的利益;

但是神奇的OT可以讓交易在這種“不可能的條件”下達(dá)成孤页。簡而言之行施,在OT協(xié)議中,旅行社把他擁有的N份資料使用某種雙方協(xié)商同意的加密算法和參數(shù)進(jìn)行加密涯雅,然后發(fā)送給小淘精刷;小淘可以從密文中解密出A的資料贬养,而無法解密出其他N-1份資料误算。

以下以N=2為例儿礼,基于Diffie-Hellman密鑰交換協(xié)議诉字,給出一種1 of 2 OT實現(xiàn)方法的非正式描述壤圃;其中S(Sender)=旅行社伍绳,R(Receiver)=小淘,S擁有兩份資料

权谁,R希望取得其中的

  1. S秘密生成隨機(jī)數(shù)a; R秘密生成隨機(jī)數(shù)b甥绿;
  2. S將

發(fā)送給R; R將

發(fā)送給S;

  1. S計算

图谷;

  1. S以

為密鑰加密

, 以k1為密鑰加密

,將

發(fā)送給R承璃;

  1. 由于

, 因此R可以計算出

,并解密出

轴猎,但R無法計算

捻脖,因此無法解密出

如果R希望取得

扰肌,只需把第2步中的

改為

即可盗舰。

OT除了可以直接用于構(gòu)造MPC方案之外川陆,也是GC等許多MPC方案的基石较沪。

混淆電路

我們知道,任意函數(shù)最后在計算機(jī)語言內(nèi)部都是由加法器萄焦、乘法器茬射、移位器在抛、選擇器等電路表示肠阱,而這些電路最后都可以僅由AND和XOR兩種邏輯門組成辖所。一個門電路其實就是一個真值表缘回,例如AND門的真值表就是:

例如其中右下格表示兩根輸入線(wire)都取1時您觉,輸出wire=1:即 1 AND 1 = 1。

假設(shè)我們把每個wire都使用不同的密鑰加密,把真值表變成這樣:

例如其中右下格表示如果門的輸入是b和d诚啃,那么輸出加密的f(密鑰是b和d)。這個門從控制流的角度來看還是一樣的造垛,只不過輸入和輸出被加密了,且輸出必須使用對應(yīng)的輸入才能解密晰搀,解密出的f又可以作為后續(xù)門的輸入五辽。這種加密方式就稱為“混淆電路(Garbled Circuit,GC)”厕隧。

將電路中所有的門都按順序進(jìn)行這樣的加密奔脐,我們就得到了一個GC表示的函數(shù)。這個函數(shù)接收加密的輸入吁讨,輸出加密的結(jié)果髓迎。

假設(shè)有兩個參與方A和B各自提供數(shù)據(jù)a、b建丧,希望安全的計算約定的函數(shù)F(a,b)尺铣,那么一種基于GC的安全兩方計算協(xié)議過程可以非正式的描述如下:

  1. A把F進(jìn)行加密店溢,得到GC表示的函數(shù)

; (注意這里A是電路的生成者,所以他了解每根wire的密鑰);

  1. A把自己的輸入a使用第1步中對應(yīng)的wire密鑰加密效拭,得到Encrypt(a);
  2. A將Encrypt(a)、

發(fā)送給B摇肌;

  1. A將B的輸入b使用第1步中對應(yīng)的wire密鑰加密变秦,得到Encrypt(b)钳垮,并將Encrypt(b)發(fā)送給B肚医;
  2. B擁有完整的GC和輸入你稚,因此可以運行電路得到加密的輸出鸡典;
  3. A把輸出wire的密鑰發(fā)給B,B解密得到最終結(jié)果F(a,b);
  4. 如果A需要的話涮总,B再把(a,b)發(fā)給A谤职;

細(xì)心的同學(xué)一定會指出:第4步中A怎么可以接觸B的輸入b呢?這不是違背了安全多方計算的假設(shè)嗎蛤克?這里就需要使用OT,A扮演Sender驼鹅,B扮演Receiver剪验,讓B從A處得到Encrypt( b)席揽,卻不向A透露b的內(nèi)容聂宾。如圖所示:

需要注意的是薪寓,上述流程只是最原始的GC方法的不嚴(yán)謹(jǐn)描述销睁,GC后續(xù)還有Point & Permute钠至、Free XOR、Half Gates等多種細(xì)節(jié)優(yōu)化兽掰,隨著最近幾年的研究進(jìn)展,GC的性能已經(jīng)差不多可以實用了。以求兩個百萬維向量的漢明距離(Hamming Distance)為例(應(yīng)用場景是兩份數(shù)據(jù)求相似度磅轻,卻互相不泄露數(shù)據(jù)內(nèi)容)凝果,這樣的安全兩方計算已經(jīng)可以在1.5秒左右完成冤荆。

安全多方計算的安全模型 半誠實行為模型與惡意行為模型

更細(xì)心的同學(xué)還會進(jìn)一步提出問題:“怎么確保A給B的

就是一個正確的GC呢?例如A和B商定要比a和b的大小服赎,商定了F(a,b)=a>b?1:0曹傀,但是A可以制作一個別的函數(shù)的GC,例如F(a,b)=b的第1個比特瑟由,這樣顯然是會侵害B的隱私的歹苦,但是由于函數(shù)是以GC形式發(fā)給B的,B是沒有辦法發(fā)現(xiàn)這個問題?”

這確實是一個安全問題神得,事實上,GC還存在如selective failure等其他更多的安全問題碌上。在介紹解決方案之前馏予,我們需要先定義安全多方計算的安全模型。

安全多方計算的安全模型包含多個角度的內(nèi)容盔性,在上述上下文中霞丧,我們關(guān)注的是其中的“行為模型”,即參與方可能進(jìn)行何種行為以獲取其他方的隱私冕香。常見的行為模型包括“半誠實(Semi Honest)”和“惡意(Malicious)”兩種蛹尝。前者假設(shè)所有參與方都是忠實的按照協(xié)議步驟進(jìn)行執(zhí)行后豫,只是想通過協(xié)議內(nèi)容推測其他方的隱私,而后者假設(shè)惡意參與方為了獲取其他方的隱私可以不遵循協(xié)議內(nèi)容突那。

用撲克牌打個不嚴(yán)謹(jǐn)?shù)谋确酱炷穑胝\實的牌友會試圖從自己的手牌和已經(jīng)打出的牌來推測他人的手牌,但是還是遵循撲克牌規(guī)則的愕难;而一個惡意的牌友則換牌早龟、偷牌等手段無所不用。

可見猫缭,本節(jié)開始提出的問題屬于惡意行為的范疇葱弟,而原始的GC只能說在半誠實行為模型下是安全的,無法抵御惡意行為攻擊猜丹。有許多對GC方案的改進(jìn)方案可以達(dá)到惡意行為模型下的安全性芝加,但是它們都需要付出很大的性能代價:仍然以求兩個百萬維向量的漢明距離為例,其中最快的方法也需要10秒+射窒,比同等的半誠實方案慢7倍以上藏杖。事實上,經(jīng)過我們的調(diào)研脉顿,若想真正的實現(xiàn)支持大規(guī)模數(shù)據(jù)的MPC產(chǎn)品制市,基本上只能考慮半誠實方案。這嚴(yán)重影響了安全多方計算的實用性弊予。

公開可驗證(Public Verifiable Covert, PVC)行為模型

PVC是在半誠實祥楣、惡意之間的一種折中。其主要思想是:每個參與方的所有行為都自動帶有類似簽名的機(jī)制以供其他參與方存證汉柒。假設(shè)某個參與方實施惡意行為误褪,那么其他參與方可以有

的概率發(fā)現(xiàn)(

稱為威懾因子,一般>=50%碾褂,不能100%發(fā)現(xiàn)兽间,因為100%那就直接滿足惡意行為模型了)這一惡意行為,并將該行為及其簽名公開正塌,令作惡者承受名譽(yù)損失嘀略。考慮到名譽(yù)對一個數(shù)據(jù)所有者的重要性(例如此后可能再也找不到合作)乓诽,50%左右的威懾力已經(jīng)足以讓理性者不考慮作惡帜羊。

PVC模型最開始是由學(xué)者在Asiacrypt2012【3】提出,Asiacrypt2015【4】上也有學(xué)者提出相關(guān)的改進(jìn)方案鸠天,但是這些方案不僅效率較低讼育,而且只有復(fù)雜的理論描述,實現(xiàn)可能性低。我們提出的新型PVC方案不僅協(xié)議簡潔奶段,性能有大幅提升饥瓷,而且首次進(jìn)行了完整的代碼實現(xiàn)。仍然以求兩個百萬維向量的漢明距離為例痹籍,使用我們威懾因子為50%的PVC方法大概只需要2.5秒呢铆。

以下仍假設(shè)有兩個參與方A和B各自提供數(shù)據(jù)a、b蹲缠,希望安全的計算約定的函數(shù)F(a,b)刺洒,以威懾因子

=50%為例,給出我們的PVC方案的非正式描述:

  1. A選擇兩個隨機(jī)種子s1和s2吼砂, B和A運行OT隨機(jī)選擇其中一個(不妨設(shè)B獲取了s1);
  2. A使用s1和s2分別生成GC1和GC2鼎文;
  3. B和A運行OT獲取GC1中B輸入wire的加密值(我們后面可以看到GC1不會真正被使用渔肩,因此這里可以不與b對應(yīng),比如是任意常數(shù)值的密文)拇惋;
  4. B和A運行OT獲取GC2中B輸入wire對應(yīng)的b的加密值周偎;
  5. A對GC1進(jìn)行Hash,并把Hash發(fā)給B撑帖;
  6. A對GC2進(jìn)行Hash蓉坎,并把Hash發(fā)給B;
  7. A對上述所有流程進(jìn)行簽名胡嘿,并把簽名發(fā)送給B蛉艾;
  8. B由于有s1,因此可以自行生成GC1衷敌,可以自己模擬第3步和第5步勿侯;如果結(jié)果與A發(fā)的不一致,則公布相關(guān)簽名作為A作惡證據(jù)缴罗。如果一致助琐,就用GC2進(jìn)行真實計算。

可見面氓,A如果作惡兵钮,總有50%的概率被B抽查到(因為A不知道B到底掌握了哪個GC的隨機(jī)種子)。因此理性的A會選擇不作惡舌界,忠實的執(zhí)行安全多方計算協(xié)議掘譬。

需要再次強(qiáng)調(diào)的是,為便于理解呻拌,所有的協(xié)議都僅僅是非正式描述屁药,有興趣進(jìn)一步研究細(xì)節(jié)的同學(xué)歡迎參閱我們的論文【1】。 總結(jié) 我們與馬里蘭大學(xué)等高校合作,首次實現(xiàn)了一種“公開可驗證(PVC)” 的安全兩方計算方案酿箭,這種方案的性能接近半誠實方案复亏,同時其PVC特性能夠?qū)ψ鞅仔袨樾纬赏亓Γ钇渚哂羞h(yuǎn)強(qiáng)于半誠實模型的安全性缭嫡,具有很高的實用價值缔御。

參考資料:
[1] https://eprint.iacr.org/2018/1108
[2] Yao.A.C. How to Generate and Exchange Secrets. FOCS 1986: 162-167
[3] Asharov G , Orlandi C . Calling Out Cheaters:Covert Security with Public Verifiability, Advances in Cryptology – ASIACRYPT 2012. Springer Berlin Heidelberg, 2012.
[4] Kolesnikov V , Malozemoff A J . PublicVerifiability in the Covert Model (Almost) for Free, Advances in Cryptology – ASIACRYPT 2015. Springer Berlin Heidelberg, 2015.


本文轉(zhuǎn)載自《安全多方計算新突破!阿里首次實現(xiàn)“公開可驗證” 的安全方案》妇蛀,感謝鴻程 阿里技術(shù)提供知識傳播耕突。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市评架,隨后出現(xiàn)的幾起案子眷茁,更是在濱河造成了極大的恐慌,老刑警劉巖纵诞,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件上祈,死亡現(xiàn)場離奇詭異,居然都是意外死亡浙芙,警方通過查閱死者的電腦和手機(jī)登刺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嗡呼,“玉大人纸俭,你說我怎么就攤上這事∧洗埃” “怎么了揍很?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長万伤。 經(jīng)常有香客問我女轿,道長,這世上最難降的妖魔是什么壕翩? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任蛉迹,我火速辦了婚禮,結(jié)果婚禮上放妈,老公的妹妹穿的比我還像新娘北救。我一直安慰自己,他們只是感情好芜抒,可當(dāng)我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布珍策。 她就那樣靜靜地躺著,像睡著了一般宅倒。 火紅的嫁衣襯著肌膚如雪攘宙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機(jī)與錄音蹭劈,去河邊找鬼疗绣。 笑死,一個胖子當(dāng)著我的面吹牛铺韧,可吹牛的內(nèi)容都是我干的多矮。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼哈打,長吁一口氣:“原來是場噩夢啊……” “哼塔逃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起料仗,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤湾盗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后立轧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體格粪,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年肺孵,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颜阐。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡平窘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凳怨,到底是詐尸還是另有隱情瑰艘,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布肤舞,位于F島的核電站紫新,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏李剖。R本人自食惡果不足惜芒率,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望篙顺。 院中可真熱鬧偶芍,春花似錦、人聲如沸德玫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宰僧。三九已至材彪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背段化。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工嘁捷, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人穗泵。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓普气,卻偏偏與公主長得像,于是被迫代替她去往敵國和親佃延。 傳聞我的和親對象是個殘疾皇子现诀,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容