Diffie-Hellman密钥交换 -- 浅析

DH算法,实现在不安全网络中,发收双方安全交换对称密钥的一种方法。这个对称密钥阶段性保存,避免了长期保存带来的风险,发收双方共同持有一个秘密的对称密钥,可以实现端到端的秘密通信。

DH算法基于离散对数的基本原理。涉及的知识有,对数,素数,离散对数等;

对数

对数是17世纪的一项发现,作用是用来降低乘除法的运算难度。采用对数可以用加法来代替乘法,用减法代替除法。1627年开普勒使用对数来整理第谷布拉赫积累的数据,并得出了比他的前辈更精确的天体表,并得出行星沿着椭圆轨道绕太阳运行。

y = a^x

a的x次幂等于y, 那么x就是以a为底的y的对数, y的对数是x(a为底)

x = log y

对数的性质

log AB =  log A + log B

log A/B = log A - log B

素数,也叫质数

只能被1,和它自己整除的数,叫做素数。比如 2  3  5  7  11  13  17  19  23 。 欧几里得证明素数是无限的。这个证明很有趣,可以阅读  http://baike.baidu.com/view/333373.htm

少部分的素数可以用 2^p - 1 来表示, 这种数叫梅森素数。截止到2013年2月发现的最大的梅森素数为  p=2^57885161-1, 是第48个梅森素数。梅森素数是否有无限,这个未知。

素数的原根 

P为素数,i j 为整数,其中i≠j且i, j介於1至(P-1)之间。

对于满足条件任意的 i和j 有   g^i mod P ≠ g^j mod P  ,  则 g就是P的原根 。

简单的说,就是g的1次幂、2次幂到P-1次幂的所有结果对P的余数各不相同。

原根有一个好处就是,满足 g^x mod P = y  ,  x与y 一一对应, 一个x对应一个y, 一个y对应一个x。

原根一般都不是很大, 可以通过暴力的方式来计算得出,也有一些优化算法。

离散对数

P是素数,g是P的原根, x 介於1至(P-1)之间 , 满足

g^x mod P = y

则 x就是y的离散对数 。

在已知g P x的情况下, 计算y,复杂度相对不大,计算机是可以完成的。而反过来,已知y求唯一的x,这个在目前已知的数学理论中是不可行的。通过穷举x来求解,但是计算量太大也是不可行的。

DH算法

DH算法,依据的就是离散对数求解困难的这一数学难题。

用户Ada 和 Babbage开始开一个不安全的网络中交换密钥, 下面算法中大写字母是允许公开的秘密

1 Ada 和 Babbage先协商一个大素数P和这个素数的原根G ,  P G 是允许公开的, 但P一定要足够大;

2 Ada 生成一个随机数x,x要小于P, 然后计算 G^x mod P = X  ,  X是允许公开的,由X是不能得到x的;

3 Babbage生成一个随机数y,y要小于P, 计算 G^y mod P = Y ,  Y允许公开;

4 Ada得到Babbage传递过来的Y, 然后计算 Y^x mod P = k ;

5 Babbage得到Ada传递过来的X,计算 X^y mod P = k* ;

理论上k与k* 是相同的, 这个就是协商后的密钥,理论上这个密钥是不能通过公开的 P G X Y 运算得到。

证明 k == k*

k = Y^x mod P

= (G^y mod P) ^ x  mod P

= G^yx mod P

k* = X^y mod P

= (G^x mod P) ^ y mod P

= G^xy mod P

所以 k 与 k* 相同。

Diffie-Hellman密钥交换 -- 浅析,布布扣,bubuko.com

时间: 2024-11-04 11:14:50

Diffie-Hellman密钥交换 -- 浅析的相关文章

迪菲.赫尔曼(Diffie–Hellman)密钥交换算法

迪菲.赫尔曼算法是通信线路不安全情况下,交换密钥的一个算法,应用于TLS协议中 首先说一下生成密钥的流程,我们有这样一种计算叫做求摸运算 mod, 比如:27 mod 17 = 10,也就是求余数的运算. 现在有两个通信者A和B,我们使用一种计算 假如我们这里选用 3 ^ x mod 17,A和B分别生成一个随机的整数,这个整数即为x,比如A是2,B是3,那么A使用2计算: 3^2 mod 17 = 9 ① B使用3计算: 3^3 mode 17 = 10 ② 然后A将9发送给B,B将10发送给

DH密钥交换(Diffie–Hellman key exchange)算法笔记

注意:只是笔记,可能有不正确的地方 ?下文中^代表乘方运算,例如2^3=2*2*2=6,参考:http://zh.wikipedia.org/wiki/%E5%86%AA %代表模运算,例如5%3=2,参考:http://zh.wikipedia.org/wiki/%E6%A8%A1%E9%99%A4? DH密钥交换算法的作用是使通信双方可以在不安全的通道中建立一个相同的密钥,用于加密通信. 基本原理示例: 1.通信方A和通信方B约定一个初始数g,g是公开的,如g=5 2.A生成一个随机数a,a

IPSEC VPN

目录: 简介:... 2 分类:... 2 1.在路由上实现的VPN可分为:... 2 2.在ASA防火墙上实现的VPN:2 IPSec VPN:3 IPSec能实现的功能有:... 3 IPSec的特性(IPSec之所以安全是由它的特性决定的):... 3 IPSec的实施包含两个阶段... 4 IPSec协商过程:... 4 IPSec 范畴的VPN中各种形式的大体配置步骤:... 6 IPSEC VPN几种配置实例... 6 一.实验拓扑... 7 二.实验目的... 7 三.实验要求..

常见加密算法分类,用途,原理以及比较

摘自:http://blog.csdn.net/zuiyuezhou888/article/details/7557048   密码学简介 据记载,公元前400年,古希腊人发明了置换密码.1881年世界上的第一个电话保密专利出现.在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用. 随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在1997年,美国国家标准局公布实施了“美国数据加密标准(DES)”,民间力量开始全面介入密码学的研究和

各种加解密算法比較

二.          加密算法介绍 对称加密算法 对称加密算法用来对敏感数据等信息进行加密,经常使用的算法包含: DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合. 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高. AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高: AES与3DES的比較 算法名称 算法类型

安全协议系列(五)---- IKE 与 IPSec(中)

在上一篇中,搭建好了实验环境.完整运行一次 IKE/IPSec 协议,收集相关的输出及抓包,就可以进行协议分析.分析过程中,我们将使用 IKE 进程的屏幕输出和 Wireshark 抓包,结合相关 RFC,利用 python 进行验证计算.先看协议的一次完整运行(过滤掉无关报文,如下图) 下面是 RFC 5996 中对 IKEv2 协议的规范说明 由上可知,IKEv2 协议由两个阶段的交互过程(即两个来回,共四个报文)组成.第一阶段称为 IKE_SA_INIT 交换.第二阶段称为 IKE_AUT

转: 常见加密算法分,用途,原理以及比较

常见加密算法分,用途,原理以及比较 标签: 算法加密解密encryption破解algorithm 2012-05-11 13:28 3533人阅读 评论(0) 收藏 举报  分类: 数据结构与算法(3)    密码学简介 据记载,公元前400年,古希腊人发明了置换密码.1881年世界上的第一个电话保密专利出现.在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用. 随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在1997年,美国国

iOS 9的新的改变 iOS SDK Release Notes for iOS 9 说了些改变

iOS 9的新的改变 iOS SDK Release Notes for iOS 9 说了些改变 看了下还算能理解!!!有兴趣可以看看哈!!!不喜勿喷!!后面的对于废除的方法什么有用感觉!!! ios9 iOS SDK更新内容介绍 重点介绍: 这是一个初步的文档的API或技术发展.苹果是提供这一信息来帮助你计划的采用所述技术和编程接口使用品牌产品.此信息可能发生变化,根据这个文档和软件实现应与最后的操作系统软件测试和最终的文档.新版本的文档可以提供未来贝塔的API或技术. 内容: 介绍 iOS

【安全加密技术】非对称加密

转载请注明出处:http://blog.csdn.net/sk719887916/article/details/46810595 看过上篇网络互联基系列基础的朋友,对安全产生的原因以及策略度有所了解,当然作为开发者来讲,网络传输中的安全问题我们不必过多的关心,我们关心的是发送方加密和接收方对数据的解密过程,也就是网络安全中的一面边缘学科,密码学中的一种数据加密技术,目前业界的加密方式主要有对称加密和非堆成加密,那就先来了解下有非对称加密以及所关联的相关名字. 非对称加密 非对称加密算法是一种密