英文名Diffie-Hellman key exchange(简称DH)。
传统上,双方之间的安全加密通信要求他们首先通过一些安全的物理渠道来交换密钥。
Diffie-Hellman密钥交换方法允许双方通过一个不安全的渠道直接建立一个共享的密钥。
这个密钥可以通过 对称密钥 被用来加密接下来的通信。

Diffie-Hellman算法是一种密钥交换算法。( 什么是密钥交换算法呢?请看下文,不想看的可以跳过。

密钥交换(key exchange)

The key exchange problem describes ways to exchange whatever keys or other information are needed for establishing a secure communication channel so that no one else can obtain a copy.

Historically, before the invention of public-key cryptography (asymmetrical cryptography), symmetric-key cryptography utilized a single key to encrypt and decrypt messages. For two parties to communicate confidentially, they must first exchange the secret key so that each party is able to encrypt messages before sending, and decrypt received ones. This process is known as the key exchange .

Diffie-Hellman算法能够用作 密钥分配 ( 什么是密钥分配,看下一段,不想看的可以跳过。

从英文来看,密钥分配也称密钥分发。

  • 对于对称密码体制来说,双方在对消息进行加解密之前,彼此都要拿到加解密的私钥,这就是密钥的分发。Diffie-Hellman就能够通过彼此发送消息确定最终的私钥,这也就达到了密钥分发的目的。所以说Diffie-Hellman算法可以用作密钥分配。所以,Alice和Bob能够用Diffie-Hellman算法产生对称密码中的私钥。 注意:Diffie-Hellman算法只是用来协商密钥的,不能用于加密或者解密消息。
  • 对于公钥密码体制来说,暂不研究。

根据 stackexchange上的介绍 ,密钥分配和密钥交换的差别非常小,非常小,所以我们在这里就姑且看成是相同的概念吧。

也就是说Diffie-Hellman算法的最终目的是让帮助一帮人在“大庭广众”之下协商出一个最终的密钥出来。虽然在”大庭广众之下“,他们仅仅会让我们看到过程,最终协商出来的密钥只有他们自己知道。最初他们每个人心里都有一个秘密的数字,这个东西我们是不知道的。我们仅仅知道他们的过程,所以他们最终协商出来的密钥,我们也是不知道的。

下面是Wiki的解释:
Diffie-Hellman密钥交换在双方之间建立了一个共享的密钥,这个共享的密钥可以被用来在一个公开的网路中交换数据。下方的图示通过颜色展示了密钥交换的大致思路。
在这里插入图片描述
首先假设双方分别是Alice和Bob,他们就一个随机的初始的颜色达成了一致。这个颜色不需要被保密,但是每一次要不一样。在这个例子中,这个初始的颜色是黄色。然后他们两个人每一个人选择一个秘密的颜色,Alice只知道Alice的颜色,其他任何人都不知道Alice选的是什么颜色,Bob同理。在这个例子中,Alice选择的是红色,Bob选择的是蓝绿色。这个过程的关键部分是Alice和Bob每个人将他们自己的秘密颜色和他们对方彼此共享的颜色(初始的颜色即黄色)混合在一起,导致了分别是orang-tan色,和浅蓝色。他们公开的将混合之后的颜色进行交换。最终,他们每一个人将他们从对方收到的颜色和他们自己的private color进行混合。这个结果就是最终的混合颜色。在这个例子中是黄褐色。这个颜色和对方的颜色是一致的。

如果某个第三方听到了这个交换,他就会知道公共的颜色(黄色)和第一个混合的颜色(orange-tan和浅蓝色),但是对这个第三方来说,确定最终的秘密颜色(黄褐色)在计算上是很困难的。事实上,当在使用大的数字而不是颜色时,这个行为需要大量的计算。这个行为即使是现代超极计算机都是不可能在一个合理的时间内完成的。

加解密解释

下面是Wiki的解释:
这个协议的最简单最原始的实现使用的是
multiplicative group of integers p, p是一个素数。g是 primitive root modulo . 之所以要选择这样的两个值是为了产生的结果共享密钥可以是取到从1,p-1的任何一个值。下面是协议的例子。公开的用 蓝色 表示,秘密的用 红色 表示。
1.Alice 和 Bob 公开即使用模 p=23,基g=5,g=5是模23的一个原根。(什么是原跟,暂时不需要理解)
Alice和Bob已经达到了相同的值s,因为在mod p下,
Diffie-Hellman 密钥交换技术文章目录Diffie-Hellman 密钥交换技术描述大体介绍加解密解释英文名Diffie-Hellman key exchange(简称DH)。Diffie-Hellman密钥交换是一个在公共渠道安全交换加解密密钥的方法。DH是加解密领域最早的公钥交换实际应用的例子之一。传统上,双方之间的安全加密通信要求他们首先通过一些安全的物理渠道来交换密钥。...

Diff ie- Hellman 密钥 交换 算法 了解 Diff ie- Hellman 密钥 交换 方法和步骤 VC++环境下,编程实现 Diff ie- Hellman 密钥 交换 方法和步骤 一、 采用 Diff ie- Hellman 密钥 交换 方法,编程实现两个用户的 密钥 交换 按照步骤,先指定一个本原根,然后分别求 密钥
Diff ie- Hellman (简称DH)是 密钥 交换 算法之一,它的作用是保证通信双方在非安全的信道中安全地 交换 密钥 。目前DH最重要的应用场景之一,就是在HTTPS的握手阶段,客户端、服务端利用DH算法 交换 对称 密钥 。 下面会先简单介绍DH的数理基础,然后举例说明如何在nodejs中使用DH相关的API。下面话不多说了,来一起看看详细的介绍吧。 要理解DH算法,需要掌握一定的数论基础。感兴趣的可以进一步研究推导过程,或者直接记住下面结论,然后进入下一节。 假设 Y = a^X mod p,已知X的情况下,很容易算出Y;已知道Y的情况下,很难算出X; (a^Xa mod p
Diff ie- Hellman 密钥 交换 是一种安全 交换 密钥 的方法,可以让双方在不泄漏 密钥 的情况下,德出一个 密钥 。以Whitfield Diff ie和Martin Hellman 的名字共同命名。 Diff ie- Hellman 密钥 交换 是Ralph Merkle构想的第一个公钥协议之一,由 Diff ie 和 Hellman 于 1976 年出版,这是最早提出私钥和相应公钥概念的公开著作。可以让双方在不泄漏 密钥 的情况下协商出一个 密钥 来传统上,两方之间的安全加密通信要求他们首先通过某种安全的物理方式 交换 密钥 ,例如由受信任
密钥 交换 /协商目的 “ 密钥 协商机制”是:(在身份认证的前提下)规避【偷窥】的风险。通俗地说,即使有攻击者在偷窥客户端与服务器的网络传输,客户端(client)依然可以利用“ 密钥 协商机制”与服务器端(server)协商出一个只有二者可知的用来对于应用层数据进行加密的 密钥 (也称“会话 密钥 ”)。 密钥 交换 /协商机制的几种类型 1,依靠非对称加密算法 拿到公钥的一
在使用对称密码、公钥密码、消息认证码、数字签名的时候,都需要一个被称为 密钥 的巨大数字。可能出现的 密钥 的总数量被称为 密钥 空间, 密钥 空间越大, 密钥 破解起来就越困难, 密钥 空间的大小由 密钥 的长度所决定。 密钥 和明文是等价的。(1)对称密码的 密钥 与公钥密码的 密钥 在对称密码中,加密过程和解密过程使用的是同一个 密钥 ,因此对称密码又称为共享 密钥 密码。在公钥密码中,加密和解密使用的是不同的 密钥 ,用于加密的 密钥 称为公钥,用于解密的 密钥 称为私钥,私钥也称为秘密 密钥 。相对应的公钥和私钥称为 密钥 对。 (2)消息认证码的 密钥
我们来看DH算法 交换 密钥 的步骤。假设甲乙双方需要传递 密钥 ,他们之间可以这么做: 甲首选选择一个素数p,例如509,底数g,任选,例如5,随机数a,例如123,然后计算A=g^a mod p,结果是215,然后,甲发送p=509,g=5,A=215给乙; 乙方收到后,也选择一个随机数b,例如,456,然后计算B=g^b mod p,结果是181,乙再同时计算s=A^b mod p,结果是121; 乙把计算的B=181发给甲,甲计算s=B^a mod p的余数,计算结果与乙算出的结果一样,都是121。
Diff ie- Hellman 密钥 交换 (DH)[1]是一种在公共信道上安全 交换 加密 密钥 的方法,也是Ralph Merkle最初设计并以Whitfield Diff ie和Martin Hellman 命名的第一个公钥协议之一。[1] [2] DH是在密码领域实现的公钥 交换 最早的实际例子之一。 传统上,双方之间的安全加密通信要求他们首先通过一些安全的物理信道 交换 密钥 ,例如由可信赖的信使传送的
1976年, Diff ie和 Hellman 在其题为《密码学的新方向》的论文中首次给出了公钥密码学的定义,并提出了 Diff ie- Hellman 密钥 交换 算法。该算法解决了对称密码体制中的 密钥 分发问题,使得通信双方可以通过公开信道安全地 交换 共享 密钥 。其安全性建立在离散对数问题的困难性之上。 Diff ie- Hellman 密钥 交换 Alice与Bob使用 Diff ie- Hellman 密钥 交换 的步骤如下: