儀張倩,溫琳雅,張維鑫
(長安大學(xué) 信息工程學(xué)院,西安 710064)
近年來,云計(jì)算[1]作為一種新的計(jì)算模型,吸引了人們的廣泛關(guān)注.云存儲作為云計(jì)算的重要組成部分,已經(jīng)被人們以極大優(yōu)勢頻繁地用于存儲數(shù)據(jù).比如,數(shù)據(jù)所有者不再需要處理大量的數(shù)據(jù),無論數(shù)據(jù)使用者所處何地,查閱資料都很方便.由于云存儲有很多優(yōu)勢,越來越多的用戶選擇將他們的數(shù)據(jù)存儲在知名的云服務(wù)器(CSP)上.例如,大家所熟知的谷歌、微軟等大型網(wǎng)絡(luò)公司均有云存儲的服務(wù);在國內(nèi),百度云和微云則是市場占有量最大的存儲云.此外,通過CSP 提供的數(shù)據(jù)存儲和共享服務(wù),使人們可以很輕松地進(jìn)行團(tuán)隊(duì)合作.更具體地說,一旦用戶在云端創(chuàng)建了共享數(shù)據(jù),用戶群內(nèi)的每個(gè)用戶不僅可以訪問和修改共享數(shù)據(jù),還可以與群內(nèi)其他人共享最新版本的數(shù)據(jù).雖然數(shù)據(jù)存儲和共享服務(wù)使數(shù)據(jù)所有者可以方便地訪問、修改和共享用戶群內(nèi)的數(shù)據(jù),以致用戶從這種數(shù)據(jù)管理方式中受益匪淺,但是數(shù)據(jù)外包到云上進(jìn)行存儲的方式也引發(fā)了嚴(yán)重的安全問題.首先,一旦用戶數(shù)據(jù)被外包到CSP 上,用戶失去了對數(shù)據(jù)的直接控制權(quán)[2],這使得用戶擔(dān)心CSP是否正確地存儲了用戶數(shù)據(jù).例如,CSP 可能由于軟件或者硬件故障[3,4]遭受內(nèi)部敵手或者外部敵手的攻擊.其次,惡意的CSP 可能刪除極少被訪問的數(shù)據(jù)以節(jié)省存儲空間或者掩蓋數(shù)據(jù)被損壞的事實(shí)以維持自身的良好聲譽(yù).因此,如何保證用戶外包數(shù)據(jù)的完整性[5-8]是至關(guān)重要的問題之一.
為了解決數(shù)據(jù)完整性問題,一些基于傳統(tǒng)密碼學(xué)的公開審計(jì)方案[5,9,10]被提出.其中,用戶的公、私鑰是通過數(shù)字證書發(fā)放,通信效率低,計(jì)算量大,證書的管理成本高.為了解決復(fù)雜的證書管理問題,Shamir 等人[11]引入基于身份的密碼體制概念.在基于身份的密碼體制中,用已知的身份信息作為公鑰,來避免使用公鑰證書.之后,基于身份的可證明數(shù)據(jù)擁有方案[12-18]被提出,但是這些方案[12-18]大多利用雙線性對技術(shù)和映射到點(diǎn)的哈希函數(shù)來實(shí)現(xiàn)完整性認(rèn)證,需要昂貴的時(shí)間和通信成本,造成很大的計(jì)算和存儲負(fù)擔(dān).
為了在實(shí)現(xiàn)數(shù)據(jù)共享服務(wù)的同時(shí),高效實(shí)現(xiàn)用戶可撤銷,本文提出了一種高效的隱私保護(hù)可證明數(shù)據(jù)擁有方案.首先,所提方案采用基于橢圓曲線密碼學(xué)[19,20]實(shí)現(xiàn)了無對認(rèn)證,并且不使用映射到點(diǎn)的哈希函數(shù),極大地減少了通信和計(jì)算代價(jià)[21,22].其次,所提方案采用中國剩余定理[23]實(shí)現(xiàn)了高效安全的用戶撤銷[24,25],在實(shí)現(xiàn)隱私保護(hù)的同時(shí),保證方案的高效性.最后,在設(shè)定的實(shí)驗(yàn)?zāi)P拖?給出了所提方案的計(jì)算和通信成本分析,證明所提方案的效率高于已知方案[15-17].
橢圓曲線密碼學(xué)的概念是由Miller[19]和Koblitz[20]基于橢圓曲線提出.定義Fp是階為素?cái)?shù)p的有限域,則Fp上的橢圓曲線E上所有的點(diǎn)(x,y) 滿足等式y(tǒng)2=x3+a·x+bmodp,其中4a3+27b2≠0且a,b∈Fp.橢圓曲線E上的無窮遠(yuǎn)點(diǎn)O與其他點(diǎn)構(gòu)成一個(gè)循環(huán)加法群 G,群G的階為q,G 生成元為P.群 G 上的標(biāo)量乘法是θP=P+P+···+P(θtimes),這里θ ∈Z*q.
中國剩余定理[23]是一種古老的求解相同余數(shù)的方法,它是數(shù)論中的重要定理.設(shè)定k1,k2,···,kn互為素?cái)?shù),計(jì)算以及 βi滿足Mi×βi≡1 modki.對于整數(shù)var1,var2,···,varn,計(jì)算α=vari·Mi·βimodM,以下方程組成立:
(1)橢圓曲線離散對數(shù)問題(ECDL 問題):假定G是一個(gè)加法群,P是G的生成元,給定元組(P,a·P∈G),這里a∈Z*q且未知,ECDL 問題是計(jì)算a∈Z*q.
(2)橢圓曲線離散對數(shù)(ECDL 假設(shè)):任何概率多項(xiàng)式時(shí)間算法都不能以不可忽略的概率解決ECDL問題.
(3)計(jì)算性Diffie-Hellman 問題(CDH 問題):假定G1是一個(gè)循環(huán)加法群,P是G1的生成元.給定元組(P,a·P,b·P∈G1),這里a,b∈Z*q未知,CDH 問題就是計(jì)算a·b·P.
(4)計(jì)算性Diffie-Hellman 假設(shè)(CDH 假設(shè)):概率多項(xiàng)式時(shí)間算法都不能以不可忽略的概率解決CDH問題.
所提方案的系統(tǒng)模型圖,如圖1所示.其中,共有5 個(gè)參與者,包括密鑰生成中心(KGC),車輛用戶(Ui(i=1,2,···,n)),路邊單元(RSU),第三方審計(jì)者(TPA)和云服務(wù)器(CSP).
圖1 系統(tǒng)模型圖
(1)RSU:路邊單元,是具有足夠計(jì)算能力的霧設(shè)備,可以及時(shí)處理每個(gè)車輛用戶的傳感器產(chǎn)生的信息,并將其上傳到CSP.在本文中看作車輛用戶群的群管理者GM,后續(xù)內(nèi)容不再贅述.
(2)Ui(i=1,2,···,n):車輛用戶.n個(gè) 車輛用戶Ui組成一個(gè)車輛用戶群,由群管理者GM (即RSU)為其分發(fā)私鑰和上傳數(shù)據(jù).每個(gè)車輛用戶Ui都可以通過云儲存與其他用戶共享數(shù)據(jù).離開的用戶不能上傳數(shù)據(jù)或者通過云存儲訪問共享數(shù)據(jù).
(3)KGC:密鑰生成中心,是一個(gè)完全可信的參與者,具有強(qiáng)大的計(jì)算和存儲能力,負(fù)責(zé)初始化整個(gè)系統(tǒng)以生成主密鑰和公共參數(shù),并且為用戶群生成和分配群私鑰.
(4)CSP:云服務(wù)器,是一個(gè)半可信實(shí)體,具有強(qiáng)大存儲空間和計(jì)算能力.云服務(wù)器在接收到第三方審計(jì)者發(fā)來的審計(jì)請求時(shí),為第三方審計(jì)者生成相應(yīng)的審計(jì)證據(jù).所有數(shù)據(jù)都存儲在云服務(wù)器中,所有的用戶通過云服務(wù)器實(shí)現(xiàn)數(shù)據(jù)共享服務(wù).
(5)TPA:第三方審計(jì)者,作為一個(gè)半可信的實(shí)體,接受用戶群的審計(jì)委托,向云服務(wù)器發(fā)送審計(jì)詢問,并根據(jù)云服務(wù)器返回的證據(jù)確定共享數(shù)據(jù)是否完整存儲在云服務(wù)器中.
作為一個(gè)基于身份的共享數(shù)據(jù)云存儲審計(jì)方案,需要滿足下面的安全需求:
公開審計(jì):TPA 能夠代表用戶認(rèn)證CSP 中存儲的數(shù)據(jù)的完整性.
存儲正確性:如果用戶,TPA和CSP 都是誠實(shí)的,并且正確地執(zhí)行了指定的算法,那么CSP 生成的證據(jù)能夠通過TPA的完整性認(rèn)證.
安全用戶撤銷:確保被撤銷的用戶無法像CSP 上傳數(shù)據(jù)和數(shù)據(jù)標(biāo)簽.
數(shù)據(jù)隱私保護(hù):TPA 在審計(jì)階段不能獲得CSP 中存儲的任何數(shù)據(jù).
方案由7 個(gè)算法組成,包括系統(tǒng)建立算法,密鑰生成算法,標(biāo)簽生成算法,挑戰(zhàn)生成算法,證據(jù)生成算法,證據(jù)認(rèn)證算法,和用戶撤銷算法.
由KGC 執(zhí)行,輸入安全參數(shù) ξ,輸出系統(tǒng)參數(shù)params和主密鑰msk.
(1)給定一個(gè)安全參數(shù)ξ,基于定義在有限域Fp上的橢圓曲線E,選擇一個(gè)階為q的群G,并且群G的生成元為P.
(2)隨機(jī)選擇s∈Z*q,計(jì)算Ppub=s·P.
(3)選擇密碼學(xué)安全的哈希函數(shù):h1:{0,1}*→Z*q,h2:{0,1}*→Z*q.
KGC 保存主密鑰msk=s,公開系統(tǒng)參數(shù)params={q,P,G,Ppub,h1,h2,ψ,π}.
由KGC,群管理者GM和合法的車輛群用戶Ui(i=1,2,···,n)執(zhí)行:
(1)在接收到GM的身份ID后,KGC 隨機(jī)選擇rID∈Z*q,計(jì)算RID=rID·P,skID=rID+s·h1(RID||ID).KGC 設(shè)置(skID,RID)為身份密鑰,并將其發(fā)送給GM.
(2)GM 接收到(skID,RID)之 后,認(rèn)證等式skID·P=RID+Ppub·h(RID||ID)是否成立.如果成立,接受身份私鑰(skID,RID);否則,拒絕它.
(3)GM 隨機(jī)選擇,ki∈Z*q(i=1,2,3,···,n) 計(jì)算S=計(jì)算yi以滿足xi×yi≡1 modki,并計(jì)算
(4)GM 隨機(jī)選擇skGM∈Z*q作為n個(gè)用戶的部分私鑰,計(jì)算pkGM=skGM·P.GM 計(jì)算車輛群用戶私鑰sk=skID+skGM和W=sk·w=并將ki(i=1,2,···,n) 以秘密信道發(fā)送給每個(gè)車輛群用戶Ui,將W||S igmsk(W)以公開信道發(fā)送給每個(gè)合法的車輛群用戶Ui.
(5)每個(gè)Ui接收到W||S igmsk(W)之后,認(rèn)證S igmsk(W)的有效性.如果認(rèn)證失敗,Ui回復(fù)“拒絕”,算法終止;否則,合法的群用戶Ui可以分解出W,并計(jì)算Wmodki=sk,得到群私鑰sk.
給定原始文件F,Ui執(zhí)行:
(1)將原始文件F分為n個(gè)塊,得到F={m1,m2,···,mn},且mi∈Zp,i∈{1,2,···,n}.
(2)對于每個(gè)i∈{1,2,···,n},隨機(jī)選擇ri∈Z*q(i=1,2,3,···,n),計(jì)算Ri=ri·P,σi=ri·mi+sk·h2(IDF||pkGM||RID||Ri),這里IDF表示文件標(biāo)識符,i表示文件第i個(gè)數(shù)據(jù)塊的索引標(biāo)識符,pkGM和RID為用戶群公鑰.
Ui生成文件標(biāo)簽σ={(σi,Ri)}i∈[1,n],上傳至CSP.
當(dāng)收到來自Ui的審計(jì)請求之后,由TPA 執(zhí)行:
隨機(jī)選擇k1,k2∈Z*q,c∈[1,n],生成挑戰(zhàn)消息chal={c,k1,k2},將其發(fā)送給CSP.
在接收到來自TPA的挑戰(zhàn)消息之后,由CSP 執(zhí)行:
(1)計(jì)算vj=ψk1(j),wj=πk2(j),1≤j≤c,得到Q={vj,wj}1≤j≤c.
給定proo f={a,b},由TPA 執(zhí)行:
(1)對于所有的j∈Q,計(jì)算H(IDi‖pk‖Ri),認(rèn)證等式a=是否成立.
(2)如果等式成立,說明CSP 正確存儲了用戶的數(shù)據(jù),發(fā)送“成功”給Ui;否則,發(fā)送“失敗”給Ui.
當(dāng)用戶群內(nèi)有用戶離開或者由于不合法的行為被撤銷時(shí),由群管理者GM和合法群用戶執(zhí)行:
(1)當(dāng)用戶Ui從用戶群 U中撤銷時(shí),GM 計(jì)算w′=w-wi.
(2)GM 選擇一個(gè)新的部分私鑰skG′M∈Z*q,并計(jì)算其對應(yīng)的公鑰pkG′M=skG′M·P,車輛群用戶私鑰sk′=skID+skG′M和W=sk′·w′,生成更新密鑰的消息W′=sk′×w′,并將其以公開信道發(fā)送給每個(gè)合法的車輛群用戶Ui.
(3)車輛群用戶Ui接受到更新密鑰的消息W=sk′·w′之后,計(jì)算W′modki=sk′,即可以得到新的群私鑰sk′.
由所提方案可知,如果TPA和CSP 都是誠實(shí)的,并且正確地執(zhí)行了指定的算法,且proof={a,b}滿足下列等式成立,那么所提方案是正確的.
由于等式成立,因此,所提方案是正確的.
(1)公開審計(jì):所提方案中,TPA 能夠代表用戶對CSP 發(fā)起審計(jì)挑戰(zhàn),并且可以通過系統(tǒng)公開參數(shù),用戶群的公鑰pk和挑戰(zhàn)消息chal={c,k1,k2},對來自CSP的審計(jì)證據(jù)的正確性進(jìn)行認(rèn)證.
(2)存儲正確性:通過對方案的正確性分析,我們得到,如果用戶,TPA和CSP 都是誠實(shí)的,并且正確地執(zhí)行了指定的算法,那么CSP 生成的證據(jù)能夠通過TPA的完整性認(rèn)證.
(3)安全的用戶撤銷:每當(dāng)有群用戶離開,新的群用戶加入和不合法的群用戶被撤銷時(shí),都生成新的用戶群私鑰sk′.因此,除了KGC和合法的群用戶之外,被撤銷的群用戶,沒有加入的群用戶和不合法的用戶不可能得到新生成的私鑰的任何消息,無法上傳用戶數(shù)據(jù)和相應(yīng)的標(biāo)簽.
(4)數(shù)據(jù)隱私保護(hù):在TPA 對CSP 進(jìn)行審計(jì)的過程中,TPA 不能從proof={a,b}中得到存儲在CSP 中消息的任何內(nèi)容,這里Rvj.首先,TPA 嘗試對b求解得到數(shù)據(jù)消息mvj,但是由于Rvj=rvj·P,這相當(dāng)于解ECDL 問題.因此,TPA 不能從b中得到有關(guān)數(shù)據(jù)消息mvj的任何內(nèi)容.其次,TPA 嘗試對a求解得到數(shù)據(jù)消息mvj,但是由證明得到,由于我們不能解ECDL 問題,因此,無法得到有關(guān)數(shù)據(jù)消息mvj的任何內(nèi)容.綜上所述,所提方案滿足數(shù)據(jù)隱私保護(hù).
為了滿足80 bit的安全性,對于現(xiàn)存方案[15-17],選擇雙線性對e:G1×G1→G2,群 G1的階為p,p是512 bit的素?cái)?shù).對于所提方案,選擇橢圓曲線上的加法群 G,群 G的階為q,q是160 bit的素?cái)?shù).基于C++MIRACL Crypto SDK 庫[26],仿真實(shí)驗(yàn)在CPU為英特爾i5(2.53 GHz),內(nèi)存為4 GB的64 位Windows 10 操作系統(tǒng)下進(jìn)行.表1給出了相關(guān)密碼操作運(yùn)行10 000 次的平均時(shí)間.表2給出了已知方案[15-17]和所提方案計(jì)算代價(jià)的比較.
表1 密碼運(yùn)算的運(yùn)行時(shí)間
表2 計(jì)算代價(jià)對比
圖2-圖4分別表示標(biāo)簽生成階段,證明生成階段和證據(jù)認(rèn)證階段的計(jì)算代價(jià)比較.正如圖2-圖4顯示,所提方案的計(jì)算代價(jià)明顯低于已知方案[15-17].并且,隨著文件塊數(shù)量n的增加,所提方案的優(yōu)勢更加明顯,具體原因如下.首先,由于已知方案[15-17]的完整性認(rèn)證是基于雙線性對技術(shù),因此,已知方案[15-17]大多使用群G1下的標(biāo)量加法運(yùn)算,群 G1下的標(biāo)量乘法運(yùn)算,映射到點(diǎn)的哈希函數(shù)運(yùn)算和雙線性對運(yùn)算.其次,由于所提方案的完整性認(rèn)證是基于橢圓曲線技術(shù),因此,所提方案大多使用群 Z*q下的標(biāo)量加法運(yùn)算,群 Z*q下的標(biāo)量乘法運(yùn)算,ECC 下的標(biāo)量加法運(yùn)算,ECC 下的標(biāo)量乘法運(yùn)算和普通哈希運(yùn)算.此外,由表1可得,群 G1下的標(biāo)量加法和乘法運(yùn)算遠(yuǎn)遠(yuǎn)大于群 Z*q和ECC 下的標(biāo)量加法和乘法運(yùn)算,映射到點(diǎn)的哈希運(yùn)算遠(yuǎn)遠(yuǎn)大于普通哈希運(yùn)算,并且雙線性對運(yùn)算花費(fèi)很大的計(jì)算和通信成本.因此,所提方案的計(jì)算代價(jià)明顯低于已知方案[15-17].
圖2 標(biāo)簽生成的計(jì)算代價(jià)比較
圖4 證據(jù)認(rèn)證的計(jì)算代價(jià)比較
為滿足80 bit的安全性,|G1|,| Z*q|,| G|,|n|分別為512 bit,160 bit,160 bit和32 bit.通信代價(jià)主要討論從TPA 到CSP 挑戰(zhàn)信息和從CSP 到TPA的響應(yīng)信息.表3展示了本方案與現(xiàn)存方案[15-17]在通信代價(jià)方面的比較.
圖3 證據(jù)生成的計(jì)算代價(jià)比較
如表3所示,首先,從TPA 到CSP,現(xiàn)存方案[15-17]有相同的1 92×cbit的通信代價(jià).顯然,從TPA 到CSP,隨著挑戰(zhàn)塊數(shù)量的增加,現(xiàn)存方案的通信代價(jià)線性增加,而所提方案的通信代價(jià)保持不變,保持 4 80 bit的通信代價(jià).因此,在挑戰(zhàn)生成階段,所提方案的通信代價(jià)明顯低于已知方案[15-17].
表3 通訊數(shù)據(jù)對比 (bit)
其次,從CSP 到TPA,現(xiàn)存方案[15-17]的通信代價(jià)都保持不變,分別為1 184 bit,672 bit,672 bit,320 bit.因此,在證據(jù)生成階段,所提方案的通信代價(jià)明顯低于已知方案[15-17].
為了解決復(fù)雜的證書管理問題,一些基于身份的可證明數(shù)據(jù)擁有方案被提出.但是,這些方案大都采用昂貴的雙線性對運(yùn)算和映射到點(diǎn)的哈希函數(shù),具有很大的通信和計(jì)算代價(jià).本文采用橢圓曲線技術(shù)和中國剩余定理技術(shù)提出了一種高效的隱私保護(hù)可證明數(shù)據(jù)擁有方案,在保證方案隱私和效率的同時(shí),實(shí)現(xiàn)了高效安全的用戶撤銷.安全性分析表明,所提方案能夠滿足基于身份的可證明數(shù)據(jù)擁有方案的安全需求.計(jì)算代價(jià)和通信代價(jià)的分析表明,與現(xiàn)存方案[15-17]相比,所提方案具有較低的通信和計(jì)算代價(jià).在本文的基礎(chǔ)上,可進(jìn)一步研究用戶如何以更低的代價(jià)將數(shù)據(jù)和標(biāo)簽上傳到多個(gè)CSP 上,以及防止如何進(jìn)一步防止CSP和TPA的合謀攻擊.