一种基于堆的跳表认证路径产生的新方法技术

技术编号:9740030 阅读:117 留言:0更新日期:2014-03-06 23:19
本发明专利技术涉及一种基于堆的跳表认证路径产生的新方法,包括以下步骤:1)计算认证跳表中各节点的标签值;2)根据认证跳表中各节点标签值的计算,建立堆;3)在第二步的基础上,从堆的根节点开始,从上往下,从左到右对底层,即level=0的叶子节点进行搜索,得到搜索路径;4)在第三步的基础上,根据搜索路径获得对应搜索节点的认证路径节点集;认证路径节点集是由搜索路径上各节点的兄弟节点构成的节点集合;5)在第四步的基础上,根据认证路径对要搜索的节点进行认证。该方法能消除跳表中不必要的链接,减少信息的冗余。

【技术实现步骤摘要】
一种基于堆的跳表认证路径产生的新方法
本专利技术涉及信息安全领域,特别是涉及基于堆的跳表认证路径产生的新方法,应用于信息认证领域。
技术介绍
跳表是一种能有效实现对有序序列进行查找的数据结构,平均查找和更新时间是O(1ogn),其中n是字典中的字的个数。跳表是由多个链表组成的,如图1所示,跳表S由5个链表{S0,S1,S2,S3,S4}构成。每个链表Si,0≤i≤4,存储两个特殊元素-∞和+∞以及字典中的部分元素,元素以升序排列。其中,-∞比该链表中任何元素的值都要小,+∞比该链表中任何元素的值都要都大。除此之外,每个链表还具有如下的特性:链表S0中包含字典中的所有元素,其中也包括特殊元素-∞和+∞。链表Si,i=1,...,h–1,中的元素是链表Si-1元素的子集,是从链表Si-1中随机选择产生的。链表Sh只包含两个特殊的元素:-∞和+∞。其中,h表示跳表的高度,图1跳表的高度为5。跳表也可看成是二维的位置的集合:水平方向是不同级(levels)的链表,最下层是level=0;垂直方向是不同的塔(towers),其中包含不同级别上的相同元素,每个塔中最顶层的元素称为plateau。本文档来自技高网...
一种基于堆的跳表认证路径产生的新方法

【技术保护点】
一种基于堆的跳表认证路径产生的新方法,其特征在于:包括以下步骤:1)计算认证跳表中各节点的标签值;2)根据认证跳表中各节点标签值的计算,建立堆;3)在第二步的基础上,从堆的根节点开始,从上往下,从左到右对底层,即level=0的叶子节点进行搜索,得到搜索路径;4)在第三步的基础上,根据搜索路径获得对应搜索节点的认证路径节点集;认证路径节点集是由搜索路径上各节点的兄弟节点构成的节点集合;5)在第四步的基础上,根据认证路径对要搜索的节点进行认证。

【技术特征摘要】
1.一种基于堆的跳表认证路径产生的新方法,其特征在于:包括以下步骤:1)计算认证跳表中各节点的标签值;2)根据认证跳表中各节点标签值和二叉树构建规则,建立具有堆性质的二叉树,即大根堆;3)在第二步的基础上,从堆的根节点开始,从上往下,从左到右对底层,即level=0的叶子节点进行搜索,得到搜索路径;4)在第三步的基础上,根据搜索路径获得对应搜索节点的认证路径节点集;认证路径节点集是由搜索路径上各节点的兄弟节点构成的节点集合;5)在第四步的基础上,根据认证路径对要搜索的节点进行认证。2.根据权利要求1所述的一种基于堆的跳表认证路径产生的新方法,其特征在于:所述步骤1中计算认证跳表中各节点的标签值具体步骤为:101)对于最左端节点n,定义其标签值为0,即label(n):=0;102)对于level为0的节点n,则有两种情况:(a)若其左端节点不是一个plateau节点,则其标签值为节点值本身的hash值,即label(n)=h(value(n));(b)若其左端节点是一个plateau节点,则其标签值为label(n)=h(value(n)||label(left(n)));103)对于level不为0的节点,也有两种情况:(a)若其左端节点不是一个plateau节点,则其标签值为下一节点的标签值,即label(n)=label(down(n));(b)若其左端节点是一个plateau节点,则其标签值为label(n)=h(label(down(n))||label(left(n)))。3.根据权利要求1所述的一...

【专利技术属性】
技术研发人员:彭双和刘吉强覃应接高昕炜陈志阁
申请(专利权)人:北京交通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1