Schnorr数字签名方案

Schnorr数字签名方案

Schnorr签名算法最初由德国密码学家claus schnorr于2008年提出,在密码学中,它是一种数字签名方案,以其简单著称

Schnorr数字签名方案也是基于离散对数的(基于离散对数的还有ElGamal数字签名方案、DSA数字签名方案)。Schnorr方案将生成签名所需的消息计算量最小化。生成签名的主要工作不依赖于消息,可以在处理器空闲时执行。

该方案的第一部分是生成私钥/公钥对,它由以下步骤组成:

  1. 选择素数p和q,使得q是p-1的素因子。即 p-1 ≡ 0 (mod q)
  2. 选择一整数a,使得a^q = 1 mod p , a,p和q组成全局公钥参数,在用户组内的每一个用户都可以取此值
  3. 选择随机整数s,0<s<q,作为用户的私钥
  4. 计算v=a^(-s) mod p ,作为用户的公钥

对于私钥为s,公钥为v的用户,可以通过以下步骤产生签名:

  1. 选择随机整数r,0<r<q,并且计算x=a^r mod p 
  2. 将x附在消息M的后面一起计算hash值e , e=H(M||x)
  3. 计算y=(r+se) mod q .签名由(e,y)对组成

任何其他用户能够通过以下步骤验证签名:

  1. 计算
  2. 验证是否

对于该验证过程有,

因此,有

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值