两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

云存儲(chǔ)中一種數(shù)據(jù)篡改的驗(yàn)證和恢復(fù)算法的制作方法

文檔序號(hào):11064790閱讀:891來(lái)源:國(guó)知局

計(jì)算機(jī)存儲(chǔ)、云存儲(chǔ)中數(shù)據(jù)完整性的驗(yàn)證;篡改、損壞數(shù)據(jù)的恢復(fù)



背景技術(shù):

隨著云技術(shù)的發(fā)展,企業(yè)和個(gè)人愈來(lái)愈傾向于將數(shù)據(jù)存儲(chǔ)在云端;由此也帶來(lái)了數(shù)據(jù)的安全問(wèn)題,數(shù)據(jù)存儲(chǔ)在云端,脫離了數(shù)據(jù)所有者的控制,或因云服務(wù)商系統(tǒng)不穩(wěn)定、云空間被惡意攻擊,將造成數(shù)據(jù)丟失和損壞。用戶在不知情的情況下,將因?yàn)閿?shù)據(jù)不完整而造成各種損失;那么如何確定云端數(shù)據(jù)是否完整呢?數(shù)據(jù)在存儲(chǔ)空間內(nèi)被破壞后,數(shù)據(jù)不再完整,如何根據(jù)現(xiàn)有數(shù)據(jù)精確恢復(fù)被修改的部分呢?

當(dāng)前云存儲(chǔ)系統(tǒng)使用副本和糾刪碼兩種方法對(duì)用戶數(shù)據(jù)進(jìn)行冗余存儲(chǔ)來(lái)保證系統(tǒng)的可靠性,但是修復(fù)時(shí)都需要傳輸整個(gè)文件,占用大量網(wǎng)絡(luò)資源,給分布式系統(tǒng)數(shù)據(jù)中心增加了巨大的壓力,造成的網(wǎng)絡(luò)擁堵也嚴(yán)重降低了用戶對(duì)數(shù)據(jù)讀取性能。

數(shù)據(jù)在上傳到云存儲(chǔ)中心之前進(jìn)行編碼,可以有效的檢查到數(shù)據(jù)是否被篡改或者丟失,采用從編碼的方式能有效的實(shí)現(xiàn)數(shù)據(jù)的完整性證明。但是用戶在得到數(shù)據(jù)已經(jīng)被篡改后,能否恢復(fù)才是首要關(guān)心的問(wèn)題單獨(dú)采用編碼,不能有效的定位數(shù)據(jù)損壞的地方,更不能實(shí)現(xiàn)恢復(fù),所以,數(shù)據(jù)編碼后,采用哈希算法,計(jì)算數(shù)據(jù)的塊的哈希值對(duì)數(shù)據(jù)進(jìn)行定位,當(dāng)數(shù)據(jù)塊損壞的數(shù)量沒(méi)有達(dá)到額定值的時(shí)候,就可以利用其它數(shù)據(jù)塊進(jìn)行數(shù)據(jù)恢復(fù)。



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

針對(duì)現(xiàn)有技術(shù)的上述不足,本發(fā)明提出了云存儲(chǔ)中一種數(shù)據(jù)篡改的驗(yàn)證和恢復(fù)算法。

為解決上述問(wèn)題,本發(fā)明提出了以下技術(shù)方案:

提出一種云存儲(chǔ)空間內(nèi)數(shù)據(jù)的驗(yàn)證和篡改數(shù)據(jù)的恢復(fù)方法,可以對(duì)云端數(shù)據(jù)進(jìn)行持有性驗(yàn)證,一旦發(fā)現(xiàn)數(shù)據(jù)被篡改,可以要求服務(wù)器定位篡改數(shù)據(jù)并監(jiān)督服務(wù)器完成數(shù)據(jù)恢復(fù),并支持?jǐn)?shù)據(jù)的修改;本方法主要包括四部分,分別是數(shù)據(jù)編碼、數(shù)據(jù)驗(yàn)證、數(shù)據(jù)恢復(fù)、數(shù)據(jù)修改,首先利用編碼技術(shù)保持?jǐn)?shù)據(jù)篡改在一定比例下能夠進(jìn)行恢復(fù),然后計(jì)算數(shù)據(jù)的持有性標(biāo)簽,后續(xù)對(duì)持有性標(biāo)簽計(jì)算確定持有性,然后在對(duì)數(shù)據(jù)進(jìn)行恢復(fù)。支持?jǐn)?shù)據(jù)屬主自主修改數(shù)據(jù)。具體實(shí)施步驟如下:

步驟1:數(shù)據(jù)編碼。

步驟2:哈希計(jì)算生成持有性標(biāo)簽。

步驟3:數(shù)據(jù)驗(yàn)證。

步驟4:數(shù)據(jù)恢復(fù)。

步驟5:數(shù)據(jù)修改。

本發(fā)明的有益效果是:

1、本發(fā)明所示的數(shù)據(jù)恢復(fù)方法,恢復(fù)能力強(qiáng)、準(zhǔn)確度高;

2、計(jì)算開銷小,支持?jǐn)?shù)據(jù)損壞比例較高的數(shù)據(jù)恢復(fù)。

具體實(shí)施方式

本方法主要包括數(shù)據(jù)編碼、哈希計(jì)算生成持有性標(biāo)簽、數(shù)據(jù)完整性驗(yàn)證、數(shù)據(jù)恢復(fù)、數(shù)據(jù)更新幾個(gè)模塊。

步驟1:數(shù)據(jù)編碼

首先,定義一個(gè)k階的可逆的矩陣G,作為編碼矩陣:

矩陣中,任意g不為0,并且任意兩個(gè)g值不相等,且n>k;由此可知在矩陣中k列組成的矩陣是可逆的。所以,矩陣G可以表示為:G=(G1,G2,...,Gn)

將待上傳到云端的數(shù)據(jù)F分為塊,F(xiàn)=(F1,F(xiàn)2,...,F(xiàn)k),然后從編碼矩陣G中選取k列對(duì)數(shù)據(jù)塊進(jìn)行編碼,設(shè)碼元為C,則有:

FiGi=Ci

然后將碼元塊與編碼矩陣組成碼塊(Block),即:Blocki=(Ci,Gi),由于G是可逆的,所以在解碼時(shí)有Fi=CiGi-1,首先從任意數(shù)量的碼塊中選取k個(gè)碼塊,選取碼元子集組成譯碼元Q,然后按照對(duì)應(yīng)的書序即可還原數(shù)據(jù)塊Fi。

步驟2:哈希計(jì)算生成持有性標(biāo)簽

由于編碼不能定位數(shù)據(jù),所以計(jì)算各個(gè)碼塊的哈希值

采用AES算法,哈希碼塊,生成數(shù)據(jù)的持有性標(biāo)簽;隨機(jī)選擇三個(gè)密鑰K1,K2,K3,設(shè)置挑戰(zhàn)次數(shù)為t,每次挑戰(zhàn)的數(shù)據(jù)塊數(shù)量s,s=k+ε,ε=-lnδ,δ是譯碼的失敗概率,為每次應(yīng)答計(jì)算驗(yàn)證標(biāo)簽,兵將編碼后的數(shù)據(jù)塊、哈希值、加密驗(yàn)證標(biāo)簽存儲(chǔ)于服務(wù)器,計(jì)算方法如下:

(1)從AES算法中選取f函數(shù)和h函數(shù)計(jì)算第i個(gè)碼塊預(yù)處理密鑰和索引預(yù)處理密鑰:

(2)使用索引預(yù)處理密鑰和偽隨機(jī)函數(shù)計(jì)算數(shù)據(jù)塊的索引Ij

Ij∈[1,2,...,t];1≤j≤k

(3)計(jì)算第i次待加密標(biāo)簽tagi,并使用AES對(duì)齊加密:

tagi=Hash(PKi,Block(Ij),Hash(Block(Ij)))

將數(shù)據(jù)塊上傳到云服務(wù)器,保存哈希值。

步驟3:數(shù)據(jù)驗(yàn)證

挑戰(zhàn)時(shí),用戶向服務(wù)器發(fā)送生成的PKi和CKi,服務(wù)器利用這兩個(gè)值計(jì)算得帶待加密的標(biāo)簽tagi,并將存儲(chǔ)的tagi‘發(fā)送給用戶,用戶利用服務(wù)器返回的標(biāo)簽譯碼,如果解密成功則認(rèn)為驗(yàn)證成功,否則驗(yàn)證失敗。具體算法如下:

(1)用戶計(jì)算并將值發(fā)送個(gè)服務(wù)器

(2)服務(wù)器計(jì)算tagi=Hash(PKi,Block(Ij),Hash(Block(Ij))),并將結(jié)果tagi和存儲(chǔ)的tagi‘發(fā)送給用戶。

(3)用戶計(jì)算(tagi‘,AES(i,tagi),如果結(jié)果為0,則說(shuō)明解密成功,認(rèn)為數(shù)據(jù)塊沒(méi)有損壞,如果不是,則數(shù)據(jù)塊已經(jīng)被篡改。

步驟4:數(shù)據(jù)恢復(fù)

當(dāng)用戶驗(yàn)證失敗,服務(wù)器將通過(guò)本地驗(yàn)證的數(shù)據(jù)塊的塊號(hào)i對(duì)應(yīng)的Hash值發(fā)送給用戶,用戶再次驗(yàn)證作出應(yīng)答。驗(yàn)證過(guò)程中用戶將從服務(wù)器得到的數(shù)據(jù)與對(duì)應(yīng)的Hash值進(jìn)行異或并統(tǒng)計(jì)驗(yàn)證完整的碼塊,若統(tǒng)計(jì)正確的數(shù)量小于k,則認(rèn)為數(shù)據(jù)無(wú)法恢復(fù),否則將索引號(hào)和編碼矩陣發(fā)送給服務(wù)器;服務(wù)器利用從用戶接收到的索引數(shù)據(jù)塊進(jìn)行譯碼并再次編碼,將計(jì)算編碼后碼元的Hash值發(fā)送給用戶,如果協(xié)助校驗(yàn)正確則對(duì)數(shù)據(jù)進(jìn)行更新,否則數(shù)據(jù)恢復(fù)失敗。

數(shù)據(jù)修復(fù)過(guò)程中服務(wù)器隨機(jī)產(chǎn)生新的隨機(jī)矩陣G,并編碼Cn+i=FGn+i(其中1≤i≤n),將Gj與Cj組成新數(shù)據(jù)塊Blockj=(Cj,Gj)(j>n+1)代替被篡改數(shù)據(jù),并重新計(jì)算數(shù)據(jù)塊的Hash值更新對(duì)應(yīng)碼塊的哈希值(Sfi)。具體算法設(shè)計(jì)如下:

(1)計(jì)算Bi=(Hash(Blocki),Sfi),并將Bi存儲(chǔ)到校驗(yàn)集中,從校驗(yàn)集中抽取k+1個(gè)不同的數(shù)據(jù)塊,并將k個(gè)碼塊有序子集組成譯碼元Q和譯碼矩陣P,計(jì)算:D=QP-1,驗(yàn)證DGk+1=Ck+1,如果相等,計(jì)算

將VS值發(fā)送給用戶進(jìn)行數(shù)據(jù)塊恢復(fù),用來(lái)代替受損的數(shù)據(jù)塊。并更新塊Hash值,重新計(jì)算挑戰(zhàn)一應(yīng)答標(biāo)簽并更新服務(wù)器中的驗(yàn)證標(biāo)簽。

步驟5:數(shù)據(jù)修改

數(shù)據(jù)的修改主要包括插入和刪除操作。

數(shù)據(jù)插入算法如下:

用戶插入待更新的數(shù)據(jù)并計(jì)算插入數(shù)據(jù)長(zhǎng)度和插人數(shù)據(jù)位置,如果插入數(shù)據(jù)長(zhǎng)度不為k的整數(shù)倍,則填充數(shù)據(jù)0使得數(shù)據(jù)長(zhǎng)為k的整數(shù)倍;然后對(duì)存在數(shù)據(jù)插入的行進(jìn)行編碼:

{Cij}l×n={dij}l×kG

重新驗(yàn)證標(biāo)簽與恢復(fù)校驗(yàn)碼,并更新Hash值,再將{Cij}l×n插入第i行,并更新驗(yàn)證標(biāo)簽與Hash值。

數(shù)據(jù)刪除算法:

刪除第i行數(shù)據(jù)并計(jì)算刪除數(shù)據(jù)的長(zhǎng)度,若刪除數(shù)據(jù)長(zhǎng)度為k的整數(shù)倍,則從第1個(gè)元素開始,直接刪除該數(shù)據(jù),如果長(zhǎng)度不為k的整數(shù)倍,則將刪除數(shù)據(jù)用0代替,并計(jì)算:

{Cij}l×n={dij}1×kG

然后更新Hash值并重新計(jì)算驗(yàn)證標(biāo)簽和恢復(fù)校驗(yàn)碼塊,如果用戶直接刪除第i行數(shù)據(jù),那么服務(wù)器也將所有碼塊中的第k+i個(gè)元素刪除,否則更新第k+i個(gè)元素值和新的Hash值和驗(yàn)證標(biāo)簽。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
陆河县| 专栏| 高平市| 游戏| 天镇县| 新密市| 贵阳市| 茌平县| 营山县| 堆龙德庆县| 五原县| 凌海市| 乐清市| 万盛区| 赤水市| 汉川市| 平南县| 叙永县| 桃江县| 山东省| 上虞市| 莲花县| 苏州市| 舟曲县| 都昌县| 兰溪市| 曲水县| 四会市| 彭泽县| 惠水县| 富顺县| 慈利县| 抚顺县| 乌拉特中旗| 三河市| 深圳市| 新安县| 永昌县| 明水县| 景泰县| 金溪县|