AES算法介绍

这篇具有很好参考价值的文章主要介绍了AES算法介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

        由于一直在实习,事情有点多,一直没更新,幸运的是,我今天终于把事情做完了,终于可以准备回家过年了;那么趁现在简单介绍一下AES算法吧;

二、AES算法流程

        AES(Advanced Encryption Standard)算法是一种对称加密算法,其原理采用的是迭代分组密码算法,它由轮变换函数经过数次迭代变换而成,其迭代的次数与密钥的长度有关。如果密钥长度为128bit,则一组明文需要运算10轮即可完成加解密;如果密钥长度为192bit,一组明文需要12轮运算即可完成加解密; 如果密钥长度为256bit,一组明文需要14轮运算即可完成加解密。

        AES算法属于对称算法,所以解密过程为加密过程的逆过程,AES算法有多种工作模式,包括ECB模式,CBC模式,CMAC模式等;

        AES算法流程是固定的,如下图所示,以128bit数据加密流程举例,总共需要计算10轮,在前面几轮中,依次是字节代换、 行移位变换、列混合变换和轮密钥加变换。最后一轮无列混合变换,从图中也能看出解密过程为加密的逆过程;

AES算法介绍

  三、轮密钥加变换

        在轮密钥加变换模块中,每一轮都需要使用准备好的密钥进行异或并作为下一轮的轮密钥加的数据,然后在AES控制模块中进行密钥加变换处理;

        有限域中的密钥加变换对应于数据的异或运算,而异或运算再异或正好是其本身,所以密明加的逆变换仍然是密明加变换,其硬件实现框图如下所示;

AES算法介绍

四、字节变换

         在AES加解密算法中,字节代换与逆代换是唯一的非线性运算,它不仅是AES加解密中稍显麻烦的模块,还是占用资源较多的模块。

        如下图所示,图为字节代换的SBOX替换表,将要进行SBOX替换的字节参照如下表格将一个字节映射为另一个字节; 在进行映射时,需要把该字节的高4位作为行值,低4位作为列值,选中的字节就是变换后的字节;以8'h23为例,根据上文所述,找到表中第2行第3列,得到字节为8'h26;可见,8'h23进行代换后映射为8'h26;

AES算法介绍

 五、行移位

        由于AES算法执行运算的数据分组长度为128位,所以在行移位模块的设计中, 首先将128位输入数据转换为数组表示的状态矩阵,每个矩阵为128/16=8bit,然后对状态矩阵的每一行分别进行移位长度不等的行移位操作,行移位是通过循环左移实现,而逆行移位通过循环右移实现,但每一行所移动的位数都与行数有关。该模块实现较为简单,移位操作通过循环赋值实现,行号为0的字节均保持不变,行号为1的每个字节数据往左或往右移动一位,行号为2的字节数据往左或往右移动两位,行号为3的字节数据则往左或往右移动三位。最后将移位结果进行状态矩阵输出转换,输出长度为128位的数据。行移位操作的效果如图所示:

AES算法介绍

六、列混合

 对一个状态的每一列去乘一个矩阵

AES算法介绍

 计算方式如图:

AES算法介绍

        根据列混合运算的原理,设字节b={b7,b6,b5,b4,b3,b2,b1,b0},则系数矩阵与该字节相乘时,有如下式1.7所示换算:

AES算法介绍

        由此得出列混合运算中的有限域乘法运算可化简为乘2操作与异或操作的混合运算,乘2的具体运算过程如式1.8所示。

AES算法介绍

七、AES加密流程框图

        加密时,按以下步骤执行;

AES算法介绍

八、密钥扩展

        密钥扩展模块采用与加解密过程并行处理的方式,即密钥生成和除轮密钥加轮运算的其他模块一起执行,该模块实现依据为AES算法中的密钥扩展产生原理。将输入的128位密钥Key分为4个32位的字段,经过密钥扩展模块的运算后,扩展输出每轮变换轮密钥加运算需要的44个密钥列。密钥扩展过程如下图所示;

AES算法介绍

AES算法介绍

AES算法介绍

         首先对w[i-1]进行字循环操作,即循环左移一个字节,此过程与加密轮变换中的行移位类似。其次通过S-box对字循环后的结果进行字节代换,最后将字节代换后的结果与轮常量Rcon[j]异或,且参与异或运算的轮常量Rcon[j]的数据位宽为32位,j代表当前轮数,其中,轮常量Rcon的每轮固定值如下表5.4所示,表中的值以16进制展示:

AES算法介绍

AES算法介绍

 九、加密举例

AES算法介绍

AES算法介绍文章来源地址https://www.toymoban.com/news/detail-441644.html

到了这里,关于AES算法介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【RabbitMQ教程】前言 —— 中间件介绍

                                                                       💧 【 R a b b i t M Q 教程】前言——中间件介绍 color{#FF1493}{【RabbitMQ教程】前言 —— 中间件介绍} 【 R abbi tMQ 教程】前言 —— 中间件介绍 💧           🌷 仰望天空,妳

    2024年02月08日
    浏览(70)
  • 【算法与数据结构】--前言

    欢迎来到《算法与数据结构》专栏!这个专栏将引领您进入计算机科学领域中最重要、最精彩的领域之一:算法与数据结构。不管您是一名初学者,还是已经拥有一定编程经验的开发者,都可以从这里找到有益的知识和实践。 在计算机科学的世界里,算法和数据结构是至关重

    2024年02月07日
    浏览(246)
  • Rx.NET in Action 中文介绍 前言及序言

    目标 可选方式 Rx 处理器(Operator) 创建 Observable Creating Observables 直接创建 By explicit logic Create Defer 根据范围创建 By specification Range Repeat Generate Timer Interval Return 使用预设 Predefined primitives Throw Never Empty 从其他类型创建 From other types FromEventPattern FromEvent FromTask FromAsync 变换 Transform

    2024年02月13日
    浏览(51)
  • AES算法基于FPGA的硬件实现(3)AES算法的Verilog实现(完结)

    本设计实现AES加密算法为ecb模式,填充模式未设置,同时支持AES-128/192/256三种密钥长度。 代码完全开源,开源链接在文章末尾。 下图为GitHub仓库中上传的文件第一级结构,第一级为matlab和user,matlab中存储的是在进行列混淆运算时查表所用的coe文件,这些文件用来初始化viv

    2024年01月18日
    浏览(57)
  • 大二数据结构与算法实习

    大二小学期数据结构与算法实习PTA 12道数据结构题目题解和AC代码 时间:2022.08.15-2022.09.05 网课 题目大意 数轴上有n个点,对于任一闭区间 [a, b],试计算落在其内的点数。 要求: 0 ≤ n, m ≤ 5×10^5 对于每次查询的区间[a, b],都有a ≤ b 各点的坐标互异 输入格式: 第一行包括两

    2024年02月14日
    浏览(108)
  • 【优选算法专栏】专题十六:BFS解决最短路问题---前言

    本专栏内容为:算法学习专栏,分为优选算法专栏,贪心算法专栏,动态规划专栏以及递归,搜索与回溯算法专栏四部分。 通过本专栏的深入学习,你可以了解并掌握算法。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:算法从入门到精通 🚚代码仓库:小小unicorn的代码仓库

    2024年04月15日
    浏览(51)
  • AES算法基于FPGA的硬件实现(2)AES算法的c++实现(ecb/cbc)

    对于cpp来说内部有一些加密函数库来简单实现一些加密算法可以,但是为了更好理解内部实现流程,实现过程不调用cpp的库。 工程中出现的byte_t为bitset8类型,word为bitset32类型。base64转换文件为在网上找到的开源代码,在GitHub链接中有。 整体工程代码在末尾GitHub链接。 实现了

    2024年02月04日
    浏览(60)
  • 2023米哈游图像算法暑期实习面经

    来源:投稿 作者:LSC 编辑:学姐 本文不可转载 违者必究 1.自我介绍 2.能实习多久?公司在心目中的地位排序等 3.是否了解公司,用他们的产品吗?(比如原神) ,喜欢游戏吗? 我只知道公司技术很厉害,游戏做的很好,但是我不喜欢玩游戏,从来没玩过,王者都没玩过,我

    2024年02月16日
    浏览(42)
  • 秋招实习 算法刷题网站推荐

    Home - CodeFun2000 优点: 收录了各大互联网公司最新最全的笔试题。 平台贴合真实笔试环境,都是Acm模式,有利于准备秋招。 网站的每题都有coder提供的题解,也有专门的博客对每种类型的题目进行分类,大大提高学习的效率。 网站还会定期举办模拟竞赛

    2024年02月09日
    浏览(35)
  • SAP VT实习(钻石级杰出人才计划)面经&SAP大致介绍

    本文的认识全部基于这一年我与SAP的部门经理的交流,国内外网站上搜集的信息,以及亲自参观SAP大连分公司的经验上建立的。由于还未正式开始工作,了解的不全面,这里的信息仅供参考。 笔者的学校在大连,因此想在大连本地找实习。个人偏向于去外企实习和工作,而大

    2023年04月23日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包