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 更长

【参考】

  1. 密码学系列 - 椭圆曲线 ECDSA - 签名与验签 csdn
  2. Elliptic Curve Digital Signature Algorithm Wikipedia

ECC椭圆曲线算法(4)签名验证过程相关推荐

  1. 【转】Guide to Elliptic Curve Cryptography(ECC椭圆曲线算法1)

    Guide to Elliptic Curve Cryptography (ECC椭圆曲线算法1) 2017年06月03日 10:14:08 原文 http://andrea.corbellini.n ...

  2. Openssl ECC椭圆曲线算法 - 密钥/签名/验签/加密/解密/SM2密文 - 序列化反序列化导出导入 - C源码

    . . . . 废话不多说,本代码继承自另外一位讲解Openssl ECC椭圆曲线算法大佬的源代码:https://blog.csdn.net/scuyxi/article/details/59182 ...

  3. Guide to Elliptic Curve Cryptography (ECC椭圆曲线算法1)

    原文 http://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/ Prefa ...

  4. 【密码算法 之十四】非对称算法,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 ...

  5. ECC椭圆曲线算法(2)初步介绍

    1. Weierstrass方程式 ECC(Elliptic curve cryptography) 椭圆曲线的 Weierstrass方程是一个二元三次方程: 且满足 可以看出,有3个根,其中一个为 ...

  6. ECDH and ECDSA(ECC椭圆曲线算法3)

    这是ECC系列的第三篇. 专栏:https://blog.csdn.net/mrpre/category_6952288.html 在之前的文章中,我们看到了什么是椭圆曲线,并且我们为了做一些数学运算 ...

  7. 有限域和离散对数问题(ECC椭圆曲线算法2)

    有限域和离散对数问题 这篇文章是ECC系列的第2篇. 专栏:https://blog.csdn.net/mrpre/category_6952288.html 在上一篇文章中,我们看到了基于实数域的的 ...

  8. ECC椭圆曲线算法(3)加密解密过程

    1. 说明 Alice和Bob在通信的过程中,公钥是相互分享的,发送数据的一方用对方的公钥来加密,让对方用他自己的私钥来解密. 2. 步骤 假设: 基点:G 私钥:k 公钥:K =k *G Messa ...

  9. ECC椭圆曲线算法(1)阿贝尔群

    1. 群Group 在数学中,群表示很多元素的集合.这个集合具有如下特性: 指定义了二元操作运算(用符号"+"表示 ) 封闭性:如果a和b都是群成员,那么a+b也是群成员. 组合性 ...

最新文章

  1. Python requests 多线程抓取 出现HTTPConnectionPool Max retires exceeded异常
  2. OpenDNSSEC 1.3.12 发布
  3. linux服务器间文件夹拷贝
  4. Silverlight之Button控件简单自定义
  5. DrawArc绘制弧线
  6. Objective-C原理系列(一)
  7. python中文相似度_python比较两个文本的相似性
  8. 全国计算机三级数据库技术
  9. JVM——字节码指令(转)
  10. oracle roseha 配置,RoseHA 9.0 for Windows配合Oracle11g配置文档_v2.0-2015-04.pdf
  11. 生产排程遇难题?APS系统来解决
  12. python编写程序掷骰子游戏规则_通过构建一个简单的掷骰子游戏去学习怎么用Python编程...
  13. [11]ESP32+三轴磁罗盘HMC5883L移植与调试
  14. SubmitButton
  15. java学习笔记参考
  16. regedit参数+批处理修改IE标题
  17. jlink修复固件教程
  18. NLP-基础任务-中文分词算法(3)-基于字:基于序列标注的分词算法【BiLSTM+CRF】
  19. 科学计算机怎么算锥度,如何计算锥度值?比如说1:20等于多少度?请说说具体步骤!-锥度的计算公式-数学-贾儆刹同学...
  20. (转载)FPGA工程师必上的论坛

热门文章

  1. java 重构 if else_java中繁杂的if/else怎么重构
  2. 接口结构_适用于Mac系统的API接口调试应用
  3. pb retrieve时停止工作_电机没有抱闸如何利用变频器实现减速停止
  4. 学计算机学体育生闺女,数学老师转行教体育 他有4个特别的“女儿”
  5. python局部变量想作用于全局_python 局部和全局作用域
  6. 不同品牌发电机组间的并机知识
  7. 空调自控系统基础知识及应用
  8. 国内“重量级”单体数据中心开始运营 火了这个县
  9. DL之pix2pix:基于TF利用pix2pix模型对food_resized数据集实现Auto Color自动上色技术—训练测试过程全记录
  10. DL:The development history of the important stage of DL