【AES加密专题】1.AES的原理详解和加密过程

目录

一、什么是加密?

1.加密算法的定义和基本概念

2.对称加密算法

原理:

常见算法:

3.非对称加密算法

原理:

常见算法:

二、AES

[1.AES(advanced encryption standard 高级加密标准)介绍](#1.AES(advanced encryption standard 高级加密标准)介绍)

2.对称加密算法与非对称加密算法的区别

3.AES的基本结构

4.加密流程


一、什么是加密?

1.加密算法的定义和基本概念

加密算法是一种数学函数,用于将原始信息(明文)转换为密文,使得未经授权的用户难以理解信息的内容。这个过程需要一个密钥,密钥是一个控制加密和解密过程的参数。加密算法主要分为对称加密算法和非对称加密算法。

2.对称加密算法

原理:

对称加密算法使用相同的密钥进行加密和解密。发送方和接收方必须共享这个密钥。例如,当用户A要发送一条消息给用户B时,他们需要事先协商好一个密钥。用户A使用这个密钥对消息进行加密,然后将密文发送给用户B。用户B收到密文后,使用相同的密钥进行解密,得到原始消息。

常见算法:

  • DES ( 数据加密标准 **):**它是一种比较早期的对称加密算法。DES采用64位的分组长度,但是其中有效密钥长度为56位。由于密钥长度相对较短,现在已经不太安全,容易被暴力破解。例如,在早期的银行系统数据加密中曾经使用DES算法,但随着计算机计算能力的提升,其安全性受到挑战。

  • AES ( 高级加密标准 **):**这是目前应用非常广泛的对称加密算法。AES支持128位、192位和256位的密钥长度。它的分组长度为128位。例如,在无线网络安全协议(如WPA2)、磁盘加密(如WindowsBitLocker)等众多领域都有应用。AES的安全性较高,在合理的时间内很难通过暴力破解获取密钥。

  • 优点和缺点:

    • 优点:加密和解密速度快,适用于大量数据的加密。因为使用相同的密钥,算法实现相对简单。

    • 缺点:密钥管理困难。由于发送方和接收方需要共享密钥,在多个用户的网络环境中,密钥的分发和存储容易出现安全问题。如果密钥泄露,整个加密系统就会失效。

3.非对称加密算法

原理:

非对称加密算法使用一对密钥,即公钥和私钥。公钥可以公开,任何人都可以获取。私钥则由所有者保密。当用户A要发送消息给用户B时,用户A使用用户B公布的公钥对消息进行加密,然后发送给用户B。用户B收到密文后,使用自己的私钥进行解密。反过来,用户B也可以使用自己的私钥对消息签名,用户A可以使用用户B的公钥验证签名的真实性。

常见算法:

  • RSA **:**这是最著名的非对称加密算法之一。

  • ECC ( 椭圆曲线密码学 **):**ECC是基于椭圆曲线离散对数问题的非对称加密算法。

  • 优点和缺点:

    • 优点:密钥管理方便,公钥可以公开分发,不需要像对称加密那样担心密钥的安全分发问题。并且可以用于数字签名,确保消息的来源和完整性。

    • 缺点:加密和解密速度相对较慢,尤其是对于较长的消息或大量数据,计算成本较高。

二、AES

1.AES(advanced encryption standard 高级加密标准)介绍

  • 明文P

    • 没有经过加密的数据。
  • 秘钥K

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

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

    • 经加密函数处理后的数据
  • AES解密函数

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

2.对称加密算法与非对称加密算法的区别

  • 对称加密算法

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

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

3.AES的基本结构

AES的基本结构是一个分组加密的框架,通常分为若干"轮"(round)来处理数据。AES的加密过程由初始轮、多个主轮和最后一个轮组成,每一轮执行特定的数据处理步骤,确保密文的安全性和混淆性。

在AES标准规范中,分组长度只能是128位,也就是说,每个分组为16个字节(每个字节8位)。密钥的长度可以使用128位、192位或256位。密钥的长度不同,推荐加密轮数也不同,如下表所示:

密钥长度是指在加密算法中使用的密钥的位数或字节数。它是加密强度的重要因素,通常以比(bit)为单位表示。密钥长度直接影响到加密算法的安全性和计算复杂度。

分组长度是指分组加密算法在处理数据时,每次处理的固定长度数据块的大小,通常以字节(Bytes)或比特(Bits)为单位。

加密轮数(Number of Rounds)指的是对每个数据分组执行加密处理的重复次数。每一轮加密都是对数据进行一系列特定的操作,包括字节替换 (SubBytes)、行移位 (ShiftRows)、列混淆 (MixColumns),以及与密钥的轮密钥加(AddRoundKey)运算。轮数的增加使得AES更具抗攻击性。

4.加密流程

a. 密钥扩展(Key Expansion)

  • 将输入的密钥通过一个密钥扩展算法,生成多个轮密钥(Round Keys)。

  • AES-128 会生成11个轮密钥(原密钥+10轮加密密钥)。

b. 初始轮操作(Initial Round)

  • AddRoundKey:将明文和第一个轮密钥进行按位异或(XOR)操作。

c. 主要轮操作( Main Rounds)

  • 每一轮包括以下四个步骤:

    使用S-Box(置换盒)对每个字节进行非线性替换,提高算法的安全性。

    • SubBytes(字节替换)
  • ShiftRows(行移位)

对状态矩阵的每一行按固定规则进行循环左移。

  • MixColumns(列混合)

对状态矩阵的每一列进行线性变换,增强列间的混淆性。

  • AddRoundKey(轮密钥加)

将状态矩阵与当前轮的轮密钥按位异或(XOR)。

d. 最终轮操作(Final Round)

  • 和主要轮类似,但省略MixColumns(列混合)步骤。

下一篇:

【AES加密专题】2.AES头文件详解-CSDN博客

相关推荐
荣--12 小时前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森12 小时前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜1 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB2 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode4 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220704 天前
如何搭建本地yum源(上)
运维
大树887 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠7 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质7 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工7 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信