AES 加密算法小结

简介: AES 加密算法小结

       AES 相对来说是一个比较重要的加密算法,应该去好好的了解一下,毕竟在对称加密中它的地位还是很高的。


       今天又把 AES 加密算法又过了一遍,具体来看 AES 加密算法学了有 4 5 次。今天算是把 AES 加密算法学完了,整个的加密过程算是有一个大概的了解了,解密过程也大概了解了一下,它不像 DES 属于对合运算,它需要把加密中每个过程求逆。


      AES 的加密过程着实要比 DES 难了许多,单单从数学方面就已经可以感觉到了。比如 AES 中涉及到了乘法逆元的计算、多项式的计算、矩阵的计算等。其实,这几个数学步骤如果能够快速的掌握的话,那么整个 AES 的理解就会轻松许多,我就是在数学方面花的时间多一些。


       除了数学方面的话,整个流程大致分为那么几个步骤:

      明文和密钥生成状态字,然后进行 S 盒变换、行移位变换、列混合变换、轮密钥加变换、以及子密钥的生成几个步骤。


      简单的描述一下这几个步骤:

      生成状态字,因为 AES 是分组加密算法,明文有固定的分组长度,密钥也有三种不同的长度,分别是 128192 256 三种。按照 4 个字节为一列,按列存储生成状态字。


       S 盒变换,S 盒变换是整个 AES 加密算法中唯一一处非线性变换,将 8 位的输入经过变换后产生 8 位的输出,由于分组长度为 128 位,因此 AES 16 S 盒,而这 16 S 盒是完全相同的(DES 加密算法在进行 S 盒时,是 6 位的输入经过变换后产生 4 位的输出,共有 8 S 盒,且 8 S 盒各不相同)。S 盒可以通过查表进行完成,这个方式简单直观,也可以通过具体的数学变换进行完成,首先对输入的值求 GF(2^8) 的逆元,然后与一个固定的常量矩阵相乘后,再与一个 8 位的常量进行模二加计算(红字部分被称作仿射映射)。其实用这个过程把 GF(2^8) 有限域中的值计算一遍,就得到了第一种查表方法中的那张表。


       扩散层分为两步,分别是行移位和列混合(或者也成为列混淆)。

      行移位,按照将 S 盒变换后的状态字进行移位,这步相对简单,只要知道矩阵每行进行循环移位的位数即可。

       列混合,与一个固定的 4 * 4 的矩阵相乘,这里又是计算一个线性代数的东西,掌握方法就能计算了。


       子密钥生成,子密钥的生成这个步骤还需要抽空进一步熟悉一下。按照密钥的长度不同,加密的轮数是不同的。在 128 位长度密钥下,轮数一共有 10 轮,但是明文在进行第一轮运算变换前,会先与子密钥进行一次计算,因此一共需要生成 11 个子密钥。这点也是和 DES 有区别的地方,DES 进行 IP 置换时,是没有密钥参与计算的。子密钥的产生,除了第一个子密钥外,其余的密钥都是进行计算得到的,其中的计算涉及到 S 盒、移位、与每轮的轮系数进行模二加等。


       整个过程算是自己一边回忆一边写的,其中可能有不对的地方,尤其是在子密钥的描述中肯定会不准确。不过整个 AES 加密算法算是能把大体的流程串下来了,再经过简单的一些印象上的加深,应该对 AES 加密算法就算是入门了。

相关文章
|
18天前
|
存储 安全 数据安全/隐私保护
解锁Python安全新姿势!AES加密:让你的数据穿上防弹衣,无惧黑客窥探?
【8月更文挑战第1天】在数字化时代,确保数据安全至关重要。AES(高级加密标准)作为一种强大的对称密钥加密算法,能有效保护数据免遭非法获取。AES支持128/192/256位密钥,通过多轮复杂的加密过程提高安全性。在Python中,利用`pycryptodome`库可轻松实现AES加密:生成密钥、定义IV,使用CBC模式进行加密与解密。需要注意的是,要妥善管理密钥并确保每次加密使用不同的IV。掌握AES加密技术,为数据安全提供坚实保障。
40 2
|
7天前
|
算法 JavaScript 前端开发
对称加密算法解析:DES、AES及其在`pycryptodome` 和 `crypto-js` 模块中的应用
对称加密算法解析:DES、AES及其在`pycryptodome` 和 `crypto-js` 模块中的应用
22 1
|
16天前
|
存储 安全 数据库
双重防护,无懈可击!Python AES+RSA加密方案,构建最强数据安全堡垒
【8月更文挑战第3天】在数字时代,数据安全至关重要。Python AES+RSA加密方案提供了一种强大且可靠的数据保护方式。AES以高效安全著称,适用于大量数据的快速加密;RSA作为非对称加密技术,确保了密钥传输的安全性。二者结合形成“内外兼修”的加密策略:AES加密数据内容,RSA保护AES密钥,共同构建起数据安全的双重保险。通过示例代码展示了这一加密流程,强调了加密后密钥与密文的安全传输和存储的重要性。在实际应用中,应采用HTTPS等安全协议进行传输,并将数据安全存储于加密的数据库或文件系统中。
44 12
|
17天前
|
安全 数据安全/隐私保护 Python
|
16天前
|
存储 安全 数据安全/隐私保护
打造安全防线!Python AES&RSA加密工具,黑客绕道走的秘籍
【8月更文挑战第3天】数字化时代下,信息安全至关重要。本文介绍如何用Python结合AES与RSA构建加密工具。AES因其高效加密大量数据的能力而被选中;RSA作为非对称加密算法,在密钥管理和数字签名上表现出色。先安装`pycryptodome`库,接着实现AES加密解密功能,并利用RSA加密AES密钥以安全传递。这套方案不仅速度快,还能有效保障数据安全,为开发者提供坚实的信息防护屏障。
26 5
|
17天前
|
存储 安全 数据安全/隐私保护
安全升级!Python AES加密实战,为你的代码加上一层神秘保护罩
【8月更文挑战第2天】数据安全至关重要,AES加密作为对称加密的标准之一,因其高效性与灵活性被广泛采用。本文通过实战演示Python中AES的应用,使用pycryptodome库进行安装及加密操作。示例代码展示了生成随机密钥与初始化向量(IV)、对数据进行加密及解密的过程。注意事项包括密钥管理和IV的随机性,以及加密模式的选择。掌握AES加密能有效保护敏感数据,确保信息安全无虞。
28 6
|
17天前
|
安全 算法 数据安全/隐私保护
深度揭秘!Python加密技术的背后,AES与RSA如何守护你的数据安全
【8月更文挑战第2天】随着数字化进程的加速,数据安全变得至关重要。Python作为强大的编程工具,在数据加密中扮演关键角色。AES(高级加密标准)是对称加密的经典案例,以其高效安全的特点广泛应用于数据加密;通过PyCryptodome库可轻松实现AES加密。另一方面,RSA作为一种非对称加密算法,利用公钥加密、私钥解密的方式确保数据完整性及身份验证,适用于密钥交换和数字签名等场景。在实际应用中,AES与RSA经常协同工作:RSA加密AES密钥,AES加密数据内容,形成高效且安全的混合加密方案。未来,AES与RSA将继续在数据安全领域发挥重要作用。
31 5
|
18天前
|
安全 算法 数据安全/隐私保护
黑客克星!Python加密艺术大公开,AES、RSA双剑合璧,守护你的数字世界
【8月更文挑战第1天】在数据泛滥的时代,Python以强大的加密技术保护数字安全。AES以其高效安全特性在加密领域独树一帜,能将敏感信息转化为难以破解的乱码。通过`pycryptodome`库可轻松实现AES加密。然而,AES密钥的安全分发成为难题,这时RSA非对称加密大显身手。RSA结合公钥加密与私钥解密,确保密钥传输安全。Python结合AES与RSA,编织出坚不可摧的防护网,共同守护数字世界的安宁。
15 1
|
27天前
|
搜索推荐 安全 网络安全
AES 加密解密技术原理模式和实践
AES (Advanced Encryption Standard), aka Rijndael, is a symmetric encryption algorithm offering high security and speed over DES.
|
7天前
|
JavaScript 前端开发 安全
VUE——APP,后端,前端三端AES加密解密
VUE——APP,后端,前端三端AES加密解密
17 0