本發(fā)明屬于云計(jì)算安全技術(shù)領(lǐng)域,特別涉及一種基于單服務(wù)器的安全復(fù)合模指數(shù)外包計(jì)算方法。
背景技術(shù):
隨著云計(jì)算的發(fā)展和移動(dòng)設(shè)備的普及,出現(xiàn)了一種新的服務(wù)模式,也就是所謂的外包計(jì)算。隨著這種新服務(wù)模式的出現(xiàn),資源受限的用戶可以選擇以按需付費(fèi)的方式將繁瑣的計(jì)算任務(wù)外包給計(jì)算資源豐富的服務(wù)器去計(jì)算。
盡管外包計(jì)算給人們帶來了巨大的經(jīng)濟(jì)利益,但是它也存在著一些新的安全問題和挑戰(zhàn)。首先,云服務(wù)器并不一定是完全可信的,并且外包計(jì)算的任務(wù)經(jīng)常會(huì)包含一些不應(yīng)該暴露給云服務(wù)器的敏感信息。因此,外包計(jì)算的首要安全問題就是計(jì)算資源的隱私性,云服務(wù)器不應(yīng)該知道任何關(guān)于實(shí)際參與計(jì)算的輸入和輸出的信息。而普通的加密技術(shù)不能完全解決這個(gè)問題,因?yàn)榉?wù)器很難對(duì)加密后的信息執(zhí)行有意義的計(jì)算。其次,由于云內(nèi)部的操作細(xì)節(jié)對(duì)用戶是不透明的,因此,很可能存在著各種動(dòng)機(jī),使得云服務(wù)器的行為不誠實(shí)。還可能會(huì)有一些軟件bug和惡意的外部攻擊的存在,這些都會(huì)影響計(jì)算結(jié)果的質(zhì)量。因此,外包計(jì)算的第二個(gè)安全問題就是它的計(jì)算結(jié)果的可驗(yàn)證性,使需要外包服務(wù)的用戶能夠檢測(cè)云服務(wù)器返回的結(jié)果正確與否,并且要求驗(yàn)證過程的計(jì)算量要盡可能的小,否則就失去了外包的意義。
模指數(shù)運(yùn)算是密碼系統(tǒng)中最為常見的、最為耗時(shí)的運(yùn)算之一,許多公鑰加密、數(shù)字簽名方案都需要用到模指數(shù)運(yùn)算,因此如何實(shí)現(xiàn)模指數(shù)的安全外包計(jì)算具有重要的現(xiàn)實(shí)意義。目前的模指數(shù)外包計(jì)算方案主要分為基于兩個(gè)不可信服務(wù)器的計(jì)算和基于單個(gè)不可信服務(wù)器的計(jì)算。其中,基于兩個(gè)不可信服務(wù)器的模指數(shù)外包計(jì)算方案很容易遭受共謀攻擊,基于單個(gè)不可信服務(wù)器的模指數(shù)外包計(jì)算方案其外包計(jì)算結(jié)果的可驗(yàn)證概率通常不高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提出一種基于單服務(wù)器的安全復(fù)合模指數(shù)外包計(jì)算方法,既避免了共謀攻擊,又實(shí)現(xiàn)了輸入信息和輸出信息的隱私保護(hù),并且提高了用戶對(duì)外包計(jì)算結(jié)果的可驗(yàn)證概率。
為了解決上述技術(shù)問題,本發(fā)明提供一種基于單服務(wù)器的安全復(fù)合模指數(shù)外包計(jì)算方法,用戶對(duì)原始數(shù)據(jù)進(jìn)行隱藏獲得盲化數(shù)據(jù),然后將盲化數(shù)據(jù)發(fā)送給云服務(wù)器;所述對(duì)原始數(shù)據(jù)進(jìn)行隱藏的方法為:用戶利用調(diào)用子程序RandN返回的四個(gè)數(shù)對(duì)對(duì)模指數(shù)ud和(u′)d進(jìn)行邏輯拆分生成盲化數(shù)據(jù)然后將盲化數(shù)據(jù)編成數(shù)對(duì)(r1,c1),(r1,c2),(l1,w),(k1,w),(l1,w′),(k1,w′);
對(duì)模指數(shù)ud進(jìn)行邏輯拆分的過程為,先進(jìn)行第一個(gè)邏輯拆分:再進(jìn)行第二個(gè)邏輯拆分:
對(duì)模指數(shù)ud進(jìn)行邏輯拆分的過程為,先進(jìn)行第一個(gè)邏輯拆分:再進(jìn)行第二個(gè)邏輯拆分:
其中,四個(gè)數(shù)對(duì)為和并記w′=u′/g3,r1=d-e;r為隨機(jī)因子,且Z*指非負(fù)整數(shù)集合;a為指數(shù)d的逆元;底數(shù)u′=rau;參數(shù)w=u/g1,參數(shù)r1=d-e,e為數(shù)學(xué)概念上的指數(shù);參數(shù)c1=g1/g2,參數(shù)t1=r1-e,d=l1+k1t1,l1和k1是預(yù)先設(shè)定的滿足等式d=l1+k1t1成立的隨機(jī)值;參數(shù)w′=u′/g3,參數(shù)c2=g3/g4。
進(jìn)一步,云服務(wù)器收到數(shù)對(duì)(r1,c1),(r1,c2),(l1,w),(k1,w),(l1,w′),(k1,w′)后,計(jì)算其獲得相應(yīng)的模指數(shù)的值
進(jìn)一步,用戶通過判斷公式(1)是否成立來驗(yàn)證云服務(wù)器的計(jì)算結(jié)果,如果公式(1)是成立,則說明云服務(wù)器執(zhí)行了正確的計(jì)算,如果公式(1)不成立,則說明云服務(wù)器沒有執(zhí)行正確的計(jì)算,
本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點(diǎn)在于:
(1)提高了輸入和輸出的隱私保護(hù)性能。為了實(shí)現(xiàn)對(duì)輸入和輸出的隱私保護(hù),本發(fā)明提出一種新的數(shù)學(xué)分割方式,實(shí)現(xiàn)了對(duì)輸入信息和輸出信息的隱私保護(hù),使得云服務(wù)器在外包計(jì)算的過程中不能獲取任何關(guān)于模指數(shù)運(yùn)算的指數(shù)和底數(shù)的信息,也不能獲得模指數(shù)運(yùn)算的最終結(jié)果。
(2)提高了計(jì)算結(jié)果的可驗(yàn)證概率。外包計(jì)算結(jié)果的可驗(yàn)證概率有了很大的提高,如果服務(wù)器不誠實(shí),用戶對(duì)外包計(jì)算結(jié)果的可驗(yàn)證概率接近于100%。
附圖說明
圖1是本發(fā)明方法的運(yùn)行模型示意圖。
具體實(shí)施方式
容易理解,依據(jù)本發(fā)明的技術(shù)方案,在不變更本發(fā)明的實(shí)質(zhì)精神的情況下,本領(lǐng)域的一般技術(shù)人員可以想象出本發(fā)明基于單服務(wù)器的安全復(fù)合模指數(shù)外包計(jì)算方法的多種實(shí)施方式。因此,以下具體實(shí)施方式和附圖僅是對(duì)本發(fā)明的技術(shù)方案的示例性說明,而不應(yīng)當(dāng)視為本發(fā)明的全部或者視為對(duì)本發(fā)明技術(shù)方案的限制或限定。
本發(fā)明所述基于單服務(wù)器的安全復(fù)合模指數(shù)外包計(jì)算方法,其系統(tǒng)模型如圖1所示,包含兩類實(shí)體:云服務(wù)器、外包計(jì)算的用戶。外包計(jì)算的用戶有很多復(fù)雜的計(jì)算任務(wù)要去處理但是其缺乏計(jì)算能力,云服務(wù)器有很強(qiáng)的計(jì)算能力,然而,云服務(wù)器通常被認(rèn)為是半可信的。當(dāng)用戶想通過外包的方式解決模指數(shù)運(yùn)算時(shí),用戶首先通過邏輯分割的方式來隱藏原始數(shù)據(jù),然后將隱藏后原始數(shù)據(jù)即盲化數(shù)據(jù)發(fā)送給云服務(wù)器,云服務(wù)器收到盲化數(shù)據(jù)后,利用這些數(shù)據(jù)進(jìn)行計(jì)算并將計(jì)算后的結(jié)果返回給用戶,由用戶驗(yàn)證云服務(wù)器返回的計(jì)算結(jié)果的正確性。
需要外包計(jì)算的用戶T先調(diào)用可以提高計(jì)算速度的子程序RandN,然后把模指數(shù)運(yùn)算外包給服務(wù)器U。模指數(shù)外包計(jì)算方法不能讓敵手A從模指數(shù)外包計(jì)算的輸入和輸出中得到任何有用的信息;設(shè)p、q是兩個(gè)大素?cái)?shù)且N=pq,模指數(shù)外包計(jì)算的輸入是和且這里u是任意的一個(gè)底數(shù),d是任意的一個(gè)指數(shù),模指數(shù)外包計(jì)算的輸出為ud mod N,u和d是保密的,從而U無法計(jì)算出u和d。
實(shí)施例
為了更好地理解本發(fā)明提出的方法,本實(shí)施例選取一次用戶T借助服務(wù)器U實(shí)現(xiàn)模指數(shù)計(jì)算的事件。結(jié)合附圖,本實(shí)施例具體實(shí)施步驟如下:
步驟101,原始數(shù)據(jù)初始化:用戶T輸入需要進(jìn)行模指數(shù)運(yùn)算的原始數(shù)據(jù)u和d,其中,u是模指數(shù)ud的底數(shù),d是模指數(shù)ud中的指數(shù),并完成以下兩項(xiàng)工作:
1)用戶T調(diào)用子程序RandN四次得到四個(gè)數(shù)對(duì)和并記作用戶T每次調(diào)用子程序RandN將會(huì)生成形如(x,xe)的數(shù)對(duì)(x∈Z*,),Z*指非負(fù)整數(shù)集合,指與N互素的整數(shù)模N的同余類集合。
2)用戶T計(jì)算模指數(shù)運(yùn)算中指數(shù)d的逆元a為了降低用戶的計(jì)算量隨機(jī)選擇一個(gè)盡可能小的隨機(jī)因子然后計(jì)算模指數(shù)(u′)d中的底數(shù)u′,計(jì)算方法為u′=rau,即完成對(duì)u′的初始化,(u′)d是與ud相對(duì)應(yīng)的模指數(shù),可以稱為另一個(gè)模指數(shù)。
步驟102,邏輯分割:用戶T通過邏輯分割的方式對(duì)原始數(shù)據(jù)u和d進(jìn)行隱藏,具體如下:
1)用戶T利用子程序RandN返回的四個(gè)數(shù)對(duì),首先對(duì)模指數(shù)ud進(jìn)行拆分操作,拆分操作分為兩個(gè)邏輯拆分,
第一個(gè)邏輯拆分為:
其中,參數(shù)w=u/g1,參數(shù)r1=d-e,w是u,g1做模逆運(yùn)算后的值,也可以將w稱為隨機(jī)值,e為數(shù)學(xué)概念上的指數(shù)。
第二個(gè)邏輯拆分為:
其中,參數(shù)c1=g1/g2,參數(shù)t1=r1-e,d=l1+k1t1,l1和k1是預(yù)先設(shè)定的滿足等式d=l1+k1t1成立的隨機(jī)值。
2)用戶T利用子程序RandN返回的四個(gè)數(shù)對(duì),再對(duì)模指數(shù)(u′)d進(jìn)行類似的拆分操作,同樣分為兩個(gè)拆分,。
第一個(gè)邏輯拆分為:
其中w′=u′/g3,r1=d-e。
第二個(gè)邏輯拆分為:
其中c2=g3/g4,t1=r1-e和d=l1+k1t1
3)用戶T將上述拆分后形成的盲化數(shù)據(jù)編成數(shù)對(duì),編成數(shù)對(duì)的方法為:
步驟103,請(qǐng)求云服務(wù)器:用戶T請(qǐng)求服務(wù)器U計(jì)算盲化后的數(shù)對(duì)(r1,c1),(r1,c2),(l1,w),(k1,w),(l1,w′),(k1,w′)的模指數(shù)的值,具體如下:
1)用戶T將盲化后的數(shù)對(duì)(r1,c1),(r1,c2),(l1,w),(k1,w),(l1,w′),(k1,w′)按照任意的次序?qū)Ψ?wù)器U進(jìn)行如下的請(qǐng)求:
2)服務(wù)器U收到盲化后的數(shù)對(duì)(r1,c1),(r1,c2),(l1,w),(k1,w),(l1,w′),(k1,w′)后,計(jì)算獲得相應(yīng)的模指數(shù)的值
步驟104,對(duì)計(jì)算結(jié)果進(jìn)行驗(yàn)證:用戶T收到服務(wù)器U返回的模指數(shù)的值后,對(duì)其正確性進(jìn)行驗(yàn)證。具體如下:
用戶T利用服務(wù)器計(jì)算的模指數(shù)的值驗(yàn)證公式(3)是否成立,
由等式(2)和等式(3)可知可知
如果云服務(wù)器U執(zhí)行了正確的計(jì)算則有,
(u′)d mod N=(rau)d mod N
=(radud)mod N
=(r·ud)mod N
也就是公式(3)是成立的,如果公式(3)不成立,說明云服務(wù)器沒有執(zhí)行正確的計(jì)算。
如果公式(3)成立,則用戶T利用云服務(wù)器U返回的模指數(shù)的值計(jì)算模指數(shù)
示例:當(dāng)用戶請(qǐng)求服務(wù)器計(jì)算時(shí),進(jìn)行以下操作:
步驟101:
1)輸入原始數(shù)據(jù)u和d
u=106120923321000833997785245778366834939312221403826396250291394338745442951305294328572326684661691639486068410804148771943110086326134242118011646789417306788812505099994039507265896719048157042861462389411762429546214899066856759
d=98491408039174609566864052693394396438932689080327900843656112092888550385636313887123461268801816693696424045029994016800764483541498554200175950500933086254889787837593479312472615289601897622536197775769390311444784560269547516818857478476475220181307754614543565587854614094752502961027000370095914715457
r=2
2)調(diào)用RandN計(jì)算四個(gè)盲化對(duì)
v1=113257007947760685154718252027485070203897954439001014404380657393628470503588907502079308566001490965135010757857695903004147989619206661206850499946305760190729636904733312376379259204879232288720653775561585609429625883251538657576839314929806779778855852091930208492182239993751440338828907018732065577691
w1=23659056763156023594106265090165807327814867248553945111791553468935884841922664124157204874657420462243916094879584150440315054091769136915535809465570721799099475847223999904933901005028028910918288021632438707511154799205485957539834682135487033642654221063029603500105658349018883346992561074522375027020
v2=121466122788660958519614554431926603769606112829462948825181247927993723639147395086613280554032658564552968490070234089680159809811005802928067284993765326787936447561258891976367296983714381267046691862177705169430604863050511261588604793011323231298260349558435179073316143322079470114346942690943018792226
w2=21096370844386882158731036256736329932100033044572456449803738206200647791869231559296273109209489813137904406223959669858630960105694910690863424396259622451588571286203714812148700040633067139505781234976899942817106321357330294704714888194548027341771615257970057368885297070300750422905765426524165671478
3)計(jì)算d的逆元a并計(jì)算u′
a=65537
u′=110111748291297534341971040871809368206491697454387824279712010973847926495525133216883180775015093416122092159834838077146679730762002636190046635095319215517339132096753200205682513140613279044925688188565302111531080502623721854979202209600406138387344110665001221824458564058496542989186683816802972915730
步驟102:邏輯拆分
拆分u和d
w=16692908113943769974799977420998798012369543013107633081603349645445294145026544796251639904956174090821308702758187830149097636001810598159157067336457522504541886532376492714201600403443506588492779015197788519324196342090171531582856931611735672608754932039745251559958245860941259459052500391548192726883
c1=23184079355585732456003536158619455226780382054858781698510503156110895555627950314243631212884403789738798912952342903173531239548460279731737389177780888963601390007632740206971758168288655565740839456869859987234301289279575744237875424934877334553166882327834194766594142060079274591074644860125513209631
r1=49245704019587304783432026346697198219466344540163950421828056046444275192818156943561730634400908346848212022514997008400382241770749277100087975250466543127444893918796739656236307644800948811268098887884695155722392280134773758409428739238237610090653877307271782793927307047376251480519281707395149092412
k1=8517774569098997892760628138684520809313836910858350099109979722587973523406037617300434205146680456152155243788946630338025608396821862022153037114217412289418703344033971295413132223118747188114046826645455051375475828312286667151417674171050072697602160934092302533534262418258332737244
l1=9857889533580710909
t1=11563044694383469367
拆分u′和d
w′=47471332709697678366492938178065886961023701757220626751402121568093157812265638776114592147498948708946587837256880487069061348662677967549807266064647886702062989197268780624127589589168350586320686515644969436269631593441588671487397589137042651966382883834272452321083136555039095604911681612980823801974
c2=90596948770150364048000877892182221465560823891306493726797635818161272171898911131753225250750489554436524749291394878404708704237672427276915547454503008706635321296440537705274159601765419691468373935120163288715390105330900230383073384121030060340698392575254232208473211998381522103359655085639487926476
r1=49245704019587304783432026346697198219466344540163950421828056046444275192818156943561730634400908346848212022514997008400382241770749277100087975250466543127444893918796739656236307644800948811268098887884695155722392280134773758409428739238237610090653877307271782793927307047376251480519281707395149092412
k1=8517774569098997892760628138684520809313836910858350099109979722587973523406037617300434205146680456152155243788946630338025608396821862022153037114217412289418703344033971295413132223118747188114046826645455051375475828312286667151417674171050072697602160934092302533534262418258332737244
l1=9857889533580710909
t1=11563044694383469367
將需要計(jì)算的值編成數(shù)對(duì)
步驟103:請(qǐng)求云服務(wù)器
步驟104:驗(yàn)證結(jié)果是否正確
對(duì)比兩組數(shù)據(jù)可以判斷云服務(wù)器是否正確執(zhí)行了計(jì)算。
若(1)式與(2)式相等,那么
ud=82117092050552679702225949257035880619580307026078641300088359385967631606796205658914328753157385089627620445619467820603445856157768179866218232390188712791950642344547496634909309416522245273324017979226128889354118557132025012897483069116709704940102378403216369351180185293321934151882862104525034908703
否則說明云服務(wù)器沒有執(zhí)行正確的計(jì)算。
本發(fā)明方法能夠?qū)崿F(xiàn)輸入、輸出信息的隱私保護(hù),通過使用數(shù)學(xué)分割的方式來隱藏原始的數(shù)據(jù),使得云服務(wù)器在外包計(jì)算的過程中不能獲得有關(guān)輸入和輸出任何敏感信息。外包結(jié)果的可驗(yàn)證概率有了很大的提高,可以通過等式(3)實(shí)現(xiàn)對(duì)外包計(jì)算結(jié)果的100%驗(yàn)證。如果服務(wù)器不誠實(shí),用戶檢測(cè)出錯(cuò)誤的概率將接近于100%。