ECC-ECDSA

本文详细介绍了ECDSA签名算法的工作原理及其验证过程。通过选择椭圆曲线和基点,使用私钥生成公钥,并通过随机数产生签名值r和s。验证过程中利用sG+H(m)P计算出的坐标x1与签名中的r值对比来确认签名的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.ECDSA:
ECDSA算法用于数字签名,是ECC与DSA的结合,整个签名过程与DSA类似,所不一样的是签名中采取的算法为ECC,最后签名出来的值也是分为r,s。
签名过程如下:
1、选择一条椭圆曲线Ep(a,b),和基点G;
2、选择私有密钥k(k<n,n为G的阶),利用基点G计算公开密钥K=kG;
3、产生一个随机整数r(r<n),计算点R=rG;
4、将原数据和点R的坐标值x,y作为参数,计算SHA1做为hash,即Hash=SHA1(原数据,x,y);
5、计算s≡r - Hash * k (mod n)
6、r和s做为签名值,如果r和s其中一个为0,重新从第3步开始执行
验证过程如下:
1、接受方在收到消息(m)和签名值(r,s)后,进行以下运算
2、计算:sG+H(m)P=(x1,y1), r1≡ x1 mod p。
3、验证等式:r1 ≡ r mod p。
4、如果等式成立,接受签名,否则签名无效。
证明公式:
签名体制的正确性证明: 签名体制的正确性证明:
sG+H(m)P
=(k-H(m)nA)G+H(m)P
=kG-H(m)nAG+H(m)P
=kG-H(m)P+H(m)P
=kG
所以,r1≡r mod p。
R=kG;P=nAG; s=k-H(m)*nA mod p
简单的例子:
签名过程:
选取随机数k = 3,假设h(m) = 4 ,则计算(x,y) = kG = 3 (x,y) = kG = 3(0,2)=(11,9),r = x mod n = 11 mod 23 = 11,s=k-H(m)×nA mod p = 3 –4×9 mod 23 = 13。因此对m的签名为(11 13)。
验证过程:
签名接收者B得到签名后计算:sG+H(m)P= 13G + 4P = (11,9),r1 = x1
mod n = 11 mod 29 = 11 = r。因此B接受签名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值