Diffie-Hellman密钥交换
2016-10-09 08:38
225 查看
上篇说到了RSA公钥加密算法,这里看一下D-H密钥交换。
首先我们看一下数学上的概念:
本原根:我们定义素数p的本原根为其乘方能够产生从1到p - 1的所有整数的数
比如:若a是素数p的本原根,那么下列数字:
a mod p, a^2 mod p ,…… ,a^(p - 1) mod p
是互不相同的数字, 并且以某种排列包含了从1~p - 1的所有整数。也就是说,对于任何小于 p 的整数 b 和 素数 p 的本原根来说,都有唯一一个指数i满足:
好了,更加深入的数学自行学习,我们和学习RSA一样,先来开一下D-H密钥交换中使用的几个值:
XA :用户A选择的一个小于q随机整数(用户A私有)
XB :用户B选择的一个小于q随机整数(用户B私有)
YA :用户A计算出来的供对方使用的公有值
YB :用户B计算出来的供对方使用的公有值
在这个方案中,素数q和q的本原根整数α 是两个众所周知的数字,密钥的生成过程如下:
假设有两个用户A和B,首先A选择一个随机的并且小于q的整数XA并且计算
。B用户也随机选择一个小于q的整XB并且计算
。这样就得到了YA和YB,也就是A和B的公有值, XA和XB对应 A和B的私有值。
这样有了公有值YA,YB,然后双方交换YA,YB给对方,然后用户A和用户B根据传过来的值计算他们要使用的密钥值,计算的公式如下:
===========================
===========================
根据上述四个公式可以在数学上严密的知道A用户和B用户计算出来的K值是相同的(数学公式自行推导),与此同时,在网络传输的过程中并没有K值的泄露,在网络上进行传输的只有素数q和q的本原根整数α以及相互交换的YA和YB,根据这四个值是无法推测出K的值的,所以D-H密钥交换也是比较安全的。
首先我们看一下数学上的概念:
本原根:我们定义素数p的本原根为其乘方能够产生从1到p - 1的所有整数的数
比如:若a是素数p的本原根,那么下列数字:
a mod p, a^2 mod p ,…… ,a^(p - 1) mod p
是互不相同的数字, 并且以某种排列包含了从1~p - 1的所有整数。也就是说,对于任何小于 p 的整数 b 和 素数 p 的本原根来说,都有唯一一个指数i满足:
b = a^i mod p 其中0 <= i <= (p - 1)
好了,更加深入的数学自行学习,我们和学习RSA一样,先来开一下D-H密钥交换中使用的几个值:
XA :用户A选择的一个小于q随机整数(用户A私有)
XB :用户B选择的一个小于q随机整数(用户B私有)
YA :用户A计算出来的供对方使用的公有值
YB :用户B计算出来的供对方使用的公有值
在这个方案中,素数q和q的本原根整数α 是两个众所周知的数字,密钥的生成过程如下:
假设有两个用户A和B,首先A选择一个随机的并且小于q的整数XA并且计算
。B用户也随机选择一个小于q的整XB并且计算
。这样就得到了YA和YB,也就是A和B的公有值, XA和XB对应 A和B的私有值。
这样有了公有值YA,YB,然后双方交换YA,YB给对方,然后用户A和用户B根据传过来的值计算他们要使用的密钥值,计算的公式如下:
===========================
!!!很重要!!!
===========================
根据上述四个公式可以在数学上严密的知道A用户和B用户计算出来的K值是相同的(数学公式自行推导),与此同时,在网络传输的过程中并没有K值的泄露,在网络上进行传输的只有素数q和q的本原根整数α以及相互交换的YA和YB,根据这四个值是无法推测出K的值的,所以D-H密钥交换也是比较安全的。
相关文章推荐
- Diffie-Hellman密钥交换算法及其优化
- RSA与 Diffie-Hellman密钥交换 的区别
- 对Diffie-Hellman密钥交换算法实现的一点改进
- pomelo学习笔记 (3) node.js 与 c 客户端 Diffie-Hellman 密钥交换算法的实现
- Node.js如何使用Diffie-Hellman密钥交换算法详解
- Diffie–Hellman密钥交换算法
- Diffie-Hellman密钥交换
- Diffie-Hellman密钥是如何交换的
- Diffie-Hellman密钥交换 -- 浅析
- Diffie-Hellman密钥交换思想
- Diffie-Hellman密钥交换算法及其优化
- Diffie-Hellman密钥交换
- 客户端网络pomelo学习笔记 (3) node.js 与 c 客户端 Diffie-Hellman 密钥交换算法的实现客户端网络
- Microsoft 安全公告 3174644-Diffie-Hellman 密钥交换的更新支持
- 密钥交换方法 在线可信任第三方、Merkle Puzzles及Diffie-Hellman原理简介
- Python实现Diffie-Hellman密钥交换协议
- Diffie-Hellman密钥交换算法及其优化
- Diffie-Hellman密钥交换算法的JavaScript实现
- Diffie-Hellman密钥交换思想
- Diffie-Hellman密钥交换