密码学基础

一、密码学的四个安全特性

机密性,完整性,认证,不可否认。

  • 对称密码算法

加密与解密的密钥相同,分为分组密码算法与序列密码算法。

2.1 分组密码

对明文进行分块加密,优点是加密速度快,安全性高,但是密钥管理困难

常见的分组密码算法:DES,3DES,AES,SM4。

3DES的加密方式是使用DES对明文数据进行加密解密再加密,如果使用的三个密钥完全相同时,向下兼容DES。

DES算法

AES算法

SM4算法

算法结构

替换后置换

替换后置换

基本轮函数加迭代

分组长度

64bit

128bit

128bit

密钥长度

64bit

128/192/256bit

128bit

计算轮数

16轮

10/12/14轮

32轮

安全性

较低(3DES较高)

较高

高于3DES

2.2分组密码加密模式

2.2.1 ECB模式

明文分组与密文分组是对应的关系,每个明文分组各自独立地进行加密和解密,将明文分组加密后结果直接成为密文分组。

优点:简单、快速,加密和解密都支持并行计算。

缺点:不能隐藏明文模式,攻击者可以通过改变密文分组的顺序,删除密文分组以及替换掉密文分组,就可以达到对明文主动攻击。

2.2.2 CBC模式

前一个密文分组与明文分组进行XOR之后进行加密处理。

优点:不容易主动攻击,适合传输长的报文; 

缺点:加密不支持并行。

2.2.3 CTR模式

通过将逐次累加的计数器进行加密来生成密钥流,每个分组对应一个逐次累加的计数器,每次加密都会生成一个不同的值(nonce)作为计数器的初始值。

优点:不需要填充,密文与明文中的比特相对应,支持并行加解密;

缺点:主动攻击者反转密文分组的某些比特,明文中对应的比特受到干扰。

2.2.4 CFB模式

加密:对初始化向量IV进行加密后与第一个分组的明文进行异或操作得到第一组密文,之后对第一组密文进行加密后与第二组明文进行异或,获得第二组密文,以此类推进行明文数据的加密。

解密:对初始化向量IV进行加密后与第一个分组的密文进行异或操作得到第一组明文,同时第一组密文作为第二组数据的的IV进行加密后,与第二组密文进行异或获得第二组明文数据,以此类推得到明文数据。

2.2.5 OFB模式

加密:对初始化向量IV进行加密后与第一组明文数据进行异或处理得到第一组密文,之后对加密后的IV进行加密与第二组明文数据异或得到第二组密文数据,以此类推加密明文。

2.2.6 CCM模式和GCM模式

CCM模式的加密是CTR加密模式和CMAC认证算法的混合使用(MAC-then-Encrypt)方法构造的,加密和在MAC算法中共用一个密钥。计算消息的MAC值后,用CTR模式进行分组加密。

GCM消息在CTR模式下加密,GCM模式使用两个函数:带密钥的Hash函数GHASH,以及计数器每次增1 的CTR模式的GCTR。

2.3 序列密码算法

序列密码算法:通过伪随机数发生器生成密钥流,依次对明文的每个字节或者比特流进行异或加密。常见的序列密码算法有ZUC,RC4等。

与分组加密不同的是明文与密钥的长度可以为任何长度。

2.4 消息认证码

消息认证码的输入包括任意长度的消息和通信双方共享的密钥,输出固定长度的MAC值。

要计算MAC必须持有共享密钥,没有共享密钥的人就无法计算MAC值,消息认证正是利用这一性质来完成认证的。

三、哈希密码算法

使用哈希密码算法可以将任意长度的明文变成固定长度的字符串,主要作用是用于消息摘要和签名,对消息的完整性进行校验。

哈希密码算法的特点:

  1. 单向性
  2. 无碰撞性

算法

散列长度(单位:bit)

输入长度(单位:bit)

MD5

128

无限制

SHA-1

160

264

SHA3

无限制

无限制

SM3

256

264

SHA2(SHA-256)

256

264

SHA2(SHA-224)

224

264

SHA2(SHA-384)

384

2128

SHA2(SHA-512)

512

2128

四、公钥密码算法

使用公钥加密,使用私钥解密。公钥密码算法包括RSA,ECC,SM2。

4.1 RSA

RSA算法的本质是基于两个大素数的乘积分解的数学问题,密钥长度为1024bit,2048bit

4.2 ECC

ECC算法基于的数学难题是,已知多倍点与基点求解倍数的椭圆曲线离散对数问题。

在有限域中,椭圆曲线的多倍点运算构成了一个单向的函数。

4.3 SM2

SM2椭圆曲线公钥密码算法是我国自主设计的椭圆曲线公钥密码算法,私钥长度为256bit,公钥长度为512bit

4.4 公钥加密

公钥加密算法规定发送者使用接收者的公钥对消息进行加密,接收者使用自己的私钥对消息进行解密。

4.5 数字签名

数字签名算法由签名者使用私钥对数据哈希值进行签名,由验证者使用公钥对数据哈希值进行验签。

正常应用时提供以下服务:

  1. 数据来源的确认;
  2. 数据完整性的验证;
  3. 签名者有不可抵赖的保证

4.6 DH密钥协商

Diffie-Hellman密钥协商算法,并不是用来加密的,而是解决密钥配送问题。用户之间通过交互消息传递,使用自己的私钥和对方的公钥来商定一个密钥。

五、证书

5.1 概念

通过第三方的可信机构对发送者的公钥进行签名得到的。

最广泛使用的证书标准格式是由ITU(International Telecommunication Union)和ISO(International Organization for Standardization)制定的X.509规范。

5.2 PKI

PKI公钥基础设施就是为了有效的使用证书而制定的一系列规范和协议的总称。

PKI的组成主要有三部分:

5.2.1 用户

用户是PKI使用者,可以借助CA来发布自己的公钥和获取别人公钥。

5.2.2 认证机构

认证机构就是CA,对证书进行管理。

5.2.3 仓库

用户注册之后生成的证书都存在仓库中,供其他的用户获取使用。

5.3 对证书的攻击

  1. 在公钥注册之前替换公钥;
  2. 窃取认证机构的私钥;
  3. 伪装成认证机构;
  4. CRL时间差攻击。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值