ECDH:

      ECC算法用途比RSA还猛,不仅可以加解密、签名验证。还可以与DH结合使用,用于密钥磋商,这个密钥交换算法称为ECDH。交换双方可以在不共享任何秘密的情况下协商出一个密钥。ECC是建立在基于椭圆曲线的离散对数问题上的密码体制,给定椭圆曲线上的一个点P,一个整数k,求解点Q=kP很容易;给定两个点P、Q,知道Q=kP,求整数k确是一个难题。ECDH即建立在此数学难题之上。密钥磋商过程:

假设密钥交换双方为Alice、Bob,其有共享曲线参数(椭圆曲线E、阶N、基点G)。

1)Alice生成随机整数a,计算A=a*G。Bob生成随机整数b,计算B=b*G。

2)Alice将A传递给Bob。A的传递可以公开,即攻击者可以获取A。由于椭圆曲线的离散对数问题是难题,所以攻击者不可以通过A、G计算出a。Bob将B传递给Alice。同理,B的传递可以公开。

3 )Bob收到Alice传递的A,计算Q=b*A

4)Alice收到Bob传递的B,计算Q‘=a*B

Alice、Bob双方即得Q=b*A=b*(a*G)=(b*a)*G=(a*b)*G=a*(b*G)=a*B=Q'(交换律和结合律),即双方得到一致的密钥Q。

ECDSA:

ECDSA算法用于数字签名,是ECC与DSA的结合,整个签名过程与DSA类似,所不一样的是签名中采取的算法为ECC,最后签名出来的值也是分为r,s。

签名过程如下:

1、选择一条椭圆曲线Ep(a,b),和基点G;

2、选择私有密钥k(k<n,n为G的阶),利用基点G计算公开密钥K=kG;

3、产生一个随机整数r(r<n),计算点R=rG;

4、将原数据和点R的坐标值x,y作为参数,计算SHA1做为hash,即Hash=SHA1(原数据,x,y);

5、计算s≡r - Hash * k (mod n)

6、r和s做为签名值,如果r和s其中一个为0,重新从第3步开始执行

验证过程如下:

1、接受方在收到消息(m)和签名值(r,s)后,进行以下运算

2、计算:sG+H(m)P=(x1,y1),r1≡x1 modp。

3、验证等式:r1 ≡ r mod p。

4、如果等式成立,接受签名,否则签名无效。

证明公式:

签名体制的正确性证明: 签名体制的正确性证明:

sG+H(m)P

=(k-H(m)nA)G+H(m)P

=kG-H(m)nAG+H(m)P

=kG-H(m)P+H(m)P

=kG

所以,r1≡r mod p。

R=kG;P=nAG;s=k-H(m)*nA mod p

简单的例子:

签名过程:

选取随机数k = 3,假设h(m) = 4 ,则计算(x,y) = kG = 3 (x,y) = kG =3(0,2)=(11,9),r = x mod n = 11 mod 23 =11,s=k-H(m)×nA mod p = 3–4×9 mod 23 = 13。因此对m的签名为(11 13)。

验证过程:

签名接收者B得到签名后计算:sG+H(m)P= 13G + 4P =(11,9),r1 = x1

mod n = 11 mod 29 = 11 =r。因此B接受签名。

ECDSA 和 ECDH相关推荐

  1. 【密码算法 之零】对称算法(DES,、3DES、 AES、DM5、HMAC、CMAC、SHAxx、SM3、SM4),非对称算法(RSA、ECC、ECDSA、ECDH、SM2、SM9...)

      由于工作的需要,在过去的两年中学习.适配了很多算法,包括对称算法.非对称算法.国密算法.国际算法等.为了逼迫自己能够牢记并掌握这些算法的基本知识点,故本人写了一个关于算法的专栏(持续更新中...) ...

  2. ECDSA和ECDH原理

    2021SC@SDUSC ECDSA和ECDH原理 secp256k1的参数 ECDSA椭圆曲线数字签名算法 公钥生成 签名 签名验证 k 公钥恢复 ECDH椭圆曲线Diffie–Hellman秘钥交 ...

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

  4. 关于 ECDSA ECDH ECDHE

    ECDSA与ECDH ECDSA 指利用椭圆曲线算法进行数字签名 ECDH   指利用椭圆曲线算法进行密钥协商 理论上是可以共用同一组曲线模型和生成参数分别进行DSA(Digital Signatur ...

  5. ECDSA 签名验证原理及C语言实现

    这两天总算把ECDSA搞明白了,本来想造个ECDSA轮子,但最近有点忙,而ECDSA轮子又不像HASH那样简单,所以就直接拿现成的轮子来记录一些ECDSA学习心得. 这里贴上github上一个比较适合 ...

  6. java ecc 加密_java-信息安全(十一)-非对称加密算法002-ECC,签名003-ECDSA签名

    一.概述 ECC算法(Elliptic curve cryptography,椭圆曲线密码学) 椭圆加密算法(ECC)是一种公钥加密体制,最初由Koblitz和Miller两人于1985年提出,其数学 ...

  7. [国密算法]一文了解国密算法

    国密算法 概述 1 SM1对称密码 2 SM2椭圆曲线公钥密码算法 3 SM3杂凑算法 4 SM4对称算法 5 SM7对称密码 6 SM9标识密码算法 7 ZUC祖冲之算法 总结 算法名称 算法类别 ...

  8. 信息安全工程师笔记-综合知识冲刺(四)

    国家密码管理局于2006年1月6日公布了"无线局域网产品须使用的系列密码算法": 对称密码算法:SMS4: 签名算法:ECDSA: 密钥协商算法:ECDH: 杂凑算法:SHA-25 ...

  9. SM系列国密算法(转)

    原文地址:科普一下SM系列国密算法(从零开始学区块链 189) 众所周知,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2).SM2.SM3.SM4.SM7. ...

最新文章

  1. 用Maven构建Hadoop项目
  2. python 获取指定文件夹里面的图片文件的信息
  3. 【CF1182D】Complete Mirror【树的重心】
  4. Coursera自动驾驶课程第14讲:Linear and Nonlinear Kalman Filters
  5. 支付宝2019年账单周一见 你准备好了吗?
  6. Oracle用户权限
  7. CSDN博客去广告-谷歌插件
  8. 中国电话区号(CSV)
  9. 塔望3W消费战略全案|绿力冬瓜茶:老品牌的升级保卫战
  10. 2021-08-18-ideal配置github时报:insufficient scopes granted to the token
  11. Hive集合数据类型(STRUCK,MAP,ARRAY)
  12. nginx reopen nginx 日志
  13. 【Oracle】-Difference between Instance recovery and Crash Recovery
  14. c语言程序设计基础程序改错,c语言程序设计改错信息.docx
  15. 2016,轻轻地你走了,正如你轻轻地来,2017新年快乐
  16. 微信小程序提示:https://www.xxxxx.com 不在以下 request 合法域名列表中,请参考文档....
  17. ElasticSearch painless脚本实现自定义打分排序
  18. 工作遇坑-Cannot allocate memory问题解决方法
  19. 实时云渲染和本地渲染的区别
  20. ElasticSearch + Kibana

热门文章

  1. 解决 Unexpected token u in JSON at position 0
  2. SpringCloud的五大核心组件李俊老师
  3. c语言优秀教案,C语言优秀教案.doc
  4. 请输入一个数字作为秒数,在页面按时间,分钟,秒的格式输出(如输入600,页面显示:0时10分0秒
  5. 那些在国内还能使用的谷歌产品
  6. 做SEO优化必须掌握的10大技能
  7. jsp醒目_40个醒目的精美插图网站[展示柜]
  8. 极验验证简介(待续)
  9. 谷歌浏览器怎么样切换为原来的经典主题皮肤
  10. 点云配准2:icp算法在PCL1.10.0上的实现+源码解析