版权声明:本文为博主原创文章,转载请注明来源!获取更新内容请关注我的开源项目:https://github.com/zcc0721/MasterBlockchain https://blog.csdn.net/u013137970/article/details/84573265
1 基础参数
Ed25519采用的曲线方程为 y2=x3+486662x2+x ,modulo p=2255−19 。
私钥长度:32字节。
公钥长度:32字节,无其它长度。
签名长度:64字节。
2 签名算法
2.1 生成密钥对
私钥:使用随机数发生器生成随机数 k 作为私钥。
公钥生成过程:
- 计算私钥哈希值:H(k)=(h0,h1,...,h2b−1)
- 生成整数:a=2b−2+3⩽i⩽b−3∑2ihi∈{2b−2,2b−2+8,...,2b−1−8}
- 生成公钥:A=aB
在Ed25519中,b固定取256。
A 就是公钥。
2.2 生成签名
- r=H(hb,...,h2b−1,M)
- R=rB
- S=(r+H(R,A,M)a)mod l
则签名就是(R,S)。
2.3 签名验证
只需要检验 8SB=8R+8H(R,A,M)A 是否成立。
2.4 签名验证原理分析
签名验证原理如下公式:
8SB=8(r+H(R,A,M)a)B=8rB+8H(R,A,M)aB=8R+8H(R,A,M)A
3 参考资料