【技術實現步驟摘要】
一種基于梅克爾樹的標識資源版本驗證方法及系統
本專利技術涉及物聯網領域,具體涉及一種基于梅克爾樹的標識資源版本驗證方法及系統。
技術介紹
在當前的物聯網環境中,“萬物互聯”是信息技術發展的趨勢,“萬物互聯”要求給每一個“物”或“物的集合”賦予一個唯一的標識作為互聯的基礎,這個標識(也就是“物”)的相關資源稱為標識資源,標識資源可以是不同對象的集合。標識是唯一不變的,但是標識資源則是可變的,為了滿足物聯網可追溯性的要求,標識資源的重要變更都應該存儲和標記形成版本,以便后續檢查,并且在特定的場景之下,每個版本的資源是反應某一歷史時段的事實,不能被刪除或否認。標識資源的存儲和標記離不開計算機應用,標識資源可包含不同的對象,一般是文本、圖片、其他程序文件等,其中文本和圖片對象應用較為廣泛。現有的一種技術方案是哈希列表,標識資源管理授權機構(IRMA)按照時間發生順序以列表形式對不同版本標識資源的哈希值進行登記,也存儲真實的標識資源對象,當用戶或物聯網終端需要驗證自己當前的標識資源版本是否屬于歷史存儲時,從IRMA下載完整的哈希列表,遍歷完整的哈希列表,以確認自己當前的標識資源版本是否正確和完整。IRMA中的多個節點,具有容錯能力,通過比對哈希列表找出出現數據異常的節點并定位有問題的標識資源版本。如圖1,4個IRMA節點分別對自己當前存儲的標識001對應的不同標識資源進行哈希,形成一張所有版本標識資源哈希組成的資源哈希列表,列表中記錄建立順序索引,4個IRMA節點實時與其他節點比對資源哈希列表,以便發現存在異常 ...
【技術保護點】
1.一種基于梅克爾樹的標識資源版本驗證方法,其特征在于,包括以下步驟:/n存儲標識資源,標識資源管理授權機構IRMA通過IRMA節點對每個標識存儲的所有版本的標識資源生成一棵對應的梅克爾樹;/nIRMA節點進行標識資源版本驗證,每個IRMA節點對自己當前存儲標識資源的梅克爾樹與所有IRMA節點達成共識的梅克爾樹進行比較,如果樹根哈希一樣,則標識資源一致,否則標識資源版本出錯,將檢查出標識版本出錯的IRMA節點作為異常IRMA節點;/nIRMA節點根據共識策略對梅克爾樹進行確認,異常IRMA節點將異常梅克爾樹與共識梅克爾樹從樹根到葉子逐層比對,定位出錯的標識資源版本;/nIRMA節點驗證前多個歷史標識資源版本是否都為正確完整的版本時,其中一個IRMA節點通過向其他IRMA節點取得共識梅克爾樹的樹根哈希和版本號,遞歸求出驗算需要用到的其它節點哈希,根據所述其它節點哈希來驗證所述前多個歷史標識資源版本都是正確完整的版本;/n物聯網終端驗證某個歷史標識資源版本是否為正確完整的版本時,通過向IRMA節點取得共識梅克爾樹的樹根哈希和版本號,遞歸求出驗算需要用到的其它節點哈希,根據所述其它節點哈希來 ...
【技術特征摘要】
1.一種基于梅克爾樹的標識資源版本驗證方法,其特征在于,包括以下步驟:
存儲標識資源,標識資源管理授權機構IRMA通過IRMA節點對每個標識存儲的所有版本的標識資源生成一棵對應的梅克爾樹;
IRMA節點進行標識資源版本驗證,每個IRMA節點對自己當前存儲標識資源的梅克爾樹與所有IRMA節點達成共識的梅克爾樹進行比較,如果樹根哈希一樣,則標識資源一致,否則標識資源版本出錯,將檢查出標識版本出錯的IRMA節點作為異常IRMA節點;
IRMA節點根據共識策略對梅克爾樹進行確認,異常IRMA節點將異常梅克爾樹與共識梅克爾樹從樹根到葉子逐層比對,定位出錯的標識資源版本;
IRMA節點驗證前多個歷史標識資源版本是否都為正確完整的版本時,其中一個IRMA節點通過向其他IRMA節點取得共識梅克爾樹的樹根哈希和版本號,遞歸求出驗算需要用到的其它節點哈希,根據所述其它節點哈希來驗證所述前多個歷史標識資源版本都是正確完整的版本;
物聯網終端驗證某個歷史標識資源版本是否為正確完整的版本時,通過向IRMA節點取得共識梅克爾樹的樹根哈希和版本號,遞歸求出驗算需要用到的其它節點哈希,根據所述其它節點哈希來驗證所述歷史標識資源版本是否為正確完整的版本。
2.如權利要求1所述的方法,其特征在于,生成梅克爾哈希樹采用的哈希算法包括sha-1、sha-224、sha-256、sha-384、sha-512或md5。
3.如權利要求1所述的方法,其特征在于,IRMA節點之間通過共識算法協議進行通信,共識算法包括BFT、PBFT、Pow、Pos或Raft。
4.如權利要求1所述的方法,其特征在于,生成梅克爾哈希樹的步驟包括:
IRMA節點收到來自物聯網終端的某一標識的某一版本的資源和版本哈希時,IRMA節點之間進行共識通信,若滿足共識策略,以及驗證版本哈希正確,則將標識資源存儲于標識資源版本列表中;
IRMA節點基于目標標識的所有版本哈希,構建目標標識對應的梅克爾樹。
5.如權利要求1所述的方法,其特征在于,生成梅克爾樹時,分為以下兩種情況:
當只有一個版本時候,標識資源版本列表為T[1]={t(0)},生成樹的公式為:
MTH(T[1])=MTH({t(0)})=SHA-xxx(0x0||t(0));
當有n個版本時候,標識資源版本列表為T[n]={t(0),t(1),...,t(n-1)},生成樹的遞歸公式為:
MTH(T[n])=SHA-xxx(0x01||MTH(T[0:k])||MTH(T[k:n])),...,n>1,k<n<2k;
其中,MTH()表示用括號中的元素生成梅克爾樹,T[n]表示包含n個元素的列表,t(n)表示列表T中的第n+1個元素;SHA-xxx表示所使用的哈希算法;0x表示16進制;||是構成連接符,是將前后兩部分直接連接;T[0:k]表示列表T中前k個元素,T[k:n]表示列表T中除去前k個元素后剩下的n-k個元素。
6.如權利要求5所述的方法,其特征在于,IRMA節點驗證前多個歷史標識資源版本分為以下三種情況:
(1)當m=n,則驗證梅克爾樹樹根:
PROOF(m,T[n])=SUBPROOF(m,T[n])=MTH(T[m]);
(2)當m<=k,則遞歸...
【專利技術屬性】
技術研發人員:季鵬,黃均發,王志遷,方照,徐佳,
申請(專利權)人:廣州中國科學院計算機網絡信息中心,
類型:發明
國別省市:廣東;44
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。