DH密钥交换和ECDH原理

1 篇文章 0 订阅
1 篇文章 0 订阅

DH密钥交换和ECDH原理

在这里插入图片描述上述的就是DH密钥交互的图表:
可以这么理解,A与B想要生成只有彼此知道的密钥,而使得自己本地产生的私钥,不被对方知道,包括第三方的Eve。
此时的Alice 和Bob 彼此约定生成两个参数p,g,和自己的一个密钥a,b。因为p,g 是公开的,所以此时的Eve也是能够获悉p,g的。
第二步,经过 A = g a m o d p A =g^a mod p A=gamodp B = g b m o d 23 B= g^b mod 23 B=gbmod23 运算之后,Alice将A发送给Bob,Bob同样将B发送给Alice。此时的Eve同样是可以获得A,B值的,毕竟这个不是秘密。
由于椭圆曲线的离散对数问题是难题,所以攻击者不可以通过A、g计算出a。
第三步,Alice通过 s = B a m o d 23 s = B^a mod 23 s=Bamod23,Bob通过 s = A b m o d 23 s=A^b mod 23 s=Abmod23获得获得双发达成的密钥。
如下图:
在这里插入图片描述桐言的

ECDH密钥交换:

ECDH:

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

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

  1. Alice生成随机整数a,计算A=a*G。 #生成Alice公钥

  2. Bob生成随机整数b,计算B=b*G。 #生产Bob公钥

  3. Alice将A传递给Bob。A的传递可以公开,即攻击者可以获取A。

    由于椭圆曲线的离散对数问题是难题,所以攻击者不可以通过A、G计算出a。

  4. Bob将B传递给Alice。同理,B的传递可以公开。

  5. Bob收到Alice传递的A,计算Q =b*A#Bob通过自己的私钥和Alice的公钥得到对称密钥Q

  6. Alice收到Bob传递的B,计算Q`=a*B#Alice通过自己的私钥和Bob的公钥得到对称密钥Q’

Alice、Bob双方即得Q=bA=b(aG)=(ba)G=(ab)G=a(bG)=aB=Q’ (交换律和结合律),即双方得到一致的密钥Q。

目前Openssl里面的ECC算法的套件支持是ECDSA/ECDH。在国密的SSL套件中,可以使用ECDSA/ECC(密钥加密传输),ECDSA/ECDH(密钥磋商)两种套件

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Shanshan yuan

一个关注于技术与生活的学生

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

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

打赏作者

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

抵扣说明:

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

余额充值