❤️SSL/TLS专栏导航页❤️


文章目录

  • 1. DH算法简介
  • 2. DH算法协商流程
  • 3. DH算法证明
  • 4. SSL/TLS中的DH算法

1. DH算法简介

Diffie-Hellman密钥交换算法是在1976年由这两个人发明的算法。它可以在不安全的网络中,通过交换一些公开的信息协商出共享密钥,使用此共享密钥建立安全通讯。它实际上并没有直接交换密钥,而是通过数学计算,得出共享密钥。

有限域的离散对数问题的复杂度正是支撑DH密钥交换算法的基础。

⚠️⚠️⚠️ DH算法属于非对称算法。DH算法专利已经与1997年到期

它的原理很简单:
gamodp=Ag^amodp=A gamodp=A
已知g,a,p求解A非常简单;而根据g,p,A在[1,p]范围内求解a却非常的困难,尤其当p特别大的时候(有多大?常见的DH组的p比特位有768,1024,2048,…, 8192,…)。放心吧,穷举不过来的!!!

2. DH算法协商流程


①Alice选择两个质数:p, g

p必须是一个非常大的质数,而g则是一个与p相关的数,成为生成元(Generator, 或数论中叫做本原根),g可以是一个比较小的数。

p, g是不需要保密的,即使被窃听也无关痛痒。

②Alice生成一个随机数a

a是一个位于1 ~ p-2之间的整数。这个数只能自己知道,不需要告诉Bob, 也不能让其他人知道。

③Alice计算出A
A=gamodpA=g^amodp A=gamodp
④Alice将p, g, A全部发送给Bob

这三个数可以让其他人知道,没有关系

⑤Bob生成一个随机数b

b是一个位于1 ~ p-2之间的整数。这个数只能自己知道,不需要告诉Alice, 也不能让其他人知道。

⑥Bob计算出B

Bob已经接收到Alice发来的g,p,因此可以计算出B。
B=gbmodpB=g^bmodp B=gbmodp
⑦Bob只需要将B发送给Alice

B也可以让其他人知道,没有关系

⑧Alice利用Bob发来的B计算共享密钥K
K=BamodpK=B^amodp K=Bamodp
⑨Bob利用Alice发来的A计算共享密钥K
K=AbmodpK=A^bmodp K=Abmodp
最后Alice和Bob计算出的共享密钥可以通过数学公式证明是同等的。因此通过DH密钥协商,最终双方协商出了只有两个人知道的共享密钥。DH算法数学原理上并不难,虽然大多数人在大学没有学过mod运算,看公式时一脸懵逼,总理解不到DH的精髓。事实上要证明此算法没有那么复杂。只需要二项式展开即可。
K=Bamodp=(gbmodp)amodp=gabmodp=(gamodp)bmodp=AbmodpK=B^amodp=(g^bmodp)^amodp=g^{ab} modp=(g^amodp)^bmodp=A^bmodp K=Bamodp=(gbmodp)amodp=gabmodp=(gamodp)bmodp=Abmodp

3. DH算法证明

4. SSL/TLS中的DH算法

DH算法分类标准有两类:第一种是基于密钥;第二类基于计算方式。

  • 静态DH是指:通信双方有一方的私有密钥是固定的,另一方临时生成,一般是服务器端固定。但是这样随着时间的验证,很容易被破解,而一旦被破解,之前所有的通讯数据都很容易被解密,不具备前向安全的特性。目前静态DH基本不同。
  • 既然静态DH算法中,一方固定一方临时生成的方式不安全,那么我们就双方都不固定。通讯双方的私有密钥都采用临时生成的方式,这中DH算法称之为DHE算法(E是指Ephemeral, 临时的)。

按照计算方式又可以分为:模指数DH算法和椭圆曲线DH算法模指数是指:指数运算+取模运算,前面介绍的便是这种DH算法。但是这种算法由于涉及指数运算,计算量开销非常的可观,于是后来出现了椭圆曲线计算方式,据说这种方式计算量小了很多。

SSL/TLS中的DH算法、DHE算法、 ECDHE算法介绍相关推荐

  1. HTTPS 和 SSL/TLS 协议:密钥交换(密钥协商)算法及其原理

    转自:https://blog.csdn.net/andylau00j/article/details/54583769 本系列的前一篇,咱们聊了"密钥交换的难点"以及" ...

  2. TLS/SSL 协议详解 (30) SSL中的RSA、DHE、ECDHE、ECDH流程与区别

    我的TLS实现:https://github.com/mrpre/atls/ 大家可以参考,代码里面的逻辑较清晰. 我的SSL专栏见:https://blog.csdn.net/mrpre/artic ...

  3. DH、DHE、ECDHE加密算法

    DH算法 离散对数 DH 算法是非对称加密算法, 因此它可以用于密钥交换,该算法的核心数学思想是离散对数. 对数运算:i=logabi = log_{a}bi=loga​b 离散对数是在对数运算的基础 ...

  4. 9. PKI - 三种密钥交换算法详解(RSA DHE ECDHE)及他们在SSL/TLS协议中的应用

    9. PKI - 三种密钥交换算法详解(RSA& DHE& ECDHE)及他们在SSL/TLS协议中的应用 RSA密钥交换算法 DHE密钥交换算法 ECDHE密钥交换算法 参考 密钥交 ...

  5. 扫盲 HTTPS 和 SSL/TLS 协议[3]:密钥交换(密钥协商)算法及其原理

    文章目录 ★密钥交换/协商机制要达到啥目的? ★密钥交换/协商机制的几种类型 ★基于 RSA 的密钥协商 ★基于 DH 的密钥协商 ★DH 的变种 ★基于 PSK 的密钥协商 ★基于 SRP 的密钥协 ...

  6. TLS中密码交换协议:RSA/DH/DHE/ECDH/ECDHE等说明

    以下是学习笔记: 一:首先来看TLS的密钥交换构成涉及到的消息,如下图所示: 二: RSA交互介绍: 9. PKI - 三种密钥交换算法详解(RSA& DHE& ECDHE)及他们在S ...

  7. rc4算法安全漏洞_RC4攻击:RC4加密算法能否保护SSL/TLS?

    您能介绍一下最近在RC4加密算法中发现的问题吗?对此,HTTPS网络连接面临怎样的安全隐患?企业应该如何确保他们不会受到这个漏洞带来的攻击? Michael Cobb:RC4(Rivest密码4)由R ...

  8. 例说图解TCP/IP协议族--TLS篇(1)抓包分析SSL/TLS握手

    SSL是Secure Sockets Layer (安全套接层)的简写,SSL协议是为网络通信提供安全的一种安全协议,继任者为TLS,即 Transport Layer Security传输层安全. ...

  9. 用OpenSSL编写SSL,TLS程序

    http://zhoulifa.bokee.com/6134045.html http://blog.sina.com.cn/s/blog_86ca13bb0100vaph.html http://b ...

  10. 【网络通信 -- 直播】网络通信协议简介 -- SSL/TLS 与 DTLS

    [网络通信 -- 直播]网络通信协议简介 -- SSL/TLS 与 DTLS [1]网络传输中加密的一般概念 对称密钥加密技术,加密过程和解密过程使用的是同一个密钥: 常见的对称加密算法有 DES.3 ...

最新文章

  1. junit基础学习之-断言注解(3)
  2. TCP建立连接与断开连接的过程
  3. 软件集成策略故事连载----对项目的不利影响竟然这么大
  4. 如何更有效的消灭watchdogs挖矿病毒?华为云DCS Redis为您支招
  5. 5分钟学会Markdown语法,在GitHub上写出漂亮文本,提升别人阅读体验
  6. java 对称加密 教程_Java 对称加密算法DES 的使用教程
  7. 敏捷开发般若敏捷系列之八:敏捷的未来会怎样?
  8. 奥比中光ROS启动节点运行异常退出:[camera/driver-2] process has finished cleanly
  9. ie不能加载flash html,IE浏览器无法显示Flash怎么解决?解决的方法介绍
  10. 统信软件启用全新LOGO,迎接中国操作系统大时代
  11. 百度鹰眼服务平台部署教程
  12. java 幻影_Java之抽象
  13. RIASEC World-of-Work Map 职业测评
  14. 重复行删除操作df.drop_duplicates和df.duplicated
  15. 看到1元保险就想买?小心被割韭菜!
  16. ecshop 数据库调试技巧 【强烈推荐】
  17. JavaScript 双击禁止选中文字
  18. 常用邮件服务器名(POP3,SMTP地址)
  19. android studio找不到X21,不必苦等Android P,这些“新”功能其实早在vivo X21就已实现...
  20. oracle文件存储方式,oracle文件存储介质介绍

热门文章

  1. 网店宝贝复制专家操作手册
  2. app的性能测试小工具Emmagee使用教程
  3. Debian分区工具partman
  4. CeH2.5-NaH-Al复合储氢材料/金属Ce氢化物催化NaH-Al复合储氢材料/Ce氢化物催化的NaAlH4复合储氢材料定制
  5. 家庭水族馆,智能加热棒解决方案
  6. 黑月教主工具脱水印_一键去水印!傻瓜式图片处理工具Inpaint
  7. 马尔科夫随机场:定义、性质,最大后验概率问题,能量最小化问题
  8. python妹子图软件下载_【简单爬虫】 爬取妹子图 自动下载 [改进]
  9. Spring中的AOP原理
  10. 【自用】C语言15个简单程序