一種基于Merkle樹結(jié)構(gòu)的數(shù)據(jù)模型驗證系統(tǒng)與方法
【專利摘要】本發(fā)明公開了一種基于Merkle樹結(jié)構(gòu)的數(shù)據(jù)模型驗證系統(tǒng)與方法,其系統(tǒng)包括用戶單元、模型管理單元和數(shù)據(jù)存儲中心;用戶單元包括登錄模塊、權(quán)限驗證模塊和第一模型驗證模塊;模型管理單元包括管理模塊和第二模型驗證模塊;所述的數(shù)據(jù)存儲中心包括數(shù)據(jù)預(yù)處理模塊和Merkle樹構(gòu)造模塊。本發(fā)明提供了一種基于Merkle樹結(jié)構(gòu)的數(shù)據(jù)模型驗證系統(tǒng)與方法,在租用相應(yīng)數(shù)據(jù)模型的過程中,對數(shù)據(jù)模型的驗證,檢查是否調(diào)用了正確數(shù)據(jù)模型,從而有效提高了調(diào)用的準(zhǔn)確性。
【專利說明】
一種基于Merk I e樹結(jié)構(gòu)的數(shù)據(jù)模型驗證系統(tǒng)與方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及一種基于Merkle樹結(jié)構(gòu)的數(shù)據(jù)模型驗證系統(tǒng)與方法。
【背景技術(shù)】
[0002]如今,便捷高效的遠(yuǎn)程數(shù)據(jù)存儲訪問服務(wù)被云計算服務(wù)商通過穩(wěn)定高速的網(wǎng)絡(luò)連接進(jìn)行提供,但是由于云計算自身特性,大規(guī)模數(shù)據(jù)存儲服務(wù)面臨著諸多安全隱患和挑戰(zhàn);為了合理利用存儲資源,數(shù)據(jù)文件大多數(shù)情況都是被劃分為若干個小的數(shù)據(jù)塊進(jìn)行存儲,而每個存儲塊的地理位置和存儲狀態(tài)用戶未知,所以當(dāng)用戶再次調(diào)用數(shù)據(jù)時,對數(shù)據(jù)的完整性以及數(shù)據(jù)的正確性會產(chǎn)生懷疑;同樣,當(dāng)數(shù)據(jù)模型存儲在服務(wù)器中,當(dāng)用戶調(diào)用相應(yīng)數(shù)據(jù)模型時,必須保證調(diào)用模型的正確性,及調(diào)用模型的過程中模型不會被改變以及用戶采用的模型是正確的。對于數(shù)據(jù)模型的驗證,通過采用基于Merkle哈希樹的數(shù)據(jù)驗證方式可以有效地、簡單的進(jìn)行數(shù)據(jù)的驗證。
[0003]專利申請?zhí)?201310132565.0本發(fā)明公開了一種基于哈希樹的數(shù)據(jù)動態(tài)操作可驗證性方法,是由用戶USER、云計算數(shù)據(jù)中心⑶C和第三方審計機(jī)構(gòu)TPA三部分通過通信網(wǎng)絡(luò)連接組成。USER作為數(shù)據(jù)存儲服務(wù)請求的提出一方,希望將自己擁有的數(shù)據(jù)文件存儲到云計算數(shù)據(jù)中心的云存儲空間之中;USER既可以是個人用戶,也可以是企業(yè)用戶;CDC負(fù)責(zé)響應(yīng)用戶的數(shù)據(jù)存儲服務(wù)請求,按照一定的規(guī)則將用戶的數(shù)據(jù)文件存儲到自己龐大的數(shù)據(jù)中心,并對數(shù)據(jù)文件的管理維護(hù)負(fù)責(zé);TPA作為可靠的第三方審計機(jī)構(gòu),受USER的委托對存儲在CDC數(shù)據(jù)中心的數(shù)據(jù)文件進(jìn)行完整性和一致性的審查;本發(fā)明解決了云計算環(huán)境下對于用戶數(shù)據(jù)文件完整性和一致性的驗證問題。
[0004]專利申請?zhí)?201510101056.0本發(fā)明公開了一種基于Merkle樹結(jié)構(gòu)的空間查詢完整性驗證方法,該方法在已有的自適應(yīng)Hi Ibert曲線所生成的四分樹節(jié)點上,提出了支持查詢完整性驗證的Merkle樹結(jié)構(gòu)的構(gòu)建方法,并提出了范圍查詢與KNN查詢的完整性驗證方法,使得本發(fā)明所提供的完整性驗證結(jié)果不存在誤報與漏報的情況,進(jìn)而使得服務(wù)提供者難以對用戶的查詢結(jié)果進(jìn)行惡意更改;本發(fā)明方法可以在空間數(shù)據(jù)外包的服務(wù)模式下,為用戶提供高效的驗證結(jié)構(gòu)生成功能,以及準(zhǔn)確的范圍查詢與KNN查詢完整性驗證功能,從而保證空間查詢服務(wù)的質(zhì)量。
[0005]現(xiàn)有的基于Merkle哈希樹的數(shù)據(jù)驗證專利,大多數(shù)都是對用戶存儲的數(shù)據(jù)以及驗證在云存儲狀態(tài)下當(dāng)存儲數(shù)據(jù)在進(jìn)行移動是否遭到損壞及完整性的檢驗,并沒有當(dāng)用戶調(diào)用或租用相應(yīng)數(shù)據(jù)模型時,對數(shù)據(jù)模型的驗證及檢查是否調(diào)用了正確數(shù)據(jù)模型,同時在構(gòu)建哈希樹的時候,只簡單的進(jìn)行了構(gòu)造,沒有考慮驗證時效率問題。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種基于Merkle樹結(jié)構(gòu)的數(shù)據(jù)模型驗證系統(tǒng)與方法,在租用相應(yīng)數(shù)據(jù)模型的過程中,對數(shù)據(jù)模型的驗證,檢查是否調(diào)用了正確數(shù)據(jù)模型,從而有效提高了調(diào)用的準(zhǔn)確性。
[0007]本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的:一種基于Merkle樹結(jié)構(gòu)的數(shù)據(jù)模型驗證系統(tǒng),包括用戶單元、模型管理單元和數(shù)據(jù)存儲中心;
所述的用戶單元包括登錄模塊、權(quán)限驗證模塊和第一模型驗證模塊;登錄模塊用于向用戶提供登錄接口;權(quán)限認(rèn)證模塊用于對登錄的用戶進(jìn)行權(quán)限判斷,識別當(dāng)前登錄的用戶是管理員還是租戶;第一模型驗證模塊用于驗證模型調(diào)用正確性;
所述的模型管理單元包括管理模塊和第二模型驗證模塊;管理模塊用于在用戶為管理員時,進(jìn)行數(shù)據(jù)模型的管理和上傳;第二模型驗證模塊用于在用戶為租戶時將用戶提交的標(biāo)簽信息所覆蓋的所有數(shù)據(jù)塊傳輸給用戶,并接收用戶的驗證信息以決定是否繼續(xù)調(diào)用數(shù)據(jù)模型;
進(jìn)一步地,管理模塊用于數(shù)據(jù)模型的增加,也能夠用于數(shù)據(jù)模型的刪除和修改。
[0008]所述的數(shù)據(jù)存儲中心包括數(shù)據(jù)預(yù)處理模塊和Merkle樹構(gòu)造模塊;數(shù)據(jù)預(yù)處理模塊用于為上傳的數(shù)據(jù)模型進(jìn)行分塊,對數(shù)據(jù)塊分塊進(jìn)行哈?;?給每個數(shù)據(jù)塊一個唯一識別的標(biāo)簽信息,對所有數(shù)據(jù)塊進(jìn)行存儲并創(chuàng)建一個包含全部數(shù)據(jù)塊標(biāo)簽信息的標(biāo)簽信息列表;Merkle樹構(gòu)造模塊用于根據(jù)標(biāo)簽信息構(gòu)建Merkle Hash Tree。
[0009]進(jìn)一步地,系統(tǒng)各部分通過通信網(wǎng)絡(luò)連接。
[0010]所述的模型管理單元還包括模型集成模塊,用于集成多種類型的典型模型函數(shù),形成這些模型函數(shù)的元數(shù)據(jù);得到相應(yīng)的業(yè)務(wù)領(lǐng)域的數(shù)據(jù)模型;集成好的數(shù)據(jù)模型定期上傳給數(shù)據(jù)存儲中心,在用戶為管理員時,也可以由管理員進(jìn)行操作和上傳。
[0011]數(shù)據(jù)存儲中心負(fù)責(zé)響應(yīng)存儲服務(wù)請求,按照一定的規(guī)則將模型庫中的模型存儲到其龐大的數(shù)據(jù)中心,并對這些數(shù)據(jù)模型進(jìn)行管理維護(hù)和負(fù)責(zé)。
[0012]所述的標(biāo)簽信息包括存儲位置標(biāo)記信息、模型ID標(biāo)記信息和模型類型標(biāo)記信息。
[0013]一種基于Merkle樹結(jié)構(gòu)的數(shù)據(jù)模型驗證方法,包括以下步驟:
51.通過用戶單元進(jìn)行賬號和密碼登錄,用戶單元對登錄信息進(jìn)行認(rèn)證,判斷用戶性質(zhì):
(1)如果用戶性質(zhì)為管理員,跳轉(zhuǎn)至步驟S2;
(2)如果用戶性質(zhì)為租戶,跳轉(zhuǎn)至步驟S6;
52.管理員通過用戶單元控制模型管理單元向數(shù)據(jù)存儲中心上傳數(shù)據(jù)模型,請求數(shù)據(jù)處理中心對數(shù)據(jù)模型進(jìn)行存儲;
53.數(shù)據(jù)存儲中心將數(shù)據(jù)模型劃分成大小相同的若干個數(shù)據(jù)塊,然后對于每個數(shù)據(jù)塊進(jìn)行哈希化操作得到所有數(shù)據(jù)塊的摘要,并暫時存儲;同時對每個數(shù)據(jù)塊進(jìn)行簽名操作,每個數(shù)據(jù)塊得到一個唯一識別的標(biāo)簽信息;
54.數(shù)據(jù)存儲中心根據(jù)管理員上傳模型的摘要構(gòu)建MerkleHash Tree,計算模型的根節(jié)點摘要,并向用戶公開其根節(jié)點的摘要;
55.數(shù)據(jù)存儲中心根據(jù)創(chuàng)建一個包含全部數(shù)據(jù)塊標(biāo)簽信息的標(biāo)簽信息列表,并向用戶公開;
56.租戶通過模型管理單元進(jìn)行模型驗證,并判斷驗證是否成功:
(1)驗證成功,調(diào)用對應(yīng)的數(shù)據(jù)模型;
(2)驗證不成功,返回驗證失敗的信號給模型管理單元。
[0014]步驟S3中所述的標(biāo)簽信息包括存儲位置標(biāo)記信息、模型ID標(biāo)記信息和模型類型標(biāo)記信息。
[0015]所述的步驟S4包括以下子步驟:
541.數(shù)據(jù)存儲中心通過標(biāo)簽信息中的模型類型,對不同的模型類別的數(shù)據(jù)塊進(jìn)行劃分,并存儲到相應(yīng)的數(shù)據(jù)模型類別列表;
542.數(shù)據(jù)存儲中心對相同類型不同ID的數(shù)據(jù)塊進(jìn)行劃分,得到相同類別、相同ID的數(shù)據(jù)塊;
543.數(shù)據(jù)存儲中心對相同類別、相同ID的數(shù)據(jù)塊,取出它們的位置存儲信息,進(jìn)行按序排列,將數(shù)據(jù)塊的摘要作為葉節(jié)點構(gòu)造ID Merkle Hash Tree,并計算每個ID Merkle HashTree的根節(jié)點摘要值;
544.數(shù)據(jù)存儲中心將具有相同模型類別的所有IDMerkle Hash Tree根節(jié)點按節(jié)點順序進(jìn)行排序,將ID Merkle Hash Tree的根節(jié)點摘要作為葉節(jié)點構(gòu)造數(shù)據(jù)模型的MD MerkleHash Tree,并計算每個MD Merkle Hash Tree的根節(jié)點摘要值;
545.數(shù)據(jù)存儲中心將所有類別數(shù)據(jù)模型的MDMerkle Hash Tree的根節(jié)點按照節(jié)點順序進(jìn)行按序排列,將Merkle Hash Tree的根節(jié)點摘要作為葉子節(jié)點構(gòu)造模型的MerkleHash Tree,并計算Merkle Hash Tree的根節(jié)點摘要值。
[0016]所述的步驟S6包括以下子步驟:
561.用戶單元向模型管理單元提交相關(guān)數(shù)據(jù)模型的相關(guān)驗證信息,即需要驗證的數(shù)據(jù)模型所涉及數(shù)據(jù)塊的所有標(biāo)簽信息;
562.模型管理單元從數(shù)據(jù)存儲中心獲取標(biāo)簽信息所對應(yīng)的數(shù)據(jù)塊,并將數(shù)據(jù)塊全部傳遞給用戶;
563.用戶生成需要驗證數(shù)據(jù)模型的MerkleHash Tree并計算其根節(jié)點摘要;
進(jìn)一步地,用戶對構(gòu)建需要驗證數(shù)據(jù)模型的Merkle Hash Tree并計算其根節(jié)點摘要的方式,與步驟S4中數(shù)據(jù)存儲中心對進(jìn)行Merkle Hash Tree構(gòu)建,根節(jié)點摘要的計算方式一致。
[0017]S64.用戶將自己計算的根節(jié)點摘要與數(shù)據(jù)存儲中心公布的摘要相比較,判斷二者是否一致:
(1)根節(jié)點摘要一致,驗證成功,用戶認(rèn)為模型管理單元調(diào)用了正確的數(shù)據(jù)模型,返回成功的信號給模型管理單元,允許繼續(xù)調(diào)用;
(2)根節(jié)點摘要不一致,驗證失敗,返回驗證失敗的信號給模型管理單元;用戶認(rèn)為模型管理單元篡改了數(shù)據(jù)模型。
[0018]本申請中管理員可以通過模型管理單元放心的將模型傳輸給數(shù)據(jù)存儲中心,不用擔(dān)心在數(shù)據(jù)模型傳輸過程出現(xiàn)錯誤,引起哈希值的錯誤進(jìn)而導(dǎo)致整個驗證信息錯誤的問題;方案實現(xiàn)了基于Merkle Hash Tree的數(shù)據(jù)模型驗證,符合用戶租賃數(shù)據(jù)模型并進(jìn)行數(shù)據(jù)模型驗證的安全需求,并且提出了大數(shù)據(jù)應(yīng)用中數(shù)據(jù)模型的驗證,使得直接讓用戶租賃相應(yīng)業(yè)務(wù)數(shù)據(jù)模型成為可能;同時,使用標(biāo)簽和分層次Merkle Hash Tree,使得方案允許對數(shù)據(jù)存儲中心中單一模型或者某一種特定類型模型進(jìn)行驗證。
[0019]本發(fā)明的有益效果是:利用標(biāo)記有數(shù)據(jù)塊存儲地理信息位置的標(biāo)簽,減少了在Merkle Hash Tree根節(jié)點值計算過程中由于數(shù)據(jù)存儲中心內(nèi)部通信所消耗的大量時間;對數(shù)據(jù)模型進(jìn)行驗證,方便了用戶在租賃數(shù)據(jù)模型時保證模型的正確性,防止用戶任意調(diào)用數(shù)據(jù)模型。
【附圖說明】
[0020]圖1為本發(fā)明的系統(tǒng)原理框圖;
圖2為本發(fā)明的方法流程圖;
圖3為為構(gòu)造ID Merkle Hash Tree,并計算根節(jié)點摘要的原理圖。
【具體實施方式】
[0021]下面結(jié)合附圖進(jìn)一步詳細(xì)描述本發(fā)明的技術(shù)方案,但本發(fā)明的保護(hù)范圍不局限于以下所述。
[0022]如圖1所示,:一種基于Merkle樹結(jié)構(gòu)的數(shù)據(jù)模型驗證系統(tǒng),包括用戶單元、模型管理單元和數(shù)據(jù)存儲中心;
所述的用戶單元包括登錄模塊、權(quán)限驗證模塊和第一模型驗證模塊;登錄模塊用于向用戶提供登錄接口;權(quán)限認(rèn)證模塊用于對登錄的用戶進(jìn)行權(quán)限判斷,識別當(dāng)前登錄的用戶是管理員還是租戶;第一模型驗證模塊用于驗證模型調(diào)用正確性;
所述的模型管理單元包括管理模塊和第二模型驗證模塊;管理模塊用于在用戶為管理員時,進(jìn)行數(shù)據(jù)模型的管理和上傳;第二模型驗證模塊用于在用戶為租戶時將用戶提交的標(biāo)簽信息所覆蓋的所有數(shù)據(jù)塊傳輸給用戶,并接收用戶的驗證信息以決定是否繼續(xù)調(diào)用數(shù)據(jù)模型;
進(jìn)一步地,管理模塊用于數(shù)據(jù)模型的增加,也能夠用于數(shù)據(jù)模型的刪除和修改。
[0023]所述的數(shù)據(jù)存儲中心包括數(shù)據(jù)預(yù)處理模塊和Merkle樹構(gòu)造模塊;數(shù)據(jù)預(yù)處理模塊用于為上傳的數(shù)據(jù)模型進(jìn)行分塊,對數(shù)據(jù)塊分塊進(jìn)行哈?;?給每個數(shù)據(jù)塊一個唯一識別的標(biāo)簽信息,對所有數(shù)據(jù)塊進(jìn)行存儲并創(chuàng)建一個包含全部數(shù)據(jù)塊標(biāo)簽信息的標(biāo)簽信息列表;Merkle樹構(gòu)造模塊用于根據(jù)標(biāo)簽信息構(gòu)建Merkle Hash Tree。
[0024]進(jìn)一步地,系統(tǒng)各部分通過通信網(wǎng)絡(luò)連接。
[0025]所述的模型管理單元還包括模型集成模塊,用于集成多種類型的典型模型函數(shù),形成這些模型函數(shù)的元數(shù)據(jù);得到相應(yīng)的業(yè)務(wù)領(lǐng)域的數(shù)據(jù)模型;集成好的數(shù)據(jù)模型定期上傳給數(shù)據(jù)存儲中心,在用戶為管理員時,也可以由管理員進(jìn)行操作和上傳。
[0026]數(shù)據(jù)存儲中心負(fù)責(zé)響應(yīng)存儲服務(wù)請求,按照一定的規(guī)則將模型庫中的模型存儲到其龐大的數(shù)據(jù)中心,并對這些數(shù)據(jù)模型進(jìn)行管理維護(hù)和負(fù)責(zé)。
[0027]所述的標(biāo)簽信息包括存儲位置標(biāo)記信息、模型ID標(biāo)記信息和模型類型標(biāo)記信息。
[0028]如圖2所示,一種基于Merkle樹結(jié)構(gòu)的數(shù)據(jù)模型驗證方法,包括以下步驟:
51.通過用戶單元進(jìn)行賬號和密碼登錄,用戶單元對登錄信息進(jìn)行認(rèn)證,判斷用戶性質(zhì):
(1)如果用戶性質(zhì)為管理員,跳轉(zhuǎn)至步驟S2;
(2)如果用戶性質(zhì)為租戶,跳轉(zhuǎn)至步驟S6;
52.管理員通過用戶單元控制模型管理單元向數(shù)據(jù)存儲中心上傳數(shù)據(jù)模型,請求數(shù)據(jù)處理中心對數(shù)據(jù)模型進(jìn)行存儲;
53.數(shù)據(jù)存儲中心將數(shù)據(jù)模型劃分成大小相同的若干個數(shù)據(jù)塊,然后對于每個數(shù)據(jù)塊進(jìn)行哈?;僮鞯玫剿袛?shù)據(jù)塊的摘要,并暫時存儲;同時對每個數(shù)據(jù)塊進(jìn)行簽名操作,每個數(shù)據(jù)塊得到一個唯一識別的標(biāo)簽信息;
54.數(shù)據(jù)存儲中心根據(jù)管理員上傳模型的摘要構(gòu)建MerkleHash Tree,計算模型的根節(jié)點摘要,并向用戶公開其根節(jié)點的摘要;
55.數(shù)據(jù)存儲中心根據(jù)創(chuàng)建一個包含全部數(shù)據(jù)塊標(biāo)簽信息的標(biāo)簽信息列表,并向用戶公開;
56.租戶通過模型管理單元進(jìn)行模型驗證,并判斷驗證是否成功:
(1)驗證成功,調(diào)用對應(yīng)的數(shù)據(jù)模型;
(2)驗證不成功,返回驗證失敗的信號給模型管理單元。
[0029]步驟S3中所述的標(biāo)簽信息包括存儲位置標(biāo)記信息、模型ID標(biāo)記信息和模型類型標(biāo)記信息。
[0030]所述的步驟S4包括以下子步驟:
541.數(shù)據(jù)存儲中心通過標(biāo)簽信息中的模型類型,對不同的模型類別的數(shù)據(jù)塊進(jìn)行劃分,并存儲到相應(yīng)的數(shù)據(jù)模型類別列表;
542.數(shù)據(jù)存儲中心對相同類型不同ID的數(shù)據(jù)塊進(jìn)行劃分,得到相同類別、相同ID的數(shù)據(jù)塊;
543.數(shù)據(jù)存儲中心對相同類別、相同ID的數(shù)據(jù)塊,取出它們的位置存儲信息,進(jìn)行按序排列,將數(shù)據(jù)塊的摘要作為葉節(jié)點構(gòu)造ID Merkle Hash Tree,并計算每個ID Merkle HashTree的根節(jié)點摘要值;
544.數(shù)據(jù)存儲中心將具有相同模型類別的所有IDMerkle Hash Tree根節(jié)點按節(jié)點順序進(jìn)行排序,將ID Merkle Hash Tree的根節(jié)點摘要作為葉節(jié)點構(gòu)造數(shù)據(jù)模型的MD MerkleHash Tree,并計算每個MD Merkle Hash Tree的根節(jié)點摘要值;
545.數(shù)據(jù)存儲中心將所有類別數(shù)據(jù)模型的MDMerkle Hash Tree的根節(jié)點按照節(jié)點順序進(jìn)行按序排列,將Merkle Hash Tree的根節(jié)點摘要作為葉子節(jié)點構(gòu)造模型的MerkleHash Tree,并計算Merkle Hash Tree的根節(jié)點摘要值。
[0031]進(jìn)一步地,步驟S43中,需要計算每個ID Merkle Hash Tree的根節(jié)點摘要值,如圖3所示,圖中Hash(.)表示哈希操作,‘ I ’表示對摘要的級聯(lián)操作;
假設(shè)在某一個模型類別中,相同ID的數(shù)據(jù)塊只有4個X1,X2,X3和X4,數(shù)據(jù)存儲中心將經(jīng)過哈希操作Hash(.)得到四個數(shù)據(jù)塊摘要值h21,h22,h23和h24作為ID Merkle Hash Tree葉節(jié)點的值;ID Merkle Hash Tree中間節(jié)點的值為它的孩子節(jié)點的摘要值級聯(lián)的摘要;IDMerkle Hash Tree根節(jié)點值可以通過從葉子節(jié)點自底向上逐層計算摘要得到。
[0032]而MD Merkle Hash Tree的根節(jié)點摘要計算同理,只是葉子節(jié)點不同而已,將IDMerkle Hash Tree的根節(jié)點摘要作為葉節(jié)點,MD Merkle Hash Tree中間節(jié)點的值為它的孩子節(jié)點的摘要值級聯(lián)的摘要;MD Merkle Hash Tree根節(jié)點值可以通過從葉子節(jié)點自底向上逐層計算摘要得到。
[0033]Merkle Hash Tree的根節(jié)點摘要計算方式也一樣,只是葉子節(jié)點不同而已,將MDMerkle Hash Tree的根節(jié)點摘要作為葉子節(jié)點,Merkle Hash Tree中間節(jié)點的值為它的孩子節(jié)點的摘要值級聯(lián)的摘要;Merkle Hash Tree根節(jié)點值可以通過從葉子節(jié)點自底向上逐層計算摘要得到。
[0034]所述的步驟S6包括以下子步驟:
561.用戶單元向模型管理單元提交相關(guān)數(shù)據(jù)模型的相關(guān)驗證信息,即需要驗證的數(shù)據(jù)模型所涉及數(shù)據(jù)塊的所有標(biāo)簽信息;
562.模型管理單元從數(shù)據(jù)存儲中心獲取標(biāo)簽信息所對應(yīng)的數(shù)據(jù)塊,并將數(shù)據(jù)塊全部傳遞給用戶;
563.用戶生成需要驗證數(shù)據(jù)模型的MerkleHash Tree并計算其根節(jié)點摘要;
進(jìn)一步地,用戶對構(gòu)建需要驗證數(shù)據(jù)模型的Merkle Hash Tree并計算其根節(jié)點摘要的方式,與步驟S4中數(shù)據(jù)存儲中心對進(jìn)行Merkle Hash Tree構(gòu)建,根節(jié)點摘要的計算方式一致。
[0035]S64.用戶將自己計算的根節(jié)點摘要與數(shù)據(jù)存儲中心公布的摘要相比較,判斷二者是否一致:
(1)根節(jié)點摘要一致,驗證成功,用戶認(rèn)為模型管理單元調(diào)用了正確的數(shù)據(jù)模型,返回成功的信號給模型管理單元,允許繼續(xù)調(diào)用;
(2)根節(jié)點摘要不一致,驗證失敗,返回驗證失敗的信號給模型管理單元;用戶認(rèn)為模型管理單元篡改了數(shù)據(jù)模型。
[0036]本申請中管理員可以通過模型管理單元放心的將模型傳輸給數(shù)據(jù)存儲中心,不用擔(dān)心在數(shù)據(jù)模型傳輸過程出現(xiàn)錯誤,引起哈希值的錯誤進(jìn)而導(dǎo)致整個驗證信息錯誤的問題;方案實現(xiàn)了基于Merkle Hash Tree的數(shù)據(jù)模型驗證,符合用戶租賃數(shù)據(jù)模型并進(jìn)行數(shù)據(jù)模型驗證的安全需求,并且提出了大數(shù)據(jù)應(yīng)用中數(shù)據(jù)模型的驗證,使得直接讓用戶租賃相應(yīng)業(yè)務(wù)數(shù)據(jù)模型成為可能;同時,使用標(biāo)簽和分層次Merkle Hash Tree,使得方案允許對數(shù)據(jù)存儲中心中單一模型或者某一種特定類型模型進(jìn)行驗證。
【主權(quán)項】
1.一種基于Merkle樹結(jié)構(gòu)的數(shù)據(jù)模型驗證系統(tǒng),其特征在于:包括用戶單元、模型管理單元和數(shù)據(jù)存儲中心; 所述的用戶單元包括登錄模塊、權(quán)限驗證模塊和第一模型驗證模塊;登錄模塊用于向用戶提供登錄接口;權(quán)限認(rèn)證模塊用于對登錄的用戶進(jìn)行權(quán)限判斷,識別當(dāng)前登錄的用戶是管理員還是租戶;第一模型驗證模塊用于驗證模型調(diào)用正確性; 所述的模型管理單元包括管理模塊和第二模型驗證模塊;管理模塊用于在用戶為管理員時,進(jìn)行數(shù)據(jù)模型的管理和上傳;第二模型驗證模塊用于在用戶為租戶時將用戶提交的標(biāo)簽信息所覆蓋的所有數(shù)據(jù)塊傳輸給用戶,并接收用戶的驗證信息以決定是否繼續(xù)調(diào)用數(shù)據(jù)模型; 所述的數(shù)據(jù)存儲中心包括數(shù)據(jù)預(yù)處理模塊和Merkle樹構(gòu)造模塊;數(shù)據(jù)預(yù)處理模塊用于為上傳的數(shù)據(jù)模型進(jìn)行分塊,對數(shù)據(jù)塊分塊進(jìn)行哈希化;給每個數(shù)據(jù)塊一個唯一識別的標(biāo)簽信息,對所有數(shù)據(jù)塊進(jìn)行存儲并創(chuàng)建一個包含全部數(shù)據(jù)塊標(biāo)簽信息的標(biāo)簽信息列表;Merkle樹構(gòu)造模塊用于根據(jù)標(biāo)簽信息構(gòu)建Merkle Hash Tree。2.根據(jù)權(quán)利要求1所述的一種基于Merkle樹結(jié)構(gòu)的數(shù)據(jù)模型驗證系統(tǒng),其特征在于:所述的模型管理單元還包括模型集成模塊,用于集成多種類型的典型模型函數(shù),形成這些模型函數(shù)的元數(shù)據(jù),得到相應(yīng)的業(yè)務(wù)領(lǐng)域的數(shù)據(jù)模型并定期上傳給數(shù)據(jù)存儲中心。3.根據(jù)權(quán)利要求1所述的一種基于Merkle樹結(jié)構(gòu)的數(shù)據(jù)模型驗證系統(tǒng),其特征在于:所述的標(biāo)簽信息包括存儲位置標(biāo)記信息、模型ID標(biāo)記信息和模型類型標(biāo)記信息。4.根據(jù)權(quán)利要求1?3中任意一項所述的一種基于Merkle樹結(jié)構(gòu)的數(shù)據(jù)模型驗證方法,其特征在于:包括以下步驟: .51.通過用戶單元進(jìn)行賬號和密碼登錄,用戶單元對登錄信息進(jìn)行認(rèn)證,判斷用戶性質(zhì): (1)如果用戶性質(zhì)為管理員,跳轉(zhuǎn)至步驟S2; (2)如果用戶性質(zhì)為租戶,跳轉(zhuǎn)至步驟S6; .52.管理員通過用戶單元控制模型管理單元向數(shù)據(jù)存儲中心上傳數(shù)據(jù)模型,請求數(shù)據(jù)處理中心對數(shù)據(jù)模型進(jìn)行存儲;. 53.數(shù)據(jù)存儲中心將數(shù)據(jù)模型劃分成大小相同的若干個數(shù)據(jù)塊,然后對于每個數(shù)據(jù)塊進(jìn)行哈?;僮鞯玫剿袛?shù)據(jù)塊的摘要,并暫時存儲;同時對每個數(shù)據(jù)塊進(jìn)行簽名操作,每個數(shù)據(jù)塊得到一個唯一識別的標(biāo)簽信息; .54.數(shù)據(jù)存儲中心根據(jù)管理員上傳模型的摘要構(gòu)建MerkleHash Tree,計算模型的根節(jié)點摘要,并向用戶公開其根節(jié)點的摘要; .55.數(shù)據(jù)存儲中心根據(jù)創(chuàng)建一個包含全部數(shù)據(jù)塊標(biāo)簽信息的標(biāo)簽信息列表,并向用戶公開; . 56.租戶通過模型管理單元進(jìn)行模型驗證,并判斷驗證是否成功: (1)驗證成功,調(diào)用對應(yīng)的數(shù)據(jù)模型; (2)驗證不成功,返回驗證失敗的信號給模型管理單元。5.根據(jù)權(quán)利要求4所述的一種基于Merkle樹結(jié)構(gòu)的數(shù)據(jù)模型驗證系統(tǒng)的驗證方法,其特征在于:步驟S3中所述的標(biāo)簽信息包括存儲位置標(biāo)記信息、模型ID標(biāo)記信息和模型類型標(biāo)記信息。6.根據(jù)權(quán)利要求4所述的一種基于Merkle樹結(jié)構(gòu)的數(shù)據(jù)模型驗證系統(tǒng)的驗證方法,其特征在于:所述的步驟S4包括以下子步驟: .541.數(shù)據(jù)存儲中心通過標(biāo)簽信息中的模型類型,對不同的模型類別的數(shù)據(jù)塊進(jìn)行劃分,并存儲到相應(yīng)的數(shù)據(jù)模型類別列表; . 542.數(shù)據(jù)存儲中心對相同類型不同ID的數(shù)據(jù)塊進(jìn)行劃分,得到相同類別、相同ID的數(shù)據(jù)塊; . 543.數(shù)據(jù)存儲中心對相同類別、相同ID的數(shù)據(jù)塊,取出它們的位置存儲信息,進(jìn)行按序排列,將數(shù)據(jù)塊的摘要作為葉節(jié)點構(gòu)造ID Merkle Hash Tree,并計算每個ID Merkle HashTree的根節(jié)點摘要值; .544.數(shù)據(jù)存儲中心將具有相同模型類別的所有IDMerkle Hash Tree根節(jié)點按節(jié)點順序進(jìn)行排序,將ID Merkle Hash Tree的根節(jié)點摘要作為葉節(jié)點構(gòu)造數(shù)據(jù)模型的MD MerkleHash Tree,并計算每個MD Merkle Hash Tree的根節(jié)點摘要值; . 545.數(shù)據(jù)存儲中心將所有類別數(shù)據(jù)模型的MDMerkle Hash Tree的根節(jié)點按照節(jié)點順序進(jìn)行按序排列,將Merkle Hash Tree的根節(jié)點摘要作為葉子節(jié)點構(gòu)造模型的MerkleHash Tree,并計算Merkle Hash Tree的根節(jié)點摘要值。7.根據(jù)權(quán)利要求4所述的一種基于Merkle樹結(jié)構(gòu)的數(shù)據(jù)模型驗證系統(tǒng)的驗證方法,其特征在于:所述的步驟S6包括以下子步驟: .561.用戶單元向模型管理單元提交相關(guān)數(shù)據(jù)模型的相關(guān)驗證信息,即需要驗證的數(shù)據(jù)模型所涉及數(shù)據(jù)塊的所有標(biāo)簽信息;. 562.模型管理單元從數(shù)據(jù)存儲中心獲取標(biāo)簽信息所對應(yīng)的數(shù)據(jù)塊,并將數(shù)據(jù)塊全部傳遞給用戶; . 563.用戶生成需要驗證數(shù)據(jù)模型的MerkleHash Tree并計算其根節(jié)點摘要;. 564.用戶將自己計算的根節(jié)點摘要與數(shù)據(jù)存儲中心公布的摘要相比較,判斷二者是否一致: (1)根節(jié)點摘要一致,驗證成功,用戶認(rèn)為模型管理單元調(diào)用了正確的數(shù)據(jù)模型,返回成功的信號給模型管理單元,允許繼續(xù)調(diào)用; (2)根節(jié)點摘要不一致,驗證失敗,返回驗證失敗的信號給模型管理單元;用戶認(rèn)為模型管理單元篡改了數(shù)據(jù)模型。
【文檔編號】G06F17/30GK105868369SQ201610192741
【公開日】2016年8月17日
【申請日】2016年3月30日
【發(fā)明人】王勇, 郝鵬飛, 陳炬光, 陳炳泉
【申請人】電子科技大學(xué)