极简ECDSA

简介: 该文章以极简的方式介绍了ECDSA(椭圆曲线数字签名算法)的基本原理,包括私钥和公钥的生成、签名过程、以及验证签名的方法,旨在帮助读者轻松掌握ECDSA的核心概念。

前言

讲ECDSA的文章很多、很长,但通常也是晦涩难懂,本篇志于很简单的语言让读者彻底掌握ECDSA原理并能讲给别人听。

私钥和公钥

ECDSA 定义了点的特殊操作,并提供了强大的trapdoor function。对于点G(生成元)和随机整数x,我们可以得到点P,其中P = x*G。trapdoor function 特性使得从x 得到P 很容易,但通过知道P 得到x 却非常困难。在实作中,x 将是私钥,点P(x 坐标)将是公钥。

签名

1. 输入参数:随机生成数k, 讯息msg , 私钥private_key,椭圆曲线使用的质数p

2. 计算点R = k*G

3. 将r 设置为R 点的x 坐标

4. 计算值s

5. r, s 为签名结果

验证

1. 输入参数:讯息msg, 公钥public_key point(P), r, s 值

2. 计算点Q

3. 验证Q 的x 坐标等于 r

相关文章
|
4月前
|
安全 算法 网络安全
RSA2048与RSA3072的闲言碎语
RSA2048与RSA3072的闲言碎语
210 0
|
4月前
|
并行计算 算法 搜索推荐
简单学习一下AES算法:GCM、ECB、CFB、OFB等
简单学习一下AES算法:GCM、ECB、CFB、OFB等
611 0
如何生成RSA,RSA2密钥
密钥生成或如何使用(创建应用):[url]https://openclub.alipay.com/read.php?tid=1606&fid=72[/url] 1.密钥生成工具下载:[url]https://docs.
1610 13
|
算法
RSA和RSA2签名算法区别
RSA和RSA2签名算法 什么是数字签名? 一个很好的说明文档可以参考:What is a Digital Signature?,中文翻译可以参考:数字签名是什么?. 简单来说,签名主要包含两个过程:摘要和非对称加密,首先对需要签名的数据做摘要(类似于常见的MD5)后得到摘要结果,然后通过签名者的私钥对摘要结果进行非对称加密即可得到签名结果。
5458 12
|
4月前
|
安全 算法 数据库
MD5、SHA、DES、AES、RSA的算法说明
【5月更文挑战第10天】MD5、SHA、DES、AES、RSA的算法说明
78 2
|
11月前
|
C语言
SHA加密算法
SHA加密算法
61 0
|
算法 Linux 数据安全/隐私保护
RSA加密算法
RSA加密算法
210 0
RSA加密算法
|
数据安全/隐私保护
RSA对称加密
RSA对称加密
C++11 ECDSA-withSHA256验签
这里不做签名,只验签
264 0
RSA,RSA2密钥和MD5说明
说明:   现在关于RSA,RSA2,DSA,MD5,AES加密原理这里就不说了,网上已经有很完善的资料可以供我们了解。   下面说说在集成支付宝接口常用的RSA2(强烈推荐使用!!!),RSA,MD5(不推荐使用) 签名方式使用优先级   RSA2>RSA>MD5 支付宝接口签名支持表     注:老板wap支付密钥相关产品已经下架大家无需关注 常见问题:   1.
1955 12