文章目录
分组密码模式分组密码和流密码明文和密文模式
ECB 模式ECB 定义ECB 特征ECB 模式的攻击数据包重排序攻击
CBC 模式CBC 定义初始化向量IVCBC 函数对CBC 模式的攻击对初始化向量进行反转攻击填充提示攻击
CFB模式CFB定义了CFB模式下的攻击重放攻击
OFB 模式OFB 定义CFB 模式与OFB 模式比较
CTR 模式如何生成CTR 定义的计数器OFB 和CTR 模式的比较CTR 错误和保密性的特点
5种模式对比
分组密码的模式
分组密码与流密码
分组密码:一种密码算法,一次只能处理一定长度的数据片段。 “片段”称为块,一组中的位数称为块长度。算法分组密码是一种顺序处理数据的密码,处理一组数据后不需要记录加密进度,而流密码顺序处理一系列数据流,因此需要维护内部状态。
模式
模式:分组密码只能加密固定长度的分组,但加密后的明文长度可能超过分组密码的分组长度。在这种情况下,必须重复分组密码算法来加密所有内容。纯文本。加密过程中使用的迭代方法称为分组密码模式。
ECB:电子码本模式、电子码本模式CBC:密码块链接模式、密码块链接模式CFB:密文反馈模式、密码反馈模式OFB:输出反馈模式、输出反馈模式CTR:计数器模式、CountTeR 模式
明文分组与密文分组
明文组:分组密码算法中用作加密目标的明文组的长度与分组密码算法的分组长度相同。 密文组:使用分组密码算法对铭文组进行加密后产生的密文。
ECB模式
ECB定义
明文组加密的结果成为密文组。
ECB特点
ECB 模式是所有模式中最简单的。在ECB模式中,明文组和密文组之间是一一对应的,因此如果明文中存在多个相同的明文组,那么这些明文组最终都会被变换。只需观察密文,就可以看出明文中重复了哪些组合,并利用这些作为破解密码的线索。因此,欧洲央行模式存在一定的风险。
对ECB模式的攻击
改变分组顺序攻击
ECB模式下,每个明文组都是单独加密和解密的,这实际上是一个很大的弱点。如果存在主动攻击者M,则当接收方解密密文时,密文组的顺序可能会改变。当密文组改变时,对应的明文组的顺序也会改变。换句话说,攻击者M不需要破解密码或知道分组密码算法。该组织记录了哪些数据可能导致成功的攻击
CBC模式
CBC定义
通过将明文组与先前的密文组进行异或来进行加密。
当数据包加密过程分离时:ECB模式仅执行加密。 CBC模式在加密之前执行XOR。
初始化向量IV
在加密第一组明文时,由于“前一个密文组”不存在,所以需要提前准备一个块长度的比特串来替换“前一个密文组”,而这个比特串就成为初始化向量。一般情况下,每次加密时都会随机生成不同的比特序列作为初始化向量。
CBC特点
由于加密前需要将明文组与“之前的密文组”进行异或,即使明文组1和明文组2的值相同,密文组1和密文组2的值也不相同必然相等。 的。这样,CBC模式就没有ECB模式的缺点。假设以CBC 模式加密的密文组之一被损坏。在这种情况下,只要密文组的长度保持不变,最多只有两个组在解密过程中受到数据损坏的影响。
假设CBC模式下密文套件的某些比特丢失(例如由于通信错误而未接收到某些比特)。在这种情况下,即使只丢失一位,密文组的长度也会改变。发生,因此丢失位位置之后的所有密文块都无法解密。
对CBC模式的攻击
对初始向量进行反转攻击
假设攻击者M可以翻转初始化向量中的任意一位,则CBC模式下解密过程中的第一个明文组将与初始化向量相同,因此解密后得到的明文组中的相应位也被翻转。执行异或运算
填充提示攻击
填充提示攻击是一种使用分组密码的填充部分的攻击方法,如果明文的长度不是分组长度的整数倍,则需要用一些数据填充最后一个分组。在填充提示攻击中,攻击者重复发送密文,每次都会稍微更改填充数据。如果收件人无法正确解密,则会返回一条错误消息,从而允许攻击者利用此错误。这种攻击方式不限于CBC模式,可以应用于任何需要分组填充的模式。为了防御这种攻击,必须对密文进行身份验证,以确保它确实是由知识渊博且合法的发送者生成的。明文内容
CFB模式
CFB定义
将之前的密文组发送回加密算法的输入端。当生成第一个密文组时,由于没有来自先前输出的数据,因此需要初始化向量IV。例如,在CFB模式下,明文和密文组之间没有“加密”。在明文组和密文组之间有一个XORCFB的模式下,密码算法的输出不是通过计算得到的,相当于一次性填充的随机比特序列。作为一种真正的随机数,CFB 模式不能具有与一次性密码本相同的理论特性。 CFB模式下密码算法产生的比特序列相当于CFB模式下的密钥流。用于生成密钥流的伪随机数生成器。初始化向量对应于随机数生成器的“种子”。 CFB不加密,因为CFB模式允许明文数据逐位加密。模式可以看作是使用分组密码实现流密码的一种方式。
对CFB模式的攻击
重放攻击
假设一条消息由七个密文组组成。假设主动攻击者M保存了消息中的最后三个密文组,并在第二天发送了七个内容不同的密文组(使用相同的密钥发送了两次)。攻击者M用保存的密文组替换最后三个保存的密文组。此时接收方解密时,前四组可以解密为正确的明文组,第五组将是错误的,第六组将被解密。此时,M 能够将新消息与前一条消息混合在一起,而无需破解密码。对于第五组,接收者确定这是通信错误还是攻击。无法做出判断性决定。
OFB模式
OFB定义
在OFB模式下,密码算法的输出被反馈到密码算法的输入。 OFB模式并不直接通过密码算法对明文进行加密,而是由“明文组”和“输出”进行异或运算生成。 “密文分组”,这个OFB和CFB很相似。 OFB模式还需要使用初始化向量IV。一般来说,每次加密都需要生成不同的随机位序列。用作初始化向量。
CFB模式与OFB模式的对比
CFB模式下,密码算法的输入是之前的密文组。换句话说,在OFB模式下,密文组被反馈到密码算法的输入。换句话说,在CFB模式下,密文组被反馈,并且必须从第一个明文组开始顺序地进行加密。无法跳过,明文2先加密。 OFB模式下,异或所需的比特序列(密钥流)可以通过密码算法生成,只要提前准备好所需的密钥流即可。实际上,从明文生成密文的过程根本不需要使用任何密码算法,它只是计算明文和密钥流的异或。
CTR模式
CTR定义
这是一种通过对顺序累加计数器进行加密来生成密钥流的流密码,通过对顺序累加计数器进行加密来生成每组密钥,通过对计数器进行加密得到最终的密文组。该序列是通过与明文组执行异或获得的。
计数器的生成方法
每次加密发生时,都会为计数器生成不同的初始值(随机数)。如果数据包长度为16 字节,则每次加密时该值必须不同。这部分是组的序号,由于每次计数器的值不同,因此对每个组的计数器进行加密得到的密钥流也不同。模拟生成随机位序列
OFB模式与CTR模式的对比
OFB模式将加密的输出反馈到输入。 CTR 模式使用计数器值作为输入。
CTR特点
CTR模式加密和解密采用完全相同的结构,更容易实现程序,允许按任意顺序对组进行加密和解密,按任意顺序处理组,并且可以实现并行计算。
错误与机密性
如果CTR模式下密文组中的一位被反转,则解密后只会反转明文组中的相应位。在CTR模式下,主动攻击者M无法翻转密文的某些位。密文块还会反转解密明文中的相应位。
五种模式对比
模式名称优点缺点ECBElectronic CodeBook 模式简单、快速。
它支持并行计算,明文中的重复放置会反映在密文中。
可以通过删除和替换密文组来操纵明文。
解密包含某些位错误的密文将导致相应数据包出现错误。
CBCCipher 块链模式下明文中的重复放置不会反映在密文中。
解密支持并行计算。
任何密文块都可以被解密。当解密包含一些错误位的密文时,第一个块中的所有位以及后续块中的相应位将出错。
加密不支持并行计算。 CFBCipher 反馈模式不需要填充。
解密支持并行计算。
任何密文组都可以被解密。加密不支持并行计算。
当解密带有一些错误位的密文时,第一个块中的相应位以及后续块中的所有位都会出错。
OFB输出反馈模式无法抵抗重放攻击。
您可以提前做好加密和解密的准备。
加密和解密使用相同的结构。
当解密包含一些错误位的密文时,只有明文中的相应位会出错。不支持并行计算。
当主动攻击者翻转密文组中的特定位时,明文组中的相应位也会被翻转。 CTRCounTeR 模式下不需要填充。
您可以提前做好加密和解密的准备。
加密和解密使用相同的结构。
当解密包含一些错误位的密文时,只有明文中的相应位会出错。
支持并行计算。当主动攻击者翻转密文组中的特定位时,明文组中的相应位也会被翻转。
#【密码】以上关于分组密码的相关内容摘自互联网,仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/91738.html