RISC-V MCU中文社区

【分享】 AES加密流程

发表于 全国大学生集成电路创新创业大赛 2023-05-26 00:57:32
0
1621
0

报名编号:CICC2353

称团队名:不划水队

所选杯赛:芯来RISC-V杯

AES(Advanced Encryption Standard)是一种对称密钥加密算法,它是当前最常用的加密标准之一。AES是一种可靠、高效和安全的加密技术,被广泛应用于网络安全、移动设备和云计算等领域。

在1997年,美国国家标准技术研究院(NIST)发起了一个密码竞赛,以寻求一种新的高级加密标准来替代DES加密算法。经过多轮的评选和筛选,Rijndael算法成为最终的胜者,并在2001年正式成为AES加密标准。
AES加密算法共有三种不同的密钥长度:AES-128,AES-192和AES-256。它们分别采用128位、192位和256位的密钥长度。

图片alt
AES算法包含多轮加密处理,每轮(round)由四个基本操作组成:字节替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。这些操作的组合使得AES具有较高的安全性。
图片alt

AES算法的加密流程可以概括为以下几个步骤:
密钥扩展(Key Expansion):AES算法中使用的密钥长度可以是128位、192位或256位。在密钥扩展阶段,根据不同密钥长度生成一系列轮密钥,这些轮密钥将在后续的加密和解密过程中使用。

初始轮(Initial Round):在初始轮中,将待加密数据与第一个轮密钥进行异或运算。这一步骤有助于消除数据的模式和统计特性,增强加密的随机性。
字节替代:通过查找S盒(Substitution Box)中的值来替代输入数据的每个字节。S盒是一个由固定字节值组成的查找表,用于替代输入数据中的字节值,增加了加密算法的复杂性。
图片alt
行移位:按照特定规则将每一行向左循环移位。这个操作保证了每个字节的位置发生了变化,增加了数据的混淆度。
图片alt
列混淆:通过一系列乘法和加法运算,将每一列进行混淆。这个操作引入了数据的纠缠效应,增加了加密算法的强度。
图片alt
轮密钥加:将当前轮的轮密钥与经过字节替代、行移位和列混淆处理后的数据进行异或运算。这一步骤引入了密钥的影响,增加了数据的随机性。
图片alt
最终轮(Final Round):最终轮是在上述轮操作之后进行的一轮特殊操作,不包含列混淆操作。在最终轮中,执行字节替代、行移位和轮密钥加操作。
除此之外,AES每轮的加密密钥都是由初始密钥(128/192/256)扩展而来,对于AES-128,加密轮数为10轮,需要扩展44个128bit密钥。密钥扩展算法如下:
图片alt
其中Nk代表加密轮数。
经过多轮的加密处理后,最终得到的加密数据即为AES加密后的结果。对于解密过程,只需要将相应的解密密钥应用于加密数据,按照相反的步骤进行操作,即可还原出原始的明文数据。

往期分享链接:
【1】蜂鸟E203协处理器EAI指令及接口_全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (rvmcu.com)
【2】加密算法的应用_全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (rvmcu.com)
【3】 国密系列算法简介及SM4算法原理介绍_全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (rvmcu.com)
【4】DemoNICE软件源码解读及应用全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (rvmcu.com)

喜欢0
用户评论
wenxin_yang

wenxin_yang 实名认证

人是铁 饭是钢

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板