AES算法

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: AES算法

文章目录



AES的由来


前面一篇文章我们讲到了DES算法。鉴于DES可以被破解和加密效率不高的缺陷。美国的NIST(National Institute of Standards and Technology,国家标准技术研究所)在2000年通过选拔,从多个候选算法中确认了Rijndael算法为最新的AES算法,成为联邦信息处理标准(FIPS)。


什么是Rijndael


Rijndael是由比利时密码学家Joan Daemen和Vincent Rijmen设计的分组密码算法。它在2000年被当选为AES算法。


注意,虽然AES是一种密码强度很高的对称密码算法,但是如果需要商用的话要向NIST支付授权费用。


Rijndael的原理


跟DES一样,Rijndael也是由多轮运算组成的。其中每一轮都包括:SubBytes,ShiftRows,MixColumns和AddRoundKey这四个步骤。


下面我们分别来讲一下各个步骤的作用。


SubBytes


在AES的规范中,Rijindael的分组长度固定为128bits,密钥长度有128,192和256bits三种。


128bits就是16字节。一个字节可以表示0-255的任意值。而SubBytes就是根据其值在一个拥有256个值的替换表中查找出对应的值进行处理。


为了便于理解,大家可以将其看成是简单的替换。


image.png


ShiftRows


SubBytes 之后,我们就可以进行shiftRows的操作了。


由于我们的源字节是16bytes,可以将其看成4*4 的一个矩阵。


ShiftRows就是将一行4字节按照一定的规则向左平移,现在有4行,每一行的平移字节数是不同的。


MixColumns


ShiftRows之后就是MixColumns,MixColumns是在4字节的列上面进行一定的运算,将其变为另外的4字节列。


AddRoundKey


最后将生产的字节和密钥进行XOR运算,最后生产结果。通常需要重复进行10-14轮运算。


Rijndael的特点


  1. 输入的所有bits都会在一轮里面被加密。同DES相比,AES的加密效率更加高效。


  1. Rijndael 加密过程为:SubBytes->shiftRows->MixColumns->AddRoundKey , 解密的时候需要按照相反的流程来进行:AddRoundKey->MixColumns->shiftRows->SubBytes。 注意,除了AddRoundKey是XOR运算不需要逆运算之外,其他的步骤都需要进行逆运算。


相关文章
|
9月前
|
算法 Java
Java使用Cipher.getInstance(“AES/ECB/PKCS5Padding“);加解密算法工具类实现
Java使用Cipher.getInstance(“AES/ECB/PKCS5Padding“);加解密算法工具类实现
727 0
|
3月前
|
存储 安全 算法
AES算法
【10月更文挑战第30天】AES算法
179 2
|
4月前
|
安全 测试技术 Go
Python 和 Go 实现 AES 加密算法的技术详解
Python 和 Go 实现 AES 加密算法的技术详解
199 0
|
6月前
|
算法 JavaScript 前端开发
对称加密算法解析:DES、AES及其在`pycryptodome` 和 `crypto-js` 模块中的应用
对称加密算法解析:DES、AES及其在`pycryptodome` 和 `crypto-js` 模块中的应用
261 1
|
7月前
|
算法 安全 搜索推荐
AES(Advanced Encryption Standard)是一种广泛使用的对称密钥加密算法,由美国国家标准技术研究所(NIST)制定。
AES(Advanced Encryption Standard)是一种广泛使用的对称密钥加密算法,由美国国家标准技术研究所(NIST)制定。
|
7月前
|
算法 安全 网络安全
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法
|
8月前
|
算法 安全 Java
AES加解密算法:原理、应用与安全性解析
AES加解密算法:原理、应用与安全性解析
|
9月前
|
算法 安全 数据安全/隐私保护
AES算法逆向实战--某思路
本文是关于AES加密算法的逆向分析实战。通过跟栈方式找出加密位置,发现在`jslencode`函数中完成账号和密码加密。使用CryptoJS库,示例代码展示了如何用AES进行加密,其中`397151C04723421F`作为key,加密手机号和密码,并打印结果。
166 1
|
9月前
|
安全 算法 数据库
MD5、SHA、DES、AES、RSA的算法说明
【5月更文挑战第10天】MD5、SHA、DES、AES、RSA的算法说明
438 2
|
9月前
|
算法
AES算法
AES算法
77 0

热门文章

最新文章