算法:DH算法原理

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

算法:DH算法原理

离散对数的概念

原根

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

a(modp),a2(modp),…,a(p−1)(modp) 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=aX(modp)(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选择随机数 XA≤pX_A \le pXAp,并计算 YA=aXA(modp)Y_A = a ^ {X_A} \pmod{p}YA=aXA(modp)
  • B选择随机数 XB≤pX_B \le pXBp,并计算 YB=aXB(modp)Y_B = a ^ {X_B} \pmod{p}YB=aXB
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值