密钥交换算法(DH算法)
背景
对称加密算法通过密钥解决了数据加密问题,但是如何安全的传输密钥成为了下一个问题。如果密钥被窃取了,那对称加密数据就没有什么意义了。密钥交换算法(Diffie-Hellman算法 or DH算法)就是为了解决这个问题而出现的算法,DH算法也奠定了非对称加密算法的基础。
密钥交换算法(DH算法)
- 张三先随机取一个较大的素数p = 7777,一个底数g = 11,私钥k1 = 31,计算A = g^k1 MOD p = 2937
- 张三将p、g、A三个值发个李四
- 李四随机选择私钥为k2 = 19,计算B = g^k2 MOD p = 6325, 李四将B发给张三
- 李四计算密钥S2 = A^k2 MOD p = 781
- 张三计算密钥S1 = B^k1 MOD p = 781
明文传输了p、g、A、B四个值,只通过这四个值是无法计算出最终的密钥S,张三李四通过自己的私钥K1和k2计算出约定的密钥S1和S2,这样就完成了密钥的交换。
密钥交换算法(DH算法)相关推荐
- 密钥协商算法的演变 —— RSA算法 - DH算法 - DHE算法 - ECDHE算法
文章目录 1. RSA算法 RSA握手过程 RSA秘钥协商算法最大的缺陷 2. DH算法 3. DHE算法 4. ECDHE算法 ECDHE秘钥协商算法的TSL握手: 1. RSA算法 传统的 TLS ...
- DH算法、DHE算法、ECDHE算法演进
ECDHE 算法解决了 RSA 算法不具备前向安全的性质 和 DH 算法效率低下的问题. ECDHE 算法具有前向安全.所以被广泛使用. 由什么演变而来 DH 算法 -- > DHE 算法 -- ...
- RSA算法和DH算法的区别
同是非对称算法,非对称算法的根本原理就是单向函数,f(a)=b,但是用b很难得到a. RSA算法 RSA算法是基于大数难于分解的原理.不但可以用于认证,也可以用于密钥传输.那么用户A和B如何利用RSA ...
- DH算法 | 迪菲-赫尔曼Diffie–Hellman 密钥交换及RSA(学习笔记)
DH算法 | 迪菲-赫尔曼Diffie–Hellman 密钥交换(学习笔记),来自B站: [不懂数学没关系]DH算法 | 迪菲-赫尔曼Diffie–Hellman 密钥交换_哔哩哔哩_bilibili ...
- DH算法在密钥交换中的作用简介
DH算法是密钥交换协议/算法(Diffie-Hellman)的简称,是由Whitfield Diffie与Martin Hellman在1976年提出的一个密钥交换协议.这个机制的巧妙在于需要安全通信 ...
- java dh算法_https密钥交换DH算法
我们来看DH算法交换密钥的步骤.假设甲乙双方需要传递密钥,他们之间可以这么做: 甲首选选择一个素数p,例如509,底数g,任选,例如5,随机数a,例如123,然后计算A=g^a mod p,结果是21 ...
- dh算法 理论依据_DH算法原理
DH 算法原理 DH 是 Diffie-Hellman 的首字母缩写, 是 Whitefield 与 Martin Hellman 在 1976 年提出了一个的密钥交换协议.我个人倾向于称 DH 算法 ...
- 非对称加密算法-DH算法
一.概述 1.与对称加密算法的主要差别在于,加密和解密的密钥不相同,一个公开(公钥),一个保密(私钥).主要解决了对称加密算法密钥分配管理的问题,提高了算法安全性. 2.非对称加密算法的加密.解密的效 ...
- 算法总结---最常用的五大算法(算法题思路)
算法总结---最常用的五大算法(算法题思路) 一.总结 一句话总结: [明确所求:dijkstra是求点到点的距离,辅助数组就是源点到目标点的数组] [最简实例分析:比如思考dijkstra:假设先只 ...
最新文章
- 剑灵选区界面一直正在连接服务器,如何选择服务器 选择困难症的指南
- Qt学习一门:直接使用QT具
- servlet和webservice+WEBservice 的本质。
- java 文件 迭代_C迭代文件和目录
- python持久层框架_SQLAlchemy
- 明年1月发布!三星Galaxy S21系列爆料:首发骁龙875旗舰芯片
- 【Machine Learning 三】线性代数回顾:矩阵,矩阵运算,向量,转置
- 超强进程结束命令NTSD
- Pascal voc 数据集下载网址
- 串口通信基本接线方法
- PKG安装包的管理与文件格式分析
- correl函数相关系数大小意义_EXCEL中的相关系数能说明什么?
- PDFium使用分享
- 简述RAKsmart香港服务器的的优势
- 均值回归,逆市中的投资机会
- 关于JavaScript的一些使用心得
- 第十一届蓝桥杯(国赛) 阶乘约数C语言代码
- 8.0钓鱼宏命令插件 使用方法
- webpack打包时提示Invalid configuration object错误
- java 编译器工作原理
热门文章
- 论CRM免费软件的弊端
- 关于力控无法插入图片
- 服务器桌面监控,GitHub - 373137461/wallpaper_monitor: 适用于 Wallpaper Engine 等桌面壁纸软件的服务器状态监控软件,使用 PHP 开发...
- 吉吉拍——线上线下购物的数字化抢拍平台
- HC-05 蓝牙 2.0 串口模块
- 如何root安卓手机_安卓手机如何一键提升手机性能?用黑阈
- 分享12张企业数据中台架构图
- Hilbert 变换提取信号特征的 Python 实现
- wordpress大前端主题DUX7.1免授权
- 系统开发系列 之MyEclipse创建WebService详细教程和调用教程(spring框架+maven+CXF框架)