极简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

相关文章
|
7月前
|
安全 算法 网络安全
RSA2048与RSA3072的闲言碎语
RSA2048与RSA3072的闲言碎语
324 0
|
7月前
|
并行计算 算法 搜索推荐
简单学习一下AES算法:GCM、ECB、CFB、OFB等
简单学习一下AES算法:GCM、ECB、CFB、OFB等
1032 0
如何生成RSA,RSA2密钥
密钥生成或如何使用(创建应用):[url]https://openclub.alipay.com/read.php?tid=1606&fid=72[/url] 1.密钥生成工具下载:[url]https://docs.
1691 13
|
算法
RSA和RSA2签名算法区别
RSA和RSA2签名算法 什么是数字签名? 一个很好的说明文档可以参考:What is a Digital Signature?,中文翻译可以参考:数字签名是什么?. 简单来说,签名主要包含两个过程:摘要和非对称加密,首先对需要签名的数据做摘要(类似于常见的MD5)后得到摘要结果,然后通过签名者的私钥对摘要结果进行非对称加密即可得到签名结果。
5656 12
|
3月前
|
算法 JavaScript Java
AES和RSA
AES和RSA
45 0
|
3月前
|
安全 算法 网络安全
浅谈非对称加密(RSA)
浅谈非对称加密(RSA)
160 0
|
7月前
|
安全 算法 数据库
MD5、SHA、DES、AES、RSA的算法说明
【5月更文挑战第10天】MD5、SHA、DES、AES、RSA的算法说明
379 2
|
C语言
SHA加密算法
SHA加密算法
76 0
|
算法 Linux 数据安全/隐私保护
RSA加密算法
RSA加密算法
257 0
RSA加密算法
|
数据安全/隐私保护
RSA对称加密
RSA对称加密