亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種支持全更新操作的數(shù)據(jù)庫(kù)驗(yàn)證系統(tǒng)及方法與流程

文檔序號(hào):11654390閱讀:608來(lái)源:國(guó)知局
一種支持全更新操作的數(shù)據(jù)庫(kù)驗(yàn)證系統(tǒng)及方法與流程

本發(fā)明屬于數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域,尤其涉及一種支持全更新操作的數(shù)據(jù)庫(kù)驗(yàn)證系統(tǒng)及方法。



背景技術(shù):

隨著通信網(wǎng)絡(luò)、云計(jì)算技術(shù)的快速發(fā)展,受到資源約束的企業(yè)和個(gè)人將其大型數(shù)據(jù)庫(kù)外包到云存儲(chǔ)服務(wù)器中。數(shù)據(jù)的存儲(chǔ)、組織、管理以及可靠性、可用性保證均由云服務(wù)提供商負(fù)責(zé),使得用戶不必構(gòu)建自己的數(shù)據(jù)中心,降低了用戶的成本。然而云存儲(chǔ)技術(shù)給人們帶來(lái)極大存儲(chǔ)便利的同時(shí),也帶來(lái)了巨大的安全挑戰(zhàn)。由于數(shù)據(jù)的位置和組織方式對(duì)用戶是透明的,在云平臺(tái)和云服務(wù)提供商不完全可信的云存儲(chǔ)環(huán)境中,存放在云端服務(wù)器上的數(shù)據(jù)極有可能被惡意攻擊者刪除、篡改、污染,或者由于云存儲(chǔ)服務(wù)器的損壞、崩潰造成存儲(chǔ)數(shù)據(jù)的丟失。

目前針對(duì)云存儲(chǔ)數(shù)據(jù)的完整性驗(yàn)證和恢復(fù)已經(jīng)有較多成果,merkle哈希樹(shù)(cn201310185462.0,cn201310246856.0)、動(dòng)態(tài)por(proofsofretrievability)(cn201410350589.8)等方法進(jìn)行驗(yàn)證,但對(duì)于云端數(shù)據(jù)庫(kù)整體仍缺乏有效的驗(yàn)證方法。為了實(shí)現(xiàn)云端數(shù)據(jù)庫(kù)的完整性驗(yàn)證,benabbas,gennaro和vahlis首次引入了可驗(yàn)證數(shù)據(jù)庫(kù)(簡(jiǎn)稱vdb)的概念,使得資源受限的客戶端能夠在有限資源環(huán)境下驗(yàn)證云端所存儲(chǔ)的一個(gè)非常大的數(shù)據(jù)庫(kù),為以后高效地檢索和更新數(shù)據(jù)庫(kù)記錄提供便利(backesm,fiored,reischukrm.verifiabledelegationofcomputationonoutsourceddata[c].proceedingsofthe2013acmsigsacconferenceoncomputer&communicationssecurity.acm,2013:863-874.)。如果服務(wù)器試圖篡改數(shù)據(jù)庫(kù),它將被用戶檢測(cè)到。同時(shí),客戶端在vdb方案中使用的計(jì)算和存儲(chǔ)資源不取決于數(shù)據(jù)庫(kù)的大小。第一個(gè)實(shí)用的vdb方案是通過(guò)使用多項(xiàng)式的可驗(yàn)證委托的原語(yǔ)構(gòu)造的。然而,該方案不具有公開(kāi)可驗(yàn)證的屬性。也就是說(shuō),只有數(shù)據(jù)庫(kù)的所有者可以驗(yàn)證數(shù)據(jù)的正確性,不支持第三方仲裁驗(yàn)證。為此,catalano和fiore提出了一個(gè)基于原始向量承諾構(gòu)建可公開(kāi)驗(yàn)證的vdb方案(d.catalanoandd.fiore,vectorcommitmentsandtheirapplications,pkc2013,lncs7778,springer-verlag,pp.55-72,2013.)。在該方案基礎(chǔ)上,chen指出catalano-fiore的vdb框架的安全弱點(diǎn),然后利用承諾約束的想法提出一個(gè)新的可公開(kāi)驗(yàn)證的vdb方案。其中,所有計(jì)算結(jié)構(gòu)都基于雙線性組中的標(biāo)準(zhǔn)大小假設(shè),因此對(duì)于真實(shí)世界應(yīng)用是高效的(x.chen,j.li,x.huang,j.ma,andw.lou,newpubliclyverifiabledatabaseswithefficientupdates,ieeetransactionsondependableandsecurecomputing,inpress,2015)。

然而,現(xiàn)有vdb方案都僅支持替代這種更新操作,主要原因是外包數(shù)據(jù)庫(kù)的數(shù)據(jù)記錄條數(shù)必須是固定的,當(dāng)數(shù)據(jù)庫(kù)發(fā)生插入操作時(shí),則無(wú)法對(duì)新加入的數(shù)據(jù)進(jìn)行驗(yàn)證,需要重新計(jì)算和生成公共參數(shù)及承諾向量,復(fù)雜度為o(q)的冪級(jí)(其中q表示數(shù)據(jù)庫(kù)的大小),這將給客戶端的配置階段帶來(lái)巨大的額外開(kāi)銷。2016年,miao提出了層次化基于承諾向量vdb方法來(lái)支持全更新操作(插入、刪除、替換)(m.miao,j.wang,j.ma,andw.susilo,publiclyverifiabledatabaseswithefficientinsertion/deletionoperations,journalofcomputerandsystemsciences)。然而,當(dāng)客戶端在數(shù)據(jù)庫(kù)的相同位置連續(xù)插入數(shù)據(jù)記錄時(shí),層次式承諾中的級(jí)別數(shù)量線性增加。因此,云服務(wù)器(而不是客戶端)的計(jì)算和存儲(chǔ)過(guò)載也將線性增加,并且這降低了vdb方案的效率。

為了保證數(shù)據(jù)在存儲(chǔ)過(guò)程中不會(huì)被非法用戶、非可信第三方、非可信云服務(wù)器進(jìn)行修改,因此需要對(duì)數(shù)據(jù)庫(kù)的完整性進(jìn)行驗(yàn)證。傳統(tǒng)的數(shù)據(jù)庫(kù)驗(yàn)證方案可支持替換的更新操作,但僅限于固定大小的數(shù)據(jù)庫(kù),且當(dāng)發(fā)生插入更新操作時(shí),需要重新計(jì)算向量承諾,帶來(lái)巨大的額外開(kāi)銷。然而,現(xiàn)在越來(lái)越多的應(yīng)用需求是用戶對(duì)存儲(chǔ)在云上的數(shù)據(jù)進(jìn)行頻繁插入、替換、刪除等操作,同時(shí)在數(shù)據(jù)進(jìn)行動(dòng)態(tài)更新時(shí),要求數(shù)據(jù)動(dòng)態(tài)更新帶來(lái)的開(kāi)銷盡可能小。因此,在動(dòng)態(tài)云數(shù)據(jù)庫(kù)的存儲(chǔ)環(huán)境下不能直接運(yùn)用現(xiàn)有的數(shù)據(jù)庫(kù)驗(yàn)證方法。

綜上所述,現(xiàn)有技術(shù)存在的問(wèn)題是:由于重新生成驗(yàn)證所需的公共參數(shù)及向量承諾開(kāi)銷比較大,受固定大小限制的傳統(tǒng)數(shù)據(jù)庫(kù)驗(yàn)證方案僅支持替換操作,無(wú)法支持插入和刪除操作。而在如今信息化高速發(fā)展的今天,數(shù)據(jù)庫(kù)固定大小必將無(wú)法滿足日益增長(zhǎng)的數(shù)據(jù)存儲(chǔ)需求。為此,如何在保證客戶端性能要求下實(shí)現(xiàn)對(duì)動(dòng)態(tài)數(shù)據(jù)庫(kù)全更新操作的支持(插入、刪除及替換)是本發(fā)明的主要貢獻(xiàn)點(diǎn)。



技術(shù)實(shí)現(xiàn)要素:

針對(duì)現(xiàn)有技術(shù)存在的問(wèn)題,本發(fā)明提供了一種支持全更新操作的數(shù)據(jù)庫(kù)驗(yàn)證系統(tǒng)及方法。

本發(fā)明是這樣實(shí)現(xiàn)的,為了消除由于插入操作導(dǎo)致數(shù)據(jù)庫(kù)中公共參數(shù)及向量承諾重新計(jì)算的額外開(kāi)銷,本發(fā)明基于布隆過(guò)濾器設(shè)計(jì)了新的數(shù)據(jù)索引結(jié)構(gòu)—遞增式帶承諾的可逆布隆過(guò)濾器。在此,本發(fā)明首先給出了一種帶承諾的可逆布隆過(guò)濾器,所述帶承諾的可逆布隆過(guò)濾器定義如下:

為兩個(gè)隨機(jī)散列函數(shù);定義每個(gè)cibf單元b[i](1≤i≤q)中包含三個(gè)字段:

“count”字段,初始值為0:計(jì)數(shù)器字段,其中存儲(chǔ)單元b[i]中的所有元素的數(shù)量1≤i≤q;b[i]中元素x的插入或刪除等于b[i].count加1或減1;

“idhash”字段,具有初始值χ(0):承諾值字段,其存儲(chǔ)b[i]中所有有序元素的散列值χ(·);

定義b[q+1].count和b[q+1].idhash字段分別代表數(shù)據(jù)庫(kù)前q項(xiàng)數(shù)據(jù)的f(count)和idhash的向量承諾,即b[q+1].count=vc(f(b[0].count),...,f(b[q].count)),b[q+1].idhash=vc(χ(b[0].count),...,χ(b[q].count))。在以上定義的基礎(chǔ)上,本發(fā)明的另一目的在于設(shè)計(jì)了一種遞增式帶承諾的可逆布隆過(guò)濾器,所述遞增式帶承諾的可逆布隆過(guò)濾器具體擴(kuò)展定義如下:

定義將“count”字段定義為遞增序列(b1,b2,...,bq);數(shù)據(jù)的索引過(guò)程如下:

1)對(duì)于查詢索引服務(wù)器首先確定單元索引x,1≤x≤q且

2)服務(wù)器將bx-1和bx的信息以及對(duì)應(yīng)的驗(yàn)證憑據(jù)交給客戶端;

3)若驗(yàn)證憑據(jù)合法,則客戶端確定索引是第x單元中第l個(gè)元素,即其中

本發(fā)明的另一目的在于提供一種利用所述遞增式帶承諾的可逆布隆過(guò)濾器的數(shù)據(jù)庫(kù)驗(yàn)證方法,所述數(shù)據(jù)庫(kù)驗(yàn)證方法包括:

(1)配置階段:由客戶端對(duì)可驗(yàn)證數(shù)據(jù)庫(kù)進(jìn)行初始化操作setup(1k,db),定義公共參數(shù)pp,計(jì)算向量承諾cc,生成驗(yàn)證參數(shù)(公鑰pk、數(shù)據(jù)庫(kù)編碼s及私鑰sk),并將相關(guān)信息連同數(shù)據(jù)庫(kù)一同上傳給服務(wù)器,用于后續(xù)用戶查詢數(shù)據(jù)過(guò)程中對(duì)數(shù)據(jù)庫(kù)完整性的驗(yàn)證;配置函數(shù)setup(1k,db)中k表示安全參數(shù),db表示所操作數(shù)據(jù)庫(kù),即db=(x,vx),1≤x≤q;

(2)查詢階段:客戶端提交查詢請(qǐng)求數(shù)據(jù)庫(kù)定位客戶端所查詢數(shù)據(jù),并根據(jù)驗(yàn)證參數(shù)計(jì)算驗(yàn)證憑據(jù),然后連同數(shù)據(jù)一起發(fā)給客戶端;查詢操作中,pk代表公鑰,s代表數(shù)據(jù)庫(kù)編碼,代表客戶端查詢數(shù)據(jù)的索引;

(3)驗(yàn)證階段:客戶端對(duì)服務(wù)器憑證進(jìn)行驗(yàn)證驗(yàn)證合法輸出所查詢數(shù)據(jù);否則輸出驗(yàn)證出錯(cuò);

(4)更新階段:當(dāng)客戶端發(fā)生替換、刪除和插入操作時(shí),服務(wù)器端數(shù)據(jù)庫(kù)進(jìn)行更新,同時(shí)由客戶端協(xié)同服務(wù)器修正驗(yàn)證參數(shù)。

進(jìn)一步,所述(1)具體配置過(guò)程如下:

1)定義公共參數(shù)pp

表示素?cái)?shù)階p的循環(huán)乘法組具備雙線性對(duì)應(yīng)關(guān)系g表示的生成函數(shù),表示加密散列函數(shù);

從素?cái)?shù)空間中隨機(jī)選擇q個(gè)元素并計(jì)算1≤i,j≤q且i≠j;

生成公共參數(shù)其中消息空間

2)計(jì)算向量承諾cc,生成后續(xù)驗(yàn)證參數(shù)

根據(jù)公共參數(shù)pp,計(jì)算計(jì)數(shù)字段(1,2,...,q)的向量承諾以及數(shù)據(jù)記錄(v1,v2,...,vq)的向量承諾

客戶端隨機(jī)選擇1個(gè)元素生成y=gy,然后計(jì)算并將h0發(fā)送給服務(wù)器端;其中,t表示計(jì)數(shù)器且初值為0;

若h0合法,服務(wù)器將(h0,cc,cr,t)信息添加到輔助信息aux中;

計(jì)算完成后,配置以下驗(yàn)證參數(shù):公鑰pk=(pp,y,cc,cr),數(shù)據(jù)庫(kù)編碼s=(pp,aux,db),私鑰sk=y(tǒng)。

進(jìn)一步,所述(2)具體過(guò)程如下:

當(dāng)前計(jì)數(shù)字段數(shù)為(b1,b2,...,bq),其中定義則有

給定查詢索引服務(wù)器首先確定單元索引1≤x≤q,且滿足(定義b0=0);

然后服務(wù)器計(jì)算生成驗(yàn)證憑證

服務(wù)器將驗(yàn)證憑證與數(shù)據(jù)一同返回給客戶端。

進(jìn)一步,所述(3)具體過(guò)程如下:客戶端根據(jù)服務(wù)器憑證中的信息,分別計(jì)算e(h0,g)和和e(πx,g);并且驗(yàn)證以下三個(gè)條件是否滿足:

1)e(h0,g)等于

2)等于

3)等于e(πx,g);

當(dāng)以上三個(gè)條件同時(shí)滿足時(shí),表明數(shù)據(jù)庫(kù)未被篡改,驗(yàn)證通過(guò);客戶端根據(jù)獲得所要訪問(wèn)的數(shù)據(jù)

進(jìn)一步,所述(4)中替換操作包括:

客戶端首先從服務(wù)器獲取當(dāng)前記錄即客戶端從服務(wù)器獲得證明τ,并驗(yàn)證通過(guò);

然后,更新t=t+1,同時(shí),客戶端計(jì)算cc′=cc,客戶端將發(fā)送給服務(wù)器;

若tx′合法,服務(wù)器使用來(lái)替換數(shù)據(jù)庫(kù)中數(shù)據(jù)單元x中所存儲(chǔ)的數(shù)據(jù),即同時(shí),服務(wù)器更新公鑰pk=(pp,y,cc′,cr′),并將數(shù)據(jù)庫(kù)編碼s中的輔助信息(h0,cc,cr,t)更新為(tx′,cc′,cr′,t)。

進(jìn)一步,所述(4)中刪除操作的更新過(guò)程是替換操作中vx′=φ的情況。

進(jìn)一步,所述(4)中插入操作包括:

當(dāng)客戶端在數(shù)據(jù)單元x中的之后插入數(shù)據(jù)v*,即

然后,更新t=t+1;同時(shí),客戶端計(jì)算客戶端將發(fā)送給服務(wù)器;

若tx′合法,服務(wù)器使用來(lái)替換數(shù)據(jù)庫(kù)中數(shù)據(jù)單元x中所存儲(chǔ)的數(shù)據(jù),即同時(shí),服務(wù)器更新布隆過(guò)濾器中數(shù)據(jù)單元x之后所有單元i(x≤i≤q)的計(jì)數(shù)字段,即bi=bi+1;最后服務(wù)器更新公鑰pk=(pp,y,cc′,cr′),并將數(shù)據(jù)庫(kù)編碼s中的輔助信息(h0,cc,cr,t)更新為(tx′,cc′,cr′,t)。

本發(fā)明的另一目的在于提供一種應(yīng)用所述帶承諾的可逆布隆過(guò)濾器的動(dòng)態(tài)數(shù)據(jù)庫(kù)系統(tǒng)。

本發(fā)明的優(yōu)點(diǎn)及積極效果為:提出了帶承諾的可逆布隆過(guò)濾器和遞增式帶承諾的可逆布隆過(guò)濾器,解決了在有限范圍內(nèi)的數(shù)據(jù)逆向索引問(wèn)題;并在此基礎(chǔ)上,將布隆過(guò)濾器與承諾向量計(jì)算方法相結(jié)合,提出了支持全更新操作(插入、替換、刪除)的vdb方法,避免了傳統(tǒng)驗(yàn)證系統(tǒng)及方法中數(shù)據(jù)庫(kù)固定大小導(dǎo)致公共參數(shù)及向量承諾重新計(jì)算的額外開(kāi)銷,提高了vdb系統(tǒng)及方法的效率,且支持vdb系統(tǒng)大小的動(dòng)態(tài)變化,更加適用于現(xiàn)今網(wǎng)絡(luò)所使用的大部分的動(dòng)態(tài)數(shù)據(jù)庫(kù)系統(tǒng)。為動(dòng)態(tài)云數(shù)據(jù)庫(kù)的安全驗(yàn)證提供技術(shù)支撐,保證云端數(shù)據(jù)庫(kù)的完整性。

附圖說(shuō)明

圖1是本發(fā)明實(shí)施例提供的支持全更新操作的數(shù)據(jù)庫(kù)驗(yàn)證方法流程圖。

圖2是本發(fā)明實(shí)施例提供的cibf的插入和刪除操作示意圖。

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

下面結(jié)合附圖對(duì)本發(fā)明的應(yīng)用原理作詳細(xì)的描述。

如圖1所示,本發(fā)明實(shí)施例提供的支持全更新操作的數(shù)據(jù)庫(kù)驗(yàn)證方法包括以下步驟:

s101:配置階段:由客戶端對(duì)可驗(yàn)證數(shù)據(jù)庫(kù)(vdb)進(jìn)行初始化操作:定義公共參數(shù),計(jì)算向量承諾,生成驗(yàn)證參數(shù),并將相關(guān)信息連同數(shù)據(jù)庫(kù)一起上傳給服務(wù)器,用于后續(xù)用戶查詢數(shù)據(jù)過(guò)程中對(duì)數(shù)據(jù)庫(kù)完整性的驗(yàn)證;

s102:查詢階段:客戶端提交查詢請(qǐng)求,數(shù)據(jù)庫(kù)定位客戶端所查詢數(shù)據(jù),并根據(jù)驗(yàn)證參數(shù)計(jì)算驗(yàn)證憑據(jù),然后連同數(shù)據(jù)一起發(fā)給客戶端;

s103:驗(yàn)證階段:客戶端對(duì)服務(wù)器憑證進(jìn)行驗(yàn)證,驗(yàn)證合法輸出所查詢數(shù)據(jù);否則輸出驗(yàn)證出錯(cuò);

s104:更新階段:當(dāng)客戶端發(fā)生替換、刪除和插入操作(更新操作)時(shí),服務(wù)器端數(shù)據(jù)庫(kù)進(jìn)行更新,同時(shí)由客戶端協(xié)同服務(wù)器修正驗(yàn)證參數(shù)。

下面結(jié)合附圖對(duì)本發(fā)明的應(yīng)用原理作進(jìn)一步的描述。

為了對(duì)固定大小的數(shù)據(jù)庫(kù)驗(yàn)證方法進(jìn)行擴(kuò)展,本發(fā)明主要包括兩個(gè)部分的內(nèi)容,首先是帶承諾的可逆布隆過(guò)濾器,另一個(gè)則是支持全操作的數(shù)據(jù)庫(kù)驗(yàn)證方法。

1.帶承諾的可逆布隆過(guò)濾器

(1)帶承諾的可逆布隆過(guò)濾器定義

帶承諾的可逆布隆過(guò)濾器(cibf)是一種對(duì)布隆過(guò)濾器進(jìn)行擴(kuò)展后的數(shù)據(jù)結(jié)構(gòu),同時(shí)具有元素查詢和向量承諾功能,用于對(duì)存在插入及刪除操作的大數(shù)據(jù)集合s中的元素查詢。具體定義如下:

為兩個(gè)隨機(jī)散列函數(shù)。定義每個(gè)cibf單元(cell)b[i](1≤i≤q)中包含三個(gè)字段:

“count”字段(初始值為0):計(jì)數(shù)器字段,其中存儲(chǔ)單元b[i]中的所有元素的數(shù)量1≤i≤q。注意,b[i]中元素x的插入(或刪除)等于b[i].count加1(或減1)。

“idhash”字段(具有初始值χ(0)):承諾值字段,其存儲(chǔ)b[i]中所有有序元素的散列值χ(·)。

定義b[q+1].count和b[q+1].idhash字段分別代表數(shù)據(jù)庫(kù)前q項(xiàng)數(shù)據(jù)的f(count)和idhash的向量承諾,即b[q+1].count=vc(f(b[0].count),...,f(b[q].count)),b[q+1].idhash=vc(χ(b[0].count),...,χ(b[q].count))。

cibf的插入和刪除操作示例如圖2所示。

注意,插入/刪除是一個(gè)有序操作。一個(gè)cibf單元(cell)中的數(shù)據(jù)記錄(x,y)與(y,x)是不同的。在這里,記錄(x,y)表示把y插入到x的后面。另外,在該結(jié)構(gòu)下,允許不斷地執(zhí)行相同的操作插入操作(例如,在同一單元中多次插入x)。相比ibf模型,當(dāng)x已經(jīng)是集合中的元素的話,則無(wú)法再做插入操作。另一方面,如果我們要從一個(gè)cibf單元中的刪除記錄y,那么y必須是這個(gè)單元的元素。同樣對(duì)于ibf模型,不能刪除集合中不存在的元素y。

當(dāng)數(shù)據(jù)庫(kù)db上執(zhí)行一些更新(刪除/插入/替換)操作后,cibf的表示如表1所示的形式。

表1

其中,ai≥0,1≤i≤q表示在一個(gè)確定單元中數(shù)據(jù)記錄的個(gè)數(shù);表示了在同一單元i中的所有(有序)數(shù)據(jù)記錄所組成的向量。

(2)遞增式帶承諾的可逆布隆過(guò)濾器

在帶承諾的可逆布隆過(guò)濾器的支持下,實(shí)現(xiàn)了大型數(shù)據(jù)庫(kù)的高效安全更新。為了保證驗(yàn)證過(guò)程中數(shù)據(jù)記錄的正確索引,設(shè)計(jì)了遞增式帶承諾的可逆布隆過(guò)濾器(increasingcibf),即對(duì)于單元中的b[i].count是一個(gè)遞增的序列。具體擴(kuò)展定義如下:

對(duì)于如圖2所示的一般cibf數(shù)據(jù)結(jié)構(gòu),定義在此基礎(chǔ)上,將“count”字段定義為遞增序列(b1,b2,...,bq),如表2所示。

對(duì)于采用遞增式帶承諾的可逆布隆過(guò)濾器所描述的數(shù)據(jù)庫(kù)來(lái)講,數(shù)據(jù)的索引過(guò)程如下:

表2

1)對(duì)于查詢索引服務(wù)器首先確定單元索引x,1≤x≤q且

2)服務(wù)器將bx-1和bx的信息以及對(duì)應(yīng)的驗(yàn)證憑據(jù)交給客戶端。

3)若驗(yàn)證憑據(jù)合法,則客戶端可以確定索引是第x單元中第l個(gè)元素,即其中

2.支持全更新操作的數(shù)據(jù)庫(kù)驗(yàn)證過(guò)程

增量式cibf結(jié)構(gòu)實(shí)現(xiàn)了數(shù)據(jù)庫(kù)數(shù)據(jù)的有效索引,然而直接更新計(jì)數(shù)器字段上的向量承諾是非常低效的。如在單元x中執(zhí)行插入操作,則對(duì)于所有的x≤j≤q,需要更新其計(jì)數(shù)器和散列值字段。其中,計(jì)數(shù)器字段做bj←bj+1更新操作,而散列值字段則需要由客戶端執(zhí)行的中的q-x+1取冪的計(jì)算開(kāi)銷。

在此,使用分裂散列(hashsplitting)來(lái)解決這個(gè)問(wèn)題。在此令計(jì)數(shù)器字段上的承諾操作(即vc(f(b1),...,f(b2),...,f(bq)))為:則更新后計(jì)數(shù)器字段的承諾定義為:所以有這樣的話,除中q-x+1相乘外,只需要1次冪運(yùn)算。除此之外,為了減小客戶端計(jì)算開(kāi)銷,的值可以提前計(jì)算作為公共參數(shù)。因此,客戶端能夠高效地更新計(jì)數(shù)器字段所對(duì)應(yīng)的承諾值。

現(xiàn)在考慮更新計(jì)數(shù)器字段的一般情況。注意,db的原始計(jì)數(shù)器字段是(1,1,...,1),因此遞增式的布隆過(guò)濾器表示為(1,2,...,q)。假設(shè)更新后的計(jì)數(shù)器字段(b1,b2,...,bq),我們可以遞歸式計(jì)算承諾值因此,客戶端可以根據(jù)x,bx-x及相應(yīng)的驗(yàn)證憑據(jù)等信息計(jì)算出單元x所需要更新的計(jì)數(shù)段為bx。

支持全更新操作的數(shù)據(jù)庫(kù)驗(yàn)證過(guò)程包含以下4個(gè)階段:

(1)配置階段:由客戶端對(duì)可驗(yàn)證數(shù)據(jù)庫(kù)(vdb)進(jìn)行初始化操作setup(1k,db),定義公共參數(shù)pp,計(jì)算向量承諾cc和cr,生成驗(yàn)證參數(shù)(公鑰pk、數(shù)據(jù)庫(kù)編碼s及私鑰sk),并將相關(guān)信息連同數(shù)據(jù)庫(kù)一同上傳給服務(wù)器,用于后續(xù)用戶查詢數(shù)據(jù)過(guò)程中對(duì)數(shù)據(jù)庫(kù)完整性的驗(yàn)證。該階段主要由用戶端計(jì)算完成。其中,配置函數(shù)setup(1k,db)中k表示安全參數(shù),db表示所操作數(shù)據(jù)庫(kù),即db=(x,vx),1≤x≤q。具體配置過(guò)程如下:

1)定義公共參數(shù)pp

表示素?cái)?shù)階p的循環(huán)乘法組,具備雙線性對(duì)應(yīng)關(guān)系g表示的生成函數(shù),表示加密散列函數(shù)。

從素?cái)?shù)空間中選擇q個(gè)元素(即數(shù)據(jù)庫(kù)大小)并計(jì)算1≤i,j≤q且i≠j。

生成公共參數(shù)其中消息空間

2)計(jì)算向量承諾cc,生成后續(xù)驗(yàn)證參數(shù)

根據(jù)公共參數(shù)pp,計(jì)算計(jì)數(shù)字段(1,2,...,q)的向量承諾以及數(shù)據(jù)記錄(v1,v2,...,vq)的向量承諾

客戶端隨機(jī)選擇1個(gè)元素生成y=gy,然后計(jì)算并將h0發(fā)送給服務(wù)器端。其中,t表示計(jì)數(shù)器且初值為0。

若h0合法,服務(wù)器將(h0,cc,cr,t)信息添加到輔助信息aux中。

計(jì)算完成后,配置以下驗(yàn)證參數(shù):令公鑰pk=(pp,y,cc,cr),數(shù)據(jù)庫(kù)編碼s=(pp,aux,db),私鑰sk=y(tǒng)。

至此,數(shù)據(jù)庫(kù)驗(yàn)證配置完成,客戶端可以在后續(xù)的查詢過(guò)程中對(duì)數(shù)據(jù)庫(kù)的完整性進(jìn)行驗(yàn)證。

(2)查詢階段:客戶端提交查詢請(qǐng)求數(shù)據(jù)庫(kù)定位客戶端所查詢數(shù)據(jù),并根據(jù)公共參數(shù)計(jì)算驗(yàn)證憑據(jù),然后連同數(shù)據(jù)一起發(fā)給客戶端。查詢操作中,pk代表公鑰,s代表數(shù)據(jù)庫(kù)編碼,代表客戶端查詢數(shù)據(jù)的索引。

假設(shè)當(dāng)前計(jì)數(shù)字段數(shù)為(b1,b2,...,bq),其中定義則有

給定查詢索引服務(wù)器首先確定單元索引1≤x≤q,且滿足(定義b0=0)。

然后服務(wù)器計(jì)算生成驗(yàn)證憑證

服務(wù)器將驗(yàn)證憑證與數(shù)據(jù)一同返回給客戶端。

(3)驗(yàn)證階段:客戶端對(duì)服務(wù)器憑證進(jìn)行驗(yàn)證驗(yàn)證合法輸出所查詢數(shù)據(jù);否則輸出驗(yàn)證出錯(cuò)。

客戶端根據(jù)服務(wù)器憑證中的信息,分別計(jì)算e(h0,g)和和e(πx,g);并且驗(yàn)證以下三個(gè)條件是否滿足:

1)e(h0,g)等于

2)等于

3)等于e(πx,g)。

當(dāng)以上三個(gè)條件同時(shí)滿足時(shí),表明數(shù)據(jù)庫(kù)未被篡改,驗(yàn)證通過(guò)。客戶端根據(jù)獲得所要訪問(wèn)的數(shù)據(jù)

(4)更新階段:當(dāng)客戶端發(fā)生替換、刪除和插入操作(更新操作)時(shí),服務(wù)器端數(shù)據(jù)庫(kù)進(jìn)行更新,同時(shí)由客戶端協(xié)同服務(wù)器修正驗(yàn)證參數(shù)。

1)替換操作

為了替換索引的記錄,客戶端首先從服務(wù)器獲取當(dāng)前記錄即客戶端從服務(wù)器獲得證明τ,并驗(yàn)證通過(guò)。

然后,更新t=t+1,同時(shí),客戶端計(jì)算cc′=cc,客戶端將發(fā)送給服務(wù)器。

若tx′合法,服務(wù)器使用來(lái)替換數(shù)據(jù)庫(kù)中數(shù)據(jù)單元x中所存儲(chǔ)的數(shù)據(jù),即同時(shí),服務(wù)器更新公鑰pk=(pp,y,cc′,cr′),并將數(shù)據(jù)庫(kù)編碼s中的輔助信息(h0,cc,cr,t)更新為(tx′,cc′,cr′,t)。

至此,替換操作數(shù)據(jù)及驗(yàn)證參數(shù)更新完成,新的驗(yàn)證參數(shù)將在后續(xù)的數(shù)據(jù)訪問(wèn)中被使用。

2)刪除操作

刪除操作的更新過(guò)程與替換基本一致,是替換操作中vx′=φ的情況。

3)插入操作

當(dāng)客戶端在數(shù)據(jù)單元x中的之后插入數(shù)據(jù)v*,即

然后,更新t=t+1;同時(shí),客戶端計(jì)算客戶端將發(fā)送給服務(wù)器。

若tx′合法,服務(wù)器使用來(lái)替換數(shù)據(jù)庫(kù)中數(shù)據(jù)單元x中所存儲(chǔ)的數(shù)據(jù),即同時(shí),服務(wù)器更新布隆過(guò)濾器中數(shù)據(jù)單元x之后所有單元i(x≤i≤q)的計(jì)數(shù)字段,即bi=bi+1。最后服務(wù)器更新公鑰pk=(pp,y,cc′,cr′),并將數(shù)據(jù)庫(kù)編碼s中的輔助信息(h0,cc,cr,t)更新為(tx′,cc′,cr′,t)。

至此,插入操作數(shù)據(jù)及驗(yàn)證參數(shù)更新完成,新的驗(yàn)證參數(shù)將在后續(xù)的數(shù)據(jù)訪問(wèn)中被使用。

以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1