基于同态加密体制的安全多方计算
本文首發公眾號VenusBlockChain,關注公眾號后可免費閱讀!VenusBlockChain致力于區塊鏈技術研究,傳播區塊鏈技術和解決方案、區塊鏈應用落地、區塊鏈行業動態等。有興趣的小伙伴們,歡迎關注。
安全多方計算(Secure Multi-party Computa-tion,sMPC)是分布式密碼學的理論基礎,也是分布式計算研究的一個基本問題,最早由姚期智于1982年通過姚氏百萬富翁問題提出。
簡單的說,安全多方計算是指一組人,比如P1....PnP _1 ....P_ nP1?....Pn? ,共同安全的計算函數f(x1,...,xn)=(y1,...,yn)f(x_1,...,x_n)=(y_1,...,y_n)f(x1?,...,xn?)=(y1?,...,yn?)。函數的n個輸入分別由n個參與者秘密掌握,設PiP _iPi?的秘密輸入是xix _ixi? ,并且在計算結束后,PiP_ iPi? 得到輸出yiy_ iyi? 。這里的安全性是要求即使在某些參與者有欺騙行為的情況下保證計算結果的正確性,即計算結束后每個誠實的參與者PiP_ iPi? 都能得到正確的輸出yiy_iyi?,同時還要求保證每個參與者輸入的保密性,即每個參與者PiP_ iPi? 除了(xi,yi)(x _i ,y_ i )(xi?,yi?)外,得不到任何其他信息。
安全多方計算的一般實現方法有四種:同態加密密碼體制、不經意傳輸協議、線性密鑰共享體制、混淆電路框架。
這一篇先介紹基于同態加密密碼體制的安全多方計算協議。
1 同態門限密碼體制
具有加法同態性的門限密碼體制是構造安全多方計算協議的一個基本工具。具體來說,設(sk,pk,M,C,E,D)(sk,pk,M,C,E,D)(sk,pk,M,C,E,D)是一個公鑰密碼體制,其中sksksk是私鑰,pkpkpk是公鑰,MMM是明文空間,CCC是密文空間,EEE和DDD分別是加密算法和解密算法。特別是明文空間MMM和密文空間CCC都是帶有某種運算的有限交換群。對任意的明文m∈Mm \in Mm∈M,加密得到密文c=E(m)c= E(m)c=E(m),解密過程為D(c)=D(E(m))=mD(c)=D(E(m))=mD(c)=D(E(m))=m。
對于任意的m1,m2∈Mm_1,m_2 \in Mm1?,m2?∈M,滿足E(m1)?E(m2)=E(m1+m2)E(m_1)\ast E(m_2)=E(m_1+m_2)E(m1?)?E(m2?)=E(m1?+m2?),我們就稱該密碼體制具有加法同態性,其中“+”表示明文空間的運算,“?\ast?”表示密文空間的運算。加法同態性質說明:可以由m1m_1m1?和m2m_2m2?的密文直接得到m1+m2m_1+m_2m1?+m2?的密文。
具有加法同態性的密碼體制有很多,經常用到的是Paillier密碼體制。門限密碼體制是把解密的權力利用門限控制,比如(t,n)(t,n)(t,n)門限就是要求只有nnn個參與者中的至少ttt個人聯合才能解密得到明文,而任何少于ttt個人都無法得到明文。Desmedt和Frankel在其文獻“Threshold Cryptosystem(1990)”中指出,任何一個公鑰密碼體制理論上都可以門限化。
門限密碼體制基本的思路是公布公鑰pkpkpk,但是將私鑰sksksk在nnn個人中按照Shamir(t,n)(t,n)(t,n)門限體制進行共享。設PiP_iPi?得到子密鑰skisk_iski?,1≤i≤n1\leq i\leq n1≤i≤n。解密的時候,設要聯合解密密文m∈Mm \in Mm∈M,PiP_iPi?將自己的子密鑰作用在密文上得到mi=Dski(c)m_i=D_{sk_i}(c)mi?=Dski??(c),1≤i≤t1\leq i\leq t1≤i≤t。最后由m1,...,mtm_1,...,m_tm1?,...,mt?就可以得到明文mmm。
注意:解密的時候并不是將私鑰sksksk重構出來,否則私鑰一旦被某個參與者知道,該門限密碼體制就變得不安全了。
2 基于Paillier加法同態密碼體制的安全多方計算協議
設P={P1,...,Pn}P=\{P_1,...,P_n\}P={P1?,...,Pn?}是參與者集合,他們要共同計算函數f(x1,...,xn)f(x_1,...,x_n)f(x1?,...,xn?),其中PiP_iPi?掌握輸入xix_ixi?,1≤i≤n1\leq i\leq n1≤i≤n。討論密碼學模型下的安全多方計算,攻擊者結構是Θ\ThetaΘ。設(sk,pk,M,C,E,D)(sk,pk,M,C,E,D)(sk,pk,M,C,E,D)是一個基于Paillier加法同態性的門限密碼體制,并且P1,...,PnP_1,...,P_nP1?,...,Pn?已經掌握了相關參數(即各自的公鑰、私鑰等)。這里用到的門限密鑰共享體制滿足對于任意的m1,m2∈Mm_1,m_2 \in Mm1?,m2?∈M,任意的被收買集合θ∈Θ\theta \in \Thetaθ∈Θ都無法區分E(m1)E(m_1)E(m1?)和E(m2)E(m_2)E(m2?)。
下面的安全多方計算協議分為輸入階段、計算階段和輸出階段。
(1)輸入階段
每個參與者PiP_iPi?,1≤i≤n1\leq i\leq n1≤i≤n,將自己的輸入xix_ixi?用公鑰pkipk_ipki?進行加密得到密文E(xi)E(x_i)E(xi?),然后把密文E(xi)E(x_i)E(xi?)公開。
(2)計算階段
假設要計算的函數fff已經表示成某個有限域上KKK的多項式,這里取K=ZpK=Z_pK=Zp?,ppp是NNN的素因子。因此,在計算階段的每一步依然是處理一個x+yx+yx+y或xyxyxy,其中x,y∈Kx,y \in Kx,y∈K。并采用加密體制進行隱藏,即每個參與者得到的只是輸入和輸出的密文。由于經過輸入階段,可以假設每個參與者已經得到輸入的密文E(x)E(x)E(x)和E(y)E(y)E(y),于是計算階段的每一步就是使所有參與者最后得到E(x+y)E(x+y)E(x+y)或E(xy)E(xy)E(xy),然后作為下一步計算的輸入計算。
計算“x+y”“x+y”“x+y”:由于采用的密碼體制具有加法同態性質,那么每個參與者由E(x)E(x)E(x)和E(y)E(y)E(y),不需要交互只進行直接計算E(x)?E(y)E(x)\ast E(y)E(x)?E(y)就可以得到E(x+y)E(x+y)E(x+y)。
計算“xy”“xy”“xy”:每個參與者PiP_iPi?,1≤i≤n1\leq i\leq n1≤i≤n,秘密選取隨機數di∈Md_i \in Mdi?∈M,將用公鑰pkpkpk加密,公開E(di)E(d_i)E(di?)。根據加法同態性,將所有參與者都得到c′=E(d1+...+dn+x)=E(d1)?...?E(dn)?E(x)c'=E(d_1+...+d_n+x)=E(d_1)\ast ... \ast E(d_n)\ast E(x)c′=E(d1?+...+dn?+x)=E(d1?)?...?E(dn?)?E(x),然后聯合對c′c'c′進行解密,得到d=D(c′)=d1+...+dn+xd=D(c')=d_1+...+d_n+xd=D(c′)=d1?+...+dn?+x。參與者P1P_1P1?計算z1=d?d1z_1=d-d_1z1?=d?d1?,PiP_iPi?計算ai=?dia_i=-d_iai?=?di?,2≤i≤n2 \leq i \leq n2≤i≤n,顯然有x=∑i=1naix = \sum_{i=1}^na_ix=∑i=1n?ai?。根據加密體制的加法同態性,每個參與者PiP_iPi?,1≤i≤n1\leq i\leq n1≤i≤n,計算得到E((aiy)E((a_iy)E((ai?y)并將結果公開。例如,如果密文空間對應的運算時乘法,那么E((aiy)=(E((y))aiE((a_iy)=(E((y))^{a_i}E((ai?y)=(E((y))ai?。最后,所有參與者計算E((a1y)?...?E((any)=E(∑i=1naiy)=E(xy)E((a_1y)\ast ... \ast E((a_ny)=E(\sum_{i=1}^na_iy)=E(xy)E((a1?y)?...?E((an?y)=E(∑i=1n?ai?y)=E(xy)。
(3)輸出階段
由于到計算階段的最后,所有參與者都已經得到最后函數值的密文E(f(x1,...,xn))E(f(x_1,...,x_n))E(f(x1?,...,xn?)),因此輸出階段就是所有參與者聯合對E(f(x1,...,xn))E(f(x_1,...,x_n))E(f(x1?,...,xn?))進行解密得到最后的函數值。
3 往期回顧
數字簽名系列
- 圖解 ECDSA 簽名與驗簽基本原理
- 圖解 BLS 簽名與驗簽基本原理
- BLS 簽名理論原理和工程實現
- 基于 RSA 的實用門限簽名算法
- 門限密鑰共享技術原理
- 隱私保護利器之環簽名實現原理
- 多重簽名 MultiSig:Schnorr 協議與 ECDSA 協議
- 一種高效的數字簽名算法ED25519
- Schnorr 協議:零知識身份證明和數字簽名
智能合約隱私計算
- 智能合約隱私計算:開篇
- 智能合約隱私計算:同態加密應用舉例
- 智能合約隱私計算:再談Paillier同態加密算法
- 智能合約隱私計算:基于FO承諾的零知識證明
- 智能合約隱私計算:基于FO承諾的零知識承諾相等性證明和平衡驗證
密碼學承諾系列
- Pedersen commitment
同態加密系列
- 智能合約隱私保護技術之同態加密
- 智能合約隱私計算之再談Paillier同態加密算法
4 參考資源
[1] 密鑰共享體制和安全多方計算[M],劉木蘭、張志芳著。
總結
以上是生活随笔為你收集整理的基于同态加密体制的安全多方计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MacBook替换登录界面壁纸
- 下一篇: java udp心跳机制_心跳包机制整理