ECDSA(Elliptic Curve Digital Signature Algorithm),椭圆曲线数字签名算法。
椭圆曲线数字签名生成
假设Alice希望对消息 m m m进行签名,所采用的椭圆曲线参数为 D = ( p , a , b , G , n , h ) D=(p,a,b,G,n,h) D=(p,a,b,G,n,h),对应的密钥对为 ( k , Q ) (k,Q) (k,Q),其中 Q Q Q为公钥, k k k为私钥。
Alice将按如下步骤进行签名:
- 产生一个随机数 d d d, 1 ≤ d ≤ n − 1 1 \leq d \leq n-1 1≤d≤n−1.
- 计算 d G = ( x 1 , y 1 ) dG=(x_1,y_1) dG=(x1,y1),将 x 1 x_1 x1转化为整数 x 1 ‾ \overline{x_1} x1.
- 计算 r = x 1 ‾ m o d n r=\overline{x_1} \ mod \ n r=x1 mod n,若 r = 0 r=0 r=0,则转向第1步.
- 计算 d