目录
一、对称密码概念
二、别名
三、对称密码体制的优缺点:
1、对称密码体制的缺点:
2、对称密码体制的优点:
四、对称密码的分类
1、序列密码
2、分组密码
五、分组密码的分组模式
1、ECB模式:Electronic CodeBook mode(电子密码本模式)
(1)特点:
(2)对ECB的攻击方式:
2、CBC 模式:Cipher Block Chaining mode (密码分组链接模式)
3、CFB 模式:Cipher FeedBack mode (密文反馈模式)
4、OFB模式:Output FeedBack mode( 输出反馈模式)
5、CTR模式:CounTeR mode(计数器模式)
六、分组模式对比
七、术语解释
一、对称密码概念
对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的。
二、别名
别名:对称密码体制--共享密钥密码--对称加密算法--私钥加密算法--秘密密钥算法--单密钥算法-- 传统密码算法
三、对称密码体制的优缺点:
1、对称密码体制的缺点:
-
密钥分发需要安全通道。发送方如何安全、高效地把密钥送到接收方是对称密码体制的软肋,对称密钥的分发过程往往很烦琐,需要付出的代价较高。
-
密钥量大,难以管理。多人用对称密码算法进行保密通信时,将极大地增加密钥管理(包括密钥的生成、使用、存储、备份、存档、更新等)的复杂性。
-
难以解决不可否认的问题。因为通信双方拥有同样的密钥,所以接收方可以否认接收到某消息,发送方也可以否认发送过某消息,即对称密码体制很难解决鉴别认证和不可否认的问题。
-
密钥交换缺乏安全性保证。如果密钥交换不安全,密钥的安全性就会丧失。特别是在电子商务环境下,当客户是未知的、不可信的实体时,如何使客户安全地获得密钥就成为一大难题。
2、对称密码体制的优点:
-
加密和解密的速度都比较快,具有很高的数据吞吐率,不仅软件能实现较高的吞吐率,还易于硬件实现,硬件加密 / 解密的处理速度更快。
-
对称密码体制容易实现。根据对称密码体制中只存在一个单一的密钥的这种特性,单钥加解密算法可通过低费用的芯片来实现,特别是便于硬件实现和大规模生产。
-
对称密码体制中使用的密钥相对较短。
-
密文的长度往往与明文长度相同。
四、对称密码的分类
对称密码分为:序列密码和分组密码
1、序列密码
(1)常见的序列密码:
国内 | ZUC |
国外 |
SNOW(如 SNOW2.0、SNOW 3G)、RC4
|
(2) 序列密码概念
将明文消息按字符逐位进行加密。
利用密钥产生一个密钥流Z=Z1Z2Z3…,然后利用此密钥流依次对明文X=X0X1X2...进行加密,这样产生的密码就是序列密码,也称流密码。密钥流由密钥流发生器f产生:zi=f(k,si),这里的si是加密器中存储器(记忆元件)在i时刻的状态,k是密钥。序列密码方案的发展是模仿“一次一密”系统的尝试。
2、分组密码
(1)常见的分组密码:
国内 | SM4 |
国外 |
数据加密标准(DES),三重数据加密算法(TDEA,也称 3DES),高级加密标准(AES)
|
(2)分组密码 概念
在分组密码中将明文消息分组(每组有多个字符),逐组进行加密。
分组密码(block cipher)的数学模型是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组(可看成长度为n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列。
序列密码 | 分组密码 | |
加密方式 | 将明文消息按字符逐位进行加密。 | 在分组密码中将明文消息分组(每组有多个字符),逐组进行加密。 |
优点 |
|
|
缺点 |
|
|
适用场景 | 世界军事、外交等领域 | 构造伪随机数生成器、流密码、认证密码和哈希函数 |
不适用场景 | 不适用于资源受限、低功耗、物联网等新的应用场景 |
五、分组密码的分组模式
在GB/T 17964-2021 信息安全技术 分组密码算法的工作模式中分组模式共有9种
- 电码本(Electronic Code Book,ECB)模式
- 密文分组链接(Cipher BlockChaining,CBC)模式
- 密文反馈(Cipher Feedback,CFB)模式
- 输出反馈(Output Feedback,OFB)模式
- 计数器(Counter,CTR)模式
- 分组链接(Block Chaining,BC)模式
- 带密文挪用的 XEX可调分组密码模式 (XTS)
- 带泛杂凑函数的计数器(HCTR)模式
- 带非线性函数的输出反馈(OutputFeedback with a Nonlinear Function,OFBNLF)模式
本次主要介绍其中的五种
1、ECB模式:Electronic CodeBook mode(电子密码本模式)
(1)特点:
- 将明文分组加密之后的结果将直接成为密文分组。
- 相同的密文分组会被转换成相同的明文分组。(根据重复的明文分组可以作为线索来推测密文,存在一定的风险)
- 当最后一个明文分组的内容小于分组长度时,需要用一些特定的数据进行填充( padding)
(2)对ECB的攻击方式:
修改密文分组顺序,相应的明文也会改变,攻击者无需破译密码就能操纵明文
2、CBC 模式:Cipher Block Chaining mode (密码分组链接模式)
在 CBC 模式中,首先将明文分组与前一个密文分组进行XOR 运算,然后再进行加密。(XOR :异或运算)
其中涉及的初始向量为:随机产生的长度为分组长度的随机比特序列。
(1)特点:
- 无法对中间的明文分组进行加密。
- 密文分组中有一个分组损坏了(例如由于硬盘故障导致密文分组的值发生了改变等 )。在这种情况下,只要密文分组的长度没有发生变化,则解密时最多只会有 2个分组受到数据损坏的影响
(2)对CBC的攻击方式:
- 填充提示攻击
填充提示攻击( Padding Oracle Attack )是一种利用分组密码中的填充部分来进行攻击的方法。在分组密码中,当明文长度不为分组长度的整数倍时,需要在最后一个分组中填充一些数据使其凑满一个分组长度。在填充提示攻击中,攻击者会反复发送一段密文,每次发送时都对填充的数据进行少许改变。由于接收者(服务器)在无法正确解密时会返回一个错误消息,攻击者通过这一错误消息就可以获得一部分与明文相关的信息。这一攻击方式并不仅限于 CBC 模式而是适用于所有需要进行分组填充的模式。
- 初始向量攻击
3、CFB 模式:Cipher FeedBack mode (密文反馈模式)
(1)特点:
- 前一个密文分组会被送回到密码算法的输入端。所谓反馈,这里指的就是返回输人端的意思。
- 明文分组没有通过密码算法直接进行加密
- 明文数据可以被逐比特加密,因此我们可以将 CFB 模式看作是一种使用分组密码来实现流密码的方式。
- 密码算法的输出相当于一次性密码本中的随机比特序列。由于密码算法的输出是通过计算得到的,并不是真正的随机数,因此 CFB 模式不具备像一次性密码本那样理论上不可破译的性质。
(2)对ECB的攻击方式:
- 重放攻击
4、OFB模式:Output FeedBack mode( 输出反馈模式)
(1)特点:
- 密码算法的输出会返回到密码算法的输入中
- 通过将“明文分组”和“密码算法的输出”进行 XOR 来产生“密文分组”
5、CTR模式:CounTeR mode(计数器模式)
(1)特点:
- CTR模式是一种通过将逐次累加的计数器进行加密来生成密钥流的流密码。
- 每个分组对应一个逐次累加的计数器,并通过对计数器进行加密来生成密钥流。也就是说,最终的密文分组是通过将计数器加密得到的比特序列,与明文分组进行 XOR 而得到的。
- CTR 模式中可以以任意顺序对分组进行加密和解密,因此在加密和解密时需要用到的“计数器”的值可以由 nonce 和分组序号直接计算出来。
- 能够以任意顺序处理分组,可以实现并行计算。在支持并行计算的系统中,CTR模式的速度是非常快的。
(2)对CTR的攻击方式:
比特反转:
CTR 模式的密文分组中有一个比特被反转了,则解密后明文分组中仅有与之对应的比特会被反转,这一错误不会放大。
六、分组模式对比
模式 | 名称 | 优点 | 缺点 | 备注 |
ECB 模式 | Electronic CodeBook 电子密码本模式 |
|
| 不应使用 |
CBC模式 | Cipher BlockChaining 密文分组链接模式 |
|
| CRYPTREC 推荐;《实用密码学》推荐 |
CFB模式 | Cipher-FeedBack密文反馈模式 。 |
|
| CRYPTREC推荐 |
OFB 模式 | Output-FeedBack输出反馈模式 |
|
| CRYPTREC 推荐 |
CTR 模式 · | CounTeR 计数器模式 |
| 主动攻击者反转密文分组中的某些比特时,明文分组中相对应的比特也会被反转 | CRYPTREC 推荐《实用密码学》推荐 |
七、术语解释
1、初始向量initialization vector
IV
在密码变换中,为增加安全性或使密码设备同步而引入的用于数据变换的起始数据
2、计数器 counter
长度为 比特的比特序列,用于计数器模式注:n 是分组密码的分组长度
3、填充 padding
给一个数据串附加额外比特的操作