AES加密模式总结

目录

1. ECB模式(Electronic Code Book Mode)

2. CBC模式(Cipher Block Chaining Mode)

3. CFB模式(Cipher Feedback Mode)

4. OFB模式(Output Feedback Mode)

5. CTR模式(Counter Mode)

6. PCBC模式(Propagating Cipher Block Chaining Mode)


AES,即Advanced Encryption Standard,高级加密标准,又称Rijndael加密法,是对称加密算法中最流行的一种。AES的区块长度固定为128位,密钥长度则可以是128,192或256位。

AES加密过程是在一个4×4的字节矩阵上运作,这个矩阵又称为“体(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个字节)。加密时,各轮AES加密循环(除最后一轮外)均包含4个步骤:AddRoundKey、SubBytes、ShiftRows、MixColumns。波士顿大学的Howard Straubing做了一个动画来展示AES加密算法的演示,非常的直观,相信看完之后就会对AES加密过程有大概的了解了,地址是:http://coolshell.cn/wp-content/uploads/2010/10/rijndael_ingles2004.swf,可以用FLASH播放器或者网页直接打开,如果提示Flash版本过低,可以按提示安装Flash大厅进行播放。

早在1981 年,DES 算法公布之后,NIST 在标准文献 FIPS 81中公布了 4 种工作模式:

  1. 电子密码本:Electronic Code Book Mode (ECB)

  2. 密码分组链接:Cipher Block Chaining Mode (CBC)

  3. 密文反馈:Cipher Feedback Mode (CFB)

  4. 输出反馈:Output Feedback Mode (OFB)

后面又新增了一些工作模式:

  1. 计数器模式:Counter Mode (CTR)

  2. 填充密码分组链接:Propagating Cipher Block Chaining Mode(PCBC)

ECB模式和CBC模式是最常用的两种模式,其他的模式稍作了解即可。

需要块对对齐(填充)的AES加密模式:ECB、CBC、PCBC,其余模式无需块对齐。

需要初始向量的AES加密模式:除ECB模式外,都需要初始向量。

1. ECB模式(Electronic Code Book Mode)

ECB模式是最早采用和最简单的模式,它将加密的数据分成若干组,每组的大小跟加密密钥长度相同,然后每组都用相同的密钥进行加密。

优点:有利于并行计算;误差不会累计(互不干扰)。

缺点:可能对明文进行主动攻击。

 

2. CBC模式(Cipher Block Chaining Mode)

CBC模式对于每个待加密的密码块,在加密前会先与前一个密码块的密文异或然后再用加密器加密(图中的圆圈十字符号表示异或操作,下同)。第一个明文块与一个叫初始化向量的数据块异或。加、解密双方共同知晓密钥和初始化向量才能实现加解密。

优点:安全性比ECB模式高;是SSL的标准。

缺点:数据块之间的加密有依赖关系,因此不能并行计算。

3. CFB模式(Cipher Feedback Mode)

CFB 模式是用分组算法实现流算法,明文数据不需要按分组大小对齐。

优点:明文数据不需要按分组大小对其,即无需填充。

缺点:同CBC模式,无法并行计算。

4. OFB模式(Output Feedback Mode)

OFB 模式的过程和CBC模式有点像,但明文数据不需要按分组大小对齐。

优点:明文数据不需要按分组大小对其,即无需填充。

缺点:同CBC模式,无法并行计算。

5. CTR模式(Counter Mode)

CTR模式是在ECB模式的基础上,引入了Nonce随机数和Counter计数器,Nounce随机数和Counter计数器整体可看作计数器,每加密一段明文,计数器向上加一,并且这个计数器都会和初始IV进行连接、加加、异或等运算,然后使用加密器进行加密,最后在和明文异或得到分段密文。

优点:明文数据不需要按分组大小对其,即无需填充。

缺点:加密方和解密方需要同时维护初始IV、Nonce、Counter。

6. PCBC模式(Propagating Cipher Block Chaining Mode)

PCBC模式是CBC模式的改进版,与CBC模式的不同点在于,CBC模式后段明文加密的所需向量是前一段的密文,而PCBC模式后段明文加密所需的向量是前一段明文和密文的异或值。

优点:同CBC模式。

缺点:同CBC模式。

  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
AES加密解密 for VBA可以在VBA中使用AES加密算法对数据进行加密和解密。引用中提到了一些参数,其中包括预备转换的byte、16位的密钥、16位的偏移以及加密或解密的选项。 在VBA中可以使用AES加密算法来加密和解密数据。对称加密技术与非对称加密技术不同的是,AES是一种对称加密算法,意味着加密和解密使用相同的密钥。而非对称加密算法如RSA使用不同的密钥来进行加密和解密。引用提到了Java中使用AES的对称加密和RSA的非对称加密。 由于老系统框架较旧,新的模块采用springboot开发。但是页面需要挂载在老系统上,可以使用iframe将子系统页面嵌入到老系统页面中进行展示。引用提到了这种通过iframe挂载子系统的方式。 因此,你可以在VBA中使用AES加密算法来进行加密和解密操作,并将子系统页面通过iframe嵌入到老系统页面中进行展示。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [AES加密解密 for vba](https://download.csdn.net/download/u013084748/85066084)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Java对称与非对称加密解密(AES与RSA)](https://download.csdn.net/download/qq_37647812/88229783)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [AES加密算法、热部署实战总结](https://blog.csdn.net/cf082430/article/details/115598090)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Dokin丶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值