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

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

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

密钥的管理和分配是个难题,尤其是生成一个动态密钥更难,而密钥协商算法就可以解决密钥分配、存储、传输等问题。

在网络通信中,为了加密解密数据,可以采用动态密钥,也叫作会话密钥,这个密钥有以下一些特点:

◎会话密钥的作用就是为了加密解密通信数据
◎在加密解密通信数据之前,客户端和服务器端需要协商出会话密钥
◎会话密钥的意思就是该密钥不用存储,一旦客户端和服务器端的连接关闭,该密钥就会消失

【RSA密钥协商算法】

◎客户端初始化连接服务器端,服务器发送RSA密钥对的公钥给客户端。

◎客户端生成一个随机值,这个值必须是随机的

◎客户端使用服务器RSA密钥对的公钥加密会话密钥,并发送给服务器端,由于攻击者没有服务器的私钥,所以无法解密会话密钥。

◎服务器端用它的私钥解密出会话密钥。

◎至此双方完成连接,接下来服务器端和客户端可以使用对称加密算法和会话密钥加密解密数据。

RSA密钥协商算法有几个优点:

◎每次连接阶段的会话密钥是不同的,无须存储到设备中,连接关闭后会话密钥就会消失。

◎每次连接中的会话密钥是不同的

◎虽然RSA运算很慢,但由于会话密钥长度相对很小,计算的是数据量并不大,所以性能消耗相对可控。

HTTPS本身也是借鉴了这个方案,只是在设计上更严谨。

RSA密钥协商算法也有缺点:

◎获取会话密钥过程其实并不能称为协商,完全是由客户端决定的,只能称为密钥传输。

◎最大的问题就是不能提供前向安全性。

相关文章:

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

《深入浅出HTTPS​​​​​​​​​​》读书笔记(22):密钥协商算法 密钥的管理和分配是个难题,尤其是生成一个动态密钥更难,而密钥协商算法就可以解决密钥分配、存储、传输等问题。 在网络通信中,为了加密…...

kubernetes学习-Service

kubernetes学习-Service 1. Service说明2. 功能3.Service类型3.1 NodePort3.1.1 创建web-service.yaml3.1.2 创建web-pod.yaml3.1.3 部署3.1.4 验证 3.2 ClusterIP3.2.1 创建web-clusterIp-service.yaml3.2.2 创建web-clusterIp-pod.yaml3.2.3 部署3.2.4 验证 3.3 LoadBalancer…...

Springcloud项目-前后端联调(一)

项目采用SpringCloud整体构建,nacos作为注册中心,Mysql和Redis进行数据存储,整体项目类似于平时使用的出行APP,idea2023编写后端,vscode编写前端 后端代码先前已经编写完毕 这部分功能主要是通过前端输入出发地和目的地之后调用…...

洛谷P1525 [NOIP2010 提高组] 关押罪犯(种子并查集基础)

题目链接:P1525 [NOIP2010 提高组] 关押罪犯 - 洛谷 | 计算机科学教育新生态 题目难度:普及+/提高 题目描述: S 城现有两座监狱,一共关押着 N 名罪犯,编号分别为 1∼N,有m对罪犯,每对之间有仇恨值,问如何分配罪犯使得现 Z 市长要看到其中最大的矛盾值最小。 输入格…...

【算法刷题指南】模拟

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 🌈个人主页: 南桥几晴秋 🌈C专栏: 南桥谈C 🌈C语言专栏: C语言学习系…...

学习笔记078——Java Properties类使用详解

文章目录 概述常见方法写入读取遍历 概述 Properties 继承于 Hashtable。表示一个持久的属性集,属性列表以key-value的形式存在,key和value都是字符串。 Properties 类被许多Java类使用。例如,在获取环境变量时它就作为System.getPropertie…...

若依使用 Undertow 替代 Tomcat 容器

文章目录 需求提出应用场景解决思路注意事项完整代码第一步:在 ruoyi-framework/pom.xml 文件中进行依赖配置第二步:修改 application.yml 配置文件第三步:修改文件上传工具类 FileUploadUtils.java 运行结果 需求提出 在开发若依框架的前后…...

多输入多输出 | Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测

多输入多输出 | Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测预测效果基本介绍模型背景程序设计参考资料 预测效果 基本介绍 Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入…...

Elasticsearch:基础概念

一、什么是Elasticsearch Elasticsearch是基于 Apache Lucene 构建的分布式搜索和分析引擎、可扩展数据存储和矢量数据库。它针对生产规模工作负载的速度和相关性进行了优化。使用 Elasticsearch 可以近乎实时地搜索、索引、存储和分析各种形状和大小的数据。Elasticsearch 是…...

Spring MVC的@ResponseBody与@RequestBody

ResponseBody注解用于将Controller的方法返回的对象,通过springmvc提供的HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给客户端。 RequestBody注解用于读取http请求的内容(字符串),通过springmv…...

智能商业分析 Quick BI

Quick BI 是阿里云提供的一款智能商业分析(BI)工具,旨在帮助企业快速获取业务洞察、优化决策过程、提升数据分析效率。通过强大的数据可视化和分析功能,Quick BI 能够帮助用户轻松连接多种数据源、创建多维度的报表和仪表盘&#…...

LUA基础语法

目录 变量篇 算数运算符 条件分支语句与循环语句 函数 表 Table 全局变量与本地变量 协程 元表 面向对象(封装,继承,多态) 常用自带库 垃圾回收 变量篇 print("hello") print("lua") --注释 --[[…...

SpringBoot的pom.xml文件中,scope标签有几种配置?

1.compile(默认) 含义:表示该依赖在项目的所有阶段(编译、测试、运行)都需要。 当你依赖一个库,并且这个库是你项目的核心部分,比如 Spring Boot 的spring - boot - starter - web&#xff0c…...

Leetcode729: 我的日程安排表 I

题目描述: 实现一个 MyCalendar 类来存放你的日程安排。如果要添加的日程安排不会造成 重复预订 ,则可以存储这个新的日程安排。 当两个日程安排有一些时间上的交叉时(例如两个日程安排都在同一时间内),就会产生 重复…...

青少年编程与数学 02-006 前端开发框架VUE 02课题、创建工程

青少年编程与数学 02-006 前端开发框架VUE 02课题、创建工程 一、开发环境(一)WebStorm安装WebStorm配置WebStorm安装中文语言包安装 Translation插件 (二)Node.jsWindows系统安装Node.jsLinux系统安装Node.jsNode.js与Vue.js的关…...

Redis的生态系统和社区支持

Redis的生态系统和社区支持 1. Redis 生态系统 1.1 Redis核心 Redis 是一个高性能的内存存储系统,支持丰富的数据结构(如字符串、列表、集合、哈希和有序集合)。它的核心提供了: 高性能数据存储:单线程模型支持每秒数百万级别的操作。多种数据结构:适用于多样化场景,如…...

Tomcat解析

架构图 核心功能 Tomcat是Apache开源的轻量级Java ServletServlet容器,其中一个Server(Tomcat实例)可以管理多个Service(服务),一个Service包含多个Connector和一个Engine,负责管理请求到应用的…...

UML之组合与聚合

关联和链接关系在很多情况下是对称的,即被关联的两个类都有以自己为源端对方为目标端的角色存在,而且角色与源端类的属性是等价的,即在关联一端的关联端(角色)等价于另外一端的属性。例如,在下图中&#xf…...

数据结构理论篇(期末突击)

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: 学校课程突击 下面均是为了应付学校考试所用,如果有涉及部分知识点下面未说明,可以去我的数据结构专栏看看或者自行在…...

《一文读懂PyTorch核心模块:开启深度学习之旅》

《一文读懂PyTorch核心模块:开启深度学习之旅》 一、PyTorch 入门:深度学习的得力助手二、核心模块概览:构建深度学习大厦的基石三、torch:基础功能担当(一)张量操作:多维数组的神奇变换(二)自动微分:梯度求解的幕后英雄(三)设备管理:CPU 与 GPU 的高效调度四、to…...

开发者专属提示词库:提升AI协作效率的实战指南

1. 项目概述:一个为开发者量身定制的提示词宝库如果你是一名开发者,无论是前端、后端、运维还是算法工程师,我相信你都或多或少地接触过像 ChatGPT 这类大型语言模型。它们能写代码、解 Bug、解释概念,甚至帮你设计架构。但很多时…...

YimMenu终极配置指南:从零开始掌握GTA V高级菜单工具

YimMenu终极配置指南:从零开始掌握GTA V高级菜单工具 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMe…...

深度学习图像风格迁移:从Gatys算法到PyTorch工程实践

1. 项目概述:一个基于深度学习的图像风格迁移应用最近在GitHub上闲逛,发现了一个名为“aristoapp/DDalkkak”的项目。单看这个名字,可能有点摸不着头脑,但点进去一看,发现这是一个关于图像风格迁移(Image S…...

Godot游戏集成Discord状态:RPC插件原理与实战指南

1. 项目概述:在Godot引擎中点亮你的Discord状态 如果你是一名独立游戏开发者,或者正在用Godot引擎捣鼓一些有趣的个人项目,你可能会想让你的朋友或社区成员知道你现在正在“玩”什么。不是通过截图发到社交媒体,而是更实时、更优…...

自托管链接管理平台Linko:Go+React技术栈部署与核心功能解析

1. 项目概述与核心价值最近在折腾一个挺有意思的开源项目,叫monsterxx03/linko。乍一看这个名字,可能有点摸不着头脑,但如果你经常需要管理一堆链接、书签,或者在做内容聚合、个人知识库,那这个工具很可能就是你一直在…...

如何让Photoshop图层批量导出速度提升3倍?这个开源脚本做到了!

如何让Photoshop图层批量导出速度提升3倍?这个开源脚本做到了! 【免费下载链接】Photoshop-Export-Layers-to-Files-Fast This script allows you to export your layers as individual files at a speed much faster than the built-in script from Ado…...

Carapace:统一跨Shell命令行补全的Go语言引擎

1. 项目概述:一个为Shell而生的全能补全引擎 如果你和我一样,每天有超过一半的工作时间是在终端里度过的,那你一定对命令行补全这件事又爱又恨。爱的是,一个恰到好处的补全能让你行云流水,效率倍增;恨的是…...

【模拟电路】Circuit JS:从零到一,构建你的首个交互式电路实验

1. 初识Circuit JS:你的虚拟电路实验室 第一次接触Circuit JS时,我正为一个简单的LED电路设计发愁。传统仿真软件要么安装复杂,要么收费昂贵,直到发现这个直接在浏览器里运行的免费工具。打开网页的瞬间,就像走进了中学…...

如何加入GEO从入门到精通知识星球?

很多人学了GEO理论,却不知道怎么落地——因为GEO不是靠手动摸索能高效完成的,它需要工具支撑每一个环节。GEO优化分三个核心环节,每个环节都有对应的工具。第一环节:问题挖掘用什么工具:GEO之家问题大师传统SEO靠关键词…...

基于Trinket M0与伺服电机的宠物激光护目镜DIY全攻略

1. 项目概述与核心思路给自家毛孩子做个赛博朋克风的万圣节装备,这个想法在我脑子里盘桓很久了。市面上那些宠物装饰要么千篇一律,要么就是简单的布料缝制,总感觉少了点“硬核”的趣味。直到我看到伺服电机和激光二极管这两个小玩意儿&#x…...