王騰騰,崔 喆*,唐 聃
(1.中國科學院 成都計算機應用研究所,成都 610041;2.中國科學院大學 計算機科學與技術學院,北京 100049;3.成都信息工程大學 軟件工程學院,成都 610225)
數(shù)字經(jīng)濟轉(zhuǎn)型中的信息社會時代,網(wǎng)絡會議及其數(shù)字評選和評審已經(jīng)越來越普及。尤其全球疫情以來,它漸漸成為人們?nèi)粘9ぷ魃畹某B(tài),如學位論文評選評優(yōu)、項目評審打分排序、招標投標計票、合伙人網(wǎng)絡會議決策表決、法院陪審團投票等。為方便表述后文也將評審專家稱為“選民”,將評審專家的打分意見稱為“投票”。目前國內(nèi)已有多家廠商相繼推出了各自的網(wǎng)絡會議數(shù)字評選系統(tǒng),如騰訊投票、騰訊在線文檔評選、問卷星等投票產(chǎn)品,其基本功能模式為:主辦方發(fā)起網(wǎng)絡會議,邀請各方“專家”參會“投票”,即各方對于評選對象分別給出自己的數(shù)字打分意見并交由主辦方匯總計算,由主辦方單方面公布結(jié)果。代表專家評選意見的“投票”及其匯總結(jié)果通常采用整數(shù)或有理數(shù)的表達方式。目前各大廠商此類網(wǎng)絡會議數(shù)字評選系統(tǒng)的工作原理及功能模式都大同小異,共同的問題是“選民”的“投票”隱私信息完全掌握在主辦方手里,而“選民”卻不容易判斷統(tǒng)計結(jié)果是否公正可信。有的產(chǎn)品廠商宣稱采取了“匿名”打分的措施,然而只是保證各位“選民”之間“投票”信息保密,而會議主辦方和廠商均可看到每個投票者的具體“投票”信息。因此目前此類產(chǎn)品系統(tǒng)并未真正對評審專家的“投票”隱私信息實行切實的保護,導致評審專家在重大評選場合可能因擔心隱私泄露而不做出公正的評審。此外,產(chǎn)品系統(tǒng)的這種工作模式下,主辦方所公布的統(tǒng)計結(jié)果是否公正、可信,評審專家也常常存疑。從工作模式和技術原理角度看,造成問題的根本原因在于缺少隱私保護前提下參與者的協(xié)同計算技術措施。既要保護評審專家的個人意見隱私又要能通過合作獲得安全可信的公正結(jié)果,是這類網(wǎng)絡會議數(shù)字評選系統(tǒng)亟待解決的關鍵技術。在當今數(shù)字經(jīng)濟社會轉(zhuǎn)型的信息化時代,該類隱私計算問題引人注目,具有比較廣泛的意義。
近年來逐漸興起的隱私計算理念為保護隱私數(shù)據(jù)安全和處理提供了新思路,Gartner 在發(fā)布的2021 年前沿科技戰(zhàn)略趨勢報告中將隱私計算列為未來發(fā)展的九大趨勢之一[1]。安全多方計算(Secure Multi-Party Computation,MPC)是目前實現(xiàn)隱私計算的重要支撐技術手段之一,起源于1982 年Yao[2]提出的百萬富翁問題,指一組互不信任的參與者之間在保護數(shù)據(jù)隱私的前提下完成協(xié)同計算的過程。如今MPC可以粗略分為三大類技術路線,即基于混淆電路技術的MPC、基于同態(tài)密碼技術的MPC 以及基于秘密分享的MPC。
基于混淆電路的MPC 將目標函數(shù)表示為多元函數(shù),進而把多元函數(shù)表示為布爾邏輯門電路,參與計算的各方各自對函數(shù)的一個變元進行秘密賦值,然后由門電路完成函數(shù)計算。自Yao 提出基于混淆電路的安全兩方計算后,相繼有學者提出改進協(xié)議:Goldreich 等[3]將兩方擴展至多方,并采用隨機比特串掩碼代替混淆真值表;Kolesnikov 等[4-5]對異或門進行優(yōu)化,減少了異或門加解密操作;Zahur 等[6]對混淆電路的真值表進行優(yōu)化,減小混淆電路規(guī)模。上述優(yōu)化在一定程度上提高了協(xié)議執(zhí)行效率,但仍只能支持簡單運算,并且在實際應用中其安全性保障只能通過布爾電路的硬件底層實現(xiàn),開發(fā)成本較高。目前的通用MPC 框架并不采用嚴格的混淆電路方式實現(xiàn)[7],而是采用與秘密分享結(jié)合的方式實現(xiàn)。
基于同態(tài)密碼技術的MPC 允許各方直接在密文上進行特定代數(shù)計算,得出的結(jié)果與在明文上進行同樣的操作并將結(jié)果加密一致。只支持單一運算的同態(tài)加密方案很早被提出,如RSA(Rivest-Shamir-Adleman)[8]可實現(xiàn)同態(tài)乘法,Paillier[9]可實現(xiàn)同態(tài)加法;直至2009 年Gentry[10]提出第一個全同態(tài)加密方案,方案基于理想格構(gòu)造,并通過對噪聲接近閾值的密文進行“刷新”解決了噪聲增長對方案同態(tài)計算能力限制的問題,實現(xiàn)了任意次數(shù)的乘法計算;由于Gentry 方案出現(xiàn)后出現(xiàn)了很多經(jīng)典的全同態(tài)加密方案,如基于算數(shù)電路[11]和布爾電路[12]的全同態(tài)加密方案。目前已有多種全同態(tài)加密方案,雖形式上簡明、理論上完整,但是同時支持加法和乘法的全同態(tài)密碼技術方法仍然過于復雜、尚難以廣泛應用。
基于秘密分享的技術手段由于計算量小且通信量較低,對于構(gòu)造多方加法和乘法運算有特別的優(yōu)勢。Beaver[13]基于秘密分享理念提出了“乘法三元組”,通過秘密拆分以及多輪通信實現(xiàn)了多方乘法。之后“乘法三元組”也被作為組件與混淆電路等技術相結(jié)合實現(xiàn)通用安全多方計算框架[7],但上述框架適用于普遍計算,對于特定的應用場景并不能表現(xiàn)出很好的計算效率[7]。目前基于MPC 的網(wǎng)絡會議數(shù)字評選系統(tǒng)多采用秘密分享的技術路線:仲紅等[14]提出了秘密值隨機拆分的矩陣傳送安全多方求和協(xié)議,但該協(xié)議僅支持加法計算且不能抵御多方作弊的情況;張嘉誠等[15]采用同態(tài)加密結(jié)合秘密分享的方式實現(xiàn)MPC,但方案涉及多種密碼學工具,并且需要公鑰基礎設施支持,布設成本高,難以實施應用。Hevia 等[16]采用同態(tài)ElGamal 密碼體制設計了一個隱藏計票結(jié)果的電子評審協(xié)議,該協(xié)議通過驗證計票結(jié)果是否在大于合格門限數(shù)值的集合中來判斷項目是否通過評審,但方案涉及混合網(wǎng)技術,實用性并不高。
綜上,MPC 是目前實現(xiàn)隱私計算的得力手段之一?,F(xiàn)有MPC 的三大類技術途徑都不同程度地存在計算復雜度較高、僅支持單一評審方式的問題。因此,其技術產(chǎn)品工程開發(fā)需要針對應用的具體場景來做具體的定制。
針對當前網(wǎng)絡會議數(shù)字評選系統(tǒng)存在的問題,本文提出一種基于隱私計算的網(wǎng)絡會議數(shù)字評選系統(tǒng)設計方案。方案既能保證評審人打分隱私數(shù)據(jù)不泄露給任何人,又能通過評審專家之間自主協(xié)作計算的途徑獲得正確可信的評選結(jié)果。方案實現(xiàn)隱私計算的工作重點是設計有理數(shù)域上的秘密加法與秘密乘法協(xié)議。協(xié)議的核心算法分兩個階段的步驟實現(xiàn):1)借助里所(Reed-Solomon,RS)碼之生成矩陣的編碼計算階段(秘密分享階段);2)借助編碼矩陣之單調(diào)擴展矩陣的協(xié)同計算階段(隱私計算階段)。此外編碼矩陣的校驗矩陣可用于校正檢查門限秘密分享階段和隱私計算階段是否有影子份額被篡改的作弊行為存在,只要出錯或被篡改的份額數(shù)量小于等于(d-1)(d為RS 碼碼距)就可以被發(fā)現(xiàn),這使得網(wǎng)絡會議數(shù)字評選的MPC 具備了去中心化的糾錯監(jiān)督與防止作弊的機制特征。此外本文方案將評審數(shù)據(jù)的哈希值作為存根交給主辦方存檔,以便事后追溯對照驗證,可防止抵賴。于是,校驗矩陣和協(xié)同計算過程環(huán)節(jié)的存根可以幫助評審專家們以自主協(xié)作-互相制約的方式實現(xiàn)多方安全計算結(jié)果的可信驗證和過程追溯。
定義1[17]如果碼C是V(n,q)的n重k維子空間V(k,q),則稱C為q元(n,k)線性分組碼,簡稱線性碼。當(n,k)線性分組碼的最小距離為d時,記為(n,k,d)線性碼。
定義2[17]如果在V(n,q)的k維子空間V(k,q)中選k個n重矢量為一組基{gi}(i=1,2,…,k),那么任意碼字C∈C=V(k,q)可由基底{gi}的線性組合給出:
式(1)中把線性碼C=V(k,q)的基底{gi}(i=1,2,…,k),按行矢量組成的k×n矩陣Gk×n稱為線性碼(n,k)的生成矩陣。
定義3[17]若C=V(k,q)是線性碼,則稱V(k,q)的正交補(零子空間)V⊥(k,q)=V(n-k,q) 為線性碼C的 對偶碼C⊥。
定義4[17]在V(n-k,q) 中任取n-k個基底h1,h2,…,hn - k,以hi為行矢量得到C⊥的生成矩陣H(n-k)×n則為線性碼C的一致校驗(監(jiān)督)矩陣,簡稱為校驗矩陣。
定義5設s0為待分享的秘密值,Gn×k為編碼矩陣,s0通過Gn×k編碼后得到n個值A1,A2,…,An,將Ai記作影子份額或秘密份額。
(k,n)門限秘密共享最早是由Shamir[18]于1979 年提出,其基本思想為:秘密s由分發(fā)者D以某種方式分割為n份不同的秘密份額si(i=1,2,…,n),只需得到其中的k個或k個以上的秘密份額就可恢復出s,而任何少于k份份額的組合均無法獲得秘密s的相關信息,更不能恢復出秘密s。
定理1[17]Singleton 界。對于一個q元域上(n,k)線性碼C,其最小距離d滿足d≤n-k+1。
定理2[17]對于一個q元域上(n,k)線性碼C,若最小距離d能夠滿足Singleton 界d=n-k+1,則稱該(n,k)線性碼為極大距離可分(Maximum Distance Separable,MDS)碼,MDS 具有最大的檢錯能力。
定理3[17]RS 碼是在Galois 域GF(2w)上進行的域元素的多項式運算(包括加法和乘法運算)的編碼方式,RS 碼通常有兩類:一類是范德蒙RS 編碼,另一類是柯西RS 編碼。范德蒙RS 編碼的生成矩陣是范德蒙矩陣,柯西RS 編碼的生成矩陣是柯西矩陣。設C為GF(q)上長度n為q-1 的RS碼,則滿足:
1)C的最小距離d滿足d=n-k+1;
2)C為MDS 碼。
RS 碼是一種MDS 碼,由線性碼與秘密分享的特殊相關性可知[19]:范德蒙RS 碼的編碼譯碼過程在本質(zhì)上與Shamir的(k,n)門限秘密分享中秘密分發(fā)以及恢復過程等價。
設α=(D1,D2,…,Dk)T為k維列向量,Gn×k為范德蒙生成矩陣,gi(i=1,2,…,n)為隨機選擇的不相等的整數(shù),β=(C1,C2,…,Cn)T為編碼后的碼字向量。編碼和譯碼過程如下。
1.5.1 編碼過程
將α編碼為n維列向量β=(C1,C2,…,Cn)T需左乘一個Gn×k,編碼過程如圖1 所示。
圖1 編碼過程Fig.1 Encoding process
1.5.2 譯碼過程
設β'=(C1,C2,…,Ck)T為在已知碼字分量中任意選擇k個元素組成的列向量,將β'中分量對應的G中的行篩選出來構(gòu)成矩陣G'。由RS 碼的MDS 性質(zhì)可知,G'一定存在逆矩陣。譯碼過程如圖2 所示。
圖2 譯碼過程Fig.2 Decoding process
本文隱私計算協(xié)議本質(zhì)上是一種基于秘密分享技術路線的MPC 協(xié)議。由于秘密分享與編碼理論的特殊相關性[19],借鑒文獻[20]中用編碼矩陣實現(xiàn)秘密分享的思想,本文進一步將文獻[20]中有限域上的編碼生成矩陣方法改為有理數(shù)域上的編碼生成矩陣,從而獲得一種有理數(shù)域上工作的秘密分享方法。其中生成矩陣的對偶矩陣用于檢查糾正秘密分享中是否有錯誤的份額,而有理數(shù)域便于比較域元符號計算結(jié)果的大小從而更適合網(wǎng)絡會議數(shù)字評選系統(tǒng)。本文編碼矩陣生成的n維碼字也恰好對應有理域上k-1 次插值多項式的(k,n)門限秘密分享體制所產(chǎn)生的n個份額。在此基礎上本文利用單調(diào)擴張方法[21],引入有理數(shù)域上生成矩陣的擴展矩陣,實現(xiàn)隱私計算。以下是方案相關矩陣和協(xié)議,n代表參與方人數(shù),k為門限參數(shù)。
本文通過構(gòu)造范德蒙矩陣作為RS 碼的生成矩陣G;通過GT×H=0 構(gòu)造RS 碼校驗矩陣H;通過單調(diào)擴張方法得出擴展矩陣M。G、H、M構(gòu)造如下。
算法1 矩陣構(gòu)造算法。
設有n個參與方P1,P2,…,Pn,si為Pi的秘密值,Pi將si秘密分享過程如下(其中i=1,2,…,n,j=2,3,…,k)。
選擇合適的門限參數(shù)k,輸入秘密si得到Aij。
步驟1Pi通過算法1 得到生成矩陣Gn×k;
步驟2Pi選擇k-1 個不相等的隨機整數(shù)rij構(gòu)造k維列向量αi:
設有n個參與方,sa(a∈[1,n]) 為Pa的秘密值,Aa1,Aa2,…,Aan為Pa執(zhí)行秘密分享協(xié)議后的秘密份額;sb(b∈[1,n],b≠a)為Pb的秘密值,Ab1,Ab2,…,Abn為Pb執(zhí)行秘密分享協(xié)議后的秘密份額;對sa和sb的隱私計算協(xié)議如下(其中i,j=1,2,…,n,i≠j,?為乘或加)。
步驟1Pi通過算法1 得到擴展矩陣M并求M-1;
步驟2Pi定義向量γ=(1,0,…,0)1×n并計算Ti=Aai?Abi發(fā)送給Pj;
步驟3Pi在本地計算Ti=Aai?Abi,并發(fā)送給Pj;
步驟4Pi構(gòu)造向量η=(T1,T2,…,Tn)T;
步驟5Pi計算sa?sb=γ?M-1?η。
方案中涉及以下兩方參與者。系統(tǒng)結(jié)構(gòu)如圖3 所示。
圖3 系統(tǒng)結(jié)構(gòu)Fig.3 System structure
1)評審人:具有評審權(quán)的人。
2)評審主辦方:發(fā)起評審會議的主辦方;驗證評審人身份;保存評審人的評審數(shù)據(jù)哈希值。
某單位現(xiàn)需多位評審人對項目進行評審打分,每一個項目有多個評分維度,例如經(jīng)濟效益、社會效益、可行性等評分項。為保證評審人的打分數(shù)據(jù)不被泄露給除自身以外的其他人,主辦方不參與評審過程,只保存評審過程中的中間值以便后期對評審人評審行為可追溯。設評分項數(shù)為u,評審人打分完畢后得到評分列向量vi=(ci1,ci2,…,ciu)T,評審人取評分項平均值得到Vi(若評分項有權(quán)值并且無權(quán)值保密條件,則通過加權(quán)平均得到Vi),對Vi執(zhí)行本文協(xié)議進行聯(lián)合計票得到該項目的評分和,通過評分和或評分和均值判斷項目是否通過評審。以上述場景為例描述方案執(zhí)行流程。
方案采用兩方密鑰交換協(xié)議協(xié)商加密密鑰key,保證公共信道數(shù)據(jù)傳輸?shù)陌踩?。需要保密傳輸時發(fā)送方用協(xié)商的密鑰以及加密函數(shù)對消息m進行加密Ekey(m),接收方收到密文后再用相同的密鑰對其解密Dkey(m)。
數(shù)字簽名采用RSA 簽名方案,簽名方A 先用哈希函數(shù)計算消息摘要h(m),再用私鑰d對其進行簽名sigA(m)=h(m)dmodn,驗證方B 收到簽名后用簽名方的公鑰e完成驗證:verB(m,sigA(m))=true ?h(m) ≡sigA(m)e(modn)。
在本文方案的總體設計中,采用了對秘密份額Ai加密的方式保證評審人兩兩間保密通信,但是在實際的應用場景下可綜合考慮布設成本選擇是否對Ai實行加密傳輸,因為Ai只是n個秘密份額中的一個,根據(jù)RS 碼譯碼過程(圖2)可知,只有泄漏的份額數(shù)超過k個,評審人隱私打分數(shù)據(jù)才會被泄漏,而在會議活動中邀請的評審專家大多是誠實可靠的,所以同時泄漏k個以及k個以上的份額概率較低。實際的應用場景下也可通過增大門限值k來增加方案的安全性(k增大,恢復秘密所需要的份額數(shù)越多,成功恢復的概率就越低)。
方案的執(zhí)行過程分為4 個階段:初始階段、評審階段、計票階段、公告階段。方案中所涉及的符號如表1 所示。
表1 協(xié)議中的符號含義Tab.1 Meanings of symbols in protocol
3.4.1 初始階段
主辦方完成評審人認證和數(shù)據(jù)初始化。
步驟1 主辦方為合法評審人發(fā)放唯一標識符IDi;
步驟2 主辦方根據(jù)評審規(guī)模及安全性要求確定n、k;
步驟3 主辦方通過執(zhí)行算法1 得到Gn×k、Hn×m、Mn×n。
3.4.2 評審階段
初始化階段完成后,評審人進入評審階段對項目評分,再通過秘密分享協(xié)議得到評分的秘密份額并發(fā)送給其他評審人。具體步驟如下。
步驟1Pi對項目評審打分得到vi=(ci1,ci2,…,ciu)T,根據(jù)評審方式對評分項進行計算得到Vi;
步驟2Pi計算Vi的哈希值并將對Vi的簽名一起發(fā)送給評審主辦方以供驗證和存檔:(sigPi(Vi||IDi),h(Vi||IDi));
步驟3Pi對Vi執(zhí)行秘密分享協(xié)議得到秘密份額Aij(j=1,2,…,n);
步 驟4Pi對Aij簽名并將Aij發(fā)送給Pj(j≠i):(sigPi(Aij||IDi),Ekey(Aij||IDi))。
步驟5Pj驗證簽名:
3.4.3 計票階段
待所有評審人執(zhí)行完評審階段后,可進入計票階段執(zhí)行隱私計算協(xié)議進行聯(lián)合計票(其中i,j=1,2,…,n,i≠j)。
步驟1Pi定義向量γ=(1,0,…,0)1×n;
步驟2Pi對秘密份額求和并簽名,隨后將簽名與份額之和一起發(fā)送給Pj:(sigPi(Ti||IDi),(Ti||IDi));
步驟3Pj驗證簽名:
步驟4Pi構(gòu)造向量η=(T1,T2,…,Tn)T并計算項目評分和V:
3.4.4 公告階段
評審主辦方和評審人在公告板上公布合法評審人ID 及計票結(jié)果V,評審結(jié)束。評審流程如圖4 所示。
圖4 評審流程Fig.4 Review flow
如果在保密權(quán)值的特殊應用場景下,則需要先將評審數(shù)據(jù)與權(quán)值相乘再求和,所以評審人需要先執(zhí)行隱私計算協(xié)議秘密求得評分項與權(quán)值的乘積,再執(zhí)行上述流程得出評分和。
在評審階段步驟5 之后、計票階段步驟3 之前評審人有可能會出現(xiàn)篡改他人秘密份額導致最終評審結(jié)果有誤的作弊行為。例如Pi在評審階段的步驟5 中收到了他人分享的秘密份額Aij,那么Pi可能會擅自篡改Aij導致份額之和T為錯誤值,最終影響評審結(jié)果的正確性,干擾評審的執(zhí)行。
方案以大部分評審人都是誠實者為前提。每位評審人可在本地發(fā)現(xiàn)不大于n-k(n-k=d-1)個評審人的秘密份額出錯或篡改行為存在。例如Pi質(zhì)疑Pj、Pt(j≠i≠t)有篡改行為可通過以下方式驗證(m=n-k):
步驟1Pi將HT中的第j、t列篩選出來構(gòu)成矩陣R。
步驟2Pi將η中剩余的Ti(i≠j≠t)構(gòu)成列向量ξ。
步驟3Pi選擇ξ中分量下標對應的HT中的列構(gòu)成矩陣E。
步驟4Pi計算X=R-1?(-(E?ξ))。
步驟5Pi通過對比X中分量與計票階段步驟3 中保存的Ti、Tt是否一致判斷Pj、Pt是否有擅自篡改行為存在。
該階段的實質(zhì)是將Tj、Tt當作未知變量,通過上述過程重新求解出來,求解過程與糾刪碼的譯碼過程一致,驗證過程示意圖如圖5 所示。
圖5 驗證過程Fig.5 Verification process
方案中關鍵的計算步驟是可以用評分的秘密份額代替真實評分計算得出評分和?,F(xiàn)對這一過程進行正確性分析。設參與方集合為{P1,P2,…,Pn},可將參與方之間的協(xié)同計算簡化為兩兩計算分析。設a0、b0分別為Pi、Pj的秘密值,正確性分析如下:
1)Pi、Pj通過編碼矩陣Gn×k生成a0、b0的秘密份額。
分析可知fa(x)常數(shù)項為秘密值a0,fb(x)常數(shù)項為b0。
2)秘密分享后每個參與方都有a0、b0的一份份額,Pi、Pj進行“?”運算:
1)合法性:評審人需先通過評審主辦方身份核驗并獲得唯一身份標識ID 后才可進行評審。
2)保密性:評審人通過秘密分享將秘密編碼為n個秘密份額Ai1,Ai2,…,Ain并分發(fā)給其余評審人,每個評審人只有秘密值的一個份額,每個Pi在協(xié)議運行過程中只在本地對秘密份額進行操作,若有不誠實的Pi想恢復秘密值那么根據(jù)(k,n)門限秘密共享的完備性可知,需有k個及k個以上評審人合謀才能恢復出秘密值。實際方案執(zhí)行時也可根據(jù)安全性要求具體的調(diào)整門限k。
3)可追溯性:評審人打分完畢后會將評審意見的哈希值發(fā)送至評審主辦方存檔;每一方得到的他人n個份額及其中間計算結(jié)果Ti都分別取哈希值保存在本地。若有評審人事后抵賴,可將評審意見取哈希值同評審主辦方存檔的哈希值對比防止評審人抵賴;也可要求評審人重新計算秘密份額并取哈希值同其余評審人保存在本地的秘密份額哈希值對比防止評審人抵賴。
4)防止作弊:由于RS 碼為極大距離可分碼,能夠保證所能檢查到的秘密份額分享錯誤或有擅自篡改行為的參與者人數(shù)最大為n-k(n-k=d-1),即在協(xié)同計算過程中有n-k個及以下的參與者有作弊行為都會被發(fā)現(xiàn)。
5)健壯性:方案的(k,n)門限結(jié)構(gòu)可提高系統(tǒng)的可靠性。在協(xié)議執(zhí)行過程中,若評審人Pi未及時投票,那么其余n-1 位評審人Pj(j∈[1,n],j ≠i)不會收到此評審人的秘密份額Aij,但仍可執(zhí)行隱私計算協(xié)議計算參與者的評審數(shù)據(jù)之和,評審系統(tǒng)仍可正常運行,滿足健壯性要求。
前兩節(jié)中基于秘密分享和隱私計算協(xié)議給出了一種保護評審人隱私數(shù)據(jù)安全的網(wǎng)絡會議數(shù)字評選系統(tǒng)設計方案,本節(jié)對此方案的執(zhí)行流程進行實驗模擬,驗證方案的可行性以及不同評審規(guī)模下的計算效率,并且與同類型的相關研究進行對比。
1)實驗前提:評分為十分制并且評分項無權(quán)值。
2)實驗方案:實驗數(shù)據(jù)設置是(n,k,u,v,G),其中k設置為;評分項u設置為5;在實驗執(zhí)行過程中生成u個隨機整數(shù)構(gòu)造向量v(v為評審人打分向量);G中元素gi設置為1到n(gi=i,i=1,2,…,n);規(guī)模n取10~60;通過不同的實驗規(guī)模觀察實驗結(jié)果。由于初始階段的時間開銷移到了評審開始前,所以主要就評審、計票和公告階段進行實驗驗證。測試結(jié)果如圖6 所示。
圖6 不同評審人數(shù)量下的方案各階段耗時Fig.6 Time consumption of each stage in scheme with different numbers of reviewers
3)實驗結(jié)果分析:從圖6 中可以看出,方案的整體耗時取決于計票階段,這主要是因為在計票階段需要對n維方陣M求逆,所以導致時間復雜度較高。從方案的執(zhí)行流程角度分析:評審階段每位評審人各自執(zhí)行秘密分享協(xié)議得到秘密份額需執(zhí)行O(kn)次整數(shù)乘法運算,發(fā)送秘密份額給其余評審人需進行n-1 次通信;計票階段每位評審人對Aij求和需執(zhí)行O(n)次加法,發(fā)送秘密份額之和給其余評審人需進行n-1 次通信,計算最終評審結(jié)果V(矩陣求逆再相乘)的時間復雜度為O(n2+n)。公告階段評審主辦方和評審人分別公布合法評審人ID 和評分和需進行2n次通信。因此可知對于每一個評審人來說方案的通信復雜度為O(n),時間復雜度為O(n2+n)。
4)對比分析:文獻[14]提出的電子評審協(xié)議是通過對秘密值進行簡單的隨機線性拆分,評審人各自對份額相加實現(xiàn)MPC,但該協(xié)議僅支持加法并且安全性不足,無法抵御參與方作弊行為。文獻[15]提出的電子評審協(xié)議通過同態(tài)ElGamal 密碼體制對隱私集合求和,對私鑰秘密分享使評審人只能聯(lián)合解密計票結(jié)果,但該協(xié)議存在以下幾個問題:1)多種密碼學工具并用導致執(zhí)行效率很低,其中的同態(tài)加密技術的算法復雜度更是隨著評審規(guī)模的增長而呈指數(shù)型增長。2)方案安全性很低,沒有制約參與方作弊的條件,僅靠評審人自覺執(zhí)行;3)協(xié)議需要公鑰基礎設施的支持,布設成本高。文獻[16]采用同態(tài)ElGamal 密碼體制實現(xiàn)了隱藏計票結(jié)果的電子評審協(xié)議,該協(xié)議需借助m個混合網(wǎng)服務器對集合中c個元素進行隨機置換,協(xié)議的計算復雜度為O((mc+n)p)(p為大素數(shù)位長),但若要保證協(xié)議安全性p至少為1 024,因此計算復雜度為指數(shù)級別,并且該協(xié)議還需要混合網(wǎng)服務器的支持,難以實施應用。
本文方案解決了上述評審系統(tǒng)所存在的問題:1)支持有理數(shù)域上的加減乘除運算,支持多種評審方式;2)具備糾查作弊行為的能力,滿足一定的安全性要求;3)不需要公鑰基礎設施支持,實施成本低。
本節(jié)通過對較小規(guī)模的評審實例展示方案執(zhí)行過程中的數(shù)據(jù)。設評分為十分制并且評分項無權(quán)值,評審人數(shù)n=4,評分項數(shù)u=3,參數(shù)k=2,生成矩陣元素g1=1,g2=2,g3=3,g4=4,γ=(1,0,0,0),評審人為P1、P2、P3、P4。設P1至P4的打分向量分別為v1=(6,5,4)T,v2=(3,5,4)T,v3=(6,8,4)T,v4=(3,5,1)T,采用簡單的取平均值的方式得到V1=5,V2=4,V3=6,V4=3,設P1至P4的編碼向量為α1=(5,2),α2=(4,3),α3=(6,1),α4=(3,2),接下來對V進行秘密求和。
1)方案各階段執(zhí)行時的數(shù)據(jù)展示。
①根據(jù)以上數(shù)據(jù)可得出G、H、M如下:
②評審人執(zhí)行評審階段得出秘密份額。
評審人將各自的秘密份額發(fā)送給其余評審人,因此P1擁有秘密份額(7,7,7,5),P2擁有秘密份額(9,10,8,7),P3擁有秘密份額(11,13,9,9),P4擁有秘密份額(13,16,10,11)。
③評審人執(zhí)行計票階段得出計票結(jié)果。
每位評審人計算本地秘密份額之和,P1計算得出T1=26,P2計算得出T2=34,P3計算得出T3=42,P4計算得出T4=50。評審人將各自的T分發(fā)給其余評審人,因此評審人可組成向量η=(T1,T2,T3,T4)T=(26,34,42,50)T,通過計算γ?M-1?η得出最終計票和V。
2)評審人驗證階段的數(shù)據(jù)展示。
如果P1質(zhì)疑P3和P4有篡改行為,那么P1將HT中的第3列和第4 列篩選出來構(gòu)成矩陣R,將HT中的第1 列和第2 列篩選出來構(gòu)成矩陣E,構(gòu)造向量ξ=(T1,T2)T=(26,34)T,定義X=(x1,x2)T,P1計算X=R-1?(-(E?ξ))=(42,50)T,與計票階段步驟3 中保存的T3、T4一致,因此P3和P4不存在擅自篡改行為。R、E如下:
基于MPC 協(xié)議的隱私計算在當今信息社會具有越來越廣泛的需求。針對當前網(wǎng)絡會議數(shù)字評選系統(tǒng)普遍欠缺合理技術措施對專家個人意見隱私保護的問題,本文提出了一種基于隱私計算的網(wǎng)絡會議數(shù)字評選系統(tǒng)設計方案。該系統(tǒng)通過多方安全協(xié)同計算的途徑,既能保證評審專家打分的個人意見隱私不泄露給任何人(包括會議主辦方和其他評審人),又能通過評審專家之間自主協(xié)作的途徑獲得正確可信的最終評選結(jié)果。與已知的同類系統(tǒng)相比,該隱私計算系統(tǒng)的算法協(xié)議簡明,執(zhí)行效率較高,易于技術開發(fā)應用。此外,該MPC 隱私計算協(xié)議還使得評審系統(tǒng)的參與者能夠通過自治協(xié)作的技術途徑糾查作弊和防止抵賴,在一定程度上實現(xiàn)了去中心化的可信驗證機制,這對其他隱私計算領域的遷移應用也具有借鑒參考意義。面對今后更大規(guī)模更廣泛的應用場景,本文基于安全多方計算MPC 這種特定隱私計算方法在執(zhí)行效率上仍然會有障礙,值得進一步改進。