在近期的文章中,王益介紹了多方安全計算(multiparty computation, mpc )的一種常見的實現形式:分享秘密(secret sharing)。今天我們來介紹另外一種常見的實現:混淆電路(garbled circuits,gc)。
gc 是一種密碼學協議。遵照這個協議,兩個 party 能在互相不知曉對方資料的情況下計算某一能被邏輯電路表示的函式。比如有兩個富翁想知道誰的財富更多,但他們又較保守不想讓對方知道自己的財富值。這時他們可以事先商定好的乙個比大小的邏輯電路,並在邏輯電路上執行 gc 協議來獲得結果。
不經意傳輸(oblivious transfer,ot)是一種密碼學協議,它解決了如下問題。
我們假設 alice 有兩個數值
現在我們來看一看基於 ot 的實現方式。我們考慮
alice 擁有值
bob 擁有值
。bob 想獲得
alice 和 bob 事先統一
,其中
是 large integer,
是 large prime number
那麼 ot 協議可以通過如下演繹
bob 知道
也無法破譯
因為discrete logarithm problem 不存在高效解法。
bob 基於
生成 alice 知道
也無法破譯
因為discrete logarithm problem 不存在高效解法。因此,alice 無法知道 bob 發來的是
還是
,也就無法知道無法知道
。
alice 生成
其中 表示 bitwise xor,下同
bob 知道
也無法破譯
因為discrete logarithm problem 不存在高效解法。
bob 解密
case i=0
bob 可以通過如下方式解密獲得
:bob 無法獲得
因為 而 bob 不知道
case i=1
類似地,bob 通過如下方式解密獲得
: bob 無法獲得
因為 而 bob 不知道
因此,bob 只能解密而不能解密
除了上述實現,ot 還有多種實現方法。比如這篇維基文章介紹了一種基於 rsa 的實現方式。
本文將先介紹 gc 背後的密碼學思想:不經意傳輸(oblivious transfer,ot)。其核心是 alice 雖然不知道 bob 想要哪乙個資訊,但能保證 bob 只獲得其中乙個資訊。我們在之後的文章中可以看到,ot 的這個特性是構建 gc 的基石。
混淆解密 混淆電路介紹(三)混淆電路原理
在混淆電路介紹 一 中,我們介紹了混淆電路 garbled circuits,gc 背後依賴的密碼學思想 不經意傳輸 oblivious transfer,ot 在混淆電路介紹 二 中,我們成功地將乙個比較大小的函式轉化成了乙個邏輯電路。在這篇文章中,我們將基於以上兩篇文章,詳細介紹 gc 協議的原...
混淆解密 安全多方計算之混淆電路
它的核心技術是將兩方參與的安全計算函式編譯成布林電路的形式,並將真值表加密打亂,從而實現電路的正常輸出而又不洩露參與計算的雙方私有資訊。由於任何安全計算函式都可轉換成對應布林電路的形式,相較其他的安全計算方法,具有較高的通用性,因此引起了業界較高的關注度。文末驚喜 技術社群全面公升級!技術交流不迷路...
混淆解密 安全多方計算之混淆電路
它的核心技術是將兩方參與的安全計算函式編譯成布林電路的形式,並將真值表加密打亂,從而實現電路的正常輸出而又不洩露參與計算的雙方私有資訊。由於任何安全計算函式都可轉換成對應布林電路的形式,相較其他的安全計算方法,具有較高的通用性,因此引起了業界較高的關注度。混淆電路發展 姚氏電路是基於半誠實模型 se...