什么是温特尼茨一次性签名方案?
Winternitz一次性签名方案
RobertWinternitz提出了W-OTS方法。它被认为具有量子弹性,因为它使用适度的密钥和签名大小。
它总共生成32☓256位随机私钥。
然后我们有很多次,并使用参数(W)来定义它们。
我们可以使用W=8(2W)散列私钥。
它生成长度为32256位的公钥
签名是通过一次取8位,从256中减去8位二进制int(n),然后将私钥散列256次而形成的。
此后,签名由从随机私钥创建的32个哈希组成。
它是如何工作的?
程序如下-
我们首先创建32个256位的随机数。我们的私钥将由这32个值组成。
然后这些值中的每一个都被散列256次。我们的公钥将由这32个值组成。
我们现在将使用SHA-256对消息进行哈希处理。这将产生32个8位值(N1、N2、...、N32)。
对于签名,我们将消息散列中的每个8位值散列256-N次(其中N是8位值的值)。
该消息使用SHA-256进行哈希处理,每个8位值用于证明签名。消息散列值指定8位签名值被散列的次数(N1N2)......每个动作的结果应该与公钥值相同。
密钥生成
要生成一对密钥,一个私钥和一个公钥
使用随机数生成器,生成32个256位随机数来创建私钥。
32个数字中的每一个都被散列256次,以获得另一组32个256位数字作为公钥。任何人都可以使用公钥。
签名生成
SHA256用于对消息进行哈希处理,从而生成256位摘要。该散列被分解为32个8位值(N1N2N3...N32)。
256-N次散列每个8位值,其中N是8位值的值。例如,如果N1是10001000=136的8位数字,则N1将被散列256-136=120次。在对每个8位值执行此操作后创建数字签名。
签名验证
SHA-256用于生成32个8位值(N1N2N3...N32)的摘要。从消息中。
然后根据消息散列值(N1N2N3...N32)指定的次数对签名值进行散列。
然后将签名与公钥进行比较,如果两者匹配,则认为签名是合法的。