【AES】简单说说什么是AES加密

希望文章能给到你启发和灵感~
如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏 支持一下博主吧~

开篇说明

加密中,我们常常会见到AES加密,那么什么是AES加密呢?在回答这个之前我们需要知道什么是对称加密算法;

在这里插入图片描述

一、基础环境说明

考虑环境因素,大家适当的对比自己的软硬件环境情况分析~请仔细阅读硬件、软件环境

1.1 硬件环境

MacOS Monterey 版本 12.6.8 Apple M1

1.2 软件环境

开发工具:Android Studio 2021.2.1
编译环境:Java 1.8.0_171, Android SDK 的版本为 32

二、AES的基本概念

2.1 对称加密算法

官方一点的说明:AES加密,全称为Advanced Encryption Standard,即高级加密标准,是一种广泛使用的对称加密算法

什么是对称加密算法?
对称加密算法是一种使用相同密钥进行加密和解密的加密技术

2.2 工作原理

加密过程:发送方使用密钥对明文(原始数据)进行加密处理,将其转换为难以直接阅读的密文形式。加密过程通常涉及将明文划分为固定长度的块,并通过密钥和加密算法将这些块转换成对应的密文块;

解密过程: 接收方收到密文后,使用相同的密钥和解密算法对密文进行解密处理,以恢复出原始的明文数据。解密过程与加密过程相反,将密文块还原为明文块。

2.3 优点

速度快、实现简单、 资源消耗少

对称加密算法通常具有较高的加密和解密速度,算法实现相对简单,易于实现。对系统性能影响小,适合大量数据的处理。

2.4 缺点

他的缺点也比较明显,因为使用的是同一套密钥来进行加解密,所以密钥保管分发的安全性就值得注意,一旦泄漏就不再安全;
对称加密算法需要事先共享密钥,因此不适用于互联网等开放环境。在开放环境中,密钥的交换和分发存在被截获的风险;

三、AES的特点

因为AES是对称加密算法的一种,所以除了继承了其对称加密,高安全性,易于实现的特点外,还支持多种密钥长度,并可进行分组加密

多种密钥长度:AES支持三种不同长度的密钥,分别是128位192位256位。密钥长度越长,加密强度越高,但也会增加加密和解密的计算复杂性。

分组加密:AES是一种分组密码算法,将明文数据分成固定大小(128位,即16字节)的数据块进行处理。

3.1 工作流程

AES加密算法的加密过程可以简单的概括成几个步骤:

1、密钥扩展:将输入的密钥(128位、192位或256位)通过密钥扩展算法扩展成多个轮密钥,这些轮密钥将在后续的加密轮次中使用。

2、初始轮密钥加:将明文数据块与第一个轮密钥进行异或(XOR)操作。

3、多轮加密:重复进行多轮加密操作,每轮操作包括字节替换、行移位、列混淆(除最后一轮外)和轮密钥加四个步骤。这些步骤的组合使得AES算法能够有效地混淆和扩散输入数据,生成难以破解的密文。

4、输出密文:经过多轮加密后,输出加密后的密文数据块。

5、解密过程是加密过程的逆操作,通过相反的顺序执行逆操作来还原原始数据。

四、最后

以上的内容偏理论,可能看完我们还是会一头雾水,什么又密钥长度,128,256的,又什么轮密钥什么的;这里我用更直白一点的解释来说一下,大家比较常常有疑问的点:

一、【问】AES的三种密钥长度有啥用,为什么要有多种密钥长度?
【答】这里我们可以简单的理解为,密钥长度越长,我们的加密结果就会越安全,所谓的长度分为128,192,256位这些,他其实代表着二进制位数的序列,你的值越大,意味着你的排列组合的结果就越多,我们的加密自然就安全,而为什么是这三个数,我们只需要知道,这是长期计算和经验得出的标准即可;

二、【问】AES中为什么要用轮加密,加密的轮数就是对明文的重复加密的次数吗?
【答】轮加密的目的主要有两方面,一个是出于安全性,让我们的加密过程更难被破解,一个是出于提高加密效率,那什么是轮?所谓的一轮就是对明文进行一次复杂的变换的过程,变换包括(字节替换(SubBytes)、行移位(ShiftRows)、列混合等等),所以加密多少轮并不是简单的对明文进行多次加密,而是进行多次的复杂加密;

三、【问】为什么轮加密有10轮,12轮,14轮,为什么这么定?
【答】不同长度的密钥对应不同的加密轮数,如AES-128需要10轮,AES-192需要12轮,AES-256需要14轮,这个对应关系我们只要知道即可,至于为什么是这个轮数,我们只需要知道,这个值是同时参考了安全性和效率的综合角度,而找到的平衡点;因为你的加密轮数越高越安全,但是复杂度也越高效率就会降低;

四、【问】什么是分组加密?
【答】AES中的分组加密,你可以简单的理解为一个蛋糕(明文)太大了,我们会将它进行切开分成好几份相同的大小块(按固定大小分组),这样好消化(好处理)

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋刀prince

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值