分组密码工作模式

  • 一、研究背景

        单独采用一种加密算法,无论算法有多精密,总是引起明文组与密文组的一一对应,若程序、算法、数据库等信息存在大量重复使用的现象,则密文组总会出现重复情况,从而需要采用适当的分组密码工作模式来隐蔽明文的统计特性、数据的格式等。

  • 二、概念及分类

        分组密码工作模式是指以某个分组密码算法为基础,解决对任意长度的明文的加密问题的方法。

        2001年,NIST公布了AES算法的5种工作模式:ECB、CBC、OFB、CFB、CTR。

        在使用工作模式加密时,明文或密文可能引起密文及后续密文发生错误,使用工作模式解密时,明文或密文也可能引起密文、后续密文发生错误。

        错误传播有界:出现明文或密文错误只产生有限几个数据错误。

        错误传播无界:出现明文或密文错误会引发后续数据全部错误。

  • 三、工作模式

    1.电码本模式(ECB)

        ECB是最简单的运行模式,各分组使用同一加密密钥。当确定密钥时,明文的各分组对应唯一密文。

        ECB非常适合处理短数据加密,发送少量数据。同一明文分组在消息中重复出现时,对应的密文分组也相同。ECB要求处理数据是分组长度的整数倍,最后一个数据块要填充0或者随机数。适合并行计算,但容易暴露明文的数据模式。

    2. 密码分组链接模式(CBC)

        CBC的密文链接模式如图1所示:输入是当前明文组与前一密文组的异或,其中E-1为解密算法。其中,加密会引发错误传播无界,解密错误传播有界,不利于并行计算。

图1  CBC密文链接方式的加密、解密

 

        CBC的明密文链接方式如图2所示:输入是前一组密文和前一组明文异或之后,再与当前明文组异或。其中,加密和解密均会引发错误传播无界。

图 2  CBC明密文链接方式的加密、解密

    3. 输出反馈模式(OFB)

        OFB模式中,如果加密时某一明文mi出错,不影响其他明文。同样,解密时,某一密文Ci出错,不影响其他密文,所以没有错误传播,但它不利于并行计算。其算法流程如图3所示:

  1. 种子IV的值赋值为移位寄存器R的初值。
  2. 利用分组算法(如DES、AES、SM4)加密移位寄存器R中的内容为密文,并“选取最右边S位”作为输出,与明文mi异或得到Ci,其中i=1,2,…,n。
  3. 移位寄存器R先左移S位,并将“选取最右边S位”赋值到寄存器R的右S位。
  4. 继(2)(3)步,直到把分组密码变成序列密码。
  5. OFB模式加密和解密,R和E使用同样的方式工作。
图3 OFB工作流程

     4. 密码反馈模式(CFB)

        CFB和OFB的模式相似,不同的是填充移位寄存器R的不是加密算法E输出的最右S位,而是E输出与明文异或之后的密文Ci(i=1,2,…,n)的S位。

        解密时R与E按与加密相同的方式工作,产生相同的密钥流,与密文异或便可以完成解密。

        CFB模式如图 4所示,如果加密时某一明文mi出错,则会影响后面的所有明文。同样在解密时,某一密文Ci出错,则会影响后面的所有密文。所以CFB模式具有传播无界的特性,且不利于并行计算。

图4  CFB工作流程

 

    5. 计数器模式(CTR)

        CTR与OFB、CFB一样,把分组密码化为序列密码,在本质上利用分组密码产生密钥序列,按序列密码的方式加密。

        CTR不具有错误传播的特性,适合并行计算,适合任意长度的数据,属于对合运算。其加、解密如图 5所示。

图5  CTR工作流程

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

heze09

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值