密码学_加密

目录

密码学

01 密码基础进制与计量

02 加解密基操 替换 移位 编码

编码

置换

移位

加解密强度

03 对称加密算法(私钥)

工作过程

缺陷

对称加密算法列举?

DES

DES算法架构

DES分组加密公式

DES中ECB-CBC两种加密方式

3DES

由于DES密钥太短,后来就有了3DES

缺点:3des很安全,加密效率不高,语言视频加密不适用

AES

非常大特点:扩展性

优点:替代3des ,加密效率高,合适语音视频

RC系列

用的比较广的RC4 流加密算法

轻量级算法

IDEA

软件实现的效率快des2倍

Blowfish

也是一个轻量级算法

国密算法

04 非对称加密算法(公钥)

公钥私钥一起用才能实现加解密功能

工作过程

公钥密码系统应用

RSA全能,DH交换,DSA只能签名。

DH

DH会话:解决前面这么把密钥给你问题

工作过程

RSA

慢(加密一般不用RSA)

其它公钥算法

05 数字签名(私钥签名)

06 数字证书与CA

作用:证明公钥是你的

07 哈希Hash与HMAC

哈希核对文件有没有被修改

HMAC(加盐)

在原文基础是加一个key

08 对称与非对称加密算法的完美融合

项目案例

09 密码学原理总结


密码学

01 密码基础进制与计量

ipv4 点分十进制  

ipv6 十六进制

最小单位 0101比特流

存储最小单位  字节

02 加解密基操 替换 移位 编码

加密 = 加密算法+密钥

置换=替换

移位=移位

编码

编码规则

128个字符 2^7 = 我们可以把7个二进制数编码成一个ASCII码的这样一个编码

64个字符 2^5 = 我们可以把7个二进制数编码成一个BASE64的这样一个编码

base64编码问题:歧义 太相近混淆去掉6个字符

base58编码

------------------------------------------------加解密基本思想------------------------------------

置换

置换=双方先约定(对照规则)    具有规律性容易破解

移位

移位=不改变内容改变顺序    具有规律性容易破解

现代密码学设计基本原理:算法公开   +     关注密钥解决安全性保密性。

加解密强度

常识上:密钥越短加解密越快

03 对称加密算法(私钥)

工作过程

缺陷

对称加密非常大的一个缺陷:怎么去把你的密钥告诉给对方? 防止窃听  10W个人呢?

对称加密算法列举?

DES

des=块加密算法     ——>1G  拆分成几块加密

密钥56位太短很容易被当今电脑破解

DES算法架构

置换=替换(A改成G)

交换=移位(打乱顺序ABC   CBA)

我们只需要知道

输入64位明文信息    块加密

中间运用到了置换和移位的操作  重复16轮

DES分组加密公式

左边32位

48位          (经过一个Expand函数扩展到)

密钥        +(经过一个S-Box函数移位)

32密文       (经过一个P-Box函数压缩32)

DES中ECB-CBC两种加密方式

EBC方式容易被攻击

统计学攻击(猜): 英文出现最多字母是E 汉语出现最多字母是的。我发送一堆信息统计密文出现最多的字母是x,就能知道x是E或者是的。 根据频率第二多的是什么统计就能分析出明文密文对应关系

尝试攻击(猜):我发送一堆东西,123  用此算法   得到M

                                                456 用此算法   得到N

                                                以后我看到M就知道密码是123

部分解密:解密其中某一个块。相同的块都知道了。

EBC方式安全一点

首先:加了个生成初始随机向量 IV ,我们的块+由这个生成随机的IV= 一个密文

安全?:由于这个随机值每次都不一样。

                             123(即使你是)(由于随机值是1)

                              M  (输出)

下次再加密

                             123                     (随机值是2)

                              N  (输出)

此时 统计学攻击  尝试攻击都没有用了

由于明文+随机向量IV=密文,又作为下次的随机向量。链式结构。

下次:上次密文+下一个明文=密文   #保障了加密的安全 现在用的是CBC   ECB几乎不用

DES是56位密钥,密钥太短不安全,要用的话得经常去修改密码,防止被暴力破解

DES的算法底层是比较安全的现在已经用了几十年了 只能够被暴力破解,if你要破解这个算法的话最少要进行2^55次方暴力破解次数(因为一共有2^56次方种密钥按照暴力破解运气有50%(相当于除以2)——>2^56 / 2 = 2^55

这个DES(CBC)算法本身是比较安全的,有比DES密钥更长的比如不对称加密算法中WEP108但这个算法本身有漏洞所以破解起来比DES56还要快。

所以DES算法肯定是安全的。

但是DES有一个问题。DES算法因为有一个密钥。我们要提供一个安全的信道给别人密钥。

困难:我有密钥,我加完密之后,怎么把密钥给你。

3DES

由于DES密钥太短,后来就有了3DES

密钥长度放大3倍

56x3=168位

缺点:3des很安全,加密效率不高,语言视频加密不适用

AES

1997发布用来替代DES的算法,DES56太短,随着计算机发展早期56不安全。开始寻找新的算法

为了解决3des的效率问题。

AES(高级加密算法),合适用户高速的网络并且适合在硬件上去实现加密。

非常大特点:扩展性

aes密钥是可以变的既可以是128(4倍)也可以是192(6倍)256位(8倍)(并且还能以32位区间去扩展:32的倍数)。我们的des56  3des168。

即使将来量子力学出现了,我的密码可以给你扩展成2^10  2^20....这样子计算机破解太困难了

作为替代3des加密技术,软硬件运行效率比较高。

优点:替代3des ,加密效率高,合适语音视频

aes用的非常多。要了解。特别是aes加密算法的应用。无线和语音视频加密。

RC系列

后来又有了RC系列

用的比较广的RC4 流加密算法

它不是基于块的,是基于比特流的。

des  1G分块  64   64   64   64

rc     1G基于流  010101整个加密

无线里面WEP    WPA认证都是用的RC4  WPA2-AES

轻量级算法

RC算法对硬件的要求特别低,相当于是一个轻量级加密算法,出现时间晚,运行速度快des

#速度快,对硬件要求低(物联网:芯片内存CPU耗电比较低合适这种轻量级加密算法)

IDEA

用的比较少,听的比较少。

分组长度也是64   64   64  64

密钥长度128

软件实现的效率快des2倍

Blowfish

也是一个轻量级算法

合适小芯片这类空间小的

特别是在以后互联网普及之后,前端一些传感器一些很小的嵌入式芯片空间内存电量比较少更合适

这种轻量级加密算法。

需要的空间不到5kb

des  aes加密算法比较耗内存。更合适在电脑手机上去跑。不合适在轻量级终端去跑。

国密算法

国内加密算法

SM1  SM2(这些加密的产品不允许被出口)

04 非对称加密算法(公钥)

私钥加密公钥解,公钥加密私钥解

公钥私钥一起用才能实现加解密功能

工作过程

我:用你的公钥加密    你:私钥解密

应用:用户私钥“数字签名”,我确定是不是他签的“用他的公钥去解一下”能解开就是他签的。

单向过程

私钥可以推出公钥,公钥不能推回私钥

公钥密码系统应用

RSA全能,DH交换,DSA只能签名。

DH

DH会话:解决前面这么把密钥给你问题

不会被中间人截获,或者截获了也看不懂。

工作过程

分成两步   

第一步(上):算法生成一对密钥    4个密钥。把公钥发给对方 私钥自己保存

第二步(下):自己私钥 对方发过来的公钥   生成一个key

底层数学保证两边key相同

这样Bob发送密文,Alice这边通过DH算法就能知道使用什么key。这样就实现了密钥交换

也就是通过交互公钥就实现了密钥的交换

底层数学:作用保证key相等

可行之处:在两端产生相同的密钥, 外人是抓不到的

RSA

使用非常多

慢(加密一般不用RSA)

主要用于:数字签名和密钥交换  (加密散列、密钥)

私钥都存在本地的话 没有通过网络传送  过程安全

公钥加密密文

私钥加密数字签名(可以理解为  证明私人签名  私钥)

密码学的最底层都是数学问题

其它公钥算法

ECC比特币加密算法就是这个

05 数字签名(私钥签名)

底层还是基于公钥密码学算法

认证:对方私钥加密    对方公钥解密成功 则证明是对方发的

抗抵赖:用你公钥解开,肯定用你私钥加密的。你发过这个消息不能否认。

数字签名类比RSA这个原理

数字签名

哈希算法是无论明文多大都能生成定长的摘要  对这个摘要进行签名(密文加本人签名一并发送)

核心:你私钥签名,你公钥解开签名    证明就是你发的。

为什么用哈希对摘要签名? 不对明文签名?   明文太大非常慢

这个图其实有点问题,明文加密用的不是对方公钥(用的不是非对称加密算法)(用的是对称加密算法key),真实项目是对称非对称一起来用。

06 数字证书与CA

问题:确定是对方的公钥?假如发过来公钥是冒充的客户。

作用:证明公钥是你的

怎么证明你是你

权威机构颁发一个证书   CA         #私钥签名

公安局颁发一个证书      身份证   #公安局印章

数字证书格式

07 哈希Hash与HMAC

什么是哈希? 就是将一段数据转化成一段定长的数据

不可逆性(单向): 1比特  ----> 128  但不可能128 ——>1比特

无碰撞性 :哈希值几乎唯一

雪崩效应:123明文改一个 哈希后全部变没有规律可言

应用:下载软件。验证哈希值  软件完整性

           密码保存。哈希后保存在系统中(MD5)

单向,不能通过哈希值推出密码。

彩虹表  既MD5数据库也就是MD5破解网站(其实就是123哈希后记住生成一堆常见密码对照表形成数据库 猜出来的)  而不是通过逆向算法找出来的

存哈希密码也有一定风险,密码强度不够高还是彩虹得到。

怎么复杂一点: 创建时间  密码   一起哈希存

哈希核对文件有没有被修改

HMAC(加盐)

hmac=盐+哈希 类比

在原文基础是加一个key

也就是不是纯粹的哈希  而是在哈希前面加一个key

123+X 生成一个HMAC

为什么两边不用123哈希验证? 假如我在中间截获哈希码(拿去彩虹表攻击)#也就是网站破解 

#碰撞破解

密码+加一个随机数哈希的话    没有这个随机数算不出来。

哈希hash和hmac一定要理解非常非常重要

08 对称与非对称加密算法的完美融合

对称加密算法有几个问题    密钥怎么安全传递对端(分发),10W人怎么做密钥存储管理,对称加密算法不支持数字签名。

对称加密算法缺点   加密速度太慢

项目案例

发送方   3步操作

1   明文哈希摘要签名

2  明文/签名/公钥key(或者数字签名)/    大数据打包后随机数密钥KEY加密

3  KEY加密传输          #过程安全私钥是存人家本地的

数字证书存的就是公钥,私钥是签名。

接收方  3步操作

1

2

3

09 密码学原理总结

私钥不需要在网络上传输。传输的是公钥。

验证对方发的  数字签名

验证篡改   比对哈希

可以理解为,签名就是一个加密的过程 。也密钥问题

验证签名就是解密

数字签名引发一个非常重要的概念  证书  CA

怎么证明公钥是你的   数字证书

PKI公钥管理体现  生成  颁发等等

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

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

相关文章

轻量级RTSP服务模块:跨平台低延迟嵌入即用的流媒体引擎

在音视频流媒体系统中,RTSP(Real-Time Streaming Protocol)服务模块通常扮演着“视频分发中心”的角色,它将编码后的音视频内容转为标准的流媒体格式,供客户端(播放器、云端平台、AI模块等)拉流…

Nginx发布Vue(ElementPlus),与.NETCore对接(腾讯云)

案例资料链接:https://download.csdn.net/download/ly1h1/90745660 1.逻辑说明 1.1 逻辑示意图 # 前端请求处理逻辑图浏览器请求流程: 1. 浏览器发起请求├─ 开发环境(DEV)│ ├─ 请求URL: http://192.168.0.102:3000/api/xxx│ └─ 被Vite代理处理└─ 生产…

解析机器人 2.0.2 | 支持超过50种短视频平台的链接解析,无水印提取,多功能下载工具

解析机器人是一款功能强大的工具软件,登录即可解锁会员特权。它支持超过50种短视频平台的链接解析,包括抖音、快手、西瓜、bilibili等,并能实现无水印提取。此外,还提供P2P下载、磁力链等多种下载方式,确保用户能够快速…

C++ - 数据容器之 forward_list(创建与初始化、元素访问、容量判断、元素遍历、添加元素、删除元素)

一、创建与初始化 引入 <forward_list> 并使用 std 命名空间 #include <forward_list>using namespace std;创建一个空 forward_list forward_list<int> fl;创建一个包含 5 个元素&#xff0c;每个元素初始化为 0 的 forward_list forward_list<int&g…

Python爬虫实战:获取企信网指定公司基本工商数据并分析,为客户选择公司做参考

一、引言 在商业决策、市场调研等众多领域,企业的基本工商信息是至关重要的参考依据。企信网作为权威的企业信息查询平台,汇聚了海量企业的详细信息。借助 Python 的爬虫技术,能够自动从企信网获取指定公司的工商信息,再运用数据分析和机器学习方法对这些信息进行深入挖掘…

STM32部分:2-1、STM32CubeMX介绍

飞书文档https://x509p6c8to.feishu.cn/wiki/BTv4wW3O7ita1dkQGkrcBb9rnXg 资料手册 英文手册 https://www.stmcu.com.cn/Designresource/detail/user_manual/711316 中文手册 https://www.stmcu.com.cn/Designresource/detail/localization_document/710583 界面说明 首…

SVM实战:从理论到鸢尾花数据集的分类可视化

SVM实战&#xff1a;从理论到鸢尾花数据集的分类可视化 在机器学习的广阔领域中&#xff0c;支持向量机&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;作为一种经典且强大的分类算法&#xff0c;备受瞩目。它凭借独特的思想和卓越的性能&#xff0c;在模式识…

陶瓷陶器缺陷检测VOC+YOLO格式938张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;938 标注数量(xml文件个数)&#xff1a;938 标注数量(txt文件个数)&#xff1a;938 标注…

通过Docker部署Prometheus + Grafana搭建监控平台【超详细版】

文章目录 前言一、Prometheus、Grafana1.1 Prometheus简介1.2 Grafana简介1.3 Prometheus的核心组件1.4 Prometheus优点1.5 Prometheus缺点 二、部署Docker三、主节点部署PrometheusGrafana3.1 部署Prometheus3.2 防火墙开放端口3.3 访问服务3.4 安装Grafana3.5 防火墙开放端口…

华为云Flexus+DeepSeek征文|DeepSeek-V3商用服务开通教程

目录 DeepSeek-V3/R1商用服务开通使用感受 DeepSeek-V3/R1商用服务开通 1、首先需要访问ModelArts Studio_MaaS_大模型即服务_华为云 2、在网站右上角登陆自己的华为云账号&#xff0c;如果没有华为云账号的话&#xff0c;则需要自己先注册一个。 3、接着点击ModelArts Stu…

ubuntu20.04修改默认网卡名称为eth*

在Ubuntu 20.04.6中&#xff0c;遵循可预测网络接口设备命名规则&#xff0c;网卡名称默认可能是以"enp*"、"ens*"等开头的格式&#xff0c;但是实际使用过程中&#xff0c;某些应用只能读取eth*的网卡&#xff0c;需要修改。 查看网卡名称 ip link show …

linux下抓包工具--tcpdump介绍

文章目录 1. 前言2. 命令介绍3. 常见选项3.1. 接口与基本控制3.2 输出控制3.3 文件操作3.4 高级调试 4. 过滤表达式4.1 协议类型4.2 方向与地址4.3 逻辑运算符 5. 典型使用场景5.1 网络故障排查5.2 安全分析与入侵检测5.3 性能分析与优化 linux下抓包工具--tcpdump介绍 1. 前言…

AI大模型-RAG到底能做些什么?

RAG常见的应用场景&#xff0c;有以下几个方面&#xff1a; 1.智能客服系统&#xff1a;比如电商领域&#xff0c;对客户提出的常见问题&#xff0c;进行自动回复。减少人力成本。 2.人力资源管理&#xff1a;一个新的员工&#xff0c;入职一家大型公司&#xff0c;公司中有各…

C++ unordered_set unordered_map

上篇文章我们讲解了哈希表的实现&#xff0c;这节尝试使用哈希表来封装unordered_set/map 1. unordered_set/map的框架 封装的过程实际上与set/map类似&#xff0c;在unordered_set/map层传递一个仿函数&#xff0c;用于取出key值 由于我们平常使用的都是unordered_set/map&…

REST API、FastAPI与Flask API的对比分析

以下是关于REST API、FastAPI与Flask API的对比分析&#xff0c;涵盖架构设计、性能表现、开发效率等核心维度&#xff1a; 一、核心定位与架构差异 REST API 本质&#xff1a;一种基于HTTP协议的架构风格&#xff0c;强调资源化操作&#xff08;通过URI定位资源&#xff09;、…

实战交易策略 篇二十二:情绪流龙头交易策略

文章目录 系列文章理论基础股市的本质资金与情绪题材龙头股龙头战法实战技法情绪流技术分析择时实操情绪流龙头战法要诀六大步骤九大术法买卖点量化标准系列文章 实战交易策略 篇一:奥利弗瓦莱士短线交易策略 实战交易策略 篇二:杰西利弗莫尔股票大作手操盘术策略 实战交易策…

用VNA进行天线阻抗匹配的实例大图

比如我这天线&#xff0c;在7Mhz时不谐振&#xff0c;我进行匹配 天线的阻抗很高&#xff0c;大约是在500-1400欧&#xff0c;而等效电容电感很小。 所以我考虑使用阻抗变压器降低阻抗。 1。测试天线阻抗&#xff0c;电阻相当高&#xff0c;等效电容很小。 2。通过磁环匹配到…

一个读写excel的简单程序(golang)

最近总有一些临时统计的需求&#xff0c;比如其他团队生产的一批数据&#xff0c;需要确认这批数据是否入到数仓&#xff0c;提供的列表就是一个excel&#xff0c;我们就需要读取excel中的所有数据&#xff0c;之后查询数仓数据库确认这批数据是否存在&#xff0c;并分别将存在…

【AI面试准备】AI误判案例知识库优化方案

面试题&#xff1a;建立内部知识库&#xff1a;收集AI误判案例训练领域专属模型。 在回答关于“建立内部知识库收集AI误判案例训练领域专属模型”的面试问题时&#xff0c;建议从以下结构化框架展开&#xff0c;既能体现专业性&#xff0c;又能展现解决问题的系统性和实际落地…

Ocelot\Consul\.NetCore的微服务应用案例

案例资料链接&#xff1a;https://download.csdn.net/download/ly1h1/90733765 1.效果 实现两个微服务ServerAPI1和ServerAPI2的负载均衡以及高可用。具体原理&#xff0c;看以下示意图。 2.部署条件 1、腾讯云的轻量化服务器 2、WindowServer2016 3、.NETCore7.0 4、Negut …