对称加密算法常用的五种分组模式(ECB/CBC/CFB/OFB/CTR)
Posted better_hui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对称加密算法常用的五种分组模式(ECB/CBC/CFB/OFB/CTR)相关的知识,希望对你有一定的参考价值。
目录
分组模式
明文的长度不固定,而分组密码只能处理特定长度的一块数据,这就需要对分组密码进行迭代,以便将很长的明文全部加密,迭代的方法就是分组的模式。
五种模式简介
模式 | 名称 | 优点 | 缺点 | 备注 |
---|---|---|---|---|
ECB | 电子密码本模式 electronic codebock | 支持并发加解密 | 重复明文反应在密文中 不能抵抗重放攻击 | 不推荐使用 |
CBC | 密文分组链接模式 Cipher Block Chaining | 抵御重放共计 可以并行解密 | 不能并行加密 错误的密文位影响后续密文解密 | 推荐使用 |
CFB | 密文反馈模式 Cipher FeedBack | 不需要填充 并行解密 解密分组间无依赖 | 不能并行加密 错误的密文位影响后续密文解密 | 不推荐 |
OFB | 输出反馈模式 OutPut FeedBack | 不需要填充 出现错误时仅对应明文出错 | 不支持并行计算 | 不推荐 |
CTR | 计数器模式 Counter | 不需要填充 支持并行计算 | 反转密文分组中部分bit时,对应明文也会反转 | 推荐 |
ECB - 电子密码本模式
简单高效、可以并发加解密
最后一个分组需要填充
不需要硴向量
ECB模式是分组密码的基本工作方式。在该模式下,每个加密区块按顺序进行独立加密,得到独立的密文区块,每个加密区块的结果都不会被其他区块影响,用此方式,可用平行处理实施加速加、解密运算,且在网络传输时任何一个区块出现错误,也不存在影响到其他区块传输的结果,这是该模式的好处。
ECB模式的不足是易使明文的数据模式暴露。在计算机系统里,很多数据均存在固有模式,这主要是由数据结构与数据冗余导致的。若无任何措施,针对在需加密的文件里出现多回的明文,这部分明文如果刚好是加密区块的大小,则可能会得到一样的密文,且密文内容如果受到剪贴、代替,也很难被发现。
CBC - 密码快链接模式
密文没有规律,引入雪崩效应
最后一个分组需要填充
需要初始化向量
第一个加密区块先与初始向量做异或运算,再进行加密。其他每个加密区块在加密之前,必须与前一个加密区块的密文做一次异或运算,再进行加密。每个区块的加密结果都会被前面全部区块内容的影响,因此尽管在明文里出现多次一样的明文,也会得到不一样的密文。
还有,密文内容如果遇到剪贴、替换,或于网络传输时出现错误,则它后面的密文会被破坏,不能顺利解密还原,这是这一模式的优点也是缺点。
其次,一定得选取1个初始向量来加密第1个区块,且加密作业时不能用平行处理加速加密运算,不过解密运算,做异或的加密区块结果已经有了,则还可用平行处理加速。
CFB 密文反馈模式
简单讲就是前一模块的密文输出,参与下一模块的加解密
密文没有规律,明文分组和一个数据流进行异或操作,生成密文
需要初始化向量
不需要填充
OFB 输出反馈模式
初始化向量一次加密并参与各分组的加密过程
特点,密文没有规律,明文分组和一个数据流按位异或生成密文
需要初始化向量
不需要填充
CTR 计数器模式
用计数器代替OFB模式中的向量
不需要初始化向量
不需要填充
以上是关于对称加密算法常用的五种分组模式(ECB/CBC/CFB/OFB/CTR)的主要内容,如果未能解决你的问题,请参考以下文章