m----需要签名的消息
k----私钥
K---公钥
r----随机数
签名过程:
一、用HASH函数先对m做HASH运行,生成一个256位的字符串M。
二、生成一个随机数r,并生成R=rG。
三、生成签名_s,_s = M*k+r,用随机数的目的是让签名不能被攻破。
四、 将_s,R,m发生给验证方
验证签名过程
一、验证方用HASH函数对m生成M
二、计算M * K + R = X
三、计算_sG = Y
四、对比X==Y,等于说明是正确的签名,否则为不正确的签名
说明:M* K + R =X 过程,设 x= M*k+r -> xG = M*k*G +rG -> xG = M*K+R
参考: