算法:DH算法原理

DH算法是一种基于离散对数难题的密钥交换协议,确保双方在不安全的信道上协商出共享密钥。算法描述中,用户A和B各自选择随机数并计算公钥,然后利用对方的公钥和自己的私钥计算出相同的密钥,而第三方无法通过公开信息推断密钥。举例展示了如何使用DH算法进行实际的密钥交换过程。
摘要由CSDN通过智能技术生成
    Title: 算法:DH算法原理
   Author: "Peng Li"<aqnote@aqnote.com>
     Date: 2015.12.11
 Keywords: Math, DH
Copyright:

算法:DH算法原理

离散对数的概念

原根

如果a是素数p的一个原根,那么数值:

a ( m o d p ) , a 2 ( m o d p ) , … , a ( p − 1 ) ( m o d p ) a \pmod{p},\quad a^2 \pmod{p},\quad …,\quad a^{(p-1)} \pmod{p} a(modp),a2(modp),,a(p1)(modp)

是各不相同的整数,且以某种排列方式组成了从1到p-1的所有整数。

离散对数

如果对于一个整数Y,素数p的一个原根a,可以找到一个唯一的指数Y,使得:

Y = a X ( m o d p ) ( 0 ≤ X ≤ p − 1 ) Y = a^X \pmod{p} (0 \leq X \leq p-1) Y=aX(modp)(0Xp1)

那么指数i称为b的以a为基数的模p的离散对数。

算法描述

Diffie-Hellman算法的有效性依赖于计算离散对数的难度,
其含义是:
当已知大素数p和它的一个原根a后,对给定的b,要计算i,被认为是很困难的;
而给定i,计算b 却相对容易。

Diffie-Hellman算法

假如用户A和用户B希望交换一个密钥

取素数p和整数a,a是p的一个原根,公开a和p

  • A选择随机数 X A ≤ p X_A \le p XAp,并计算 Y A = a X A ( m o d p ) Y_A = a ^ {X_A} \pmod{p} YA=aXA(modp)
  • B选择随机数 X B ≤ p X_B \le p XBp,并计算 Y B = a X B ( m o d p ) Y_B = a ^ {X_B} \pmod{p} YB=aXB(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值