理论教育 基于椭圆曲线的数字签名算法在安全协议中的应用

基于椭圆曲线的数字签名算法在安全协议中的应用

时间:2023-10-28 理论教育 版权反馈
【摘要】:椭圆曲线密码技术是密码学界的研究热点之一。椭圆曲线数字签名算法和RSA与DSA的功能相同,并且数字签名的产生与验证速度要比RSA和DSA快。设待签的消息为m;全局参数D=,还有签名者的公钥私钥对(Q,d)。下面证明ECDSA算法成立。

基于椭圆曲线的数字签名算法在安全协议中的应用

椭圆曲线密码技术是密码学界的研究热点之一。椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)和RSA与DSA的功能相同,并且数字签名的产生与验证速度要比RSA和DSA快。

设待签的消息为m;全局参数D=(p,a,b,G,n,h),还有签名者的公钥私钥对(Q,d)。

1.签名的算法步骤

(1)选择一个随机数k,k∈[1,n-1];

(2)计算k G=(x1,y1);

(3)计算r=x1 mod n,如果r=0,则回到步骤(1);

(4)计算k-1 mod n;

(5)计算e=SHA1(m);

(6)计算s=k-1(e+d r)mod n,如果s=0,则回到步骤(1);

(7)对消息的签名为(r,s)。

最后签名者就可以把消息m和签名(r,s)发送给接收者。

当接收者收到消息m和签名(r,s)之后,验证消息签名的有效性,需要取得如下参数:全局参数D=(p,a,b,G,n,h)、发送者的公钥Q。(www.daowen.com)

2.验证算法

(1)检验r、s,要求r、s∈[1,n-1];

(2)计算e=SHA1(m);

(3)计算w=s-1 mod n;

(4)计算u1=e w mod n;u2=r w mod n;

(5)计算X=u1G+u2Q;

(6)如果X=0,表示签名无效;否则,X=(x1,y1),计算v=x1 mod n;

(7)如果v=r,表示签名有效;否则表示签名无效。

下面证明ECDSA算法成立。

如果签名(r,s)是消息m的合法签名,有

再有u1G+u2Q=(u1+u2d)G=k G,其中的k G横坐标x1=r;u1G+u2Q的横坐标为v;即有v=r。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈