密码学基础概念

加密性

什么是加密?

1.对原有的明文数据,执行某种运算,得到密文数据。

2.密文数据对于未授权人员而言,在一定上程度上加大了解读的难度

3.加密功能用于实现机密性

什么是密钥?

1.如同持有保险柜钥匙才能打开保险柜一样。

2.执行加密或解密过程中,均需要"密钥"的参与

明文+算法+密钥=密文

什么是算法?

1.依据密钥的使用方法,可以将算法分为两种,包括对称加密算法,非对称加密算法。

什么是对称加密算法?

1.使用"同一把密钥"来执行加密和解密(明文加密密钥和密文解密密钥相同)

2.对称加密算法有 DES、3DES、AES

明文加密密钥 Huawei@123

密文解密密钥 Huawei@123

对称加密算法-DES

1.DES(数据加密标准),IBM开发于1975年。

2.将数据包划分为等长的64比特,从而进行加密的对称密码算法:

1)加密数据块大小为64比特

2)密钥长度为64比特,实际长度为56比特,剩下的8位用来校验

3.由于密钥长度太短问题,DES算法存在较大的风险。

对称加密算法 3DES

1.基于DES密钥长度导致的安全问题,IBM在1999年创建了3DES

2.3DES密钥长度放大3倍,达到168bi6

3.3DES处理速度不高

原始数据---key1(加密)---key2(解密)---key3(加密)---加密数据

加密数据---key3(解密)---key2(加密)---key1(解密)---原始数据

对称加密算法-AES

1.高级加密标准,用于真正替代DES算法

2.美国国家标准与技术研究院于2001年11月26日发布

3.将数据包划分为等长的128比特(DES的2倍),从而进行加密的对称算法

1)块大小为128比特

2)密钥长度有三种:128、192、256比特(密钥的长度越长越安全,消耗的资源也越多)

4.AES是现在主流的国家密码算法

中国国家商用密码算法-对称算法

1.兼容性不强,外国的厂商设备可能不支持

2.SM1,分组与密钥长度均为128位,不公开算法

3.SM4,分组与密钥长度均为128位,公开算法

4.SM7,分组与长度均为128位,不公开算法,常用于身份识别卡、电子门票等。

5.祖冲之算法

什么是分组密码?

1.每次只能处理特定长度的一块数据。

2.一块就是一个分组

3.分组的大小被称为分组长度

分组密码块加密的两种模式之一:ECB

1.电子密码本块加密方式

1)将一个数据包,分为多个64位的块

2)通过DES算法,用相应的密钥,加密对应的块

3)得到对应的密文

2.该加密模存在的问题:

1)相同的明文,相同的密钥和算法,得到相同的密文

2)块之间加解密是独立的,加解密的失败不会影响后续块的进行

分组密码块加密的两种模式之一:CBC

1.加密块链接方式

1)将一个数据包,分位多个64位的块

2)在发送的时候,附加一个明文IV初始化向量位(随机数)

3)利用初始化向量位,和第一个包做混淆

4)通过DES算法,用相应的密钥,加密对应的块

5)得出对应的密文

4)再利用得到的密文与第二个明文做混淆,以此类推

2.该加密模式的优点:

1)依靠初始化向量位的扰乱,相同的明文,得到不同的密文

2)块之间加密是联系的,加解密的失败会影响后续块的进行

对称加密算法的优缺点

1.优点:算法简单,加密速度快,效率高

2.缺点:使用同一把密钥加解密,如何解决密钥安全共享问题?

什么是非对称加密算法?

1.使用"不同密钥"来执行加密和解密

2.常见非对称加密算法有RSA,DH

非对称加密算法-RSA

1.公共密钥加密系统

2.支持密钥长度为1024、2048位甚至更长

3.工作原理 使用公钥/私钥加密,就必须使用私钥/公钥解密

1)接收方使用RSA算法,生成一对密钥(公钥+私钥)

2)接收方将公钥发给发送方,私钥自己严格保存

3)发送方使用接收方发送的公钥对数据进行加密,再把加密后的数据发送给接收方

4)接收方使用自己的私钥来解密数据

非对称加密算法的优缺点

1.优点:更高的安全性

2.缺点:算法复杂,加解密效率低

非对称加密算法存在的风险: 接收方无法判断接收到的公钥是否是发送方发的

完整性

什么是完整性?

1.确保发送的数据和接收的数据一致,称为完整性

2.使用的技术"单向散列函数"

什么是单向散列函数?

1.单向散列函数,有一个输入和输出:

1)输入称为'消息'

2)输出称为'散列值',又称'哈希值'

2.依据消息的内容来计算出散列值,再利用散列值来验证'数据完整性'。

3.单向散列函数算-MD4/MD5,能够产生128比特的散列值。

4.单向散列函数算法-SHA

1)SHA0,1993年发布,已撤回

2)SHA1,1995年发布,2005年被破解

3)SHA2,可固定输出224/256/384/512比特的散列值,SHA2为目前的主流算法

4)SHA3,未完全普及,相关资料较少

5)中国国密的算法SM3,类似于SHA2-256

5.单向散列函数的特点

1)依据任意长度的消息计算出固定长度的散列值

2)能够快速计算出散列值

3)散列值具有唯一性

4)具备单向性

什么是认证?

1.为了确保发送源的合法性,需要对发送源执行认证

什么是消息认证码?

1.一种确认'完整性'并进行'认证'的技术。

2.输入任意长度的消息和共享的密钥,输出固定长度的MAC值。

消息认证码的工作流程,共享密钥不会从发送者发给接受者

消息认证码常用算法

1.HMAC。

2.一种使用单向散列函数来构造消息认证码的方法

3.任何高强度的单向散列函数都可以被用于HMAC,例 HMAC-SHA-224

相关推荐
Tony Bai12 小时前
Go 2025 密码学年度报告:后量子时代的防御与 FIPS 的“纯 Go”革命
开发语言·后端·golang·密码学
搬砖魁首7 天前
密码学系列 - 介绍几种不同的签名方案
密码学·签名·schnorr·ecdsa·eddsa
帅次11 天前
信息安全的容灾与业务持续&安全管理的措施
安全·网络安全·系统安全·密码学·网络攻击模型·安全威胁分析·安全架构
奔跑吧邓邓子15 天前
【C语言实战(78)】C语言进阶:筑牢数据安全防线,密码学实战探秘
c语言·密码学·数据安全·开发实战
passxgx15 天前
10.7 密码学中的线性代数
线性代数·密码学
麦烤楽鸡翅17 天前
幂数加密(攻防世界)
网络安全·密码学·ctf·crypto·解密·攻防世界·幂数加密
CyberSecurity_zhang18 天前
汽车信息安全--关于安全强度的误区
信息安全·汽车·密码学·安全强度
国服第二切图仔18 天前
Rust开发实战之密码学基础——哈希计算与对称加密实战
rust·密码学·哈希算法
粉色挖掘机18 天前
矩阵在密码学的应用——希尔密码详解
线性代数·算法·机器学习·密码学
电院工程师19 天前
SIMON64/128算法Verilog流水线实现(附Python实现)
python·嵌入式硬件·算法·密码学