一种哈希树的节点更新方法

文档序号:6363935阅读:183来源:国知局
专利名称:一种哈希树的节点更新方法
技术领域
本发明涉及信息安全技术,具体是一种为数据生成基于哈希树的校验结果的方 法。
背景技术
数据的安全保护涉及诸多方面;其中,重要的一点在于校验数据的完整性 (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")是一种安全性高的数据完整性校验技术。哈希树以树状结构进行组织;其中,包含若干下属节点的哈希树节点,称为父节 点,而其所下属的节点,称为该父节点所下属的子节点;一个父节点所下属的子节点的数 目,通常大于1 ;一个父节点所下属的子节点相互之间,又称为兄弟节点。当子节点发生变 化而更新对应的父节点时,采用哈希函数(Hash Function,或散列函数;例如常用的MD5或 者SHA-I函数),连接发生变化的子节点的所有的兄弟节点,将连接结果输入哈希函数,以 所得到的哈希结果来更新对应的父节点。这样,哈希树中节点的更新就要求系统首先获取相关联的兄弟节点;当兄弟节点 数目较多时就需要读取较大数量的数据,从而影响更新的性能。因此,有必要给出更有效的 节点更新方法。

发明内容
本发明的目的在于提供一种哈希树节点更新的方法,使得更新节点时,系统所需 读取的数据量小。本发明是通过以下技术方案实现的由子节点而更新父节点的过程,是采用增量哈希函数而完成的。在为实现本发明所采用的技术方案中,增量哈希函数是为得出父节点的当前值 所进行的计算,不需要针对该父节点所下属子节点的全部,而只需要针对该父节点所下属 子节点的变化部分。本发明所具有的有益效果在于更新父节点所需的数据量并不与子节点的数目成 正比,而只与变动的子节点成正比;从而,在父节点下属子节点数目较多的情况下,更新并 不需要读取额外较多的数据,从而实现高的更新性能。
具体实施例方式下面对本发明作详细说明。本实施例在以本发明技术方案为前提下进行实施,给 出了详细的实施方式和具体的操作过程;但本发明的保护范围不限于下述的实施例。为描述该实施例,假定哈希树根节点为Rl ;Rl下属4个节点,分别为F1、F2、F3和 F4 ;Fl节点下属4个节点,分别为C1、C2、C3和C4。就叩1”和“(1丄2丄3和C4”而言,“F1” 为父节点,“Cl、C2、C3和C4”为"Fl"的子节点,“Cl、C2、C3和C4”相互之间为兄弟节点。当Cl发生改变时,哈希树需要依据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,尽管它 们并未发生变化。依据本发明所提出的方法,采用增量哈希函数来计算Fl的当前值。为此,所实施 的计算过程为Node。LD = (CIold || C2 || C3 || C4)NodeNEff = (CInew || C2 || C3 || C4)FInew = I_Hash (FIold, (Node0LD. XOR. NodeNEW))其中,“Node·”为4个子节点连接的原值,“NodeNEW”为4个子节点连接的当前值, “X0R”为异或操作;从而,“(Node·. XOR. NodeNEff),,实际上中即为节点的变化部分,或者说, 就是Cl的当前值相对于原值的改变,而与未变化的C2、C3和C4无关。“I_Hash”为增量哈 希函数,"FIold"为Fl的原值,而"FInew”则为新的Fl结果。可见,系统并不需要读取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”。但所构造的增量函数需要满足能够依据数据变化部分而更新整 个数据集哈希结果的能力。本发明并不局限于上述具体描述的实现形态,而是适用于所有的依据本发明的内 容可获得的提高哈希树更新性能的系统。这包括构造在磁盘、存储器等设备上,包括使用硬 件、软件等形式;等等。本发明适用于所有的依据本发明的内容而构造的方法,以及不需其它发明性质的 能力而可获得的变化形式。因此,本发明适用于同这里所描述的原理与特征相一致的最广 的范围。
权利要求
一种哈希树的节点更新方法,其特征在于由子节点而更新父节点的过程,是采用增量哈希函数而完成的。
2.根据权利要求1所述的哈希树的节点更新方法,其特征是所述的增量哈希函数,是为得出父节点的当前值所进行的计算,不需要针对该父节点 所下属子节点的全部,而只需要针对该父节点所下属子节点的变化部分。
全文摘要
一种哈希树的节点更新方法。本发明涉及信息安全技术,具体是一种为数据生成基于哈希树的校验结果的方法。本发明的目的在于提供一种哈希树节点更新的方法,使得更新节点时,系统所需读取的数据量小。所采用的技术要点是由子节点而更新父节点的过程,是采用增量哈希函数而完成的;为得出父节点的当前值所进行的增量哈希函数计算,不需要针对该父节点所下属子节点的全部,而只需要针对该父节点所下属子节点的变化部分。
文档编号G06F17/30GK101930442SQ20091014982
公开日2010年12月29日 申请日期2009年6月24日 优先权日2009年6月24日
发明者侯方勇 申请人:侯方勇
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1