freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

【技术分享】AES算法详解
2023-02-02 17:25:54
所属地 广东省

前言:

新年伊始,小星谨代表星云博创恭祝大家新年快乐!技术“兔”飞猛进!工作大展宏“兔”!

本期技术分享将与大家以“AES算法详解”为主题,共同探讨如何利用AES加密算法对ECB模式进行加解密。

AES加密算法是密码学中的高级加密标准。AES为分组加密法,把明文分成每组长度相等的一组一组;每次加密一组数据,直至整个明文被加密完毕。在AES标准规范中,分组长度只能是128位。AES是按照字节进行加密的,也就是说每个分组为16个字节(每个字节8位)。密钥的长度可以使用128位、192位或256位,但这会导致密钥长度不同,推荐加密的轮数也不同。

因为DES算法的不安全性,DES加密算法可以被破解。而3DES加密算法虽然还没有被破解,但是因其加解密效率低,所以基本上大家现在都会偏向使用AES算法。可以说,AES算法的提出就是为了替代DES算法。

1. 加密过程:最后一组“1轮最终轮(Final round)”中不存在右边的“3.列混合(MixColumns)”。

2. 初始变换:明文128位转换为16字节的矩阵如下,再与128位的秘钥(同理转换为16字节的矩阵)进行异或,得到第一次转换后结果。

初始变换的异或原理图片如下:

3. 开始9轮循环。

4. 字节代换,将初始变换后得到的数据在右边表格中进行代换。

变换后的结果如下:

5. 实施行移位操作。

行移位的结果如下:

6.实施列混合操作,左边矩阵为给定的矩阵。

举例如下:

7.轮秘钥加,对秘钥进行加操作。

代码参考:https://blog.csdn.net/chouzhou9701/article/details/122019967

总结

以上是针对ECB模式的加密解密,从例子中可以看出参数中存在限制:

1. 秘钥必须为16字节或者16字节的倍数的字节型数据。

2. 明文必须为16字节或者16字节的倍数的字节型数据,如果不足16字节,您需要对其进行补全。至于补全规则,后续在补全模式中会有具体介绍。

3. 其它参考:

3.1 通过CBC模式的示例。

3.2 AES相关赛题一 [ACTF新生赛2020]crypto-aes。

3.3 输出附件。

3.4 Wp:题目代码很简明,使用了一个密钥 Key和初始化向量IV,选择CBC模式进行加密的解题思路。

(1)解密flag,我们首先需要获取到 key 和 iv 的值,所需条件如下:

(2)由上述条件可知:key是32bytes,256bits;iv是16bytes,128bits。

(3)后续key的低128bits,与输出结果的低128bits相异或,所得的结果就是iv的值了。

(4)得到key,iv后直接aes.decrypt()解密即可。

# 网络安全 # AES
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者