什么是温特尼茨一次性签名方案?

Winternitz 一次性签名方案

Robert Winternitz 提出了 W-OTS 方法。它被认为具有量子弹性,因为它使用适度的密钥和签名大小。

  • 它总共生成 32 ☓ 256 位随机私钥。

  • 然后我们有很多次,并使用参数(W)来定义它们。

  • 我们可以使用 W = 8(2W) 散列私钥。

  • 它生成长度为 32 256 位的公钥

  • 签名是通过一次取 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位签名值被散列的次数(N 1 N 2)......每个动作的结果应该与公钥值相同。

密钥生成

  • 要生成一对密钥,一个私钥和一个公钥

  • 使用随机数生成器,生成 32 个 256 位随机数来创建私钥。

  • 32 个数字中的每一个都被散列 256 次,以获得另一组 32 个 256 位数字作为公钥。任何人都可以使用公钥。

签名生成

  • SHA 256 用于对消息进行哈希处理,从而生成 256 位摘要。该散列被分解为 32 个 8 位值(N 1 N 2 N 3 ...N 32)。

  • 256-N 次散列每个 8 位值,其中 N 是 8 位值的值。例如,如果 N1 是 10001000 = 136 的 8 位数字,则 N 1将被散列 256 - 136 = 120 次。在对每个 8 位值执行此操作后创建数字签名

签名验证

  • SHA-256 用于生成 32 个 8 位值(N 1 N 2 N 3 ...N 32)的摘要。从消息中。

  • 然后根据消息散列值 (N 1 N 2 N 3 ...N 32 ) 指定的次数对签名值进行散列。

  • 然后将签名与公钥进行比较,如果两者匹配,则认为签名是合法的。

以上是 什么是温特尼茨一次性签名方案? 的全部内容, 来源链接: utcz.com/z/351601.html

回到顶部