筆記主要來自于楊強老師的《聯(lián)邦學(xué)習(xí)》一書
安全多方計算
是針對一個安全兩方計算問題,1982 年由姚期智提出和推廣[89]。
過程:在安全多方計算中,目的是協(xié)同地 從每一方的隱私輸入中計算函數(shù)的結(jié)果,而不用將這些輸入展示給其他方。安全多方計算告訴我們,對于任何功能需求,我們都可以在不必顯示除了輸出以外的前提下計算它。
1. 定義
安全多方計算允許我們計算私有輸入值的函數(shù),從而使每一方只能得到其相應(yīng)的函數(shù)輸出值,而不能得到其他方的輸入值與輸出值。
eg.假設(shè)一個私有的數(shù)值 被 分給
位共享方,則每一方
只能獲知
的內(nèi)容,所有方能夠協(xié)同地計算
所以, 只能根據(jù)自己的輸入
來獲知輸出值
,而不能得知任何額外的信息。但是
的計算結(jié)果同時有
的參與。
安全多方計算能夠通過三種不同的框架來實現(xiàn):不經(jīng)意傳輸 (Oblivious Transfer,OT)[91, 92]、秘密共享(Secret Sharing,SS)[93, 94] 和閾值同態(tài)加密(Threshold Homomorphic Encryption,THE)[20, 21]。
2.不經(jīng)意傳輸
不經(jīng)意傳輸是一種由 Rabin 在 1981 年提出的兩方計算協(xié)議[95]。
- 定義:n 取 1 的不經(jīng)意傳輸: 設(shè) A 方有一個輸入表
作為輸入, B 方有
作為輸入。n 取 1 的不經(jīng)意傳輸是一種安全多方計算協(xié)議,其中 A 不能學(xué)習(xí)到關(guān)于 i 的信息,B 只能學(xué)習(xí)到
即,查詢方只需輸入索引值
就可以得到對應(yīng)的數(shù)據(jù)
,但接收方并不知道索引值
是多少,且不知道查詢的數(shù)據(jù)
的結(jié)果。
研究者已發(fā)表了許多不經(jīng)意傳輸?shù)臉?gòu)造方法,例如 Bellare-Micali 構(gòu)造[97]、 Naor-Pinka 構(gòu)造[98] 以及 Hazay-Lindell 構(gòu)造[99]。此處,我們介紹不經(jīng)意傳輸?shù)?Bellare-Micali 構(gòu)造。該構(gòu)造使用了 Diffie-Hellman 密鑰交換(Diffie-Hellman key exchange)算法,并假設(shè)計算 Diffie-Hellman 假設(shè)(Computational Diffie-Hellman (CDH) assumption)成立[100]。
- *Bellare-Micali 構(gòu)造的工作原理如下:
接收方向發(fā)送方發(fā)送兩個公鑰。接收方只擁有與兩個公鑰之一對應(yīng)的一個私鑰,并且發(fā)送方不知道接收方有哪一個公鑰的密鑰。之后,發(fā)送方用收到的兩個公鑰分別對它們對應(yīng)的兩個消息加密,并將密文發(fā)送 給接收方。最后,接收方使用私有密鑰解密目標(biāo)密文。
沒看懂,什么叫收到的兩個公鑰分別對它們對應(yīng)的兩個消息加密。后面的構(gòu)造也看不懂。
3. 秘密共享
- 定義:秘密共享是指通過將秘密值分割為隨機多份,并將這些份(或稱共享內(nèi)容)分發(fā)給不同方來隱藏秘密值的一種概念。