Diffie-Hellman Key Exchange
密钥交换算法
安全地交换共享密钥!
1976年,Diffie和Hellman在其题为《密码学的新方向》的论文中给出了公钥密码学的定义,并提出了DH密钥交换算法。
该算法解决了对称密码体制中的密钥分发问题,使得通信双方可以通过公开信道安全地交换共享密钥,将此共享密钥用于会话加密。其安全性建立在离散对数问题的困难性之上。
为了更好地说明密钥交换协议的作用,我将会以自己的语言讲一遍
为什么我们需要DH key exchange
0x01 跟我一起设计密钥方案!
分为对称密码学和非对称密码学的角度来设计
假设有两个人Alice 和 Bob 他们要传递信息
1.1 第一回合
1.2 第二回合
那么我们升级方案,对该消息加密,利用对称密码学进行加密。 对称密码学的大白话意思就是:加密和解密都是同一个密钥。
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密钥交换协议的目的是,在不传输私钥的情况下,双方得到一个共享秘密,该秘密可以作为对称密钥进行加密。
也就是说,在传递m之前,Alice和Bob必须先进行密钥交换,得到共享秘密shared secret。
0x02 DH 密钥交换协议的介绍
2.1 为什么需要该协议?
为了解决对称密码体制中的密钥分发问题,使得通信双方可以通过公开信道安全地交换共享密钥。
提出了公钥密码学的概念,共享的是公钥,收到对方公钥之后,在对方公钥的基础上运算得到共享密钥。
2.2 协议细节
最终实现了什么目的
最终,Alice和Bob在一个非安全信道上实现了一个安全的秘密共享。并获得一个密钥,可以加密他们的对话。
2.3 DH密钥交换协议存在的漏洞
然而,没有相互身份认证的DH密钥交换协议可能会遭受中间人攻击、模拟攻击和重播攻击。于是在这个基础之上就衍生出了AKE。认证密钥交换协议,交换密钥的双方必须提前获得身份认证才能进行密钥交换。
2.4 安全属性(待完善)
中间人攻击、模拟攻击和重播攻击
0x03 总结
为了传递消息,传输另一个密钥加密的会话密钥,方案不可行。我们使用基于离散对数难题的DH-Key Exchange算法,实现密钥的安全共享,达到目的。
往期回顾
详细内容见博客
click:https://kitescat.github.io/
<Debug urself.>
copyright@ kitescat
原文始发于微信公众号(打代码的猫):Diffie-Hellman 密钥交换算法
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论