[发明专利]一种用于产生Merkle树签名方案认证路径的新方法有效
申请号: | 201310341001.8 | 申请日: | 2013-08-07 |
公开(公告)号: | CN103441845A | 公开(公告)日: | 2013-12-11 |
发明(设计)人: | 彭双和;韩臻;刘吉强 | 申请(专利权)人: | 北京交通大学 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;G06F9/44 |
代理公司: | 北京正理专利代理有限公司 11257 | 代理人: | 张文祎 |
地址: | 100044*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 产生 merkle 签名 方案 认证 路径 新方法 | ||
1.一种用于产生Merkle树签名方案认证路径的新方法,其特征在于:包括以下步骤:
首先设置两个栈,分别为stackNode和stackAuth,并将所述两栈初始化为空栈,分别用于存储签名树中的当前访问的节点及其认证路径节点,并将栈中的当前访问节点和认证路径节点分别设置一个标志位flag,用于记录栈中节点的左右孩子是否已经入栈,当标记为0时表示其孩子节点未曾入栈,当标记为1时表示其孩子节点已经入栈,执行如下的步骤:
第一步,将Merkle签名树的根节点左右孩子节点分别入栈stackNode和stackAuth,并设进栈元素的flag标志为0;
第二步,判断栈stackNode是否为空?若不为空则进行第三步,若为空,则结束;
第三步,获取stackNode栈中的栈顶元素curNode,判断curNode是否为内部节点?若是,则进行第四步,否则进行第五步;
第四步,判断curNode节点的flag标志?
(1)若curNode节点的flag标志为0,则其对应的左右孩子分别进栈,并设置curNode节点的flag标志为1,跳转到第二步;
(2)若curNode节点的flag标志为1,则判断curNode节点与另一栈stackAuth的栈顶节点即stackAuth.Top()的关系?
(a)若curNode节点的右兄弟为stackAuth.Top(),则两栈stackNode和stackAuth的栈顶元素交换位置,即stackNode.Top()<-->stackAuth.Top();
(b)若curNode节点是stackAuth.Top()的右兄弟,则两栈栈顶元素出栈,即stackNode.pop(),并且stackAuth.pop(),跳转到第二步;
第五步,输出stackAuth栈中的全部节点,这些节点即为curNode节点的认证路径上的所有节点,并判断curNode节点与stackAuth栈栈顶元素的关系?
(1)若stackAuth栈栈顶元素即stackAuth.Top()是curNode节点的右兄弟,则两栈stackNode和stackAuth的栈顶元素交换位置,即stackNode.Top()<-->stackAuth.Top();
(2)若curNode节点的右兄弟为为空,则两栈stackNode和stackAuth的栈顶元素出栈,即stackNode.pop(),stackAuth.pop(),跳转到第二步。
2.根据权利要求1所述的一种用于产生Merkle树签名方案认证路径的新方法,其特征在于:当前访问的节点curNode是叶子节点时,stackAuth中存储的节点即为该叶子节点的认证路径。
3.根据权利要求1所述的一种用于产生Merkle树签名方案认证路径的新方法,其特征在于:当前访问的节点curNode是内部节点时,stackAuth中存储的节点即为该内部节点的认证路径。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京交通大学,未经北京交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310341001.8/1.html,转载请声明来源钻瓜专利网。