【学习笔记】SSL证书之混合加密(Hybrid Encryption)与签名(Signatures)

news2024/12/29 10:39:24

1、非对称密钥对可以用来进行加密(Confidentiality保密性)

        举个栗子,现在有2个人,Pam和Jim,两人之间需要通过非对称密钥对来给另一方发送数据。Pam通过某种途径将公钥分享给Jim,两人都各自保存着自己的私钥而别人获取不到他们的私钥(要知道的是私钥和公钥是匹配的,即密钥对)。

        我们将介绍在加密过程中,公钥和私钥是如何使用的。

  • Jim想要发送一段秘密信息给Pam
  • Jim需要做的是用Pam给的公钥来加密信息
  • 只有与公钥相匹配的私钥才能进行解密并提取明文(这时世界上能解密这段信息的只有Pam的私钥,因为私钥不共享给别人)

        以上,非对称密钥就提供了数据的保密性(Confidentiality)

2、公钥和私钥还可以用与签名(Signatures)

        还是Pam和Jim,假设Pam不介意别人能看到信息(即care Confidentiality)

  • 但是Pam想要确保是她发送的信息(Jim能确定这是Pam发送的)
  • Pam能做的是,用她自己的私钥来加密该信息(现在能解密这段信息的只有Pam的公钥,Jim有相同的公钥,需要注意的是,别人也可能获得这个公钥,因为公钥不是私有的)
  • 被公钥加密的信息被在线传输给Jim,如果Jim能够成功地用Pam的公钥解密信息,那么就证明的2件事:
    • Jim知道一定是Pam一定发送了该信息(Authentication)
    • Jim知道信息在传输时没有被修改(Integrity)。如果其他人从传输中截获信息,并修改了其中的内容,那么当Jim尝试用Pam的公钥解密信息时,Jim会得到混乱的信息。

        如果Jim能成功地用Pam的公钥解密信息,那我们就知道从Pam用自己的私钥加密信息时,该信息就没有被修改过。因而,我们可以用非对称密钥对来创建签名(Signature),它们为我们的Signatures提供了Authentication和Integrity。

        以上内容可知,非对称密钥对能够为我们提供加密(Encryption)和签名(Signatures),但在实际生活中,并不是这么简单。

        我们之前提到过非对称加密存在一定的局限性,例如:不能用于批量数据(更慢、更吃CPU),只能用于有限数据。

        取而代之,批量数据应该使用对称加密(Symmetric Encryption)来加密数据,然而对称加密也有它的问题,我们需要让它更安全。

        因此,我们为什么不用非对称密钥来分享对称密钥呢?(这就是SSL/TLS实际做的事)

3、通过非对称密钥来分享对称密钥

  • Pam随机生成了一个对称密钥(该密钥是一连串的1或0)
  • Pam用Jim的公钥来加密对称密钥(世界上能将该加密后的对称密钥解密到原先的状态的,就是Jim独有的私钥),Pam能它安全地进行在线传输。
  • Jim用自己的私钥来解密Pam发送过来的信息,并提取得到初始的对称密钥

        现在双方就能够用安全的方式来建立完全相同的对称密钥

  • 批量数据现在就能够用对称密钥进行加密
  • 现在Pam想要给Jim发送信息,这时她会用她的对称密钥来加密该信息(世界上能够解密该信息的只有相同的用于加密的对称密钥)
  • Jim用相同的对称密钥来进行解密并提取其中的内容

        这可以用于对任意数量的数据进行任意方向的操作。Jim也可以用加密后的对称密钥来安全地给Pam传输信息。现在双方都有了完全相同的对称密钥,他们可以用该对称密钥加密他们想加密的数据。

        以上所讨论的就是Hybrid Encryption(混合加密)

4、混合加密(Hybrid Encryption)

        定义:同时使用非对称加密和对称加密来加密信息

  • 非对称加密用来促进密钥交换
  • 有了该密钥就可以用对称加密来加密批量数据

        现在,我们重温下非对称加密和对称加密的优缺点:        

  • 非对称加密
    • 劣势:更慢 - 需要更大的密钥长度;密文扩展
    • 优势:更安全 - 私钥不会被共享
  • 对称加密
    • 优势:更快 - 低CPU占用;密文和明文大小相同
    • 劣势:不那么安全 - 密钥必须被共享

        混合加密结合了2个加密方式的优点,这种方式就是任何安全通信协议所使用的,这也就是SSL/TLS保护批量数据传输的方式,也是IP设置保护批量数据传输的方式。

5、利用非对称密钥进行签名(Signatures)的过程

        前文提到用私钥加密签名来获得数据完整性(Integrity)和真实性(Authentication),但是用私钥加密整条信息似乎不太可能,因为,非对称密钥有其局限性。那么我们能否对信息固定且具有代表性的样本进行签名呢?

        之前提到过哈希算法(将任意长度的信息输入,产出原始信息的“指纹”的算法),签名就是用哈希来简化这一过程。

  • Pam计算出信息的哈希值,生成特定摘要(Digest)
  • Pam用自己的私钥加密生成的摘要
    • 这才是实际的签名
    • 该签名被添加到要发送的信息中

  • 另一侧,Jim用Pam的公钥对签名进行解密(这会得到Pam创建的摘要)

  • Jim计算出收到的信息的哈希值,如果得到的摘要和Pam发送的摘要相匹配,这就证明了2件事情:
    • 信息从Pam签名开始就没有被更改过(如果信息被修改过,Jim就会得到不同的摘要),这就提供了数据的完整性(Integrity)
    • 只有Pam才可能创建该签名(该签名是Pam用自己的私钥加密摘要所形成),如果Jim能够用Pam的公钥进行解密,就证明了绝对是Pam的私钥签的名,因为世界上只有Pam自己拥有自己的密钥。这就为我们提供了数据的真实性(Authentication)

        因此,通过这种方式,用非对称密钥对生成签名,为签名的内容提供了完整性与真实性

        此外,还有许多东西可以被签名,例如:信息、证书、软件、邮件等等(you can sign everything)

混合加密:

  • 用非对称加密来安全地创建对称密钥
  • 对称密钥之后可用来对称加密来保护批量数据

签名:

  • 用发送方的私钥来加密一串数据的哈希值
  • 为被签名的东西提供数据完整性和真实性

参考文献

1、网站:Practical Networking.net:Practical TLS

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2105975.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法打卡 Day29(回溯算法)-复原 IP 地址 + 子集 + 子集 Ⅱ

文章目录 Leetcode 93-复原 IP 地址题目描述解题思路 Leetcode 78-子集题目描述解题思路 Leetcode 90-子集 Ⅱ题目描述解题思路 Leetcode 93-复原 IP 地址 题目描述 https://leetcode.cn/problems/restore-ip-addresses/description/ 解题思路 这是一道切割问题,…

【ShuQiHere】“初识人工智能:智能机器的基础入门”

1.1. 引言 (Introduction) 🧠🤖 人工智能(Artificial Intelligence, AI) 是计算机科学的一个分支,目标是让计算机或机器具备像人类一样的智能。自计算机发明以来,计算机执行各种任务的能力呈指数增长。随着…

思科IP访问控制列表2

#网络安全技术实现# #任务二标准访问控制列表的控制2# #1配置计算机的IP 地址、子网掩码和网关 #2配置Router-A的主机名称和接口IP地址 Router>enable Router#config t Router(config)#hostname Router-A Router-A(config)#int g0/0 Router-A(config-if)#ip add 192.1…

iKun主页 最新2.0版本 无需数据库 带页面音乐版本~

源码介绍 iKun主页 最新2.0版本 无需数据库 带页面音乐版本~ 无需数据库,没有后台 记事本修改里面的内容即可 效果预览 源码获取 iKun主页 最新2.0版本 无需数据库 带页面音乐版本~

Seataf分布式事务的使用

一、事务的四大特征(面试题) 原子性:一个事务是不可分割的,要不都做,要不都不做一致性:事务必须是使数据库从一个一致性变成另一个一致性状态隔离性:一个事务的执行不被其他事务干扰&#xff0…

比较.NET框架中的IEnumerable和IQueryable性能差异的核心原理

1. 前言&#xff1a; 思考下这两份代码在性能上有哪些差异&#xff0c;如果你能很清楚的区分&#xff0c;那么可以跳过本文的内容。如果你还比较模糊不清楚其中的原理&#xff0c;那么可以花个几分钟了解下。 示例一&#xff1a; IEnumerable<Order> orders GetOrder…

C语言 | Leetcode C语言题解之第386题字典序排数

题目&#xff1a; 题解&#xff1a; int* lexicalOrder(int n, int* returnSize){int *ret (int *)malloc(sizeof(int) * n);int number 1;for (int i 0; i < n; i) {ret[i] number;if (number * 10 < n) {number * 10;} else {while (number % 10 9 || number 1 …

日志系统前置知识

日志&#xff1a;程序运行过程中所记录的程序运行状态信息。通过这些信息&#xff0c;以便于程序员能够随时根据状态信息&#xff0c;对系统的运行状态进行分析。功能&#xff1a;能够让用户非常简便的进行日志的输出以及控制。 同步写日志 同步日志是指当输出日志时&#xff…

【Python百日进阶-Web开发-音频】Day707 - 时域处理 librosa.autocorrelate

文章目录 一、时域处理1.1 librosa.autocorrelate1.1.1 语法与参数1.1.2 例子1.1.2.1 计算完全自相关y1.1.2.2 计算长达 4 秒的起始强度自相关 一、时域处理 1.1 librosa.autocorrelate https://librosa.org/doc/latest/generated/librosa.autocorrelate.html 1.1.1 语法与参…

3. GIS后端工程师岗位职责、技术要求和常见面试题

本系列文章目录&#xff1a; 1. GIS开发工程师岗位职责、技术要求和常见面试题 2. GIS数据工程师岗位职责、技术要求和常见面试题 3. GIS后端工程师岗位职责、技术要求和常见面试题 4. GIS前端工程师岗位职责、技术要求和常见面试题 5. GIS工程师岗位职责、技术要求和常见面试…

828华为云征文|华为云Flexus X实例docker部署MinIO对象存储系统obs

828华为云征文&#xff5c;华为云Flexus X实例docker部署MinIO对象存储系统obs 华为云最近正在举办828 B2B企业节&#xff0c;Flexus X实例的促销力度非常大&#xff0c;特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求&#xff0c;一定…

【Linux网络编程八】实现最简单Http服务器(基于Tcp套接字)

基于TCP套接字实现一个最简单的Http服务器 Ⅰ.Http请求和响应格式1.请求格式2.响应格式3.http中请求格式中细节字段4.http中响应格式中细节字段 Ⅱ.域名ip与URLⅢ.web根目录Ⅳ.Http服务器是如何工作的&#xff1f;一.获取请求二.分析请求2.1反序列化2.2解析url 三.构建响应3.1构…

虚拟机的安装-详细教程

目录 新建虚拟机 选择典型 安装操作系统 选择CentOS7 64位版本 虚拟机存放位置 磁盘容量 完成 编辑虚拟机 修改内存大小 设置处理器个数 选择镜像 开启虚拟机 进入界面&#xff0c;回车 选择语言 安装类型 磁盘分区 开启网络 设置密码和用户 重启 接受许可…

鸿蒙(API 12 Beta6版)图形【使用Text模块实现文本显示】方舟2D图形服务

场景介绍 ohos.graphics.text模块提供了接口创建复杂的文本段落&#xff0c;包括多样的文本样式、段落样式、换行规则等&#xff0c;并最终将这些信息转换为能在屏幕上高效渲染的布局数据。 接口说明 ohos.graphics.text常用接口如下表所示。 接口名描述pushStyle(textStyl…

【算法】单词出现次数和位置统计

【算法】单词出现次数和位置统计 题目描述 编写一个程序&#xff0c;用于统计一个给定单词在一段文本中出现的次数以及第一次出现的位置。如果单词在文本中出现&#xff0c;则输出出现次数和第一次出现的位置&#xff08;位置从0开始计算&#xff09;。如果单词没有出现&…

我完成第一个AI项目的全过程记录——对IMDB电影评论的情感分析

前言 这是我用时两天完成的第一个AI项目。 我的代码和运行结果放在kaggle上面&#xff0c;地址&#xff1a; Sentiment Analysis of IMDB Movie Reviews (90%&#xff09; 我参考的原作者kaggle项目地址&#xff1a;Sentiment Analysis of IMDB Movie Reviews 我如何选择的这个…

InstantX团队新作!基于端到端训练的风格转换模型CSGO

由InstantX团队、南京理工大学、北京航空航天大学以及北京大学联合提出了一种基于端到端训练的风格转换模型 CSGO&#xff0c;它采用独立的特征注入明确地解耦内容和风格特征。统一的 CSGO 实现了图像驱动的风格转换、文本驱动的风格化合成和文本编辑驱动的风格化合成。大量实验…

Java的时间复杂度和空间复杂度和常见排序

目录 一丶时间复杂度 二丶空间复杂度 三丶Java常见排序 1. 冒泡排序&#xff08;Bubble Sort&#xff09; 2.插入排序&#xff08;Insertion Sort&#xff09; 3.希尔排序&#xff08;Shell Sort&#xff09; 4.选择排序&#xff08;Selection Sort&#xff09; 5.堆排序&am…

视频汇聚平台LntonAIServer视频质量诊断功能--偏色检测与噪声检测

随着视频监控技术的不断进步&#xff0c;视频质量成为了决定监控系统性能的关键因素之一。LntonAIServer新增的视频质量诊断功能&#xff0c;特别是偏色检测和噪声检测&#xff0c;进一步强化了视频监控系统的可靠性和实用性。下面我们将详细介绍这两项功能的技术细节、应用场景…

【Leetcode】1-5

1 两数之和 1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; 和为目标值 target 就是在找 target - nums[i] 利用 哈希表 查找只需要 O(1) class Solution {public int[] twoSum(int[] nums, int target) {HashMap<Integer, Integer> hm new HashMap<>();…