AES加密算法详解
AES 是一个对称密码分组算法,分组长度为128bit,密钥长度为128、192 和 256 bit。
整个加密过程如下图所示。

1.密钥生成算法
密钥扩展过程:
1) 将种子密钥按下图所示的格式排列,然后每32bit分别记为w[0]、w[1]、w[2]、w[3];

2)依次取问w[5],w[6].......w[43],记为w[j]
若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]),否则w[j]=w[j-4]⊕w[j-1];
函数g的流程说明:
a) 将w循环左移8比特;
b) 分别对每个字节做S盒置换;
c) 与32比特的常量(RC[j/4],0,0,0)进行异或,RC是一个一维数组,RC = {0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1B}
2.字节替代(SubBytes)
将状态矩阵中的元素通过S盒映射为一个新的字节:把该字节的高4位作为行值,低4位作为列值,取出S盒对应的元素作为输出。
下图(a)为S盒,图(b)为S-1(S盒的逆)


S盒内部计算方法:
y=Ax-1+b
其中x*x-1=1mod(x8+x4+x3+x2+1),则x为输入元素,y为S盒输出元素。
3.行移位(ShiftRows)
将状态矩阵的第0行左移0字节,第1行左移1字节,第2行左移2字节,第3行左移3字节

4.列混合(MixColumns)

将每列的元素乘以一个行列式进行替换。
5.轮密钥加(AddRoundKey)

轮密钥加是将128位轮密钥Ki同状态矩阵中的数据进行逐位异或操作
AES加密算法详解的更多相关文章
- 对称加密之AES加密详解
		最近有人问我AES对称加密是啥,我回答了个大概,发现自己不能清晰的讲出来,特此记录,以供学习 一.对称加密 对称加密是最快速.最简单的一种加密方式,加密(encryption)与解密(decrypti ... 
- RSA加密算法详解(二)
		研究RSA 不知为何,这几天突然有些心烦.望苍茫大地,凭添几分忧伤,可能是下雨的缘故.本篇主要想详细介绍RSA加密算法的原理,经常听别人说,这里是自己想搞清楚,弄明白.首先介绍了基本的数学原理,然后给 ... 
- SKINNY加密算法详解(无代码,仅加密)
		原作者论文请参考<The SKINNY Family of Block Ciphers and Its Low-Latency Variant MANTIS> 地址为:https://li ... 
- RSA der加密 p12解密以及配合AES使用详解
		在前面的文章中我有说过AES和RSA这两种加密方式,正好在前段时间再项目中有使用到,在这里再把这两种加密方式综合在一起写一下,具体到他们的使用,以及RSA各种加密文件的生成. 一: RSA各种加密相关 ... 
- 密码学系列之:Argon2加密算法详解
		目录 简介 密钥推导函数key derivation function Password Hashing Competition Argon2算法 Argon2的输入参数 处理流程 简介 Argon2 ... 
- 数据加密算法--详解DES加密算法原理与实现
		DES算法简介 DES(Data Encryption Standard)是目前最为流行的加密算法之一.DES是对称的,也就是说它使用同一个密钥来加密和解密数据. DES还是一种分组加密算法,该算法每 ... 
- DES对称加密算法详解和c++代码实现(带样例和详细的中间数据)
		特点: 1.DES是对称性加密算法,即加密和解密是对称的,用的是同一个密钥 2.DES只处理二进制数据,所以需要将明文转换成为2进制数据 3.DES每次处理64位的数据,所以应该将明文切割成64位的分 ... 
- RSA加密算法详解(一)
		如果你问我,哪一种算法最重要? 我可能会回答"公钥加密算法". 因为它是计算机通信安全的基石,保证了加密数据不会被破解.你可以想象一下,信用卡交易被破解的后果. 进入正题之前,我先 ... 
- 密码学系列之:bcrypt加密算法详解
		目录 简介 bcrypt的工作原理 bcrypt算法实现 bcrypt hash的结构 hash的历史 简介 今天要给大家介绍的一种加密算法叫做bcrypt, bcrypt是由Niels Provos ... 
随机推荐
- Windows10配置JDK环境变量
			一. 系统和JDK版本 系统:Windows10 JDK版本:1.8 二. 配置步骤 1. 右键单击“我的电脑” >> 属性 >> 高级系统设置 2. 环境变量 3. 系统变量 ... 
- 工作经验-PLSQL连接远程数据库
			复制远程Oracle,tnsnames.ora 放到[D:\OneDrive\PLSQL\instantclient_11_2\network\admin] PLSQL->Tools > ... 
- VS Code保存使用项目Eslint规则格式化代码
			One.文件-首选项-设置-选择项目 Two.打开右上角JSON设置 Three. 插入以下代码 { "eslint.options& ... 
- golang包管理工具glide安装
			1:下载安装glide go get github.com/Masterminds/glide glide的源码以及exe文件在第一个gopath目录,如果不知道哪个是第一个gopath,echo一下 ... 
- vivado中如何使用chipscope
			如何使用chipscope 参考: https://www.cnblogs.com/liujinggang/p/9813863.html Xilinx FPGA开发实用教程---徐文波 田耘 1.Ch ... 
- linux 查看ip地址
			1.先要打开linux服务器,然后在linux桌面的空白处点击右键 2.在弹出的选项里,点击[打开终端] 3.打开linux服务器的命令终端后,输入查询linux的ip地址的命令:ifconfig - ... 
- 二、vue之 使用vscode配置
			vue之 使用vscode配置 visual studio code 简称vscode,下图为图标 ... 开启vscode ... 1.导入文件夹,选择菜单栏 文件-打开文件夹->选择相应已 ... 
- pyspider
			Linux系统我使用CentOS.对于pycurl安装问题比较好解决,只需要先安装对应的开发包即可.执行如下命令: yum install python-devel curl-devel 分别安装py ... 
- KVM 热迁移
			最终我们迁移的目的就是: ·简化系统维护管理 ·高系统负载均衡 ·增强系统错误容忍度 ·优化系统电源管理 热迁移 又叫动态迁移,实时迁移,即虚拟机保存( save )/恢复( restore ):将整 ... 
- jQuery-委托事件和on方法注册事件
			delegate注册委托事件 delegate--代理.委托 事件代理----事件最终不是由$("#first")执行,它只是代理元素 第一个参数:最终发生事件的元素 第二个参数: ... 
