https笔记

https笔记

DH密钥交换

加入Alice要和Bob交互, 其私钥分别是a和b,
A的公钥为:
A = G a m o d P A = G^a mod P A=GamodP
B的公钥为:
B = G b m o d P B = G^b mod P B=GbmodP
此时, 对于G,P,A,B双方都是可见的, 然后即可计算出相同的K.
共享密钥K为:
K = B a m o d P K = B^a mod P K=BamodP
以及
K = A b m o d P K = A^b mod P K=AbmodP
其中, 他们的K是相等的
$$
B^a\mod p\\ = (G^b\mod p)^a\mod p\\=(G^{ab}\mod p)\\

A^b\mod p\\ = (G^a\mod p)^b\mod p\\=(G^{ab}\mod p)\\
$$

证明:
g m o d    p = x (1) g\mod p = x \tag{1} gmodp=x(1)

g ÷ p = y (2) g\div p = y \tag{2} g÷p=y(2)
根据1和2可得:
g = x + p ∗ y (3) g = x + p * y \tag{3} g=x+py(3)
那么
( g m o d    p ) a m o d    p = x a m o d    p (g\mod p)^a \mod p = x^a \mod p (gmodp)amodp=xamodp
将3带入上式可得:
( g − p ∗ y ) a (g - p * y)^a % p (gpy)a
使用二项式展开公式展开, 有:
( ∑ i = 0 i = a C a i ∗ g i ∗ ( − p ∗ y ) a − i ) m o d    p = ( C a 0 ∗ g 0 ∗ ( − p ∗ y ) a + C a 1 ∗ g 1 ∗ ( − p ∗ y ) a − 1 + ⋅ + C a a ∗ g a ∗ ( − p ∗ y ) 0 ) m o d    p = g a m o d    p (\sum_{i = 0}^{i = a}C_{a}^{i}*g^{i}*(-p*y)^{a - i})\mod p\\\\ =(C_{a}^{0}*g^{0}*(-p*y)^{a} + C_{a}^{1}*g^{1}*(-p*y)^{a - 1} + \cdot + C_{a}^{a}*g^{a}*(-p*y)^{0})\mod p \\\\ = g^a \mod p (i=0i=aCaigi(py)ai)modp=(Ca0g0(py)a+Ca1g1(py)a1++Caaga(py)0)modp=gamodp
该式除了最后一项都是p的整数倍, 因此取mod必为0.

综上,
( g m o d    p ) a m o d    p = g a m o d    p (g\mod p)^a\mod p = g^a\mod p (gmodp)amodp=gamodp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值