找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 960|回复: 0
收起左侧

ECDSA签名算法介绍

 关闭 [复制链接]
ID:349277 发表于 2021-12-6 09:15 | 显示全部楼层 |阅读模式
一、ECDSA概述
椭圆曲线数字签名算法(ECDSA)是使用椭圆曲线密码(ECC)对数字签名算法(DSA)的模拟。与普通的离散对数问题(DLP)和大数分解问题(IFP)不同,椭圆曲线离散对数问题没有亚指数时间的解决方法。因此椭圆曲线密码的单位比特强度要高于其他公钥体制。
数字签名算法(DSA)在联邦信息处理标准FIPS中有详细论述,称为数字签名标准。它的安全性基于素域上的离散对数问题。可以看作是椭圆曲线对先前离散对数问题(DLP)的密码系统的模拟,只是群元素由素域中的元素数换为有限域上的椭圆曲线上的点。椭圆曲线离散对数问题远难于离散对数问题,单位比特强度要远高于传统的离散对数系统。因此在使用较短的密钥的情况下,ECC可以达到于DL系统相同的安全级别。这带来的好处就是计算参数更小,密钥更短,运算速度更快,签名也更加短小。
二、ECDSA原理
ECDSA是ECC与DSA的结合,整个签名过程与DSA类似,所不一样的是签名中采取的算法为ECC,最后签名出来的值也是分为r,s。
签名过程如下:
   1、选择一条椭圆曲线Ep(a,b),和基点G;
   2、选择私有密钥k(k<n,n为G的阶),利用基点G计算公开密钥K=kG;
   3、产生一个随机整数r(r<n),计算点R=rG;
   4、将原数据和点R的坐标值x,y作为参数,计算SHA1做为hash,即Hash=SHA1(原数据,x,y);
   5、计算s≡r - Hash * k (mod n);
   6、r和s做为签名值,如果r和s其中一个为0,重新从第3步开始执行。
验证过程如下:
   1、接受方在收到消息(m)和签名值(r,s)后,进行以下运算;
   2、计算:sG+H(m)P=(x1,y1), r1≡ x1 mod p;
   3、验证等式:r1 ≡ r mod p;
   4、如果等式成立,接受签名,否则签名无效。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表