AES CFB/OFB/ECB/CBC/CTR优缺点
AES CFB/OFB/ECB/CBC/CTR优缺点
摘自:http://www.metsky.com/archives/418.html
AES常见加密模式有CFB/OFB/ECB/CBC/CTR,本文概述这些算法特点,让大家更快的了解AES,当然天缘也不是专业做算法的,工作中也只是使用到才会学习一点,如有错误,欢迎指出。
一、Cipher feedback(CFB)
CFB算法优点:
同明文不同密文,分组密钥转换为流密码。
CFB算法缺点:
串行运算不利并行,传输错误可能导致后续传输块错误。
二、Output feedback(OFB)
OFB算法优点:
同明文不同密文,分组密钥转换为流密码。
OFB算法缺点:
串行运算不利并行,传输错误可能导致后续传输块错误。
三、Electronic codebook(ECB)
ECB算法优点:
简单、孤立,每个块单独运算。适合并行运算。传输错误一般只影响当前块。
ECB算法缺点:
同明文输出同密文,可能导致明文攻击。我们平时用的AES加密很多都是ECB模式的,此模式加密不需要向量IV。
四、Cipher-block chaining(CBC)
CBC算法优点:
串行化运算,相同明文不同密文
CBC算法缺点:
需要初始向量,不过这其实不算缺点,下文的CTR也是需要随机数的。如果出现传输错误,那么后续结果解密后可能全部错误。
此外,还有Propagating cipher-block chaining(PCBC)加密模式,
五、Counter mode(CTR)
CTR算法优点:
无填充,同明文不同密文,每个块单独运算,适合并行运算。
CTR算法缺点:
可能导致明文攻击。
补充:
关于Padding补位问题,上文加密模式中,比如CBC等对输入块是有要求的,必须是块的整数倍,对不是整块的数据,要求进行填充,填充的方法有很多种,常见的有PKCS5和PKCS7、ISO10126等。
例如按照16字节分组的话:
- 对不足16字节部分(假设差n个满16字节),填充n个字节(n范围(1,15]),且每字节值均为n。
- 对正好16字节部分,则填充一个block,也就是补16个字节,每字节值为16
参考1:PKCS #7: Cryptographic Message Syntax
参考2:PKCS #5: Password-Based Cryptography Specification
所以上述算法中,默认:
需要Padding的有:CBC(,PCBC也需要,本文未涉及该加密模式)、ECB。
不需要Padding的有:CFB、OFB、CTR。
参考资料:
http://hi.baidu.com/doomsword/blog/item/ec73eb2b18f95435d52af120.html
AES CFB/OFB/ECB/CBC/CTR优缺点的更多相关文章
- 第十八个知识点:画一个描述ECB,CBC,CTR模式的操作
第十八个知识点:画一个描述ECB,CBC,CTR模式的操作 第8周是画三个图的任务,但是维基百科上已经有人画的很好了 https://en.wikipedia.org/wiki/File:ECB_en ...
- AES五种加密模式(CBC、ECB、CTR、OCF、CFB)
--转载https://www.cnblogs.com/starwolf/p/3365834.html https://www.freebuf.com/column/171939.html 分组密码有 ...
- AES在线加密解密-附AES128,192,256,CBC,CFB,ECB,OFB,PCBC各种加密解密源码
一.AES在线加密解密:AES 128/192/256位CBC/CFB/ECB/OFB/PCBC在线加密解密|在线工具|在线助手|在线生成|在线制作 http://www.it399.com/aes ...
- aes 128、192、256位,cbc、cfb、ecb、ofb、pcbc加密解密
AES加解密总共有以下这些 算法/模式/填充 字节加密后数据长度 不满16字节加密后长度 AES/CBC/NoPadding 16 不支持 AES/CBC/PKCS5Padding 32 16 AES ...
- [编码解码] 关于AES加解密中CBC模式的IV初始化向量的安全性问题
copy from : https://www.jianshu.com/p/45848dd484a9 前段时间,在研究HLS的AES加密,由于一个地方电视台的HLS流有AES加密,在查看了相关的加解密 ...
- iOS CommonCrypto 对称加密 AES ecb,cbc
CommonCrypto 为苹果提供的系统加密接口,支持iOS 和 mac 开发: 不仅限于AES加密,提供的接口还支持其他DES,3DES,RC4,BLOWFISH等算法, 本文章主要讨论AES在i ...
- AES CBC/CTR 加解密原理
So, lets look at how CBC works first. The following picture shows the encryption when using CBC (in ...
- C#调用Crypto++库AES ECB CBC加解密
本文章使用上一篇<C#调用C++类库例子>的项目代码作为Demo.本文中,C#将调用C++的Crypto++库,实现AES的ECB和CBC加解密. 一.下载Crypto 1.进入Crypt ...
- 各加密模式的演示(ECB,CBC)
对于较长的明文进行加密需要进行分块加密,但是直接加密(ecb)不容易隐藏模式,用OpenCV写了个程序论证了一下 ECB 优点就是简单,可以并行计算,不会迭代误差 缺点就是隐藏不了模式 CBC 需要初 ...
随机推荐
- SAP MM模块 经常使用Bapi
1.sap货物移动相关的bapi(MIGO/MB1A) 货物移动的bapi BAPI_GOODSMVT_CREATE 当中 參数 : GOODSMVT_CODE 有 GMCODE Table T ...
- 使用ntp从时间同步服务器更新centos系统时间的方法
CentOS系统时间同步的步骤如下: 复制代码 代码如下: cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimentpdate us.pool.ntp ...
- 02 - Unit05:加载笔记列表
加载笔记列表 发送Ajax请求 绑定发送事件 获取参数: bookId 发送请求: /note/list.do 事件绑定 $(function(){ Ajax请求发送-->服务器处理--> ...
- linux下启动springboot服务
错误日志 SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder] . __ ...
- C# 通过二进制,将多个文件合并为一个。
C# 通过二进制,将多个文件合并为一个. /// <summary> /// 合并文件 /// </summary> /// <param name="strD ...
- Bootstrap-Other:UI 编辑器
ylbtech-Bootstrap-Other:UI 编辑器 1.返回顶部 1. Bootstrap UI 编辑器 以下是 15 款最好的 Bootstrap 编辑器或者是在线编辑工具. 1. Boo ...
- 文件读取错误UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 884: invalid start byte
参考: https://segmentfault.com/q/1010000004268196/a-1020000004269556 ubuntu下Python3使用open('filename', ...
- [html] charset
UTF-8是全球通用的,GB2312一般是简体中文,GBK在他的范围上扩展了繁体中文,适合香港台湾. 页面透明效果 CSS: opacity:0.1;filter: Alpha(Opacity=10, ...
- window.onload()和$(document).ready()区别
执行时间:window.onload:必须等待网页中所有的内容加载完毕后(包括图片)才能执行;$(document).ready();网页中所有DOM结构绘制完毕后就执行,可能DOM元素关联的东西并没 ...
- Bootstrap的介绍和响应式媒体查询
Bootstrap的介绍 凡是使用过Bootstrap的开发者,都不在乎做这么两件事情:复制and粘贴.哈哈~,是的使用Bootstrap非常简单,但是在复制粘贴之前,需要先对Bootstrap的用法 ...