ECC椭圆曲线算法(4)签名验证过程
1. 说明
Alice和Bob在通信的过程中,为了验证消息的来源,既消息确实是Alice发出来的。需要由Alice对消息使用自己的私钥生成一个签名hash,然后Bob用Alice的公钥进行验证,判断hash是否一样,从而知道签名是否正确。
2. 步骤
假设:
- 基点:G
- 私钥:k
- 公钥:K =k *G
- Message:M
step1. Alice 数据传送前的操作:生成公私钥对
step2. Alice
- 选择随机数r
- 计算点r*G,得到(x, y)
- 根据消息求哈希h
- 根据随机数r、消息M的哈希h、私钥k,计算s = (h + kx)/r.
- 将消息M、签名{rG, s}、公钥K发给Bob
step3. Bob:收到消息M、以及签名{rG=(x,y), s}
- 根据消息求哈希h
- 使用发送方公钥K计算:hG/s + xK/s,并与rG比较,如相等即验签成功
hG/s + xK/s = hG/s + x(kG)/s = (h+xk)G/s = r(h+xk)G / (h+kx) = rG
注:
- r值
在选择随机数r的时候,真正的算法需要做一个判断,计算 r 值是否为0, 如果r == 0, 需要重新随机:r = x mod n - n值
如果说椭圆曲线方程可用(CURVE, G, n)表示,其中CURVE表示椭圆曲线点域和几何方程;G是所有点倍积运算的基点;n是该椭圆曲线的可倍积阶数(multiplicative order),作为一个很大的质数,n的几何意义在于,nG 是阿贝尔群的单位元。 - h值
实际上需要对h值作一个转换,既是对h的二进制形式下最左边(即最高位)L_n个bits,而L_n是上述椭圆曲线参数中的可倍积阶数n的二进制长度。注意z 可能大于n,但长度绝对不会比 n 更长
【参考】
- 密码学系列 - 椭圆曲线 ECDSA - 签名与验签 csdn
- Elliptic Curve Digital Signature Algorithm Wikipedia
ECC椭圆曲线算法(4)签名验证过程相关推荐
- 【转】Guide to Elliptic Curve Cryptography(ECC椭圆曲线算法1)
Guide to Elliptic Curve Cryptography (ECC椭圆曲线算法1) 2017年06月03日 10:14:08 原文 http://andrea.corbellini.n ...
- Openssl ECC椭圆曲线算法 - 密钥/签名/验签/加密/解密/SM2密文 - 序列化反序列化导出导入 - C源码
. . . . 废话不多说,本代码继承自另外一位讲解Openssl ECC椭圆曲线算法大佬的源代码:https://blog.csdn.net/scuyxi/article/details/59182 ...
- Guide to Elliptic Curve Cryptography (ECC椭圆曲线算法1)
原文 http://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/ Prefa ...
- 【密码算法 之十四】非对称算法,ECC椭圆曲线算法 之 ECDSA、ECDH、SM2、SM9等
文章目录 1. ECC椭圆曲线 1.1 曲线类型 1.2 曲线标准 1.3 表示方法 1.4 曲线运算 1.4.1 点加(Point Addition) 1.4.2 点乘(Point Multipli ...
- ECC椭圆曲线算法(2)初步介绍
1. Weierstrass方程式 ECC(Elliptic curve cryptography) 椭圆曲线的 Weierstrass方程是一个二元三次方程: 且满足 可以看出,有3个根,其中一个为 ...
- ECDH and ECDSA(ECC椭圆曲线算法3)
这是ECC系列的第三篇. 专栏:https://blog.csdn.net/mrpre/category_6952288.html 在之前的文章中,我们看到了什么是椭圆曲线,并且我们为了做一些数学运算 ...
- 有限域和离散对数问题(ECC椭圆曲线算法2)
有限域和离散对数问题 这篇文章是ECC系列的第2篇. 专栏:https://blog.csdn.net/mrpre/category_6952288.html 在上一篇文章中,我们看到了基于实数域的的 ...
- ECC椭圆曲线算法(3)加密解密过程
1. 说明 Alice和Bob在通信的过程中,公钥是相互分享的,发送数据的一方用对方的公钥来加密,让对方用他自己的私钥来解密. 2. 步骤 假设: 基点:G 私钥:k 公钥:K =k *G Messa ...
- ECC椭圆曲线算法(1)阿贝尔群
1. 群Group 在数学中,群表示很多元素的集合.这个集合具有如下特性: 指定义了二元操作运算(用符号"+"表示 ) 封闭性:如果a和b都是群成员,那么a+b也是群成员. 组合性 ...
最新文章
- Python requests 多线程抓取 出现HTTPConnectionPool Max retires exceeded异常
- OpenDNSSEC 1.3.12 发布
- linux服务器间文件夹拷贝
- Silverlight之Button控件简单自定义
- DrawArc绘制弧线
- Objective-C原理系列(一)
- python中文相似度_python比较两个文本的相似性
- 全国计算机三级数据库技术
- JVM——字节码指令(转)
- oracle roseha 配置,RoseHA 9.0 for Windows配合Oracle11g配置文档_v2.0-2015-04.pdf
- 生产排程遇难题?APS系统来解决
- python编写程序掷骰子游戏规则_通过构建一个简单的掷骰子游戏去学习怎么用Python编程...
- [11]ESP32+三轴磁罗盘HMC5883L移植与调试
- SubmitButton
- java学习笔记参考
- regedit参数+批处理修改IE标题
- jlink修复固件教程
- NLP-基础任务-中文分词算法(3)-基于字:基于序列标注的分词算法【BiLSTM+CRF】
- 科学计算机怎么算锥度,如何计算锥度值?比如说1:20等于多少度?请说说具体步骤!-锥度的计算公式-数学-贾儆刹同学...
- (转载)FPGA工程师必上的论坛
热门文章
- java 重构 if else_java中繁杂的if/else怎么重构
- 接口结构_适用于Mac系统的API接口调试应用
- pb retrieve时停止工作_电机没有抱闸如何利用变频器实现减速停止
- 学计算机学体育生闺女,数学老师转行教体育 他有4个特别的“女儿”
- python局部变量想作用于全局_python 局部和全局作用域
- 不同品牌发电机组间的并机知识
- 空调自控系统基础知识及应用
- 国内“重量级”单体数据中心开始运营 火了这个县
- DL之pix2pix:基于TF利用pix2pix模型对food_resized数据集实现Auto Color自动上色技术—训练测试过程全记录
- DL:The development history of the important stage of DL