吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 3746|回复: 83

[安卓逆向图文] AES加密算法

  [复制链接]
1122cf 发表于 2020-11-27 15:00 | 显示全部楼层 |阅读模式

1、AES简介


AES(Advanced Encryption Standard),全称:高级加密标准,是一种最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。

2、AES具体的加密流程介绍:

图片11.png

1)明文P:没有经过加密的数据。

2)密钥K:
用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。密钥为接收方与发送方协商产生,但不可以直接在网络上传输,否则会导致密钥泄漏,通常是通过非对称加密算法加密密钥,然后再通过网络传输给对方,或者直接面对面商量密钥。密钥是绝对不可以泄漏的,否则会被攻击者还原密文,窃取机密数据。

3)AES加密函数
经加密函数处理后的数据

4)AES解密函数
设AES解密函数为D,则 P = D(K, C),其中C为密文,K为密钥,P为明文。也就是说,把密文C和密钥K作为解密函数的参数输入,则解密函数会输出明文P。       


3、对称加密算法与非对称加密算法的区别:

1)对称加密算法
加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合。缺点是密钥的传输比较麻烦。

2)非对称加密算法
加密和解密用的密钥是不同的,这种加密方式是用数学上的难解问题构造的,通常加密解密的速度比较慢,适合偶尔发送数据的场合。优点是密钥传输方便。常见的非对称加密算法为RSA、ECC和EIGamal。

实际中,一般是通过RSA加密AES的密钥,传输到接收方,接收方解密得到AES密钥,然后发送方和接收方用AES密钥来通信。


4、AES的基本结构


AES为分组密码,分组密码也就是把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文。在AES标准规范中,分组长度只能是128位,也就是说,每个分组为16个字节(每个字节8位)。密钥的长度可以使用128位、192位或256位。

5、AES128的实现原理


AES-128,也就是密钥的长度为128位,加密轮数为10轮。AES的加密公式为C = E(K,P),在加密函数E中,会执行一个轮函数,并且执行10次这个轮函数,这个轮函数的前9次执行的操作是一样的,只有第10次有所不同。也就是说,一个明文分组会被加密10轮。AES的核心就是实现一轮中的所有操作。

AES的处理单位是字节,128位的输入明文分组P和输入密钥K都被分成16个字节,分别记为P = P0 P1 … P15 和 K = K0 K1 … K15。如,明文分组为P = abcdefghijklmnop,其中的字符a对应P0,p对应P15。

一般地,明文分组用字节为单位的正方形矩阵描述,称为状态矩阵。在算法的每一轮中,状态矩阵的内容不断发生变化,最后的结果作为密文输出。该矩阵中字节的排列顺序为从上到下、从左至右依次排列,如下图所示:

图片12.png

现在假设明文分组P为”abcdefghijklmnop”,则对应上面生成的状态矩阵图如下:

图片13.png

类似地,128位密钥也是用字节为单位的矩阵表示,矩阵的每一列被称为1个32位比特字(一个单元格是8位,4个单元格32位)。

通过密钥编排函数该密钥矩阵被扩展成一个44个字组成的序列W[0],W[1], …

W[43],该序列的前4个元素W[0],W[1],W[2],W[3]是原始密钥,用于加密运算        中的        初始密钥加(下面介绍);后面40个字分为10组,每组4个字(4*32=128比特)分别用于10轮加密运算中的轮密钥加,如下图所示:

图片14.png

上图中,设明文K = “abcdefghijklmnop”,则K0 = a, K15 = p, W[0] = K0 K1 K2 K3 = “abcd”。

AES的整体结构如下图所示,其中的W[0,3]是指W[0]、W[1]、W[2]和W[3]串联组成的128位密钥。加密的第1轮到第9轮的轮函数一样,包括4个操作:字节代换、行位移、列混合和轮密钥加。最后一轮迭代不执行列混合。另外,在第一轮迭代之前,先将明文和原始密钥进行一次异或加密操作。


图片15.png

上图也展示了AES解密过程(左边为加密,右边逆为解密),解密过程仍为10轮,每一轮的操作是加密操作的逆操作。由于AES的4个轮操作都是可逆的,因此,解密操作的一轮就是顺序执行逆行移位、逆字节代换、轮密钥加和逆列混合。同加密操作类似,最后一轮不执行逆列混合,在第1轮解密之前,要执行1次密钥加操作。

AES中一轮的4个操作:

1)字节代换
a)字节代换操作
AES的字节代换其实就是一个简单的查表操作。AES定义了                一个S盒和一个逆S盒
b)字节代换逆操作
逆字节代换也就是查逆S盒来变换;

2)行移位
a)行移位操作
行移位是一个简单的左循环移位操作
B)行移位的逆变换
行移位的逆变换是将状态矩阵中的每一行执行相反的移位操作

3)列混合
a)列混合操作
混合变换是通过矩阵相乘来实现的,经行移位后的状态矩阵与        固定的矩阵相乘,得到淆后的状态矩阵
b)列混合逆运算
逆变换矩阵同正变换矩阵的乘积恰好为单位矩阵

4)轮密钥加
轮密钥加是将128位轮密钥Ki同状态矩阵中的数据进行逐位异或操作。

6、在eclipse中分析AES算法


1)在这里中分析这几个方法:
Initkey:生成密钥
Encrypt:加密数据
Decrypt:解密数据

图片16.png

2、分析AES类的java代码
涉及到的几个几个重要的方法:
getInstance:实例化所需算法
generateKey:生成秘密密钥
getEncoded:获取二进制密钥编码形式
SecretKeySpec:实例化密钥材料


小结
1、介绍AES相关的算法以及实现原理。
2、在eclipse中分析了AES算法的代码。

评分

参与人数 23HB +42 THX +11 收起 理由
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
459121520 + 1
yexing + 1
消逝的过去 + 2
冷亦飞 + 1
l278785481 + 1
liugu0hai + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
ldljlzw + 1
hysmy17 + 1 + 1
dujinshanD + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
三月十六 + 1
playboy + 2
我是好人 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
飞隆 + 1
瀧tz + 2
小猪呼噜噜 + 2 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
Rogue + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
Jrhaoge + 1 + 1
拿着雪糕 + 1 + 1
king51999 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
Reg123 + 1 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
leo_lei + 1 + 1 [快捷评语]--你将受到所有人的崇拜!
Shark恒 + 20 + 1 [快捷评语]--你将受到所有人的崇拜!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
leo_lei 发表于 2020-11-29 08:35 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
KsWeb点Cc 发表于 2020-12-15 09:06 | 显示全部楼层


我来学习了。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
kanxue2018 发表于 2020-12-15 09:07 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
拿着雪糕 发表于 2022-1-29 14:30 | 显示全部楼层

学习大佬经验
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
皮卡哼 发表于 2022-1-29 18:07 | 显示全部楼层

还是得把原理搞熟,搞透,要不然总感觉哪里不对。又说不上来
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
EMT 发表于 2022-1-29 22:18 | 显示全部楼层

谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Rogue 发表于 2022-2-9 03:30 | 显示全部楼层

谢谢分享 都是技术大佬
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
ALNHRvIO6270 发表于 2022-2-26 06:30 | 显示全部楼层

谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
nNDtsS316 发表于 2022-2-26 08:22 | 显示全部楼层

感谢楼主
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表