国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      高復用性的云存儲數(shù)據(jù)存儲驗證方法及系統(tǒng)的制作方法

      文檔序號:7797098閱讀:568來源:國知局
      高復用性的云存儲數(shù)據(jù)存儲驗證方法及系統(tǒng)的制作方法
      【專利摘要】本發(fā)明公開了一種高復用性的云存儲數(shù)據(jù)存儲驗證方法及系統(tǒng),該方法包括:接收用戶的數(shù)據(jù)存儲驗證查詢請求;對當前驗證次數(shù)進行混淆,獲取挑戰(zhàn)密鑰序號;用挑戰(zhàn)密鑰序號替換當前驗證次數(shù),獲取當前挑戰(zhàn)密鑰和驗證標簽;從偽隨機數(shù)組中選擇P-1個偽隨機數(shù),并與當前挑戰(zhàn)密鑰混合生成查詢數(shù)組;服務(wù)器生成校驗標簽序列,并返回給客戶端;客戶端對校驗標簽序列進行過濾及將過濾后得到的校驗標簽與驗證標簽進行比較,以判斷文件是否被破壞。實施本發(fā)明的有益效果是,能以較小的計算代價獲得相對高的驗證可信度,文件驗證標簽的挑戰(zhàn)每次均包含真實挑戰(zhàn)參數(shù)和一系列偽隨機數(shù),使得可能的偽隨機標簽數(shù)量大增,避免服務(wù)器利用保存的正確簽名實現(xiàn)重放攻擊。
      【專利說明】高復用性的云存儲數(shù)據(jù)存儲驗證方法及系統(tǒng)
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及計算機領(lǐng)域,更具體地說,涉及一種高復用性的云存儲數(shù)據(jù)存儲驗證方法及系統(tǒng)。
      【背景技術(shù)】
      [0002]由于云存儲系統(tǒng)能夠以低廉的價格為企業(yè)和個人用戶提供按需彈性擴展的海量數(shù)據(jù)存儲管理服務(wù),節(jié)省了用戶對文件存儲系統(tǒng)進行專門維護和管理的代價,因而受到市場的歡迎。
      [0003]但是,云存儲在給用戶帶來便利的同時,也給數(shù)據(jù)保護帶來了新的挑戰(zhàn)和威脅。由于數(shù)據(jù)存儲在云端,脫離用戶掌控范圍,用戶無法對數(shù)據(jù)進行實時監(jiān)測和管理。如果云存儲中的數(shù)據(jù)和文件由于黑客攻擊、管理員誤操作、惡意行為等被篡改或損壞,用戶只能依賴于云存儲系統(tǒng)來發(fā)現(xiàn)這些變化。
      [0004]由于云存儲系統(tǒng)需要檢驗的數(shù)據(jù)量巨大,難以及時發(fā)現(xiàn)數(shù)據(jù)的變化,因此,云存儲系統(tǒng)并不完全可信。且在一些情況下,出于其他方面考慮,云服務(wù)提供商并不會通知用戶這些變化。因此,用戶需要有一種可信手段對保存在云存儲上的數(shù)據(jù)狀態(tài)進行驗證,從而及時應(yīng)對數(shù)據(jù)故障。
      [0005]目前,云存儲系統(tǒng)的數(shù)據(jù)存儲驗證方法大多基于元數(shù)據(jù)校驗。用戶在文件上傳時為每一個文件塊生成對應(yīng)的元數(shù)據(jù),在發(fā)起校驗元數(shù)據(jù)和文件塊內(nèi)容的對應(yīng)關(guān)系來檢測文件是否完好。但是,此類方法實現(xiàn)大多基于復雜的簽名算法,對客戶端的計算能力要求較高,而且在上傳時的元數(shù)據(jù)計算時間隨文件的增長而增長。另外一種方法是通過提前為用戶準備一定次數(shù)的完整性驗證標簽,當用戶需要驗證時,將挑戰(zhàn)參數(shù)發(fā)送到服務(wù)器,服務(wù)器重新生成一個對應(yīng)的驗證標簽,客戶端通過比較標簽是否一致來判斷文件是否完整。這類方法通常計算難度低,簡單的hash算法即可滿足需求,上傳準備時間短。但是,由于客戶端只準備了確定數(shù)量的驗證標簽,一旦標簽用盡,就有可能遭遇服務(wù)器的重放攻擊,而無法繼續(xù)驗證文件狀態(tài)。
      [0006]云存儲系統(tǒng)缺乏一種適用于輕量級客戶端的數(shù)據(jù)存儲驗證方法。

      【發(fā)明內(nèi)容】

      [0007]本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的上述數(shù)據(jù)存儲驗證方法一旦標簽用盡,可能遭遇服務(wù)器的重放攻擊,而無法繼續(xù)驗證文件狀態(tài)的缺陷,提供一種高復用性的云存儲數(shù)據(jù)存儲驗證方法及系統(tǒng),實現(xiàn)驗證過程中驗證標簽的復用,增大驗證標簽的可用性。
      [0008]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:構(gòu)造一種高復用性的云存儲數(shù)據(jù)存儲驗證方法,包括以下步驟:
      [0009]S1、為每個上傳到服務(wù)器的文件設(shè)定驗證參數(shù)和混淆參數(shù),并根據(jù)單次驗證可信度C和文件大小確定需要讀取的文件塊數(shù);[0010]其中,驗證參數(shù)包括:文件的文件名、文件大小、驗證次數(shù)N、單次驗證可信度C ;混淆參數(shù)包括:偽隨機數(shù)組S、偽隨機數(shù)組生成密鑰Y、混淆度P ;
      [0011]S2、接收用戶的數(shù)據(jù)存儲驗證查詢請求,并發(fā)起查詢請求;
      [0012]S3、對當前驗證次數(shù)進行混淆,獲取挑戰(zhàn)密鑰序號;
      [0013]S4、用挑戰(zhàn)密鑰序號替換當前驗證次數(shù),獲取當前挑戰(zhàn)密鑰和驗證標簽;
      [0014]S5、從偽隨機數(shù)組S中選擇P-1個偽隨機數(shù),并與當前挑戰(zhàn)密鑰混合,以生成查詢數(shù)組,并記錄當前挑戰(zhàn)密鑰在查詢數(shù)組中的位置;
      [0015]S6、將查詢數(shù)組、文件名和文件塊數(shù)發(fā)送給服務(wù)器;
      [0016]S7、服務(wù)器根據(jù)查詢數(shù)組、文件名和文件塊數(shù)生成校驗標簽序列,并返回給客戶端;
      [0017]S8、客戶端對返回的校驗標簽序列進行過濾;
      [0018]S9、客戶端將過濾后得到的校驗標簽與驗證標簽進行比較,以判斷文件是否被破壞。
      [0019]在一個實施例中,步驟S2具體包括:根據(jù)式(I)計算挑戰(zhàn)密鑰序號:
      [0020]i=j*cur mod N(I)
      [0021]式(I)中,i為挑戰(zhàn)密鑰序號,j為從偽隨機數(shù)組S中隨機挑選的數(shù)值,cur為當前驗證次數(shù),N為驗證次數(shù)。
      [0022]在一個實施例中,所述方法還包括:根據(jù)系統(tǒng)當前時間生成隨機密鑰種子K,根據(jù)隨機密鑰種子K生成N個隨機密鑰{&、K2、K3……ΚΝ}。
      [0023]在一個實施例中,步驟S4中獲取當前挑戰(zhàn)密鑰具體為:根據(jù)挑戰(zhàn)密鑰序號從N個隨機密鑰IKpKyK3……κΝ}中獲取的。
      [0024]在一個實施例中,步驟SI中根據(jù)單次驗證可信度C和文件大小確定需要讀取的文件塊數(shù)的計算方法為:1- (l-l%)num=C,其中num為生成驗證標簽所需要的文件塊數(shù),C為單次驗證可信度。
      [0025]在一個實施例中,步驟S4中獲取驗證標簽包括以下步驟:
      [0026]在文件大小范圍內(nèi)選擇num個隨機位置;
      [0027]從每一個隨機位置開始讀取長度為y字節(jié)的內(nèi)容{tl、t2、t3、......tnum},不足則
      補零;
      [0028]將所讀取的內(nèi)容順序連接,成為樣本文檔T=Itl I 112 I 1......1l tnum};
      [0029]以Ki為密鑰,計算樣本文檔驗證標簽RyRi=HMAC (Tji),其中i為挑戰(zhàn)密鑰序號;
      [0030]y為預(yù)設(shè)的每個文件塊的大小。
      [0031 ] 在一個實施例中,步驟S9中,過濾后得到的校驗標簽為在校驗標簽序列中的位置與記錄的當前挑戰(zhàn)密鑰在查詢數(shù)組中的位置相同的校驗標簽。
      [0032]一種高復用性的云存儲數(shù)據(jù)存儲驗證系統(tǒng),包括:客戶端和服務(wù)器;
      [0033]其中客戶端包括:驗證準備模塊、驗證發(fā)起模塊、混淆模塊、過濾模塊、驗證校驗?zāi)K;混淆模塊包括挑戰(zhàn)密鑰序號獲取模塊、替換模塊、查詢數(shù)組生成模塊和發(fā)送模塊;
      [0034]服務(wù)器包括校驗生成模塊;
      [0035] 驗證準備模塊,用于為每個上傳到服務(wù)器的文件設(shè)定驗證參數(shù)和混淆參數(shù),以及用于根據(jù)單次驗證可信度C和文件大小確定需要讀取的文件塊數(shù);其中,驗證參數(shù)包括:文件的文件名、文件大小、驗證次數(shù)N、單次驗證可信度C ;混淆參數(shù)包括:偽隨機數(shù)組S、偽隨機數(shù)組生成密鑰Y、混淆度P ;
      [0036]驗證發(fā)起模塊,用于接收用戶的數(shù)據(jù)存儲驗證查詢請求,并發(fā)起查詢請求;
      [0037]挑戰(zhàn)密鑰序號獲取模塊,用于在驗證發(fā)起模塊發(fā)起查詢請求時,對當前驗證次數(shù)進行混淆,獲取挑戰(zhàn)密鑰序號;
      [0038]替換模塊,用于用挑戰(zhàn)密鑰序號替換當前驗證次數(shù),獲取當前挑戰(zhàn)密鑰和驗證標簽;
      [0039]查詢數(shù)組生成模塊,用于從偽隨機數(shù)組S中選擇P-1個偽隨機數(shù),并與當前挑戰(zhàn)密鑰混合,以生成查詢數(shù)組,并記錄當前挑戰(zhàn)密鑰在查詢數(shù)組中的位置;
      [0040]發(fā)送模塊,用于將查詢數(shù)組、文件名和文件塊數(shù)發(fā)送給服務(wù)器;
      [0041]校驗生成模塊,用于根據(jù)查詢數(shù)組、文件名和文件塊數(shù)生成校驗標簽序列,并返回給客戶端;
      [0042]過濾模塊,用于對校驗生成模塊返回的校驗標簽序列進行過濾;
      [0043]驗證校驗?zāi)K,用于將過濾后得到的校驗標簽與驗證標簽進行比較,以判斷文件是否被破壞。
      [0044]在一個實施例中 ,所述客戶端還包括驗證維護模塊,用于存儲驗證參數(shù)和混淆參數(shù),以及用于更新當前驗證次數(shù)。
      [0045]在一個實施例中,挑戰(zhàn)密鑰序號獲取模塊根據(jù)式(I)計算挑戰(zhàn)密鑰序號:
      [0046]i=j*cur mod N(I)
      [0047]式(I)中,i為挑戰(zhàn)密鑰序號,j為從偽隨機數(shù)組S中隨機挑選的數(shù)值,cur為當前驗證次數(shù),N為驗證次數(shù)。
      [0048]實施本發(fā)明的高復用性的云存儲數(shù)據(jù)存儲驗證方法及系統(tǒng),具有以下有益效果:由于真實挑戰(zhàn)參數(shù)混合于偽隨機數(shù)組中,服務(wù)器無法確定真實挑戰(zhàn)參數(shù);當偽隨機數(shù)組S足夠大時,服務(wù)器無法確定所有可能的標簽集,因此標簽可持續(xù)重用,直到所有可能的標簽
      均出現(xiàn)過,可驗證次數(shù)由N次擴大到次;能以較小的計算代價獲得相對高的驗證可信
      度,文件驗證標簽的挑戰(zhàn)每次均包含真實挑戰(zhàn)參數(shù)和一系列偽隨機數(shù),使得可能的偽隨機標簽數(shù)量大增,避免服務(wù)器利用保存的正確簽名實現(xiàn)重放攻擊。
      【專利附圖】

      【附圖說明】
      [0049]下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中:
      [0050]圖1是本發(fā)明實施例的高復用性的云存儲數(shù)據(jù)存儲驗證方法的流程圖;
      [0051]圖2是本發(fā)明實施例的高復用性的云存儲數(shù)據(jù)存儲驗證系統(tǒng)的結(jié)構(gòu)框圖;
      [0052]圖3是本發(fā)明實施例的高復用性的云存儲數(shù)據(jù)存儲驗證系統(tǒng)的客戶端和服務(wù)器的交互示意圖。
      【具體實施方式】
      [0053]為了對本發(fā)明的技術(shù)特征、目的和效果有更加清楚的理解,現(xiàn)對照附圖詳細說明本發(fā)明的【具體實施方式】。[0054]參見圖1為本發(fā)明實施例的高復用性的云存儲數(shù)據(jù)存儲驗證方法的流程圖。
      [0055]本發(fā)明實施例的高復用性的云存儲數(shù)據(jù)存儲驗證方法包括以下步驟:
      [0056]S1、為每個上傳到服務(wù)器的文件設(shè)定驗證參數(shù)和混淆參數(shù),并根據(jù)單次驗證可信度C和文件大小確定需要讀取的文件塊數(shù)。
      [0057]其中,驗證參數(shù)包括:文件的文件名、文件大小、驗證次數(shù)N、單次驗證可信度C。混淆參數(shù)包括:偽隨機數(shù)組S、偽隨機數(shù)組生成密鑰Y、混淆度P。
      [0058]驗證次數(shù)N、單次驗證可信度C、偽隨機數(shù)組S的大小、混淆度P、偽隨機數(shù)組生成密鑰Y等由用戶設(shè)定。偽隨機數(shù)組S是基于隨機算法和偽隨機數(shù)組生成密鑰Y生成的。
      [0059]根據(jù)單次驗證可信度C和文件大小確定需要讀取的文件塊數(shù)包括以下步驟:若文件大小為X字節(jié)(byte),以y字節(jié)為一個文件塊,則共有x/y個文件塊。為了滿足單次驗證可信度C的要求,即1- (l_l%)num=C,其中num即為生成驗證標簽所需要的文件塊數(shù)。
      [0060]S2、接收用戶的數(shù)據(jù)存儲驗證查詢請求,并發(fā)起查詢請求。
      [0061]S3、對當前驗證次數(shù)進行混淆,獲取挑戰(zhàn)密鑰序號。
      [0062]具體的,本發(fā)明實施例的高復用性的云存儲數(shù)據(jù)存儲驗證方法還包括:根據(jù)系統(tǒng)當前時間生成隨機密鑰種子K,根據(jù)隨機密鑰種子K生成N個隨機密鑰{KpKy K3……KN}。
      [0063]步驟S3具體包括:根據(jù)式(I)計算挑戰(zhàn)密鑰序號: [0064]i=j*cur mod N(I)
      [0065]式(I)中,i為挑戰(zhàn)密鑰序號,j為從偽隨機數(shù)組S中隨機挑選的數(shù)值,cur為當前驗證次數(shù),N為驗證次數(shù)。式(I)即將從偽隨機數(shù)組S中隨機挑選的數(shù)值j與當前驗證次數(shù)cur相乘后,再與驗證次數(shù)N進行取余運算,所計算出的值即為挑戰(zhàn)密鑰序號i。
      [0066]S4、用挑戰(zhàn)密鑰序號(i)替換當前驗證次數(shù)(cur),獲取當前挑戰(zhàn)密鑰和驗證標簽。
      [0067]其中,當前挑戰(zhàn)密鑰是根據(jù)挑戰(zhàn)密鑰序號從N個隨機密鑰{&、K2、K3……ΚΝ}中獲取的。當前挑戰(zhàn)密鑰即為Ki, i為挑戰(zhàn)密鑰序號。
      [0068]驗證標簽的獲取過程包括:(1)在文件大小范圍內(nèi)選擇num個隨機位置。具體的,可以K1為隨機密鑰,為需進行數(shù)據(jù)存儲驗證的文件生成num個隨機位置。(2)從每一個隨
      機位置開始讀取長度為y字節(jié)的內(nèi)容Itl、t2、t3、......tnum},不足則補零。(3)將所讀取
      的內(nèi)容順序連接,成為樣本文檔T={tl| |t2| 1......1 |tnum}。(4)以Ki為密鑰,計算樣本文
      檔驗證標簽Ri,即Ri=HMAC (T,Ki),其中i為挑戰(zhàn)密鑰序號。
      [0069]S5、從偽隨機數(shù)組S中選擇P-1個偽隨機數(shù),并與當前挑戰(zhàn)密鑰混合,以生成查詢數(shù)組Q,并記錄當前挑戰(zhàn)密鑰在查詢數(shù)組中的位置。
      [0070]S6、將查詢數(shù)組Q、文件名和文件塊數(shù)num發(fā)送給服務(wù)器。
      [0071]S7、服務(wù)器根據(jù)查詢數(shù)組Q、文件名和文件塊數(shù)num生成校驗標簽序列,并返回給
      客戶端。
      [0072]具體的:(1)服務(wù)器以Q為隨機密鑰,為需進行數(shù)據(jù)存儲驗證的文件生成num個隨機位置。文件的大小可根據(jù)文件名從存儲服務(wù)器獲得。服務(wù)器生成num個隨機位置的方法與步驟SI中的生成方法相同。(2)從每一個隨機位置開始讀取長度為y字節(jié)的內(nèi)容{tl、t2、t3、......tnum},不足則補零。(3)將所讀取的內(nèi)容順序連接,成為樣本文檔T={tl I t2 |......tnum}。(4)以Q[u]為密鑰,計算樣本文檔校驗標簽序列Ru’,即Ru,=HMAC (T,Q[u]),其中u=l、2、……P。P為混淆度。即校驗標簽序列Ru’包含P個檢驗標簽。
      [0073]S8、客戶端對返回的校驗標簽序列進行過濾。具體的,過濾后得到的校驗標簽為在校驗標簽序列Ru’中的位置與記錄的當前挑戰(zhàn)密鑰在查詢數(shù)組Q中的位置相同的校驗標簽。例如,當前挑戰(zhàn)密鑰在查詢數(shù)組Q中的位置為第5,則校驗標簽序列Ru’中的第5個標簽即為過濾得到的校驗標簽。
      [0074]S9、客戶端將過濾后得到的校驗標簽與驗證標簽進行比較,以判斷文件是否被破壞。
      [0075]若校驗標簽與驗證標簽的值相同,則證明驗證的文件未被破壞,其在服務(wù)器的存儲正常;若不相同,則證明驗證的文件出現(xiàn)被破壞、不完整等情況。
      [0076]本發(fā)明實施例的高復用性的云存儲數(shù)據(jù)存儲驗證方法還包括,在步驟S6中進行當前驗證次數(shù)(cur)的更新,即將當前驗證次數(shù)cur加I,隨著驗證次數(shù)的增加,cur值依次增長。但是在執(zhí)行步驟S4時,cur值將被挑戰(zhàn)密鑰序號i替換。此外,cur值的更新也可在其他步驟中進行(例如步驟S3中),以記錄當前驗次數(shù)。[0077]應(yīng)理解,本發(fā)明實施例的高復用性的云存儲數(shù)據(jù)存儲驗證方法中的步驟S1-S6由客戶端執(zhí)行。
      [0078]參見圖2為本發(fā)明實施例的高復用性的云存儲數(shù)據(jù)存儲驗證系統(tǒng)的結(jié)構(gòu)框圖。該系統(tǒng)包括客戶端I和服務(wù)器2。其中客戶端I包括:驗證準備模塊11、驗證維護模塊12、驗證發(fā)起模塊13、混淆模塊14、過濾模塊15、驗證校驗?zāi)K16。服務(wù)器2包括校驗生成模塊21。
      [0079]驗證準備模塊11,用于為每個上傳到服務(wù)器的文件設(shè)定驗證參數(shù)和混淆參數(shù),以及用于根據(jù)單次驗證可信度C和文件大小確定需要讀取的文件塊數(shù)及用于根據(jù)系統(tǒng)當前時間生成隨機密鑰種子K,根據(jù)隨機密鑰種子K生成N個隨機密鑰IKpK2' K3……KN}。
      [0080]驗證參數(shù)包括:文件的文件名、文件大小、驗證次數(shù)N、單次驗證可信度C?;煜齾?shù)包括:偽隨機數(shù)組S、偽隨機數(shù)組生成密鑰Y、混淆度P。
      [0081 ] 驗證次數(shù)N、單次驗證可信度C、偽隨機數(shù)組S的大小、混淆度P、偽隨機數(shù)組生成密鑰Y等由用戶設(shè)定。偽隨機數(shù)組S是基于隨機算法和偽隨機數(shù)組生成密鑰Y生成的。
      [0082]驗證準備模塊11根據(jù)單次驗證可信度C和文件大小確定需要讀取的文件塊數(shù)具體包括:若文件大小為X字節(jié)(byte),以y字節(jié)為一個文件塊,則共有x/y個文件塊。為了滿足單次驗證可信度C的要求,即1- (1-1%)_=C,其中num即為生成驗證標簽所需要的文件塊數(shù)。
      [0083]驗證維護模塊12,用于存儲驗證參數(shù)和混淆參數(shù),以及用于更新當前驗證次數(shù)。驗證維護模塊12對當前驗證次數(shù)(cur)的更新,即將當前驗證次數(shù)cur加I,隨著驗證次數(shù)的增加,cur值依次增長。
      [0084]驗證發(fā)起模塊13,用于接收用戶的數(shù)據(jù)存儲驗證查詢請求,并發(fā)起查詢請求。
      [0085]混淆模塊14包括挑戰(zhàn)密鑰序號獲取模塊141、替換模塊142、查詢數(shù)組生成模塊143和發(fā)送模塊144。
      [0086]其中,挑戰(zhàn)密鑰序號獲取模塊141,用于在驗證發(fā)起模塊13發(fā)起查詢請求時,對當前驗證次數(shù)進行混淆,獲取挑戰(zhàn)密鑰序號。具體的,根據(jù)上述式(I)計算挑戰(zhàn)密鑰序號。
      [0087]替換模塊142,用于用挑戰(zhàn)密鑰序號(i)替換當前驗證次數(shù)(cur),獲取當前挑戰(zhàn)密鑰和驗證標簽。當前挑戰(zhàn)密鑰是根據(jù)挑戰(zhàn)密鑰序號從N個隨機密鑰IKpK2I3……KN}中獲取的。當前挑戰(zhàn)密鑰即為Ki, i為挑戰(zhàn)密鑰序號。
      [0088]驗證標簽的獲取過程包括:(1)在文件大小范圍內(nèi)選擇num個隨機位置。具體的,可以K1為隨機密鑰,為需進行數(shù)據(jù)存儲驗證的文件生成num個隨機位置。(2)從每一個隨
      機位置開始讀取長度為y字節(jié)的內(nèi)容Itl、t2、t3、......tnum},不足則補零。(3)將所讀取
      的內(nèi)容順序連接,成為樣本文檔T={tl| |t2| 1......1 |tnum}。(4)以Ki為密鑰,計算樣本文
      檔驗證標簽Ri,即Ri=HMAC (T,Ki),其中i為挑戰(zhàn)密鑰序號。
      [0089]查詢數(shù)組生成模塊143,用于從偽隨機數(shù)組S中選擇P-1個偽隨機數(shù),并與當前挑戰(zhàn)密鑰混合,以生成查詢數(shù)組Q,并記錄當前挑戰(zhàn)密鑰在查詢數(shù)組Q中的位置。
      [0090]發(fā)送模塊144,用于將查詢數(shù)組Q、文件名和文件塊數(shù)num發(fā)送給服務(wù)器。
      [0091]校驗生成模塊21,用于根據(jù)查詢數(shù)組Q、文件名和文件塊數(shù)num生成校驗標簽序列,并返回給客戶端。具體的:(1)以Q為隨機密鑰,為需進行數(shù)據(jù)存儲驗證的文件生成num個隨機位置。文件的大小可根據(jù)文件名從存儲服務(wù)器獲得。服務(wù)器生成num個隨機位置的方法與客戶端生成num的方法相同。(2)從每一個隨機位置開始讀取長度為y字節(jié)的
      內(nèi)容{tl、t2、t3、......tnum},不足則補零。(3)將所讀取的內(nèi)容順序連接,成為樣本文檔
      T=Itl I t2 1......1 I tnum}。(4)以Q[u]為密鑰,計算樣本文檔校驗標簽序列Ru’,即Ru’=HMAC
      (1',0[11]),其中11=1、2、……P。P為混淆度。即校驗標簽序列Ru’包含P個檢驗標簽。
      [0092]過濾模塊15,用于對校驗生成模塊21返回的校驗標簽序列進行過濾。具體的,過濾后得到的校驗標簽為在校驗標簽序列Ru’中的位置與記錄的當前挑戰(zhàn)密鑰在查詢數(shù)組Q中的位置相同的校驗標簽。
      [0093]驗證校驗?zāi)K16,用于將過濾后得到的校驗標簽與驗證標簽進行比較,以判斷文件是否被破壞。若校驗標簽與驗證標簽的值相同,則證明驗證的文件未被破壞,其在服務(wù)器的存儲正常;若不相同,則證明驗證的文件出現(xiàn)被破壞、不完整等情況。
      [0094]以下結(jié)合圖3及一個具體的例子對上述本發(fā)明實施例的高復用性的云存儲數(shù)據(jù)存儲驗證系統(tǒng)進行詳細描述:
      [0095]驗證準備模塊11設(shè)定用戶向非可信服務(wù)器上傳文件的文件名為filel,文件大小為100MB,驗證次數(shù)N為1000次,單次驗證可信度為C為0.9,混淆度P為4,偽隨機數(shù)組S的大小為10000,偽隨機數(shù)組生成密鑰Y=9387862494432,根據(jù)系統(tǒng)當前時間生成的隨機密鑰種子Κ=1285572979437,根據(jù)隨機密鑰種子K生成N個隨機密鑰IK^K2' K3……ΚΝ}。
      [0096]驗證準備模塊11根據(jù)單次驗證可信度0.9和文件大小100ΜΒ確定需要讀取的文件塊數(shù)。具體的,文件大小為104857600字節(jié)(byte) (100MB),以16字節(jié)為一個文件塊,則共有7864320個文件塊。為了滿足單次驗證可信度0.9的要求,即1- (l-l%)num=0.9,則num=229。
      [0097]驗證維護模塊12根據(jù)驗證準備模塊11的存儲請求,對上述設(shè)定的參數(shù)進行存儲。
      [0098]當用戶通過客戶端發(fā)起數(shù)據(jù)存儲驗證查詢請求時,驗證發(fā)起模塊13接收用戶的數(shù)據(jù)存儲驗證查詢請求,并從驗證準備模塊11獲得相關(guān)參數(shù)后發(fā)起查詢請求。挑戰(zhàn)密鑰序號獲取模塊141對當前驗證次數(shù)cur進行混淆,獲取挑戰(zhàn)密鑰序號。具體的,挑戰(zhàn)密鑰序號i=j*cur mod N,其中,j=S[207],利用偽隨機數(shù)組生成密鑰K與207生成,值為8736 ;當前驗證次數(shù)cur=l,N=1000,由此得到i=736。替換模塊142用i=736替換cur,并繼續(xù)原請求,獲取當前挑戰(zhàn)密鑰和驗證標簽。獲取到的當前挑戰(zhàn)密鑰為κ736。
      [0099]替換模塊142獲取驗證標簽的獲取過程為:以K1為隨機密鑰,為需進行數(shù)據(jù)存儲驗證的文件生成229個隨機位置;并從每一個隨機位置開始讀取長度為16字節(jié)的
      內(nèi)容{tl、t2、t3、......t229},不足則補零;將所讀取的內(nèi)容順序連接,成為樣本文檔
      T={tl| |t2| I……I |t229};以1(736為密鑰,計算樣本文檔驗證標簽R736,即R736=HMAC(T,K736)。
      [0100]查詢數(shù)組生成模塊143從偽隨機數(shù)組S中選擇3 (P-1)個偽隨機數(shù),并與當前挑戰(zhàn)密鑰混合,以生成查詢數(shù)組Q。例如,選擇出的3個偽隨機數(shù)分別為S [94]、S [385]和S[787]。利用偽隨機數(shù)組生成密鑰K和序號(94、385、787)生成,則3個偽隨機數(shù)分別為3489825427445,2654478345628,7674398282265ο K736 為 85735279849542。
      [0101]查詢數(shù)組生成模塊143將3個偽隨機數(shù)和當前挑戰(zhàn)密鑰混合后得到的查詢數(shù)組Q為{S[94]、S[385]、K736、S[787]},當前挑戰(zhàn)密鑰K736在Q中的位置為3。
      [0102]發(fā)送模塊144將查詢數(shù)組Q、文件名(name)和文件塊數(shù)num發(fā)送給服務(wù)器。
      [0103]服務(wù)器2的校驗生成模塊21根據(jù)查詢數(shù)組Q、文件名和文件塊數(shù)num生成校驗標簽序列,并返回給客戶端。具體的:(1)以Q為隨機密鑰,為需進行數(shù)據(jù)存儲驗證的文件生成num (229)個隨機位置;(2)從每一個隨機位置開始讀取長度為y字節(jié)的內(nèi)容{tl、t2、t3、……t229},不足則補零;將所讀取的內(nèi)容順序連接,成為樣本文檔T={tl I |t2| I……
      |t229} ;(3)以Q[u]為密 鑰,計算樣本文檔校驗標簽序列&’,即Ru’ =HMAC (T,Q[u]),其中 u=l、2、......4。
      [0104]客戶端I的過濾模塊15對返回的校驗標簽序列進行過濾。
      [0105]客戶端I的驗證校驗?zāi)K16將過濾后得到的檢驗標簽與驗證表演進行比較以判斷文件是否被破壞。具體的過濾模塊15獲取到校驗標簽序列中位置為3的驗證標簽R3’。驗證校驗?zāi)K16將過濾后得到的校驗標簽R/與驗證標簽R736進行比較,以判斷文件是否被破壞。若校驗標簽R/與驗證標簽R736的值相同,則證明驗證的文件未被破壞,其在服務(wù)器的存儲正常;若不相同,則證明驗證的文件出現(xiàn)被破壞、不完整等情況。
      [0106]在本發(fā)明實施例的高復用性的云存儲數(shù)據(jù)存儲驗證系統(tǒng)中,驗證維護模塊12起到存儲和當前驗證次數(shù)更新等作用。此外,本發(fā)明實施例的系統(tǒng)也可包括一個存儲模塊,用于存儲各個文件的驗證標簽,當驗證維護模塊12發(fā)起存儲驗證標簽查詢維護請求時,存儲模塊即返回對應(yīng)的文件驗證標簽或維護結(jié)果。
      [0107]應(yīng)理解,本發(fā)明的實施例中文件塊數(shù)的確定也可由替換模塊142進行計算,或在步驟S4中進行計算,本申請對此不作限制。
      [0108]本發(fā)明實施例的高復用性的云存儲數(shù)據(jù)存儲驗證方法及系統(tǒng),可使得文件驗證標簽可循環(huán)使用:由于真實挑戰(zhàn)參數(shù)混合于偽隨機數(shù)組中,服務(wù)器無法確定真實挑戰(zhàn)參數(shù)。當偽隨機數(shù)組S足夠大時,服務(wù)器無法確定所有可能的標簽集,因此標簽可持續(xù)重用,直到所
      有可能的標簽均出現(xiàn)過,可驗證次數(shù)由N次擴大到次。這是由于,若沒有步驟S3和
      S5的混淆和混合過程,經(jīng)過N次順序挑戰(zhàn),服務(wù)器即可了解所有的挑戰(zhàn)參數(shù)和標簽。當引入偽隨機數(shù)組S后,在服務(wù)器看來,所有可挑戰(zhàn)的標簽數(shù)目變?yōu)镮 S I +N,每次驗證僅消耗P個標
      簽,因此,當次挑戰(zhàn)后,服務(wù)器才能獲得所有的挑戰(zhàn)秘鑰和標簽。由此,驗證次數(shù)由N次擴大到^次。
      [0109]由此,在上述例子中,通過本發(fā)明實施例的高復用性的云存儲數(shù)據(jù)存儲驗證方法使得可能的驗證標簽為10000+1000個,可驗證至少11000/P=11000/4=2750次。而采用現(xiàn)有技術(shù)的方法,1000個標簽只能支持驗證1000次。本發(fā)明實施例的高復用性的云存儲數(shù)據(jù)存儲驗證方法增加了驗證標簽可重用性。
      [0110]本發(fā)明實施例的高復用性的云存儲數(shù)據(jù)存儲驗證方法及系統(tǒng)可在文件上傳到非可信的服務(wù)器(例如,云存儲服務(wù)器)之前,根據(jù)用戶持有的秘密和其他參數(shù)提前為文件生成驗證標簽,并生成一系列偽隨機數(shù)組,同時保存和維護所有的參數(shù);在驗證文件時,用戶除了指定真正的挑戰(zhàn)參數(shù),還從偽隨機數(shù)組中選擇一定數(shù)目的擾動參數(shù),將這些參數(shù)混合在一起,向服務(wù)器發(fā)起挑戰(zhàn);服務(wù)器按照所有參數(shù)重新生成多個校驗標簽,用戶僅需驗證真正挑戰(zhàn)參數(shù)對應(yīng)的標簽,即可判定文件狀態(tài)。本發(fā)明實施例的方法及系統(tǒng)能以較小的計算代價獲得相對高的驗證可信度,文件驗證標簽的挑戰(zhàn)每次均包含真實挑戰(zhàn)參數(shù)和一系列偽隨機數(shù),使得可能的偽隨機標簽數(shù)量大增,避免服務(wù)器利用保存的正確簽名實現(xiàn)重放攻擊的可能性。
      [0111]流程圖中或在本發(fā)明的實施例中以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù) 所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本發(fā)明的實施例所述【技術(shù)領(lǐng)域】的技術(shù)人員所理解。
      [0112]上面結(jié)合附圖對本發(fā)明的實施例進行了描述,但是本發(fā)明并不局限于上述的【具體實施方式】,上述的【具體實施方式】僅僅是示意性的,而不是限制性的,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明宗旨和權(quán)利要求所保護的范圍情況下,還可做出很多形式,這些均屬于本發(fā)明的保護之內(nèi)。
      【權(quán)利要求】
      1.一種高復用性的云存儲數(shù)據(jù)存儲驗證方法,其特征在于,包括以下步驟: 51、為每個上傳到服務(wù)器的文件設(shè)定驗證參數(shù)和混淆參數(shù),并根據(jù)單次驗證可信度C和文件大小確定需要讀取的文件塊數(shù); 其中,驗證參數(shù)包括:文件的文件名、文件大小、驗證次數(shù)N、單次驗證可信度C ;混淆參數(shù)包括:偽隨機數(shù)組S、偽隨機數(shù)組生成密鑰Y、混淆度P ; 52、接收用戶的數(shù)據(jù)存儲驗證查詢請求,并發(fā)起查詢請求; 53、對當前驗證次數(shù)進行混淆,獲取挑戰(zhàn)密鑰序號; 54、用挑戰(zhàn)密鑰序號替換當前驗證次數(shù),獲取當前挑戰(zhàn)密鑰和驗證標簽; 55、從偽隨機數(shù)組S中選擇P-1個偽隨機數(shù),并與當前挑戰(zhàn)密鑰混合,以生成查詢數(shù)組,并記錄當前挑戰(zhàn)密鑰在查詢數(shù)組中的位置; 56、將查詢數(shù)組、文件名和文件塊數(shù)發(fā)送給服務(wù)器; 57、服務(wù)器根據(jù)查詢數(shù)組、文件名和文件塊數(shù)生成校驗標簽序列,并返回給客戶端; 58、客戶端對返回的校驗標簽序列進行過濾; 59、客戶端將過濾后得到的校驗標簽與驗證標簽進行比較,以判斷文件是否被破壞。
      2.根據(jù)權(quán)利要求1所述的高復用性的云存儲數(shù)據(jù)存儲驗證方法,其特征在于,步驟S2具體包括:根據(jù)式(I)計算挑戰(zhàn)密鑰序號: i=j*cur mod N(I) 式(I)中,i為挑戰(zhàn)密鑰序號,j為從偽隨機數(shù)組S中隨機挑選的數(shù)值,cur為當前驗證次數(shù),N為驗證次數(shù)。
      3.根據(jù)權(quán)利要求1-2任一項所述的高復用性的云存儲數(shù)據(jù)存儲驗證方法,其特征在于,所述方法還包括:根據(jù)系統(tǒng)當前時間生成隨機密鑰種子K,根據(jù)隨機密鑰種子K生成N個隨機密鑰IKpKyK3……κΝ}。
      4.根據(jù)權(quán)利要求3所述的高復用性的云存儲數(shù)據(jù)存儲驗證方法,其特征在于,步驟S4中獲取當前挑戰(zhàn)密鑰具體為:根據(jù)挑戰(zhàn)密鑰序號從N個隨機密鑰IKpKyK3……KN}中獲取的。
      5.根據(jù)權(quán)利要求3所述的高復用性的云存儲數(shù)據(jù)存儲驗證方法,其特征在于,步驟SI中根據(jù)單次驗證可信度C和文件大小確定需要讀取的文件塊數(shù)的計算方法為:1_ (1-1%)num=C,其中num為生成驗證標簽所需要的文件塊數(shù),C為單次驗證可信度。
      6.根據(jù)權(quán)利要求5所述的高復用性的云存儲數(shù)據(jù)存儲驗證方法,其特征在于,步驟S4中獲取驗證標簽包括以下步驟: 在文件大小范圍內(nèi)選擇num個隨機位置; 從每一個隨機位置開始讀取長度為y字節(jié)的內(nèi)容Itl、t2、t3、......tnum},不足則補零; 將所讀取的內(nèi)容順序連接,成為樣本文檔T={tl| |t2| 1......1 I tnum}; 以Ki為密鑰,計算樣本文檔驗證標簽Ri, Ri=HMAC (T,Ki),其中i為挑戰(zhàn)密鑰序號; y為預(yù)設(shè)的每個文件塊的大小。
      7.根據(jù)權(quán)利要求1所述的高復用性的云存儲數(shù)據(jù)存儲驗證方法,其特征在于,步驟S9中,過濾后得到的校驗標簽為在校驗標簽序列中的位置與記錄的當前挑戰(zhàn)密鑰在查詢數(shù)組中的位置相同的校驗標簽。
      8.一種高復用性的云存儲數(shù)據(jù)存儲驗證系統(tǒng),其特征在于,包括:客戶端(I)和服務(wù)器(2); 其中客戶端(I)包括:驗證準備模塊(11)、驗證發(fā)起模塊(13 )、混淆模塊(14 )、過濾模塊(15)、驗證校驗?zāi)K(16);混淆模塊(14)包括挑戰(zhàn)密鑰序號獲取模塊(141)、替換模塊(142)、查詢數(shù)組生成模塊(143)和發(fā)送模塊(144); 服務(wù)器(2 )包括校驗生成模塊(21); 驗證準備模塊(11),用于為每個上傳到服務(wù)器的文件設(shè)定驗證參數(shù)和混淆參數(shù),以及用于根據(jù)單次驗證可信度C和文件大小確定需要讀取的文件塊數(shù);其中,驗證參數(shù)包括:文件的文件名、文件大小、驗證次數(shù)N、單次驗證可信度C ;混淆參數(shù)包括:偽隨機數(shù)組S、偽隨機數(shù)組生成密鑰Y、混淆度P ; 驗證發(fā)起模塊(13),用于接收用戶的數(shù)據(jù)存儲驗證查詢請求,并發(fā)起查詢請求; 挑戰(zhàn)密鑰序號獲取模塊(141),用于在驗證發(fā)起模塊(13)發(fā)起查詢請求時,對當前驗證次數(shù)進行混淆,獲取挑戰(zhàn)密鑰序號; 替換模塊(142),用于用挑戰(zhàn)密鑰序號替換當前驗證次數(shù),獲取當前挑戰(zhàn)密鑰和驗證標簽; 查詢數(shù)組生成模塊(143),用于從偽隨機數(shù)組S中選擇P-1個偽隨機數(shù),并與當前挑戰(zhàn)密鑰混合,以生成查詢數(shù) 組,并記錄當前挑戰(zhàn)密鑰在查詢數(shù)組中的位置; 發(fā)送模塊(144 ),用于將查詢數(shù)組、文件名和文件塊數(shù)發(fā)送給服務(wù)器; 校驗生成模塊(21),用于根據(jù)查詢數(shù)組、文件名和文件塊數(shù)生成校驗標簽序列,并返回給客戶端; 過濾模塊(15),用于對校驗生成模塊(21)返回的校驗標簽序列進行過濾; 驗證校驗?zāi)K(16),用于將過濾后得到的校驗標簽與驗證標簽進行比較,以判斷文件是否被破壞。
      9.根據(jù)權(quán)利要求8所述的高復用性的云存儲數(shù)據(jù)存儲驗證系統(tǒng),其特征在于,所述客戶端還包括驗證維護模塊(12),用于存儲驗證參數(shù)和混淆參數(shù),以及用于更新當前驗證次數(shù)。
      10.根據(jù)權(quán)利要求8-9任一項所述的高復用性的云存儲數(shù)據(jù)存儲驗證系統(tǒng),其特征在于,挑戰(zhàn)密鑰序號獲取模塊(141)根據(jù)式(I)計算挑戰(zhàn)密鑰序號: i=j*cur mod N(I) 式(I)中,i為挑戰(zhàn)密鑰序號,j為從偽隨機數(shù)組S中隨機挑選的數(shù)值,cur為當前驗證次數(shù),N為驗證次數(shù)。
      【文檔編號】H04L29/06GK103944874SQ201410054969
      【公開日】2014年7月23日 申請日期:2014年2月18日 優(yōu)先權(quán)日:2014年2月18日
      【發(fā)明者】陳開渠, 付艷艷, 張敏, 李 昊, 洪澄, 馮登國, 王蓉, 龐妍 申請人:國家超級計算深圳中心, 中國科學院軟件研究所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1