密码学_加密

目录

密码学

[01 密码基础进制与计量](#01 密码基础进制与计量)

[02 加解密基操 替换 移位 编码](#02 加解密基操 替换 移位 编码)

编码

置换

移位

加解密强度

[03 对称加密算法(私钥)](#03 对称加密算法(私钥))

工作过程

缺陷

对称加密算法列举?

DES

DES算法架构

DES分组加密公式

DES中ECB-CBC两种加密方式

3DES

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

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

AES

非常大特点:扩展性

[优点:替代3des ,加密效率高,合适语音视频](#优点:替代3des ,加密效率高,合适语音视频)

RC系列

[用的比较广的RC4 流加密算法](#用的比较广的RC4 流加密算法)

轻量级算法

IDEA

软件实现的效率快des2倍

Blowfish

也是一个轻量级算法

国密算法

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

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

工作过程

公钥密码系统应用

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

DH

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

工作过程

RSA

慢(加密一般不用RSA)

其它公钥算法

[05 数字签名(私钥签名)](#05 数字签名(私钥签名))

[06 数字证书与CA](#06 数字证书与CA)

作用:证明公钥是你的

[07 哈希Hash与HMAC](#07 哈希Hash与HMAC)

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

HMAC(加盐)

在原文基础是加一个key

[08 对称与非对称加密算法的完美融合](#08 对称与非对称加密算法的完美融合)

项目案例

[09 密码学原理总结](#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公钥管理体现 生成 颁发等等

相关推荐
胡耀超14 小时前
哈希函数详解(SHA-2系列、SHA-3系列、SM3国密)案例:构建简单的区块链——密码学基础
区块链·密码学·哈希算法·数据安全·sha·sm3
明月看潮生14 小时前
青少年编程与数学 02-018 C++数据结构与算法 24课题、密码学算法
c++·算法·青少年编程·密码学·编程与数学
胡耀超2 天前
对比表格:数字签名方案、密钥交换协议、密码学协议、后量子密码学——密码学基础
密码学·数据安全·数字签名·秘钥交换·密码学协议·后量子密码学
倒霉男孩3 天前
区块链密码学核心
区块链·密码学
胡耀超4 天前
非对称加密算法(RSA、ECC、SM2)——密码学基础
密码学·rsa·sm2·ecc·分类分级
爱思德学术4 天前
IEEE会议:第十届网络安全与信息工程国际会议(ICCSIE 2025)
网络安全·密码学·信息与通信
apcipot_rain6 天前
【密码学——基础理论与应用】李子臣编著 第七章 公钥密码 课后习题
密码学
Blossom.1187 天前
量子网络:构建未来通信的超高速“高速公路”
网络·opencv·算法·安全·机器学习·密码学·量子计算
apcipot_rain8 天前
【应用密码学】实验二 分组密码(2)
密码学