【零基础入门哈希签名架构,从Lamport到SPHINCS+】第四集 GMSS、XMSS、Multi Tree XMSS

博客介绍了多种哈希签名方案。GMSS由Johannes Buchmann于2007年提出,首次引入“超树”概念,根节点签名用WOTS,底层树叶子节点用OTS;XMSS于2011年提出,强调算法安全性,用随机掩码增加安全;2013年的Multi Tree XMSS结合前两者,在掩码机制上修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一集 哈希签名始祖 Lamport 方案及其改进版本(Merkle,Winternitz)
第二集 哈希签名树 Merkle Tree Authentication
第三集 HORS Hash to Obtain Random Subset 2002、DBS算法 2008
第四集 GMSS、XMSS、Multi Tree XMSS
第五集 SPHINCS 2015 SPHINCS+ 2019(完结撒花)

在这里插入图片描述

一、GMSS

Johannes Buchmann在2007年的论文《Merkle Signatures with Virtually Unlimited Signature Capacity》中提出了GMSS方案。

最重要的是第一次提出了“超树”这个念。
在这里插入图片描述
在这个“超树”中,每一个节点是一颗Merkle树。
假设“超树”有 T T T层,最底层的节点(Merkle树)从左到右为 T T , 0 , T T , 1 , … \mathcal T_{T,0},\mathcal T_{T,1},\dots TT,0,TT,1,
我们可以拆开“超树”的节点来看看,里面是什么,如上图所示,假设图中被拆开的节点是 T 2 , 4 \mathcal T_{2,4} T2,4,我们可以看到 T 2 , 4 \mathcal T_{2,4} T2,4是一棵树,就是一颗正常的Merkle树,其根节点 R O O T T ROOT_{\mathcal T} ROOTT签名过后,连接到的是 T 1 , 0 \mathcal T_{1,0} T1,0的第 4 4 4个叶子节点(从左往右数)。同理的,我们可以想象, T 2 , 4 \mathcal T_{2,4} T2,4的di3个叶子节点连接到的是 T 3 , 15 \mathcal T_{3,15} T3,15根节点的签名(假设每个 T \mathcal T T都有四个叶子节点,4*3+3=15)。

1.1 WOTS & 超树

这里对根节点的签名用的方法是WOTS(WOTS 即Winternitz One Time Signature,在第一集第三代改进 Winternitz 1979 中详细讲述过。)

我们可以回顾一下WOTS是怎么运作的:

  1. 首先是将消息分块,比如说每一块是2 bit,每一块 x i x_i xi换成十进制表示,得到一个十进制的数 m i m_i mi,数的范围为0-3。
  2. 然后就是对私钥做 m i m_i mi次的哈希函数,得到签名 σ i \sigma_i σi。做0次函数运算就是私钥本身,做15次函数运算就是公钥。
    在这里插入图片描述

所以呈现的总体结构如下:
来解释一下图中WOTS的结构是什么意思。首先看每一条,一条就对应“一块”消息(因为WOST要对消息分块),这一条就是上图类似的结构。蓝色是公钥,红色是私钥,绿色是签名。
在这里插入图片描述
仔细看,还可以看到树中有一些绿色的签名,这里就是用到了第三集讲到的DBS算法。

1.2 最底层的树用的签名方法

最底层的每一棵树的叶子节点就是OTS(One Time Signature)的公钥,这里的OTS可以是最原始的Lamport方案,也可以是Winternitz改良后的的方案(WOTS)这都在第一集中详细讲述过。GMSS原文中使用的是WOTS。到后面的SPHINCS用的是FTS(Few Time Signature),所以我们这里先不用详细讲述整个流程。

二、XMSS(eXtended Merkle Signature Scheme)2011

XMSS没有强调使用“超树”,更多是强调了其算法的安全性,以及满足安全性对哈希函数的要求很小(不需要抗碰撞性 Collision resistant )。

同时,在两节点结合前,先使用随机掩码 b b b对节点进行修饰,进一步增加了安全性。
在这里插入图片描述

三、Multi Tree XMSS 2013

《Optimal Parameters for XMSSMT》这篇文章结合了XMSS和GMSS,在掩码机制上做了一些修改,如下图
在这里插入图片描述

整个架构如下图,现在开始初步又了SPHINCS的样子了。
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值