首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WOTS+和XMSS中的Winternitz参数

WOTS+和XMSS中的Winternitz参数
EN

Cryptography用户
提问于 2021-01-22 19:28:54
回答 2查看 311关注 0票数 0

参数是什么?我在XMSS中读到它是集合{4,16}的成员,但它到底意味着什么?我还看到,w参数越大,签名越短,但keygensignvrfy的签名速度却变慢了。如何选择最优的w参数?这是梅克尔树的高度吗?

EN

回答 2

Cryptography用户

发布于 2021-01-22 19:57:08

本论文最简洁地回答了您的问题:

Winternitz签名的大小大致是mn/w位,签名大约需要2^wm/w哈希操作,其中m是要签名的哈希值的位长,n是该方案中使用的哈希函数的输出长度,而w是决定签名大小和签名生成时间之间的权衡的Winternitz参数。

参考论文这里详细介绍了参数w在各种算法中的使用情况。根据文件:

可以从集合{4,16}中选择参数ww的值越大,签名时间越短,但总体签名操作越慢;它对安全性的影响很小。w的选择仅限于值4和16,因为这些值会产生最佳的权衡和容易实现的结果。

使用的参数的一个例子是算法5: WOTS_sign -从私钥和消息生成签名。

本论文的第2.2节进一步详细介绍了时间-记忆权衡。

此外,第4节进一步深入,通过对不同参数的性能比较。

票数 1
EN

Cryptography用户

发布于 2021-07-09 01:20:43

merkle树的高度是一个独立的参数。Winternitz参数w之所以出现是因为要对WOTS+签名进行签名或验证,第一步是将消息编码为从0w - 1 (包括在内)的整数列表。例如,字符串"hello"用ascii编码为01101000 01100101 01101100 01101100 01101111。如果w16,那么每个整数都对应于消息的4位。如下所示:

代码语言:javascript
运行
复制
0110 1000 0110 0101 0110 1100 0110 1100 0110 1111
   6    8    6    5    6   12    6   12    6   15

如果w4,那么每个整数都对应于2位,序列如下:

代码语言:javascript
运行
复制
01 10 10 00 01 10 01 01 01 10 11 00 01 10 11 00 01 10 11 11
 1  2  2  0  1  2  1  1  1  2  3  0  1  2  3  0  1  2  3  3

因此,416只是使转换变得简单和有效的值。一个大的w就会产生一个小的大数字序列,一个小的w就会产生一个小的数字序列。较大的序列往往会产生更大的签名。更大的数字增加了你需要计算的哈希数。

如果您的散列有n字节,并且您正在用m字节签名消息,那么签名的长度将是

n\cdot\left(\left\lceil \frac{8\cdot m}{\log_2(w)} \right\rceil + \left\lfloor \frac{\log_2\left(\left\lceil \frac{8\cdot m}{\log_2(w)} \right\rceil \cdot (w - 1)\right)}{\log_2(w)} \right\rfloor + 1 \right)

字节。因此,您可以尝试插入一些w值,看看哪些值给您提供了一个合理的大小。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/87716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档