预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共17页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一般的加密通常都是块加密,如果要加密超过块大小的HYPERLINK"javascript:;"数据,就需要涉及填充和链加密HYPERLINK"javascript:;"模式,文中提到的HYPERLINK"javascript:;"ECB和HYPERLINK"javascript:;"CBC等就是指链加密模式。在C#组件中实现的很多算法和Java都不太兼容,至少我发现RSA和AES/ECB是如此。研究了AES/ECB时发现了这篇文档,图还画的不错,先记下。注意,还缺一种CTR的模式。 对称加密和分组加密中的四种模式(ECB、CBC、HYPERLINK"javascript:;"CFB、HYPERLINK"javascript:;"OFB) 一.AES对称加密: AES加密分组 二.分组密码的填充 分组密码的填充 e.g.:PKCS#5填充方式 三.流密码: 四.分组密码加密中的四种模式: 3.1ECB模式 优点: 1.简单; 2.有利于并行计算; 3.误差不会被传送; 缺点: 1.不能隐藏明文的模式; 2.可能对明文进行主动攻击; 3.2CBC模式: 优点: 1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL、IPSec的标准。 缺点: 1.不利于并行计算; 2.误差传递; 3.需要初始化向量IV 3.3CFB模式: 优点: 1.隐藏了明文模式; 2.分组密码转化为流模式; 3.可以及时加密传送小于分组的数据; 缺点: 1.不利于并行计算; 2.误差传送:一个明文单元损坏影响多个单元; 3.唯一的IV; 3.4OFB模式: 优点: 1.隐藏了明文模式; 2.分组密码转化为流模式; 3.可以及时加密传送小于分组的数据; 缺点: 1.不利于并行计算; 2.对明文的主动攻击是可能的; 3.误差传送:一个明文单元损坏影响多个单元; TAG:HYPERLINK"http://www.getstars.net/?action-tag-tagname-??"模式HYPERLINK"http://www.getstars.net/?action-tag-tagname-ECB"ECBHYPERLINK"http://www.getstars.net/?action-tag-tagname-CBC"CBCHYPERLINK"http://www.getstars.net/?action-tag-tagname-CFB"CFBHYPERLINK"http://www.getstars.net/?action-tag-tagname-OFB"OFB 关于AES算法JAVA同C++互解(AES)收藏 关于加解密JAVA一般使用的JCE,关于C++可以实现AES加解密的开源项目就多的数不胜数的。 理论上上算法一样,对称密钥一样就能够互相识别了。 相信很多人开始想法都同我一样,起初我JAVA用JCE,C++使用openssl。 结果发现加密出的密文完全不相同。 出现问题就要解决 了解了一下JCE: JCE中AES支持五中模式:CBC,CFB,ECB,OFB,PCBC;支持三种填充:NoPadding,PKCS5Padding,ISO10126Padding。不支持SSL3Padding。不支持“NONE”模式。 好原来有模式和填充一说。 在OPENSSL中直接有一个CBC加解密函数。填充没找到,试过后发现C++加密出的内容比JAVA的要长出一截,前面的内容是完全一样的。 这应该就出现在填充上。 本来以为找到问题关键就应该很容易解决的。结果发现OPENSSL的填充是固定实现的,而我所需要解密的java端代码不能改动。 一条路走不通咱就换条路。最后发现有一个开源项目Botan什么都有而且同JCE十分相似并且满足我要求垮平台,好就是它了。 附: 算法/模式/填充16字节加密后数据长度不满16字节加密后长度 AES/CBC/NoPadding16不支持 AES/CBC/PKCS5Padding3216 AES/CBC/ISO10126Padding3216 AES/CFB/NoPadding16原始数据长度 AES/CFB/PKCS5Padding3216 AES/CFB/ISO10126Padding3216 AES/ECB/NoPadding16不支持 AES/ECB/PKCS5Padding3216 AES/ECB/ISO10126Padding3216 AES/OFB/NoPadding16原始数据长度 AES/OFB/PKCS5Padding3216 AES/OFB/ISO10126Padding3216 AE