对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)

摘要:
一.AES对称加密:AES加密分组二.分组密码的填充分组密码的填充e.g.:PKCS#5填充方式三.流密码:四.分组密码加密中的四种模式:3.1ECB模式优点:1.简单;2.有利于并行计算;3.误差不会被传送;缺点:1.不能隐藏明文的模式;2.可能对明文进行主动攻击;3.2CBC模式:优点:1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的标准。

. AES对称加密:

对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)第1张
AES加密
对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)第2张
分组

. 分组密码的填充

对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)第3张
分组密码的填充

e.g.:
对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)第4张
PKCS#5填充方式

. 流密码:

对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)第5张

. 分组密码加密中的四种模式:

3.1 ECB模式

对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)第6张

优点:

1.简单;

2.有利于并行计算;

3.误差不会被传送;

缺点:

1.不能隐藏明文的模式;

2.可能对明文进行主动攻击;

对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)第7张


3.2 CBC
模式:

对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)第8张

优点:

1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,SSLIPSec的标准。

缺点:

1.不利于并行计算;

2.误差传递;

3.需要初始化向量IV

3.3 CFB模式:

对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)第9张
优点:

1.隐藏了明文模式;

2.分组密码转化为流模式;

3.可以及时加密传送小于分组的数据;

缺点:

1.不利于并行计算;

2.误差传送:一个明文单元损坏影响多个单元;

3.唯一的IV;

3.4 OFB模式:

对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)第10张
优点
:

1.隐藏了明文模式;

2.分组密码转化为流模式;

3.可以及时加密传送小于分组的数据;

缺点:

1.不利于并行计算;

2.对明文的主动攻击是可能的;

3.误差传送:一个明文单元损坏影响多个单元;

免责声明:文章转载自《对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Xlua对c#的vector3等结构体的优化Android 深入解析光传感器(二)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Golang 里的 AES、DES、3DES 加解密,支持 ECB、CBC 等多种模式组合

Openssl encryption:OpenSSL库的功能包装,用于对称和非对称加密和解密。 AES-ECB AES-CBC DES-ECB DES-CBC 3DES-ECB 3DES-CBC 安装 go get -u github.com/thinkoner/openssl 用法 AES 密钥的长度可以是16/24/32个字符(128/192/2...

3DESC加密算法

3DESC 请求参数和响应参数全采用3des加密规则,由于我是用.NET对接的,而第三方是Java开发的,所以两种程序之间采用的算法有一点差异,java的3des加密采用的是"DESede/CBC/PKCS5Padding"规则,所以对应的C#规则是"PaddingMode.PKCS7和CipherMode.CBC",使用CBC模式的话在C#下必须传入加密...

AES五种加密模式(CBC、ECB、CTR、OCF、CFB)

                          --转载https://www.cnblogs.com/starwolf/p/3365834.html https://www.freebuf.com/column/171939.html 分组密码有五种工作体制:1.电码本模式(ElectronicCodebookBook(ECB));2.密码分组链接模...

使用 openssl 生成证书

转自:http://www.cnblogs.com/littleatp/p/5878763.html使用 openssl 生成证书  一、openssl 简介 openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用、健壮、功能完备的工具套件,用以支持SSL/TLS 协议的实现。官网:https://www.openssl.org/sourc...

在java项目中使用AES256 CBC加密

首先要注意一点,默认的JDK是不支持256位加密的,需要到Oracle官网下载加密增强文件(Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8),否则编译会报错: java.security.InvalidKeyException: Illegal...

Matlab并行编程方法1

相信很多朋友在利用matlab进行计算时,会遇到循环次数过大,或者是单次计算量过大的问题,比如需要计算的数值阵列数据量过大,利用传统的编程方式,跑一次程序几个小时,都要等的急死了是不是呢?如果遇到这种情况,则可以尝试一下MATLAB并行计算,传统的计算方式都是串行计算。并行计算之所以可行,取决于两方面因素:a)现在大家的计算机是多核的,至少也是双核了吧,有...