AES-CBC加密

AES加密

来由

  AES加密算法即密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。

CBC原理

  明文跟向量异或,再用KEY进行加密,结果作为下个BLOCK的初始化向量。解密原理:使用密钥先对密文解密,解密后再同初始向量异或得到明文。
CBC需要对明文块大小进行Padding(补位),由于前后加密的相关性,只能实施串行化动作,无法并行运算。另外,CBC需要参量:密钥和初始化向量。

密钥扩展(Key Expansion)

  为了防止已有的密码分析攻击,使用了与轮相关的轮常量(Rcon[j],是一个字,这个字的右边三个字节总为防止不同轮中产生的轮密钥的对称性或相似性。在加密和解密算法使用了一个由种子密钥字节数组生成的密钥调度表,规范中称之为密钥扩展例。密钥扩展例程从一个原始密钥中生成多重密钥以代替使用单个密钥大大增加了比特位的扩散,在密钥扩展算法的输入值是字密钥,输出是一个字的一一维线性数组。这足以为初始轮密钥扩展例程阶段和算法中的其他轮中的每一轮提供16字节的轮密钥。
  通过生成器产生 Nr+1 轮轮密钥,每个轮密钥由 Nk 个字组成,共有 Nk(Nr+1) 个字 W[i]i=01 Nk(Nr+1)1
  在加密过程中,需要 Nr+1

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值