AES加密算法及AES-CMAC原理白话版系统解析

news2024/9/19 10:49:35

本文框架

  • 前言
  • 1. AES加密理论
    • 1.1 不同AES算法区别
    • 1.2 加密过程介绍
      • 1.2.1 加密模式和填充方案选择
      • 1.2.2 密钥扩展
      • 1.2.3分组处理
      • 1.2.4多轮加密
        • 1.2.4.1字节替换
        • 1.2.4.2行移位
        • 1.2.4.3列混淆
        • 1.2.4.4轮密钥加
    • 1.3 加密模式
      • 1.3.1ECB模式
      • 1.3.2CBC模式
      • 1.3.3CTR模式
      • 1.3.4CFB模式
      • 1.3.5 OFB模式
    • 1.4填充方案
      • 1.4.1 PKCS5Padding
      • 1.4.2 PKCS7Padding
      • 1.4.3 ZEROPadding
      • 1.4.4 X923Padding
      • 1.4.5 ISO7816_4Padding
      • 1.4.6 ISO10126Padding
      • 1.4.7 NonePadding
  • 2.AES-CMAC
    • 2.1AES-CMAC原理
      • 2.1.1子密钥计算(K1/K2生成)
      • 2.1.2 AES128-CMAC计算
      • 2.1.3填充方式
    • 2.2 AES128-CMAC应用

前言

AES(Advanced Encryption Standard)算法是一种对称加密算法,由美国国家标准与技术研究院(NIST)在2001年发布,旨在取代早期的数据加密标准(DES),并提供更高的安全性,目前该算法被广泛应用于各种安全需求中,AES算法以其高度的安全性和效率成为目前最流行的对称加密算法之一。
其实网络上有很多前辈已经写了很多关于AES加密算法,模式,填充规则等文章,但是大家的侧重点不同,在系统学习时很难把这些知识串起来,所以才有了本文对AES不同加密算法,加密模式,加密原理,填充算法及AES-CMAC算法的系统介绍,如果你的总结归纳能力比较强,也可以自己来整理,或者借助本文来辅助一下。
先祭出AES加密算法的加解密基本流程:
在这里插入图片描述
AES加密函数为E,则 C = E(K, P),其中P为明文,K为密钥,C为密文。
AES解密函数为D,则 P = D(K, C),其中C为密文,K为密钥,P为明文。

1. AES加密理论

1.1 不同AES算法区别

AES根据密钥长度的不同有:AES128,AES192,AES256三种算法,对应的密钥长度分别对应于AES-128、AES-192和AES-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1877946.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

社团成员信息系统

ER实体关系图与数据库模型 DDL CREATE TABLE club (club_id int(11) NOT NULL AUTO_INCREMENT,club_name varchar(100) NOT NULL,president_name varchar(50) DEFAULT NULL,foundation_date date DEFAULT NULL,description text,PRIMARY KEY (club_id),KEY president_name (pr…

虚拟化技术(二)

目录 三、存储虚拟化(一)存储虚拟化的一般模型(二)存储虚拟化的实现方式(三)案例分析 四、网络虚拟化(一)核心层网络虚拟化(二)接入层网络虚拟化(…

生成独立的zedboard+ad9361起始项目

文件分享 链接:https://pan.baidu.com/s/17wB_9xVWjO7HhxNvmmZyuA 提取码:94zz 首先下载HDL和NO-OS项目 git clone --recursive https://github.com/analogdevicesinc/hdl git clone --recursive https://github.com/analogdevicesinc/no-OS下载…

L03_Redis知识图谱

这些知识点你都掌握了吗?大家可以对着问题看下自己掌握程度如何?对于没掌握的知识点,大家自行网上搜索,都会有对应答案,本文不做知识点详细说明,只做简要文字或图示引导。 Redis 全景图 Redis 知识全景图都包括什么呢?简单来说,就是“两大维度,三大主线”。 Redis …

基于springboot实现学生用品采购系统项目【项目源码+论文说明】

基于springboot实现学生用品采购系统演示 摘要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装学生用品采购系统软…

STM32CubeMx的学习记录系列(2)- STM32G474RET6

最近有个小比赛,需要用到G4,不过找了一圈没有找到标准库的代码,只能使用hal,用CubeMX来生成配置代码。 共同特点 ARDUINO Uno V3 扩展连接器 ST morpho 扩展引脚接头,可完全访问所有 STM32 I/O 采用LQFP64或LQFP48封…

算法 —— 双指针

目录 移动零 复写零 快乐数 盛最多水的容器 有效三角形的个数 查找总价格为目标值的两个商品 三数之和 四数之和 移动零 下图以样例1为例,看下图如何做到保证非零元素相对顺序前提下,移动零元素。 代码实现如下: class Solution {…

1,Windows-本地Linux 系统(WSL)

目录 第一步电脑设置 第二步安装Ubuntu 第三文件传递 开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。 通过适用于 Linux 的 Windows 子系统 (WSL),开发人员可以安装 Linux 发行版(例如 Ubuntu、OpenSUSE、Kali、Debian、Arc…

如何有效保护生物医药企业隔离网数据导出的安全性?

生物医药企业的核心数据保护至关重要,企业为了保护内部的核心数据,会将网络进行物理隔离,将企业内⽹与外⽹隔离。⽹络隔离后,仍存在重要数据从内网导出至外网的隔离网数据导出需求。以下是一些需要特别保护的核心数据类型&#xf…

小米平板6系列对比

小米平板6系列目前有4款,分别为6、6 Pro、6 Max、6S Pro。具体对比如下表所示。 小米平板型号66 Pro6 Max6S Pro实物图发布时间2023年4月21日2023年4月21日2023年8月14日2024年2月22 日屏幕大小11英寸11英寸14英寸12.4英寸分辨率2.8K2.8K2.8K3K刷新率144Hz144Hz120…

EtherCAT笔记(四)——EtherCAT数据帧结构

EtherCAT数据包含2B的数据头和44~1948B的数据区。数据区由多个子报文组成。由于EtherCAT本身是通过以太网数据帧的形式传输,因此其协议帧中会携带以太网的帧头。 其中,解释如下: (1)以太网数据帧头:EtherC…

VSCode + GDB + J-Link 单片机程序调试实践

VSCode GDB J-Link 单片机程序调试实践 本文介绍如何创建VSCode的调试配置,如何控制调试过程,如何查看修改各种变量。 安装调试插件 在 VSCode 扩展窗口搜索安装 Cortex-Debug插件 创建调试配置 在 Run and Debug 窗口点击 create a launch.json …

C语言力扣刷题11——打家劫舍1——[线性动态规划]

力扣刷题11——打家劫舍1和2——[线性动态规划] 一、博客声明二、题目描述三、解题思路1、线性动态规划 a、什么是动态规划 2、思路说明 四、解题代码(附注释) 一、博客声明 找工作逃不过刷题,为了更好的督促自己学习以及理解力扣大佬们的解…

日志分析-windows系统日志分析

日志分析-windows系统日志分析 使用事件查看器分析Windows系统日志 cmd命令 eventvwr 筛选 清除日志、注销并重新登陆,查看日志情况 Windows7和Windowserver2008R2的主机日志保存在C:\Windows\System32\winevt\Logs文件夹下,Security.evtx即为W…

有哪些防爬虫的方法

防爬虫的方法有robots.txt文、user-agent过滤、ip限制、验证码、动态页面生成、频率限制、动态url参数和反爬虫技术等。详细介绍:1、robots.txt文件,用于告诉搜索引擎爬虫哪些页面可以访问,哪些页面禁止访问;2、ip限制&#xff0c…

面试-J.U.C包的梳理

1.J.U.C包的梳理 Java.Util.Concurrent包简称JUC (1)JUC整体架构图 (2)分析 Executor:线程执行器,任务执行和调度的框架。Tools下存在executor相关的executors类,用于创建executorservice,scheduleexecutorservice,…

获取 url 地址栏 ? 后面的查询字符串,并以键值对形式放到对象里面

写在前面 在前端面试当中,关于 url 相关的问题很常见,而对于 url 请求参数的问题也很常见,大部分以笔试题常见,今天就根据这道面试题一起来看一下。 问题 获取 url 地址栏?后面的查询字符串,并以键值对形式放到对象…

CICD持续集成(Jenkins+Git+Gogs)

1.Jenkins Jenkins 是一个开源的、用于构建和自动化软件开发流程的持续集成和交付工具。它提供了一个可扩展的平台,用于构建、测试和部署软件项目。通过使用 Jenkins,开发团队可以实现持续集成和交付,自动化构建和测试过程,提高软…

Rust监控可观测性

可观测性 在监控章节的引言中,我们提到了老板、前端、后端眼中的监控是各不相同的,那么有没有办法将监控模型进行抽象、统一呢? 来简单分析一下: 业务指标实时展示,这是一个指标型的数据( metric )手机 APP 上传的数…

springboot在线考试 LW +PPT+源码+讲解

第三章 系统分析 3.1 可行性分析 一个完整的系统,可行性分析是必须要有的,因为他关系到系统生存问题,对开发的意义进行分析,能否通过本系统来补充线下在线考试管理模式中的缺限,去解决其中的不足等,通过对…