ECC/DH 和 ECDH

ECC (椭圆曲线算法)

和 RSA 类似,也属于非对称加密算法,比 RSA 更新,相比 RSA 可以用更短的秘钥达到相同的安全程度。 😃

KEY(公钥)=key(私钥)G(椭圆曲线上的点)

由于椭圆曲线的特性,给定kG可以计算出K,但给定KG无法计算出k

加密过程:
1.A选定一椭圆曲线上的点 G
2.A创建私钥key,生成公钥KEY = key*G
3.A将椭圆曲线KEYG发送给B
4.B选择椭圆曲线上的一点M,产生一随机数r
5.B计算点C1=M+r*KEYC2=r*G
6.B把C1C2发送给A
7.A计算C1 - key*C2 = M + r*KEY*G - key*r*G = M


DH (秘钥协商协议)

1.A和B协商使用两个确定的数 p = 23g = 5
2.A创建一私钥a = 6,计算 g^a mod p = 5^6 mod 23 = 8(^次方,mod取余数)发送给B。
3.B创建一私钥b = 15,计算 g^b mod p = 5^15 mod 23 = 19 发送给 A。
4.A计算B a mod p = 19^6 mod 23 = 2,B计算A b mod p = 8^15 mod 23 = 2


ECDH(ECC&DH)

1.A选定一椭圆曲线上的点 G,创建私钥a,计算 A(公钥) = a*G
2.同理B计算 B(公钥) = b*G
3.A将公钥A发送给B,B将公钥B发送给A。因为椭圆曲线的特性,已知公钥、G无法计算出私钥,所以这个过程是安全的。
4.A计算aB = abG。
5.B计算b
A = baG。
6.A、B计算的结果相同。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DH密钥交换和ECDH密钥交换是两种不同的密钥交换算法,它们的原理和实现方式也有所不同。 DH密钥交换是一种基于数学问题的密钥交换算法,其原理基于离散对数问题。DH密钥交换的流程如下:假设有两个通信方,A和B,他们需要共享一个密钥。首先,A和B需要共同选定一个大质数p和一个原根g,并且将p和g公开,但是他们需要保密的是各自选定的一个私密数a和b。然后,A计算g的a次方模p的值,并将其发送给B,即A发送的是(g^a) mod p。B也同样计算g的b次方模p的值,并将其发送给A,即B发送的是(g^b) mod p。最后,A和B分别用收到的数值计算出共享的密钥,即A计算(B^a) mod p,B计算(A^b) mod p,这两个计算结果是相同的,即为共享的密钥。 ECDH密钥交换是一种基于椭圆曲线的密钥交换算法,其原理基于椭圆曲线上的点乘运算。ECDH密钥交换的流程如下:假设有两个通信方,A和B,他们需要共享一个密钥。首先,A和B需要共同选定一个椭圆曲线E和一个基点G,并且将E和G公开,但是他们需要保密的是各自选定的一个私密数a和b。然后,A计算a倍的基点G所在的点P,并将其发送给B,即A发送的是aG。B也同样计算b倍的基点G所在的点Q,并将其发送给A,即B发送的是bG。最后,A和B分别用收到的点计算出共享的密钥,即A计算b倍的P所在的点,即(bP),B计算a倍的Q所在的点,即(aQ),这两个计算结果是相同的,即为共享的密钥。 总的来说,DH密钥交换和ECDH密钥交换都是非对称加密算法,它们的优点是密钥交换过程中不会直接传输密钥,从而保证了密钥交换的安全性。同时,ECDH密钥交换相对于DH密钥交换来说,具有更高的安全性和更短的密钥长度,因此在实际应用中更加常见。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值