密码学基础-对称密码/公钥密码/混合密码系统 详解
密码学基础-对称密码/公钥密码
- 加解密说明
- 1.加密解密必要因素
- 加密安全性说明
- 什么是对称密码
- 图示说明
- 对称密码详解
- 什么是DES?
- 举例说明
- 什么是3DES
- 什么是AES?
- 公钥密码
- 什么是RSA?
- 对称密钥和公钥密码优缺点对比
- 对称密码
- 对称密码算法总结
- 对称密码存在的问题?
- 公钥密码
- 公钥密码存在的问题:
- 混合密码系统
- 混合密码加密过程
- 混合密码解密过程
加解密说明
1.加密解密必要因素
1)一个加密/解密的过程,必须包含以下基本因素:
- 明文文件+加密算法+加密密钥=密文文件
- 密文文件+加密算法的逆运算+加密密钥=明文文件
2)依据密钥的使用方法,可以将密码分为两种:
- 对称密码:相同的密钥加解密,别称‘共享密钥密码
- 公钥密码:不同的密钥加解密,别称‘非对称密码’
- 混合密码系统,就是将这两种算法的优点提取出来,形成的一个密码算法。
说明:不管对称密码,还是公钥密钥,这两种算法都存在自己的优缺点,
加密安全性说明
1.完整性
为了确保数据包在传输过程中没有被恶意修改,可通过单向散列函数机制来实现完整性检查。
2.认证
基于消息认证码,能够实现认证 认数据包为真实的对等体设备所发送的数据包
3.数字签名
防止抵赖,通过签名证实确实是该设备发送的数据包
什么是对称密码
图示说明
对称密钥即使用相同的密钥进行加密和解密

对称密码详解
需要掌握的“对称密码’有以下几种
- DES
- 3DES
- AES
什么是DES?
1.DES是数据加密标准,IBM开发于1975年
2.将数据包划分为等长的64比特,从而进行加密的对称密码算法
1)块大小为64比特
2)密钥长度为64比特,实际长度为56比特,8位为校验位(奇偶校验位,用来校验密钥完整性的)
3.DES由于密钥长度原因已不再安全,因为密码长度太短,通过遍历就可以试出密码,以下是之前的一些破解的案例:
1)在1997年,96天破解密钥 明文
2)在1998年,41天破解密钥(98年第一次) 128比
3)在1998年,56小时破解密钥(98年第二次) 特
4)在1999年,22小时破解密钥
那么现在的话,破解是分钟级别的
4.DES仅作为系统学习的知识点,不再使用该算法进行加解密

举例说明
如图所示,假如一个数据包是128比特,那么DES加密时,会将数据包划分为等长的64比特进行加密,密钥长度为64比特,实际长度为56比特,8位为校验位,最后得到密文128比特
什么是3DES
1.基于DES密钥长度导致的安全问题,IBM在1999年创建了3DES
2.3DES密钥长度放大3倍,为 168bit (56*3)
3.说明
1)当3DES中加解密密钥全部相同,则3DES=DES,3DES兼容DES
-密钥长度为64比特,实际密钥长度为56比特
2)当3DES中有两把密钥不同,3DES=DES-EDE2
-密钥长度为128比特,实际密钥长度为112比特
3) 只有3DES中三把密钥全部不同时,3DES=3DES
4.3DES由于处理速度不高,较少用于新的用途

如图所示,3DES会做三个加密,每一次的密钥都不一样:加密、解密、加密,分别使用不同密钥,但是效率不高
什么是AES?
1.高级加密标准。NIST于2002年研发
2.将数据包划分为等长的128比特,从而进行加密的对称密码算法
- 1)块大小为128比特
- 2)密钥长度有三种:128、192、256比特
3.AES安全,快速,是现在主流的密码算法
说明:
密钥长度有三种:128、192、256比特,密钥长度越长,安全性越强,资源浪费越多
公钥密码
1.不同的密钥进行加密和解密
1)私钥
2)公钥
2.使用公钥/私钥加密,就必须使用私钥/公钥解密
3.需要掌握的“公钥密码’有以下几种:
1)DH
2) RSA

如图所示:
公钥密钥:会产生一对密钥
- 使用公钥加密,谁都可以拿到
- 私钥解密,保留在本地
用公钥加密数据包,只能用私钥解密
什么是RSA?
1.公共密钥加密系统,1979年由Rivest,Shamir,Adelman三人开发
2.支持密钥长度为1024、2048位甚至更长
3.如图,解释了为何RSA被称为“公共密钥加密系统”

对称密钥和公钥密码优缺点对比
对称密码
对称密码算法总结
- 优点:加解密速度极快
- 缺点:需要解决密钥共享问题!
对称密码存在的问题?
- 1.我们如何安全的将密钥传递给对方?
- 2.如果有绝对安全的传递方法,还需要加密吗?如果有绝对安全的方法,那使用安全的方法加密数据是不是就可以了,也不需要对称密码了。。。。

公钥密码
- 优点:解决了密钥共享的问题
- 缺点:处理速度远低于对称密码,这意味着公钥密码对大型文件的处理效率较低
公钥密码存在的问题:
- 如何证明你的“公钥”就是你的‘公钥’?(中间人攻击)
混合密码系统

混合密码加密过程
1.如图,为混合密码系统加密过程
2.中间的虚线将方框分成左右两个部分:
1)右边使用对称密码加密明文信息
2)左边使用接收者公钥加密会话密钥
会话密钥由伪随机数临时产生,用于加密对称密码
3)最后组合,就成了输出的密文
3.会话密钥是对称密码的密钥,同时也是公钥的明文

说明:
明文->使用对称密码加密
会话密钥->加密对称密码
接收者公钥->加密会话密钥
最终得到了三部分的加密包,发给接收者
其中会话密钥是使用伪随机函数产生了,这样每一次会话都会产生一个随机数,避免被破解
混合密码解密过程

解密过程:
使用接收者的私钥,先接触会话密钥,
再使用会话密钥解出对称密码,
根据对称密码最终解出明文
必须经过这三步
相关文章:
密码学基础-对称密码/公钥密码/混合密码系统 详解
密码学基础-对称密码/公钥密码 加解密说明1.加密解密必要因素加密安全性说明 什么是对称密码图示说明对称密码详解什么是DES?举例说明 什么是3DES什么是AES? 公钥密码什么是RSA? 对称密钥和公钥密码优缺点对比对称密码对称密码算法总结对称密码存在的问题? 公钥密码公钥密码…...
《装饰器模式(极简c++)》
本文章属于专栏- 概述 - 《设计模式(极简c版)》-CSDN博客 模式说明: 方案: 装饰类和派生类同根,然后装饰类中放一个派生类,以在接口不动的情况下增加功能优点: 可以灵活地扩展对象功能…...
Spring Boot 整合分布式搜索引擎 Elastic Search 实现 自动补全功能
文章目录 ⛄引言一、分词器⛅拼音分词器⚡自定义分词器 二、自动补全查询三、自动补全⌚业务需求⏰实现酒店搜索自动补全 四、效果图⛵小结 ⛄引言 本文参考黑马 分布式Elastic search Elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,…...
实现一个Google身份验证代替短信验证
最近才知道公司还在做国外的业务,要实现一个登陆辅助验证系统。咱们国内是用手机短信做验证,当然 这个google身份验证只是一个辅助验证登陆方式。看一下演示 看到了嘛。 手机下载一个谷歌身份验证器就可以 。 谷歌身份验证器,我本身是一个基…...
Spring框架与Spring Boot的区别和联系
引言 Spring框架和Spring Boot都是Java生态中最受欢迎的开源框架,它们各自扮演着不同的角色,帮助开发者构建高效的企业级应用。本教程将从零基础的角度出发,让你轻松理解这两者的区别和联系。 Spring框架简介 Spring框架,简称Spri…...
[OpenCV学习笔记]Qt+OpenCV实现图像灰度反转、对数变换和伽马变换
目录 1、介绍1.1 灰度反转1.2 图像对数变换1.3 图像伽马变换 2、效果图3、代码实现4、源码展示 1、介绍 1.1 灰度反转 灰度反转是一种线性变换,是将某个范围的灰度值映射到另一个范围内,一般是通过灰度的对调,突出想要查看的灰度区间。 S …...
【大数据】Flink学习笔记
文章目录 认识FlinkDocker安装Flink基本概念Flink的特点Flink 和 Spark Streaming 对比 基本使用WordCount实现依赖 批模式代码流模式代码网络流模式代码在web UI上提交代码创建项目[^1]编写代码配置打包在Web UI上提交 Flink 架构系统架构核心概念并行度算子链(Opeartor Chain…...
社交网络的未来:Facebook如何塑造数字社交的下一章
引言 社交网络已成为我们生活中不可或缺的一部分,而Facebook作为其领军者,一直在塑造着数字社交的未来。本文将深入探讨Facebook在未来如何塑造数字社交的下一章,并对社交网络的发展趋势进行展望和分析。 1. 引领虚拟社交的潮流 Facebook将…...
RabbitMQ 延时消息实现
1. 实现方式 1. 设置队列过期时间:延迟队列消息过期 死信队列,所有消息过期时间一致 2. 设置消息的过期时间:此种方式下有缺陷,MQ只会判断队列第一条消息是否过期,会导致消息的阻塞需要额外安装 rabbitmq_delayed_me…...
【Django】枚举类型数据
模型 在模型里主要增加两项内容: 枚举表字段增加choices class Snort(CoreModel):PAGE_TYPE_CHOICES [(1, 失陷主机检测), # 1是保存到数据库里的数据,失陷主机检测是显示在前端的(2, 远程漏洞攻击检测),(3, 可疑流量行为),(4, WEB检测),]page_type…...
java实现https连接总是要报no cipher suites in common
遇到“no cipher suites in common”这样的错误通常意味着客户端和服务器之间没有共同支持的加密套件(Cipher Suite)。这个问题可能由多个原因引起,包括但不限于SSL/TLS配置错误、Java安全策略限制、客户端或服务器不支持的加密算法等。解决这…...
[C++初阶] 爱上C++ : 与C++的第一次约会
🔥个人主页:guoguoqiang 🔥专栏:我与C的爱恋 本篇内容带大家浅浅的了解一下C中的命名空间。 在c中,名称(name)可以是符号常量、变量、函数、结构、枚举、类和对象等等。工程越大,名称…...
STM32技术打造:智能考勤打卡系统 | 刷卡式上下班签到自动化解决方案
文章目录 一、简易刷卡式打卡考勤系统(一)功能简介原理图设计程序设计 哔哩哔哩: https://www.bilibili.com/video/BV1NZ421Y79W/?spm_id_from333.999.0.0&vd_sourcee5082ef80535e952b2a4301746491be0 一、简易刷卡式打卡考勤系统 &…...
module ‘numpy‘ has no attribute ‘int‘
在 NumPy 中,如果遇到了错误提示 "module numpy has no attribute int",这通常意味着正在尝试以错误的方式使用 NumPy 的整数类型。从 NumPy 1.20 版本开始,numpy.int 已经不再是一个有效的属性,因为 NumPy 不再推荐使用…...
MFC(一)搭建空项目
安装MFC支持库 创建空白桌面程序 项目相关设置 复制以下代码 // mfc.h #pragma once #include <afxwin.h>class MyApp : public CWinApp { public:virtual BOOL InitInstance(); };class MyFrame : public CFrameWnd { public:MyFrame();// 消息映射机制DECLARE_…...
OKCC的API资源管理平台怎么用?
API资源管理平台,重点是“资源”管理平台,不是API接口管理平台。 天天讯通推出的API资源管理平台,类似昆石的VOS系统,区别是VOS是SIP资源管理系统,我们的API资源管理平台是API资源管理系统(AXB、AX、回拨AP…...
CentOS 7 安装python 3.7 需要必要的依赖。
在 CentOS 7 上部署 Python 3.7 可以通过源代码编译安装来实现。以下是大致的步骤: 安装必要的依赖: bashCopy Code sudo yum install gcc openssl-devel bzip2-devel libffi-devel 下载 Python 3.7 源代码并进行编译安装: bashCopy Code wg…...
美术馆设计方案优化布局与设施提升观众体验!
如今,美术馆不仅仅是作为展示艺术作品的平台,也是吸引公众参与和创造独特体验的数字艺术体验空间,因此许多传统美术馆在进行翻修改造时,都会更加注重用户体验,并在其中使用大量的多媒体互动,让参观者能够在…...
数据库基础原理
宏观 数据库的实现原理分为四个部分: 网络通信 网络协议 硬盘存储 内存分配 微观 硬盘存储 数据库是持久化的,而持久化如何实现的,我们不难想到磁盘可以持久化存储,所以数据库所有持久化的数据都是以文件形式存在磁盘中的…...
Pandas操作MultiIndex合并行列的Excel,写入读取以及写入多余行及Index列处理,插入行,修改某个单元格的值,多字段排序
Pandas操作MultiIndex合并行列的excel,写入读取以及写入多余行及Index列处理,多字段排序尽量保持原来的顺序 1. 效果图及问题2. 源码参考 今天是谁写Pandas的 复合索引MultiIndex,写的糊糊涂涂,晕晕乎乎。 是我呀… 记录下&#…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
