已知椭圆曲线方程E11为:y 2 y^2y \n2\n =x 3 x^3x \n3\n +x xx+6(mod 11),取p(2,7)为一个生成元,,令k=3,d=5,e=h(m),写出签名与验证签名过程
时间: 2024-05-24 12:12:28 浏览: 113
椭圆曲线数字签名算法ECDSA.pdf
5星 · 资源好评率100%
签名过程:
1. 选取私钥为d=5。
2. 选取一个随机数k=3。
3. 计算椭圆曲线上的点P=k*G,其中G为公钥p(2,7)。
首先计算2G=G+G,3G=G+2G。根据椭圆曲线的加法规则,有:
2G = (6, 3)
3G = (2, 6)
因此,P=3G=(2,6)。
4. 计算r=x(P) mod 11,r为签名中的第一个参数。
r=2 mod 11。
5. 计算s=k^-1*(e+rd) mod (11-1),其中e为消息的哈希值。
假设消息的哈希值为h(m)=8。
首先计算k^-1 mod 10,根据扩展欧几里得算法,有:
3*7 + (-10)*2 = 1
因此,k^-1=7 mod 10。
接着计算s=7*(8+2*5) mod 10=9。
因此,签名为(2, 9)。
验证签名过程:
1. 接收到签名信息(2, 9)和消息m。
2. 计算椭圆曲线上的点P=s*G-e*P,其中G为公钥p(2,7)。
首先计算e的哈希值为h(m)=8。
接着计算-e*P=-5*(2,6)=(-10,2),根据椭圆曲线的加法规则。
最后计算P=9*G+(-10,2)=s*G。
因此,P=(7,3)。
3. 计算r=x(P) mod 11。
r=7 mod 11。
4. 验证签名是否有效,即判断r是否等于签名中的第一个参数。
由于r=7,而签名中的第一个参数为2,两者不相等,因此签名无效。
因此,此签名是无效的。
阅读全文