9、重温默克尔树遍历:认证路径计算算法详解

重温默克尔树遍历:认证路径计算算法详解

1. 引言

默克尔树在密码学和数据结构领域有着广泛的应用,特别是在认证路径计算方面。本文将详细介绍一种新的默克尔树认证路径计算算法,该算法基于Szydlo的算法,并进行了优化和改进。我们将对算法进行详细描述,证明其正确性,并分析其时间和空间复杂度。

2. 认证路径计算
2.1 定义和符号
  • 设 $H \geq 2$ 为默克尔树的高度,当前叶子节点的索引为 $\phi \in {0, \ldots, 2^H - 1}$。
  • 默克尔树中的节点用 $y_h[j]$ 表示,其中 $h = 0, \ldots, H$ 表示节点在树中的高度(叶子节点高度为 0,根节点高度为 $H$),$j = 0, \ldots, 2^{H - h} - 1$ 表示节点在树中从左到右的位置。
  • 设 $f: {0, 1}^* \to {0, 1}^n$ 为一个密码学哈希函数,默克尔树的内部节点计算方式为:
  • $y_h[j] = f(y_{h - 1}[2j] \parallel y_{h - 1}[2j + 1])$,其中 $h = 1, \ldots, H$ 且 $j = 0, \ldots, 2^{H - h} - 1$。
  • 定义 $\tau$ 为叶子节点 $\phi$ 的第一个左父节点的高度。如果叶子节点 $\phi$ 本身是左节点,则 $\tau = 0$;否则,$\tau = \max{h : 2^h | (\phi + 1)}$。$\tau$ 告诉我们叶子节点 $\phi + 1$ 的认证路径在哪些高度需要新节点,需要在高度 $h
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值