码迷,mamicode.com
首页 > 编程语言 > 详细

Diffie-Hellman秘钥交换算法

时间:2020-03-26 10:37:14      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:算法   span   建立   获得   协议   密钥   素数   nbsp   不能   

DH算法是第一个公钥方案

使用在一些常用安全协议或产品(例如SSH等)

密钥交换方案

  不能直接用于有大量数据传输的保密通信

  允许两个用户可以安全地建立一个共享的秘密信息,用于后续的通讯过程

  该秘密信息仅为两个参与者知道

算法的安全性依赖于有限域上计算离散对数的问题

 

DH算法

通信双方/多方选择大素数P,以及p的一个原根a

用户A选择一个随机数Xa≤p,计算Ya=aXa mod p

用户B选择一个随机数Xb≤p,计算Yb=aXb mod p

每一方保密X值,而将Y值交换给对方

即:X是私钥,Y是公钥  (Xa是A的私钥,Ya是A的公钥)

 

双方获得一个共享密钥K=aXaXbmodp

对于用户A,计算出K= YBXa mod p (a有b的公钥YB

用户B,可计算出K=YaXbmodp(b有a的公钥YA

攻击者要获得K,需要求解离散对数

实际使用中,素数P以及P的原根a可由一方选择后发给对方

 

DH算法显然不能做加解密 它只能交换一个对称秘钥

 

Diffie-Hellman秘钥交换算法

标签:算法   span   建立   获得   协议   密钥   素数   nbsp   不能   

原文地址:https://www.cnblogs.com/sjyu/p/12572625.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!