当前位置: 首页 > article >正文

《深入浅出HTTPS​​​​​​​​​​​​​​​​​》读书笔记(23):密钥协商算法(续)

《深入浅出HTTPS​​​​​​​​​​》读书笔记(23):密钥协商算法(续)

【DH密钥协商算法】

 Diffie-Hellman算法,简称DH算法。

而DH算法确切地说,实现的是密钥交换或者密钥协商,DH算法在进行密钥协商的时候,通信双方的任何一方无法独自计算出一个会话密钥,通信双方各自保留一部分关键信息,再将另外一部分信息告诉对方,双方有了全部信息才能共同计算出相同的会话密钥。

DH算法处理过程

◎通信双方的任何一方可以生成公共参数p和g,这两个数是公开的

◎客户端连接服务器端,服务器端将参数发送给客户端。

◎客户端根据公开参数生成一个随机数a,这个随机数是私钥,只有客户端知道,且不会进行发送,然后计算Yc = (g ^ a) mod p, Yc就是公钥,需要发送给服务器端。

◎服务器端根据公开参数生成一个随机数b,这个随机数是私钥。计算Ys = (g ^ b) mod p, Ys是公钥,需要发送给客户端。

◎客户端发送Yc数值给服务器端,服务器端计算Z = (Yc ^ b) mod p。

◎服务器端发送Ys数值给发送方,客户端计算Z = (Ys ^ a) mod p。

◎服务器端和客户端生成的Z就是会话密钥,协商完成。

只要私钥不发生泄露,攻击者即使有了Ys和Yc也不会计算出会话密钥。

【DH算法分类】

DH算法分为两种类型,分别是静态DH算法和临时DH算法。

1)静态DH算法(DH算法)

静态DH算法,p和g两个参数永远是固定的,而且服务器的公钥(Ys)也是固定的。静态DH算法的好处就是避免在初始化连接时服务器频繁生成参数p和g,因为该过程是非常消耗CPU运算的

2)临时DH算法(EDH算法)

在每次初始化连接的时候,服务器都会重新生成DH密钥对。


http://www.kler.cn/a/463882.html

相关文章:

  • Go语言性能优化-字符串格式化优化
  • CentOS — 目录管理
  • 设计心得——流程图和数据流图绘制
  • 等保测评和密评的相关性和区别
  • mask-R-cnn模型详解
  • 商用车自动驾驶,迎来大规模量产「临界点」?
  • ChatGLM2-6B模型推理流程和模型架构详解
  • SpringBoot_第二天
  • 机器学习中回归预测模型中常用四个评价指标MBE、MAE、RMSE、R2解释
  • 【从零开始入门unity游戏开发之——C#篇38】C#预处理器指令
  • locate() 在MySQL中的用法
  • 关于部署异常的处理问题
  • 网络渗透测试实验四:CTF实践
  • Spring Boot 嵌套事务详解及失效解决方案
  • leetcode hot 100 杨辉三角
  • python-leetcode-轮转数组
  • JVM实战—G1垃圾回收器的原理和调优
  • java下载文件流,不生成中间文件。
  • deepFM模型pytorch实现
  • Docker常用场景
  • ubuntu24.04配置IPV6
  • react中实现拖拽排序
  • CAD 精简多段线顶点——cad c# 二次开发
  • Pytorch_P1 Pytorch实现mnist手写数字识别
  • 自然语言处理:第八十三章 Prompt格式到底多重要?
  • IP5385为智能手机提供快充方案的30W到100W大功率电源管理芯片