算法之AES加密算法简介

加密算法:双向加密和单项加密。
单向加密包括MD5、SHA等摘要算法,它们是不可逆的。
双向加密包括对称加密和非对称加密,对称加密包括AES加密、DES加密等。
双向加密是可逆的,存在密文的密钥。
AES算法是DES算法的替代者,也是现在最流行的加密算法之一。

AES支持三种长度的密钥:128位、192位、256位

AES加密算法原理

1、密钥

密钥是AES算法实现加密和解密的根本。对称加密算法之所以对称,是因为这类算法对明文的加密和解密需要使用同一个密钥

2、填充

前提:理解AES的分组加密特性,把明文拆分成很多块,每块有(128、192、256)三种规格,最后一块如果不够则填充,填充的最后一个数为填充数。
填充也有三种填充方式:① NoPadding ② PKCS5Padding (默认) ③ ISO10126Padding
e.g.
NoPadding:
不做任何填充,但是要求明文必须是16字节的整数倍。

PKCS5Padding(默认):
如果明文块少于16个字节(128bit),在明文块末尾补足相应数量的字符,且 每个字节的值等于缺少的字符数
比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6个字节,则补全为{1,2,3,4,5,a,b,c,d,e,6,6,6,6,6,6}

ISO10126Padding:
如果明文块少于16个字节(128bit),在明文块末尾补足相应数量的字节,最后一个字符值等于缺少的字符数,其他字符填充随机数
比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6个字节,则可能补全为{1,2,3,4,5,a,b,c,d,e,5,c,3,G,$,6}

3、AES算法加密流程

4种加密操作:① 字节代替 ② 行移位 ③ 列混淆 ④ 轮密钥加
四种模式(ECB、CBC、CFB、OFB)

1)解密算法的每一步分别对应加密算法的逆操作;
2)加解密所有操作的顺序正好是相反的。
正是由于这几点(再加上加密算法与解密算法每步的操作互逆)保证了算法的正确性。
加解密中每轮的密钥分别由种子密钥经过密钥扩展算法得到。

参考链接:
1:
https://zhuanlan.zhihu.com/p/562256846
2:
https://zhuanlan.zhihu.com/p/131324301
3:社区
https://bbs.csdn.net/topics/230020295

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值