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