📜  温特尼茨一次签名计划

📅  最后修改于: 2021-08-25 17:06:33             🧑  作者: Mango

温特尼茨一次性签名(WOTS)是一种抗量子的数字签名方案,它使用相对较小的密钥和签名大小。由于它是一次性签名方案,因此只能用于对一条消息进行安全签名。

假设爱丽丝想用数字方式将其消息签名给鲍勃,则可以用3个步骤来解释该过程:密钥生成,签名生成和签名验证。

密钥生成:

  1. 爱丽丝需要创建一个密钥对-私钥和公钥。
  2. 为了创建私钥,使用随机数生成器生成32个256位随机数。私钥只有爱丽丝知道。
  3. 为了创建公钥,将32个数字中的每个数字散列256次,以获得另一组32个256位数字。公钥与所有人共享。

签名生成:

  1. 爱丽丝使用SHA 256对消息进行哈希处理,该SHA 256生成256位摘要。该摘要被分成32个8位值(N1,N2,…,N32)。

  2. 爱丽丝将每个8位值散列256-N次,其中N是8位值的值。例如,如果N1是8位值,则10001000 = 136,则N1将被散列256-136 = 120次。在对每个8位值执行此操作之后,将生成数字签名。

签名验证:

  1. Bob使用SHA-256对消息进行哈希处理以生成32个8位值的摘要(N1,N2,…,N32)。
  2. 然后,Bob通过消息散列值(N1,N2,…,N32)给出的次数对签名值进行散列。
  3. 鲍勃将结果与爱丽丝的公钥进行比较。如果匹配,则签名有效。