算法2_非对称加密算法之ECDSA(椭圆曲线数字签名算法)

本文深入探讨了ECDSA(椭圆曲线数字签名算法),它是非对称加密的一种,用于验证数据真实性。ECDSA基于椭圆曲线数学,其安全性依赖于点乘的单向陷门性质。算法涉及私钥(随机数)、公钥(点坐标)的生成,以及签名和验证过程。数字签名过程中,私钥用于生成签名,公钥用于验证签名的合法性。NIST和SECG提供安全的椭圆曲线参数。理解ECDSA对于保障信息安全至关重要。

ECDSA(椭圆曲线数字签名算法)

AES(高级加密标准): =>对称加密

​ 对业务数据进行加密,防止他人可以看见

ECDSA(椭圆曲线数字签名算法):=>非对称加密算法(公钥和私钥)

​ 验证数据的真实性,防止业务数据被篡改

SHA(安全哈希算法)=>哈希算法

1. 作用:

在这里插入图片描述

因为ECDSA椭圆曲线数字签名算法获得公钥和私钥对是一一对应的,不存在"不同私钥但是公钥相同的情况"所有伪造ECDSA签名是根本不可能的

2. 解释ECDSA

ECDSA当中有两个词要注意:Curve(曲线)和Algorithm(算法)=>意味着ECDSA基本上是基于数学的

1. 基本原理:

假设给定一条曲线Curve一串随机数Rand Num以及随机在曲线上取原点(Origin Point)

Private_Key=Rand_Num

Public_Key=Magic_Math(Curve,Rand_Num,Origin_Point)

=> 接下来就是要好好理解这个魔法数学Magic_Math =>(看完以下的就知道这个Magic_Math其实就是一个在已知椭圆曲线和参考点G的前提下对G进行以下运算)
P u b l i c _ K e y = R a n d _ N u m × O r i g i n _ P o i n t G ( 点 的 乘 法 ) Public\_Key=Rand\_Num \times Origin\_PointG (点的乘法) Public_Key=Rand_Num×Origin_PointG()

3. 解释Magic_Math:

1. 前提

ECDSA只使用整数数学,没有浮点数

=>整数范围由签名当中所采用的位数决定的,更多的位数意味着更大的数字范围,更高的安全性能

​ why? 因为整数范围越大,则表示的位数越大那么破解ECDSA所需要猜测的数字范围也越大,那么破解所花费的时间越长,那么安全性就越高

=>mod 模运算:就是整数求除之后的余数

2. 椭圆曲线密码学

基于以下方程:
y 2 = ( x 3 + a ∗ x + b ) m o d p y^2=(x^3+a*x+b) mod p y2=(x3+ax+b)modp

以上方程可以得知:
该方程所对应的曲线:对于任意的x坐标(只能取整数),你可以得到两个y的值,且曲线关于x轴对称。

p是一个素数,且确保所有得到的值在规定SHA的输出长度所能够表示的范围之内.

综上所述:经过取模运算之后结果只能在0-p-1之间,

总结:
在这里插入图片描述

3. 椭圆曲线点加法的表示方法:
在这里插入图片描述

注释:这是a=-4,b=0以后的椭圆曲线,P+Q点与R点对称
P = ( x 1 , y 1 ) P + Q = ( X 2 , y 2 ) = > X 1 = X 2 且 Y 1 = − Y 2 P=(x1,y1) \quad P+Q=(X2,y2)=>X1=X2且Y1=-Y2 P=(x1,

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Blockchain410

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值