本發(fā)明屬于信息安全
技術(shù)領(lǐng)域:
,涉及外包計(jì)算協(xié)議的設(shè)計(jì)方案,具體為基于功能加密方案的安全外包計(jì)算實(shí)現(xiàn)方法和系統(tǒng),能夠保證協(xié)議執(zhí)行的安全性和整體高效性。
背景技術(shù):
:隨著云計(jì)算的發(fā)展,外包計(jì)算得到越來越廣泛的應(yīng)用。外包計(jì)算是指計(jì)算能力弱的客戶將其計(jì)算任務(wù)交給外部服務(wù)器讓其幫忙完成計(jì)算,服務(wù)器完成計(jì)算后將計(jì)算結(jié)果返回給客戶。外包計(jì)算協(xié)議的設(shè)計(jì)需要滿足三個(gè)主要特性:正確性、安全性、高效性。正確性是指服務(wù)器誠實(shí)的執(zhí)行協(xié)議所得到的結(jié)果,返回給客戶之后一定能夠通過驗(yàn)證;安全性是指若服務(wù)器返回了錯(cuò)誤的計(jì)算結(jié)果,客戶端會(huì)驗(yàn)證失敗并拒絕接受;高效性是指客戶端的計(jì)算量要遠(yuǎn)小于直接計(jì)算函數(shù)的計(jì)算量,否則就失去了外包計(jì)算的意義。除此之外,還需要考慮客戶數(shù)據(jù)的保密性,因?yàn)樵谝恍﹫鼍跋驴蛻艨赡懿幌M?wù)器知道自己的外包數(shù)據(jù)。外包計(jì)算場景下,因?yàn)榉?wù)器不一定是誠實(shí)的,因此客戶需要驗(yàn)證服務(wù)器返回結(jié)果的正確性(或稱可靠性)。交互的證明可以用來幫助服務(wù)器向客戶證明計(jì)算結(jié)果的正確性?;诟怕士沈?yàn)證證明的論證系統(tǒng)的提出可以用來實(shí)現(xiàn)高效的外包計(jì)算方案。micali在所著的論文“csproofs”中利用隨機(jī)預(yù)言機(jī)模型提出了非交互的外包計(jì)算方案。goldwassers,linh,rubinsteina在所著論文“delegationofcomputationwithoutrejectionproblemfromdesignatedverifiercs-proofs”中針對任意多項(xiàng)式時(shí)間可計(jì)算的函數(shù)設(shè)計(jì)了非交互的證明系統(tǒng),用其所設(shè)計(jì)的外包計(jì)算方案滿足客戶端計(jì)算的高效性。不過上述工作均關(guān)注服務(wù)器返回結(jié)果的可靠性,沒有考慮客戶外包數(shù)據(jù)的保密性。后續(xù)又有不少工作對外包計(jì)算展開研究。外包計(jì)算可以分為對具體函數(shù)的外包計(jì)算和對一般函數(shù)的外包計(jì)算。針對具體函數(shù),因?yàn)楹瘮?shù)結(jié)構(gòu)特點(diǎn)明確,比較容易設(shè)計(jì)出高效安全的外包計(jì)算協(xié)議,這方面已有不少優(yōu)秀成果。一直以來,設(shè)計(jì)一般函數(shù)的滿足保密性的外包計(jì)算協(xié)議是一項(xiàng)困難的工作。直到2009年gentry全同態(tài)加密方案的提出在理論上解決了滿足保密性的一般函數(shù)外包計(jì)算協(xié)議的存在性問題。在gennaror,gentryc和parnob所著的論文“non-interactiveverifiablecomputing:outsourcingcomputationtountrustedworkers”中,作者利用全同態(tài)加密方案和yao的錯(cuò)亂電路(garbledcircuit)實(shí)現(xiàn)了針對一般函數(shù)的外包計(jì)算協(xié)議。通過全同態(tài)加密解決了錯(cuò)亂電路在外包計(jì)算中不能重復(fù)利用的問題。協(xié)議分為離線階段和在線階段:在離線階段,客戶進(jìn)行預(yù)處理計(jì)算,并將算得的一部分消息公開傳送給服務(wù)器;在線階段,客戶將外包數(shù)據(jù)的編碼發(fā)送給服務(wù)器,服務(wù)器進(jìn)行運(yùn)算后返回運(yùn)算結(jié)果,最后客戶對結(jié)果進(jìn)行驗(yàn)證和恢復(fù)。在其方案中,客戶的外包數(shù)據(jù)、函數(shù)和運(yùn)算結(jié)果對服務(wù)器都是保密的,客戶可以利用錯(cuò)亂電路中的標(biāo)簽來驗(yàn)證服務(wù)器返回結(jié)果的可靠性。通過多次運(yùn)行在線階段,客戶的運(yùn)算效率在平均意義下是高效的。隨后,在chungkm,kalaiy和vadhans所著的論文“improveddelegationofcomputationusingfullyhomomorphicencryption”中,作者利用全同態(tài)加密方案,根據(jù)密文的不可區(qū)分性設(shè)計(jì)了新的針對一般函數(shù)的外包計(jì)算協(xié)議。相比gennaro等人的工作,chung等人的方案也分為離線階段和在線階段,不過在離線階段客戶不需要向服務(wù)器發(fā)送任何數(shù)據(jù)。同樣的,客戶的計(jì)算也是在平均意義下才算高效。鑒于上述兩種方案的預(yù)處理都需要較大計(jì)算量,且全同態(tài)加密目前實(shí)現(xiàn)效率并不高,ananthp和chandrann等人在論文“achievingprivacyinverifiablecomputationwithmultipleservers–withoutfheandwithoutpre-processing”中研究不需要預(yù)處理和全同態(tài)加密的外包計(jì)算協(xié)議,通過使用多個(gè)服務(wù)器(n>=2)來協(xié)同完成客戶的計(jì)算任務(wù)。其基本思想是,將gennaro等人工作中的預(yù)處理運(yùn)算(產(chǎn)生錯(cuò)亂電路的運(yùn)算)也交給服務(wù)器去做,最后一個(gè)服務(wù)器負(fù)責(zé)完成函數(shù)計(jì)算。他們的方法減輕了客戶的計(jì)算量,不過每次執(zhí)行外包計(jì)算時(shí)服務(wù)器都需要重新產(chǎn)生錯(cuò)亂電路。這是因?yàn)殄e(cuò)亂電路不能夠直接重復(fù)使用,否則會(huì)破壞外包協(xié)議的可靠性和保密性。重復(fù)產(chǎn)生錯(cuò)亂電路增加了服務(wù)器端的計(jì)算代價(jià),反過來增加了客戶的開銷成本。從目前的研究工作來看,針對一般函數(shù)的外包計(jì)算現(xiàn)在面臨的主要問題仍是效率問題。技術(shù)實(shí)現(xiàn)要素:已有的針對一般函數(shù)的安全外包計(jì)算協(xié)議,要么客戶端計(jì)算量在平均意義下才高效,要么服務(wù)器計(jì)算效率不高(在每次執(zhí)行協(xié)議時(shí)都需要產(chǎn)生錯(cuò)亂電路)。為了提高外包計(jì)算協(xié)議的整體高效性,本發(fā)明設(shè)計(jì)了基于功能加密方案的外包計(jì)算協(xié)議,在降低客戶計(jì)算量的同時(shí),降低了服務(wù)器的計(jì)算量。為實(shí)現(xiàn)上述目的,本發(fā)明采取如下技術(shù)方案:一種安全高效的外包計(jì)算實(shí)現(xiàn)方法,其步驟包括:1)客戶端利用功能加密方案產(chǎn)生兩個(gè)獨(dú)立的公私鑰對;2)客戶端將兩個(gè)公私鑰對中的私鑰和與外包計(jì)算函數(shù)相關(guān)的函數(shù)分別發(fā)送給兩個(gè)服務(wù)器;3)兩個(gè)服務(wù)器分別產(chǎn)生函數(shù)對應(yīng)的解密密鑰,并將結(jié)果發(fā)送給對方;4)客戶端利用兩個(gè)公私鑰對中的公鑰對消息和隨機(jī)數(shù)加密,并分別將密文發(fā)送給兩個(gè)服務(wù)器;5)兩個(gè)服務(wù)器分別采用解密密鑰對密文進(jìn)行解密,并返回計(jì)算結(jié)果給客戶端;6)客戶端驗(yàn)證兩個(gè)服務(wù)器返回的計(jì)算結(jié)果,驗(yàn)證通過則得到外包計(jì)算函數(shù)的值,否則拒絕。具體來說,本發(fā)明的外包計(jì)算協(xié)議中,有一個(gè)客戶(或稱客戶端,用d表示)和兩個(gè)服務(wù)器(s1,s2),外包計(jì)算函數(shù)為f,輸入為x。假設(shè)至少有一個(gè)服務(wù)器是半誠實(shí)的(本發(fā)明所述“半誠實(shí)”是指參與方誠實(shí)地執(zhí)行協(xié)議,可以記錄中間結(jié)果并推導(dǎo)有用的信息,但不能修改中間結(jié)果)。協(xié)議執(zhí)行過程如下:1)客戶利用功能加密方案產(chǎn)生兩個(gè)獨(dú)立的公私鑰對(mpk1,msk1),(mpk2,msk2),定義與函數(shù)f相關(guān)的函數(shù)g:函數(shù)g的輸入為三元組(x,s1,s2),若f(x)=0,則函數(shù)g輸出s1,若f(x)=1,則輸出s2,否則中止;2)客戶將msk1和函數(shù)g發(fā)送給第一個(gè)服務(wù)器s1;3)客戶將msk2和函數(shù)g發(fā)送給第二個(gè)服務(wù)器s2;4)服務(wù)器s1用功能加密方案的密鑰產(chǎn)生算法產(chǎn)生對應(yīng)于函數(shù)g的解密密鑰sk1g;將sk1g發(fā)送給服務(wù)器s2;5)服務(wù)器s2用功能加密方案的密鑰產(chǎn)生算法產(chǎn)生對應(yīng)于函數(shù)g的解密密鑰sk2g,將sk2g發(fā)送給服務(wù)器s1;6)客戶輸入為x,選擇隨機(jī)數(shù)r1,r2,r3,r4;7)客戶用功能加密方案的公鑰mpk1加密(x,r1,r2),得到密文c1,將其發(fā)送給服務(wù)器s2;8)客戶用功能加密方案的公鑰mpk2加密(x,r3,r4),得到密文c2,將其發(fā)送給服務(wù)器s1;9)服務(wù)器s2用私鑰sk1g解密c1,得到結(jié)果z1,并將z1返回給客戶;10)服務(wù)器s1用私鑰sk2g解密c2,得到結(jié)果z2,并將z2返回給客戶;11)客戶驗(yàn)證兩個(gè)服務(wù)器返回的值,若兩個(gè)服務(wù)器的返回值都通過隨機(jī)數(shù)驗(yàn)證且對應(yīng)的函數(shù)值相等,則客戶接受,得到f(x),否則客戶拒絕。一種安全高效的外包計(jì)算實(shí)現(xiàn)系統(tǒng),包括客戶端和兩個(gè)服務(wù)器;所述客戶端利用功能加密方案產(chǎn)生兩個(gè)獨(dú)立的公私鑰對,將兩個(gè)公私鑰對中的私鑰和與外包計(jì)算函數(shù)相關(guān)的函數(shù)分別發(fā)送給所述兩個(gè)服務(wù)器;所述兩個(gè)服務(wù)器分別產(chǎn)生函數(shù)對應(yīng)的解密密鑰,并將結(jié)果發(fā)送給對方;所述客戶端利用兩個(gè)公私鑰對中的公鑰對消息和隨機(jī)數(shù)加密,并分別將密文發(fā)送給所述兩個(gè)服務(wù)器;所述兩個(gè)服務(wù)器分別采用解密密鑰對密文進(jìn)行解密,并返回計(jì)算結(jié)果給客戶;所述客戶端驗(yàn)證兩個(gè)服務(wù)器返回的計(jì)算結(jié)果,驗(yàn)證通過則得到外包計(jì)算函數(shù)的值,否則拒絕。本發(fā)明與現(xiàn)有技術(shù)相比,客戶端的計(jì)算量只包含主密鑰產(chǎn)生、密文生成和簡單的對比驗(yàn)證,與外包函數(shù)f無關(guān);服務(wù)器端在第一次執(zhí)行協(xié)議時(shí)產(chǎn)生對應(yīng)于函數(shù)g的解密密鑰,后續(xù)不需要再重新產(chǎn)生解密密鑰,只需進(jìn)行函數(shù)運(yùn)算即可(高效性)。通過使用功能加密,客戶的數(shù)據(jù)x對兩個(gè)服務(wù)器(s1,s2)都是保密的(保密性)。在加密輸入x時(shí),通過引入兩個(gè)保密的隨機(jī)數(shù),使得最后服務(wù)器返回的結(jié)果可以被客戶驗(yàn)證(結(jié)果可靠性)。因此本發(fā)明提供了一種整體高效安全的外包計(jì)算協(xié)議設(shè)計(jì)方法。附圖說明圖1是本發(fā)明的協(xié)議初始預(yù)備階段示意圖。協(xié)議運(yùn)行初始階段,客戶將產(chǎn)生的兩個(gè)主私鑰和函數(shù)分別發(fā)送給兩個(gè)服務(wù)器(假設(shè)信道為秘密信道),兩個(gè)服務(wù)器分別產(chǎn)生函數(shù)對應(yīng)的解密密鑰,并將結(jié)果發(fā)送給另一個(gè)服務(wù)器。圖2是本發(fā)明的外包計(jì)算協(xié)議執(zhí)行階段示意圖。協(xié)議計(jì)算執(zhí)行階段,客戶用兩個(gè)不同的公鑰對消息和隨機(jī)數(shù)加密,分別發(fā)送給兩個(gè)服務(wù)器。服務(wù)器做完運(yùn)算后,返回計(jì)算結(jié)果給客戶。客戶驗(yàn)證結(jié)果,驗(yàn)證通過則得到函數(shù)值,否則拒絕。圖3是本發(fā)明的外包計(jì)算的替代協(xié)議的預(yù)備階段示意圖。圖4是本發(fā)明的外包計(jì)算協(xié)議的替代協(xié)議的驗(yàn)證操作示意圖。具體實(shí)施方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面通過具體實(shí)施例和附圖,對本發(fā)明做進(jìn)一步說明。功能加密方案是一種細(xì)粒度的加密方案,解密者利用解密密鑰可以獲得明文對應(yīng)的函數(shù)值,但不知道其他有關(guān)明文的信息。這一特性可以很好的應(yīng)用在外包計(jì)算當(dāng)中,因?yàn)榭蛻粝M?wù)器完成計(jì)算,但不希望泄漏外包數(shù)據(jù)x的值。功能加密是指解密方有消息x的密文c和函數(shù)f對應(yīng)的解密密鑰skf,只能解密得到消息的函數(shù)值f(x),但不能知道其他有關(guān)x的信息。功能加密算法的定義如下:功能加密算法fe={setup,keygen,enc,dec}setup(1k):算法輸入安全參數(shù)k,輸出一對公私鑰(mpk,msk).keygen(msk,f):算法輸入主私鑰msk和函數(shù)f,輸出相應(yīng)的密鑰skf.enc(mpk,x):加密算法輸入公鑰mpk和消息x,輸出密文c.dec(skf,c):解密算法輸入密鑰skf和密文c,輸出f(x).一個(gè)直接的想法是,客戶用主私鑰產(chǎn)生對應(yīng)于函數(shù)f的私鑰skf,然后將x的密文和skf發(fā)送給服務(wù)器,讓服務(wù)器去做解密運(yùn)算,之后把f(x)返回給客戶。不過這個(gè)協(xié)議中,客戶產(chǎn)生私鑰skf的計(jì)算量和計(jì)算函數(shù)f的計(jì)算量相當(dāng),因此客戶的效率并不高。為了降低客戶的計(jì)算量,我們考慮將計(jì)算skf的任務(wù)交給一個(gè)服務(wù)器,然后讓另一個(gè)服務(wù)器完成外包計(jì)算任務(wù)。我們假設(shè)至少有一個(gè)服務(wù)器是半誠實(shí)的,為了保證計(jì)算結(jié)果的可靠性,我們讓兩個(gè)服務(wù)器都參與計(jì)算。具體思想是構(gòu)造新的函數(shù)g,輸入為外包數(shù)據(jù)x和兩個(gè)隨機(jī)數(shù)s1,s2,若f(x)=0,則輸出s1,若f(x)=1,則輸出s2。通過這種方法來抵抗服務(wù)器的惡意行為。協(xié)議中,客戶記為d,兩個(gè)服務(wù)器分別記為(s1,s2),外包計(jì)算函數(shù)為f,外包數(shù)據(jù)為x??蛻粜枰獙⒂?jì)算f(x)的任務(wù)外包給兩個(gè)服務(wù)器。假設(shè)協(xié)議中至少有一個(gè)服務(wù)器是半誠實(shí)的。協(xié)議執(zhí)行的預(yù)備階段如圖1所示,協(xié)議執(zhí)行階段如圖2所示,具體過程如下:1)客戶執(zhí)行兩次功能加密方案的setup算法,輸出兩對公私鑰對(mpk1,msk1),(mpk2,msk2)。定義與函數(shù)f相關(guān)的函數(shù)g:函數(shù)g的輸入為三元組(x,r1,r2),若f(x)=0,函數(shù)g輸出r1,若f(x)=1,函數(shù)g輸出r2。2)客戶將msk1和函數(shù)g發(fā)送給第一個(gè)服務(wù)器s1。這里我們假設(shè)信道為秘密信道,在公開信道上,客戶可以用服務(wù)器s1的公鑰加密消息(msk1,g)后發(fā)送給s1。3)客戶將msk2和函數(shù)g發(fā)送給第二個(gè)服務(wù)器s2;4)服務(wù)器s1運(yùn)行功能加密方案的密鑰產(chǎn)生算法keygen,輸入(msk1,g),輸出對應(yīng)于函數(shù)g的解密密鑰sk1g。服務(wù)器s1將sk1g發(fā)送給服務(wù)器s2;5)服務(wù)器s2運(yùn)行功能加密方案的密鑰產(chǎn)生算法keygen,輸入(msk2,g),輸出對應(yīng)于函數(shù)g的解密密鑰sk2g。服務(wù)器s2將sk2g發(fā)送給服務(wù)器s1;6)客戶選擇四個(gè)隨機(jī)數(shù)r1,r2,r3,r4;7)客戶用功能加密方案的公鑰mpk1加密(x,r1,r2),得到密文c1,將c1發(fā)送給服務(wù)器s2;8)客戶用功能加密方案的公鑰mpk2加密(x,r3,r4),得到密文c2,將c2發(fā)送給服務(wù)器s1;9)服務(wù)器s2用私鑰sk1g解密c1,得到結(jié)果z1,并將z1返回給客戶;10)服務(wù)器s1用私鑰sk2g解密c2,得到結(jié)果z2,并將z2返回給客戶;11)客戶驗(yàn)證兩個(gè)服務(wù)器返回的值:驗(yàn)證z1是否與r1或r2相等,z2是否與r3或r4相等,若z1=r1且z2=r3,則客戶輸出f(x)=0,若z1=r2且z2=r4,則客戶輸出f(x)=1,否則客戶拒絕。本發(fā)明利用功能加密方案,采用兩個(gè)服務(wù)器的外包計(jì)算模型,實(shí)現(xiàn)了外包數(shù)據(jù)的保密,且極大的降低了客戶的計(jì)算量(客戶計(jì)算量和函數(shù)f無關(guān))。因?yàn)楣δ芗用芩惴ǖ慕饷苊荑€可以重復(fù)使用,因此服務(wù)器只需產(chǎn)生一次有關(guān)函數(shù)f的解密密鑰,后續(xù)只需進(jìn)行解密運(yùn)算即可。另外,為了實(shí)現(xiàn)計(jì)算結(jié)果的正確性,本發(fā)明在輸入部分引入兩個(gè)保密的隨機(jī)數(shù),實(shí)現(xiàn)客戶對服務(wù)器返回結(jié)果的驗(yàn)證。因此本發(fā)明設(shè)計(jì)的外包計(jì)算協(xié)議滿足保密性、安全性和整體高效性。下面表1是本發(fā)明與現(xiàn)有技術(shù)的計(jì)算量對比。與現(xiàn)有技術(shù)相比,本發(fā)明在保證客戶計(jì)算量較低的前提下,減少了服務(wù)器的計(jì)算量,實(shí)現(xiàn)了整體高效安全的外包計(jì)算協(xié)議。表1.本發(fā)明與現(xiàn)有技術(shù)的計(jì)算量對比工作客戶計(jì)算量服務(wù)器計(jì)算量gennaro等人[ggp10]與f相關(guān),平均意義下高效計(jì)算函數(shù)fchung等人[ckv10]與f相關(guān),平均意義下高效計(jì)算2k個(gè)函數(shù)fananth等人[acg+14]與f無關(guān)計(jì)算錯(cuò)亂電路和函數(shù)f本發(fā)明與f無關(guān)平均意義下:計(jì)算函數(shù)f本發(fā)明提供了安全的外包計(jì)算方法,客戶可以通過對比操作驗(yàn)證返回結(jié)果正確與否。在此基礎(chǔ)上,如果客戶希望知道哪一個(gè)服務(wù)器是惡意的。可以采取如下替代協(xié)議。替代協(xié)議的預(yù)備階段如圖3所示,協(xié)議執(zhí)行計(jì)算過程仍如圖2所示,另外在最后添加了進(jìn)一步的驗(yàn)證操作,如圖4所示。替代協(xié)議的具體過程如下:1)客戶執(zhí)行兩次功能加密方案的setup算法,輸出兩對公私鑰對(mpk1,msk1),(mpk2,msk2)。定義與函數(shù)f相關(guān)的函數(shù)g:函數(shù)g的輸入為三元組(x,r1,r2),若f(x)=0,函數(shù)g輸出r1,若f(x)=1,函數(shù)g輸出r2。2)客戶將msk1和函數(shù)g發(fā)送給第一個(gè)服務(wù)器s1。這里我們假設(shè)信道為秘密信道,在公開信道上,客戶可以用服務(wù)器s1的公鑰加密消息(msk1,g)后發(fā)送給s1。3)客戶將msk2和函數(shù)g發(fā)送給第二個(gè)服務(wù)器s2;4)服務(wù)器s1運(yùn)行功能加密方案的密鑰產(chǎn)生算法keygen,輸入(msk1,g),輸出對應(yīng)于函數(shù)g的解密密鑰sk1g。服務(wù)器s1將sk1g發(fā)送給服務(wù)器s2;5)服務(wù)器s2運(yùn)行功能加密方案的密鑰產(chǎn)生算法keygen,輸入(msk2,g),輸出對應(yīng)于函數(shù)g的解密密鑰sk2g。服務(wù)器s2將sk2g發(fā)送給服務(wù)器s1;6)服務(wù)器s1計(jì)算哈希函數(shù)h(sk1g),h(sk2g),將它們發(fā)送給客戶;7)服務(wù)器s2計(jì)算哈希函數(shù)h(sk1g),h(sk2g),將它們發(fā)送給客戶;8)客戶驗(yàn)證兩個(gè)服務(wù)器返回的哈希值是否對應(yīng)相等,若相等,則繼續(xù),否則中止;9)客戶選擇四個(gè)隨機(jī)數(shù)r1,r2,r3,r4;10)客戶用功能加密方案的公鑰mpk1加密(x,r1,r2),得到密文c1,將c1發(fā)送給服務(wù)器s2;11)客戶用功能加密方案的公鑰mpk2加密(x,r3,r4),得到密文c2,將c2發(fā)送給服務(wù)器s1;12)服務(wù)器s2用私鑰sk1g解密c1,得到結(jié)果z1,并將z1返回給客戶;13)服務(wù)器s1用私鑰sk2g解密c2,得到結(jié)果z2,并將z2返回給客戶;14)客戶驗(yàn)證兩個(gè)服務(wù)器返回的值:驗(yàn)證z1是否與r1或r2相等,z2是否與r3或r4相等,若z1=r1且z2=r3,則客戶輸出f(x)=0,若z1=r2且z2=r4,則客戶輸出f(x)=1,否則繼續(xù)執(zhí)行15);15)客戶采用goldwasser等人在文章“delegationofcomputationwithoutrejectionproblemfromdesignatedverifiercs-proofs”中的證明系統(tǒng)(記為l),運(yùn)行l(wèi)的set-up算法產(chǎn)生函數(shù)keygen(msk1,·)所對應(yīng)的公私鑰(pp1,sp1),產(chǎn)生函數(shù)keygen(msk2,·)所對應(yīng)的公私鑰(pp2,sp2)。將pp1發(fā)送給服務(wù)器s1,將pp2發(fā)送給s2;16)服務(wù)器s1執(zhí)行證明系統(tǒng)l中的證明者算法,產(chǎn)生證明π1,發(fā)送(sk1g,π1)給客戶,同樣的服務(wù)器s2產(chǎn)生證明π2,發(fā)送(sk2g,π2)給客戶。17)客戶計(jì)算h(sk1g)和h(sk2g),驗(yàn)證是否和步驟6)、7)中收到的哈希值對應(yīng)相等,若存在不等,則判定相應(yīng)的服務(wù)器為惡意,終止,否則繼續(xù)??蛻暨\(yùn)行證明系統(tǒng)l的驗(yàn)證者算法,用收到的消息和私鑰sp1,sp2分別驗(yàn)證證明π1和π2是否成立,若πi(i∈{1,2})驗(yàn)證失敗,則對應(yīng)的服務(wù)器si為惡意,終止,否則繼續(xù)。客戶判斷哪個(gè)服務(wù)器返回的zi(i∈{1,2})在步驟14)中判等失敗,即zi和客戶所選的隨機(jī)數(shù)不存在相等關(guān)系,則相應(yīng)的服務(wù)器為惡意,終止。其中πi是服務(wù)器si向客戶證明其返回的skig是誠實(shí)產(chǎn)生的。證明系統(tǒng)l中驗(yàn)證者(在這里是客戶)的計(jì)算復(fù)雜度與函數(shù)keygen(mski,·)的計(jì)算復(fù)雜度的對數(shù)相關(guān)。因?yàn)楣δ芗用芊桨钢兴惴╧eygen(mski,·)的計(jì)算復(fù)雜度和函數(shù)f的計(jì)算復(fù)雜度相當(dāng)。因此此替代方案中,客戶的計(jì)算量與函數(shù)f對數(shù)log(|f|)相關(guān),相比gennaro等人和chung等人的工作,此方案仍是高效的。此替代方案可以幫助客戶在驗(yàn)證失敗后,獲知誰是惡意的服務(wù)器。另外我們約定,在步驟14)后,若有服務(wù)器拒絕執(zhí)行步驟16)而提前選擇中止,則判定此服務(wù)器為惡意。本發(fā)明的拓展實(shí)施方式:將功能加密方案替換為多輸入的功能加密方案,適用于多客戶的外包計(jì)算場景。多輸入的功能加密方案是單輸入功能加密方案的擴(kuò)展。在多輸入功能加密方案中,解密密鑰skf所對應(yīng)的函數(shù)f為n元函數(shù),密鑰skf的輸入為n個(gè)密文。給定n個(gè)消息(x1,x2,…,xn)的密文,記為(c1,c2,…,cn),和解密密鑰skf,解密者可以解密得到f(x1,x2,…,xn)的值。而多客戶的外包計(jì)算是指n個(gè)客戶(n>=2)有各自的輸入xi,想要將計(jì)算f(x1,x2,…,xn)的任務(wù)外包給外部服務(wù)器。通過將本發(fā)明中的功能加密方案替換為多輸入的功能加密,可以較直接的設(shè)計(jì)出多個(gè)客戶將計(jì)算任務(wù)外包給兩個(gè)服務(wù)器的外包計(jì)算方案。以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對其進(jìn)行限制,本領(lǐng)域的普通技術(shù)人員可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求書所述為準(zhǔn)。當(dāng)前第1頁12