密码学基础-对称密码/公钥密码/混合密码系统 详解
密码学基础-对称密码/公钥密码
- 加解密说明
- 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,写的糊糊涂涂,晕晕乎乎。 是我呀… 记录下&#…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
