DH算法 | Diffie-Hellman 密钥交换

article/2025/10/2 3:38:46

概述:

DH 算法又称“Diffie–Hellman 算法”,像往常的算法名字一样,这是用俩个数学牛人的名字来命名的算法,实现安全的密钥交换,通讯双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥。

优点:

  1. 通讯双方事先不需要有共享的秘密。
  2. 用该算法协商密码,即使中间被截获,也无法解密出来密钥是啥

缺点:

  1. 没有办法进行认证
  2. 计算很复杂,但是一般情况下,一个会话只用计算一次,那么假如有大量的请求,就会耗费大量的资源来进行计算,容易受阻塞性攻击
  3. 其余的缺点,感兴趣的可以自行百度(QAQ)

数学理论支撑

从概念上讲,要想破解DH算法,那么就是在求解离散对数问题,

离散对数难题是指:当已知一个大质数p和它的一个原根a,如果给定一个b,要计算i的值是相当困难的。

是一个典型的正向求解简单,逆向求解特别难的问题

举例:

通讯双方(张三、李四)需要先约定好算法参数(algorithm parameters):一个素数 p 作为模数,一个素数 g 作为基数(g 也称为“生成元”)。这两个算法参数是可以对外公开滴。

对于张三而言,需要先想好一个秘密的自然数 a 作为私钥(不能公开),然后计算 A = ga mod p 作为自己的公钥(可以公开)
对李四而言也类似,先想好一个秘密的自然数 b 作为私钥(不能公开),然后计算 B = gb mod p 作为自己的公钥(可以公开)
张三和李四互相交换各自的公钥。
然后张三计算出 k = Ba mod p,李四计算出 k = Ab mod p

我们不难发现,张三和李四最后计算出来的k必然是一致的
他们都无法通过已知 的数来推算出对方的私钥
对于中间截获者来说,虽然能看到 p,g,A,B,但是无法推算出 a 和 b(就是说,旁观者无法推算出双方的私钥),自然也无法推算出 k

DH算法

算法核心:为了生成一个共享的秘密——密钥

算法步骤:
在这里插入图片描述

  1. 客户端随机生成随机值Ra
    计算Pa(x, y) = Ra * Q(x, y),
    Q(x, y)为全世界公认的某个椭圆曲线算法的基点
    将Pa(x, y)发送至服务器

  2. 服务器随机生成随机值Rb
    计算Pb(x,y) = Rb * Q(x, y)
    将Pb(x,y)发送至客户端

  3. 客户端计算Sa(x,y) = Ra * Pb(x,y)
    服务器计算Sb(x,y) = Rb *Pa(x,y)

  4. 算法保证了Sa = Sb = S,提取其中的S的x向量作为密钥(预主密钥)


http://chatgpt.dhexx.cn/article/yHTG3gY1.shtml

相关文章

DH算法原理

DH算法原理 DH 是 Diffie-Hellman的首字母缩写,是Whitefield与Martin Hellman在1976年提出了一个的密钥交换协议。我个人倾向于称DH算法为 密钥协商协议而RSA算法是密钥交换算法。 本篇分为几个部分,第一个部分介绍一下密钥交换的场景;第二部…

DH、DHE、ECDHE加密算法

DH算法 离散对数 DH 算法是非对称加密算法, 因此它可以用于密钥交换,该算法的核心数学思想是离散对数。 对数运算: i l o g a b i log_{a}b iloga​b 离散对数是在对数运算的基础上加了「模运算」,也就说取余数,…

DH 算法原理

一、DH算法 DH 算法其实也叫作 Diffie - Hellman 密钥交换协议,是一个不安全的秘钥共享网络协议,无法避免中间人攻击。 二、DH算法的原理 假设 Ali 和 Bob 需要互相通信并共享秘钥 Ali 先给 Bob 一个明文共享参数 、 ,此信息可以被任何人…

DH算法图解+数学证明

前几天和同事讨论IKE密钥交换流程时,提到了Diffie-Hellman交换。DH算法最主要的作用便是在不安全的网络上成功公共密钥(并未传输真实密钥)。但由于对于DH算法的数学原理则不清楚,因此私下对DH算法进行一个简单学习。 1. DH算法的交互流程: Al…

卷积神经网络(Convolutional Neural Networks,CNNS/ConvNets)

本文翻译自 Convolutional Neural Networks(CNNs / ConvNets),更多内容请访问:http://cs231n.github.io/。 原来译文:https://blog.csdn.net/Consu_Yasin/article/details/78052411 卷积神经网络非常类似于普通的神经网络:它们都…

卷积神经网络CNNs的理解与体会

孔子说过,温故而知新,时隔俩月再重看CNNs,当时不太了解的地方,又有了新的理解与体会,特此记录下来。文章图片及部分素材均来自网络,侵权请告知。 卷积神经网络(Convolutinal Neural Networks&a…

Gated-SCNN: Gated Shape CNNs for Semantic Segmentation论文笔记

论文介绍 作者认为之前的semantic segmentation的工作将所有信息都放入到了CNN的网络之中(这其中包含了颜色、边界、纹理等信息),这不太理想,所以作者在regular stream的基础之上增加了一个shape stream的分支,通过利用门控卷积来控制使得sh…

【t-SNE可视化CNNs特征向量-代码】

t-SNE可视化CNNs特征向量-代码 本博客主要是自己学习记录,参考网络,欢迎指正 整体代码 ModelPath是存放训练好的模型参数的路径 DatasetPath是存放数据集的文件夹的路径,其中不同类别放在不同的子文件夹里也可以参考【t-SNE可视化-代码】 …

CNNs: AlexNet补充

CNNs: AlexNet的补充 导言对AlexNet模型进行调整模型不同层的表征其他探索总结 导言 上上篇和上一篇我们详细地讲述了AlexNet的网络结构和不同超参数对同一数据集的不同实验现象。 本节,我们就AlexNet的一些其他相关问题进行解剖,如修改AlexNet参数量调…

深度学习-浅谈CNNs

偶尔看到了这篇文章,感觉作者写的很容易理解,对于初步认识CNNs有很大的帮助,若想查看原文,请点击此处。 关于神经网络的学习方法,总结起来的要点有以下几点: BP算法 激励函数正则化与交叉验证等其他防止过…

【GSCNN】GSCNN:Gated Shape CNNs for Semantic Segmentation论文记录

目录 简单不看版: 摘要 一、介绍 二、相关工作 三、Gated Shape CNN 代码 四、实验 五.总结 论文:https://arxiv.org/abs/1907.05740 代码:GitHub - nv-tlabs/GSCNN: Gated-Shape CNN for Semantic Segmentation (ICCV 2…

CNNs和视觉Transformer:分析与比较

探索视觉Transformer和卷积神经网络(CNNs)在图像分类任务中的有效性。 图像分类是计算机视觉中的关键任务,在工业、医学影像和农业等各个领域得到广泛应用。卷积神经网络(CNNs)是该领域的一项重大突破,被广…

你应该知道的9篇深度学习论文(CNNs 理解)

当时看到英文的博客,本想翻译给感兴趣的同学们看看,没想到已经有人翻译,于是进行了转载,留给自己和更多的人学习,本文仅供参考。 英文博客:https://adeshpande3.github.io/adeshpande3.github.io/The-9-Dee…

【神经网络】CNN

CNN工作原理笔记 卷积神经网络定义卷积运算池化激活函数全连接反向传播算法其他应用延伸知识 首先放个学习视频链接: 大白话讲解卷积神经网络工作原理. 卷积神经网络定义 CNN其实就相当于黑箱,有输入有输出 输入:二维像素阵列 输出:判决结果…

CNN+RNN

CNN,RNN(recurrent, 下同)结合到一起可以建立一个更好的model 1. CRNN(先CNN,后RNN) References: An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition 一般用于基…

CNNs: ZFNet之CNN的可视化网络介绍

CNNs: ZFNet之CNN的可视化网络介绍 导言Deconvnet1. Unpooling2. ReLU3. Transpose conv AlexNet网络修改AlexNet Deconv网络介绍特征可视化 导言 上一个内容,我们主要学习了AlexNet网络的实现、超参数对网络结果的影响以及网络中涉及到一些其他的知识点&#xff0…

吊炸天的CNNs,这是我见过最详尽的图解!(上)

导读:卷积神经网络(CNNs)在“自动驾驶”、“人脸识别”、“医疗影像诊断”等领域,都发挥着巨大的作用。这一无比强大的算法,唤起了很多人的好奇心。当阿尔法狗战胜了李世石和柯杰后,人们都在谈论“它”。但…

深度学习—CNN

CNN简介 卷积神经网络 – CNN 最擅长的就是图片的处理。它受到人类视觉神经系统的启发。 CNN 有2大特点: 能够有效的将大数据量的图片降维成小数据量能够有效的保留图片特征,符合图片处理的原则 目前 CNN 已经得到了广泛的应用,比如&…

吊炸天的CNNs,这是我见过最详尽的图解!(下)

【摘要】本文详细介绍了卷积神经网络的运行原理,特别是池化、全连接等过程。为了使大家更快、更轻松的入门,文章没有晦涩难懂的术语和公式,全部采用“图形”的方式来描述。文末的延展阅读部分,更加入了彩色图片卷积原理的手工演算…

CNNs:ZFNet之基于AlexNet特征可视化实验分析

CNNs:ZFNet之基于AlexNet特征可视化实验分析 导言基于AlexNet网络的实验分析实验一:不同卷积层特征提取分析实验二:不同卷积层提取特征收敛分析 ZFNet网络介绍基于ZFNet网络的实验分析实验三:针对AlexNet特征提取改善可视化实验四:特征不变性…