專利名稱:一種哈希樹的節(jié)點更新方法
技術領域:
本發(fā)明涉及信息安全技術,具體是一種為數據生成基于哈希樹的校驗結果的方 法。
背景技術:
數據的安全保護涉及諸多方面;其中,重要的一點在于校驗數據的完整性 (integrity),即防止數據的訛誤(即出錯)或非授權的修改。在數據的完整性校驗技 術中,哈希樹(Hash Tree,或 Merkle Tree ;參閱"R. C. Merkle. Protocols for public key cryptography. In IEEE Symposium on Security and Privacy,1980", "M. Blum, W. Evans, P.Gemmel1, S.Kannan and M. Naor.Checking the correctness of memories. IEEE Symposium on Foundations of Computer Science, 1991,,以及"B. Gassend,G. E. Suh, D. Clarke,M. van Dijk, and S. Devadas. Caches and merkle trees for efficient memory authentication. Ninth International Symposium on High Performance Computer Architecture, 2003")是一種安全性高的數據完整性校驗技術。哈希樹以樹狀結構進行組織;其中,包含若干下屬節(jié)點的哈希樹節(jié)點,稱為父節(jié) 點,而其所下屬的節(jié)點,稱為該父節(jié)點所下屬的子節(jié)點;一個父節(jié)點所下屬的子節(jié)點的數 目,通常大于1 ;一個父節(jié)點所下屬的子節(jié)點相互之間,又稱為兄弟節(jié)點。當子節(jié)點發(fā)生變 化而更新對應的父節(jié)點時,采用哈希函數(Hash Function,或散列函數;例如常用的MD5或 者SHA-I函數),連接發(fā)生變化的子節(jié)點的所有的兄弟節(jié)點,將連接結果輸入哈希函數,以 所得到的哈希結果來更新對應的父節(jié)點。這樣,哈希樹中節(jié)點的更新就要求系統(tǒng)首先獲取相關聯(lián)的兄弟節(jié)點;當兄弟節(jié)點 數目較多時就需要讀取較大數量的數據,從而影響更新的性能。因此,有必要給出更有效的 節(jié)點更新方法。
發(fā)明內容
本發(fā)明的目的在于提供一種哈希樹節(jié)點更新的方法,使得更新節(jié)點時,系統(tǒng)所需 讀取的數據量小。本發(fā)明是通過以下技術方案實現(xiàn)的由子節(jié)點而更新父節(jié)點的過程,是采用增量哈希函數而完成的。在為實現(xiàn)本發(fā)明所采用的技術方案中,增量哈希函數是為得出父節(jié)點的當前值 所進行的計算,不需要針對該父節(jié)點所下屬子節(jié)點的全部,而只需要針對該父節(jié)點所下屬 子節(jié)點的變化部分。本發(fā)明所具有的有益效果在于更新父節(jié)點所需的數據量并不與子節(jié)點的數目成 正比,而只與變動的子節(jié)點成正比;從而,在父節(jié)點下屬子節(jié)點數目較多的情況下,更新并 不需要讀取額外較多的數據,從而實現(xiàn)高的更新性能。
具體實施例方式下面對本發(fā)明作詳細說明。本實施例在以本發(fā)明技術方案為前提下進行實施,給 出了詳細的實施方式和具體的操作過程;但本發(fā)明的保護范圍不限于下述的實施例。為描述該實施例,假定哈希樹根節(jié)點為Rl ;Rl下屬4個節(jié)點,分別為F1、F2、F3和 F4 ;Fl節(jié)點下屬4個節(jié)點,分別為C1、C2、C3和C4。就叩1”和“(1丄2丄3和C4”而言,“F1” 為父節(jié)點,“Cl、C2、C3和C4”為"Fl"的子節(jié)點,“Cl、C2、C3和C4”相互之間為兄弟節(jié)點。當Cl發(fā)生改變時,哈希樹需要依據Cl的當前值而計算新的Fl的當前值。一般地, 會采用常用的哈希函數,如MD5算法,按照下式來計算Fl的新值FINEW = MD5 (CINEW || C2 Il C3 Il C4)S卩,連接(以“ Il ”表示)C1變化后的當前值C1NEW、C2、C3和C4,并將連接結果輸 入MD5函數,而得到的結果作為Fl的當前值F1new。為此,就需要讀取C2、C3和C4,盡管它 們并未發(fā)生變化。依據本發(fā)明所提出的方法,采用增量哈希函數來計算Fl的當前值。為此,所實施 的計算過程為Node。LD = (CIold || C2 || C3 || C4)NodeNEff = (CInew || C2 || C3 || C4)FInew = I_Hash (FIold, (Node0LD. XOR. NodeNEW))其中,“Node·”為4個子節(jié)點連接的原值,“NodeNEW”為4個子節(jié)點連接的當前值, “X0R”為異或操作;從而,“(Node·. XOR. NodeNEff),,實際上中即為節(jié)點的變化部分,或者說, 就是Cl的當前值相對于原值的改變,而與未變化的C2、C3和C4無關。“I_Hash”為增量哈 希函數,"FIold"為Fl的原值,而"FInew”則為新的Fl結果??梢?,系統(tǒng)并不需要讀取C2 C4,就能夠完成對Fl的更新。另夕卜,這里的增量函數函數“I_Hash”可采用多種算法來構成,如“MBellare, 0.Goldteich and S. Goldwasser. Incremental cryptography :the case of hashing and signing. Crypto 94,1994. "David McGrew. Efficient authentication of large, dynamic data sets using Galois/Counter Mode (GCM). IEEE International Security in Storage Workshop,2005”。但所構造的增量函數需要滿足能夠依據數據變化部分而更新整 個數據集哈希結果的能力。本發(fā)明并不局限于上述具體描述的實現(xiàn)形態(tài),而是適用于所有的依據本發(fā)明的內 容可獲得的提高哈希樹更新性能的系統(tǒng)。這包括構造在磁盤、存儲器等設備上,包括使用硬 件、軟件等形式;等等。本發(fā)明適用于所有的依據本發(fā)明的內容而構造的方法,以及不需其它發(fā)明性質的 能力而可獲得的變化形式。因此,本發(fā)明適用于同這里所描述的原理與特征相一致的最廣 的范圍。
權利要求
一種哈希樹的節(jié)點更新方法,其特征在于由子節(jié)點而更新父節(jié)點的過程,是采用增量哈希函數而完成的。
2.根據權利要求1所述的哈希樹的節(jié)點更新方法,其特征是所述的增量哈希函數,是為得出父節(jié)點的當前值所進行的計算,不需要針對該父節(jié)點 所下屬子節(jié)點的全部,而只需要針對該父節(jié)點所下屬子節(jié)點的變化部分。
全文摘要
一種哈希樹的節(jié)點更新方法。本發(fā)明涉及信息安全技術,具體是一種為數據生成基于哈希樹的校驗結果的方法。本發(fā)明的目的在于提供一種哈希樹節(jié)點更新的方法,使得更新節(jié)點時,系統(tǒng)所需讀取的數據量小。所采用的技術要點是由子節(jié)點而更新父節(jié)點的過程,是采用增量哈希函數而完成的;為得出父節(jié)點的當前值所進行的增量哈希函數計算,不需要針對該父節(jié)點所下屬子節(jié)點的全部,而只需要針對該父節(jié)點所下屬子節(jié)點的變化部分。
文檔編號G06F17/30GK101930442SQ20091014982
公開日2010年12月29日 申請日期2009年6月24日 優(yōu)先權日2009年6月24日
發(fā)明者侯方勇 申請人:侯方勇