Diffie-Hellman 密钥交换算法

admin 2025年1月11日13:57:08评论25 views字数 1683阅读5分36秒阅读模式

Diffie-Hellman Key Exchange

密钥交换算法

Diffie-Hellman 密钥交换算法安全地交换共享密钥!

1976年,Diffie和Hellman在其题为《密码学的新方向》的论文中给出了公钥密码学的定义,并提出了DH密钥交换算法。  

该算法解决了对称密码体制中的密钥分发问题,使得通信双方可以通过公开信道安全地交换共享密钥,将此共享密钥用于会话加密。其安全性建立在离散对数问题的困难性之上。

为了更好地说明密钥交换协议的作用,我将会以自己的语言讲一遍

为什么我们需要DH key exchange

0x01 跟我一起设计密钥方案!

分为对称密码学和非对称密码学的角度来设计

假设有两个人Alice 和 Bob 他们要传递信息

1.1 第一回合

最简单没有任何措施的方法,就是直接传信息,比如 Alice:“今天天气晴朗!" Bob就会收到该信息。
但是这有很大的问题,最大的问题就是没有保密性,任何监听他们通信信道的人都能窃取该消息的明文。

1.2 第二回合

那么我们升级方案,对该消息加密,利用对称密码学进行加密。  对称密码学的大白话意思就是:加密和解密都是同一个密钥。

这里双方决定以k为对称密钥,Alice对m用k加密,Bob对c用k解密得到m。假设这里密钥提前确定,且双方都不泄露密钥,那么该协议就是安全的。
但是这里问题来了,如果Alice和Bob两人距离很远,不能提前商定用什么作为对称密钥,就又得传输该密钥。这样显然是不安全的。难道再拿一个密钥加密一遍?这就呼应了本文的标题当然答案是否定的!
为了传递消息,还需要传输密钥加密的密钥,方案不可行。

1.3 第三回合

使用非对称密钥学。即加密和解密的密钥是不一样的,公钥加密,私钥解密。

Alice Pk1,Sk1

Bob   Pk2, Sk2

Alice发送m,先用公钥对m加密得到c

Bob得到c,之后用Alice的私钥解密得到m。

这里好像也是可行的,但显然用Alice的私钥解密是很理想的状态,事实就是私钥不会随意传输给对方。(长期密钥的话)

我们对m用Pk1加密之后,就必须要用Sk1解密,那问题来了,怎么传输Sk1给Bob,这里又是一个死结。

因为私钥一旦暴露,传递信息也就暴露,所以我们不能传输私钥。

1.4 第四回合

终于我们引出了DH key exchange协议!

DH密钥交换协议的目的是,在不传输私钥的情况下,双方得到一个共享秘密,该秘密可以作为对称密钥进行加密。

Diffie-Hellman 密钥交换算法

也就是说,在传递m之前,Alice和Bob必须先进行密钥交换,得到共享秘密shared secret。

0x02 DH 密钥交换协议的介绍

2.1 为什么需要该协议?

为了解决对称密码体制中的密钥分发问题,使得通信双方可以通过公开信道安全地交换共享密钥。

提出了公钥密码学的概念,共享的是公钥,收到对方公钥之后,在对方公钥的基础上运算得到共享密钥。

2.2 协议细节

Diffie-Hellman 密钥交换算法

最终实现了什么目的

最终,Alice和Bob在一个非安全信道上实现了一个安全的秘密共享。并获得一个密钥,可以加密他们的对话。

2.3 DH密钥交换协议存在的漏洞

然而,没有相互身份认证的DH密钥交换协议可能会遭受中间人攻击、模拟攻击和重播攻击于是在这个基础之上就衍生出了AKE。认证密钥交换协议,交换密钥的双方必须提前获得身份认证才能进行密钥交换。

这个认证是如何完成的?
如CA 第三方认证机构颁发数字证书Certificate,证明Alice是Alice,Bob是Bob。
如何去除CA,是去中心化需要解决的问题,实现DAKE。

2.4 安全属性(待完善)

中间人攻击、模拟攻击和重播攻击

0x03 总结

为了传递消息,传输另一个密钥加密的会话密钥,方案不可行。我们使用基于离散对数难题的DH-Key Exchange算法,实现密钥的安全共享,达到目的。

往期回顾

BlindSignature|先生,这份文件是您签的吗?

Monero挖矿脚本漏洞发现

開山漏洞扫描器 || Vol1.0

细内容见博客

Diffie-Hellman 密钥交换算法

click:https://kitescat.github.io/

<Debug urself.>

Diffie-Hellman 密钥交换算法

copyright@ kitescat

原文始发于微信公众号(打代码的猫):Diffie-Hellman 密钥交换算法

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月11日13:57:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Diffie-Hellman 密钥交换算法https://cn-sec.com/archives/2491196.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息