当前位置: 首页 > news >正文

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

本文框架

  • 前言
  • 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-

相关文章:

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

本文框架 前言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模…...

24年hvv前夕,微步也要收费了,情报共享会在今年结束么?

一个人走的很快,但一群人才能走的更远。吉祥同学学安全https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247483727&idx1&sndb05d8c1115a4539716eddd9fde4e5c9&scene21#wechat_redirect这个星球🔗里面已经沉淀了: 《Ja…...

【地理库 Turf.js】

非常全面的地理库 , 这里枚举一些比较常用,重点的功能, 重点功能 提供地理相关的类:包括点,线,面等类。 测量功能:点到线段的距离,点和线的关系等。 判断功能: 点是否在…...

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

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

JDBC中的事务及其ACID特性

在JDBC(Java Database Connectivity)中,事务(Transaction)是指作为单个逻辑工作单元执行的一系列操作。这些操作要么全部执行,要么全部不执行,从而确保数据库的完整性和一致性。事务是现代数据库…...

Python | Leetcode Python题解之第204题计数质数

题目: 题解: MX5000000 is_prime [1] * MX is_prime[0]is_prime[1]0 for i in range(2, MX):if is_prime[i]:for j in range(i * i, MX, i):#循环每次增加iis_prime[j] 0 class Solution:def countPrimes(self, n: int) -> int:return sum(is_prim…...

【课程总结】Day10:卷积网络的基本组件

前言 由于接下来的课程内容将围绕计算机视觉展开,其中接触最多的内容是卷积、卷积神经网络等…因此,本篇内容将从卷积入手,梳理理解:卷积的意义、卷积在图像处理中的作用以及卷积神经网络的概念,最后利用pytorch搭建一…...

ModuleNotFoundError: No module named ‘_sysconfigdata_x86_64_conda_linux_gnu‘

ModuleNotFoundError: No module named _sysconfigdata_x86_64_conda_linux_gnu 1.软件环境⚙️2.问题描述🔍3.解决方法🐡4.结果预览🤔 1.软件环境⚙️ Ubuntu 20.04 Python 3.7.0 2.问题描述🔍 今天发现更新conda之后&#xff0…...

【物联网】室内定位技术及定位方式简介

目录 一、概述 二、常用的室内定位技术 2.1 WIFI技术 2.2 UWB超宽带 2.3 蓝牙BLE 2.4 ZigBee技术 2.5 RFID技术 三、常用的室内定位方式 3.1 信号到达时间 3.2 信号到达时间差 3.3 信号到达角 3.4 接收信号强度 一、概述 GPS是目前应用最广泛的定位技术&#xff0…...

Leetcode[反转链表]

LCR 024. 反转链表 给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2: 输入:head [1,2] 输出:[2,1]示…...

【差分数组】个人练习-Leetcode-2249. Count Lattice Points Inside a Circle

题目链接:https://leetcode.cn/problems/count-lattice-points-inside-a-circle/description/ 题目大意:给出一系列圆的圆心坐标和半径,求在这些圆内部(边缘也算)的格点的数量。 思路:简单的思路就是暴力…...

【JavaEE】Cookie和Session详解

一.Cookie 首先我们知道HTTP协议本身是’‘无状态’‘的, 这里的’‘无状态’指的是:默认情况下HTTP协议的客户端和服务器之间的这次通信,和下次通信之间没有直接的联系. 但是在实际的开发过程之中, 我们很多时候是需要知道请求之间的关联关系的. 例如登陆网站成功后,第二次访…...

uniapp canvas vue3 ts实例

<template><view><canvas canvas-idcanvas-test class"canvas-test"></canvas></view> </template><script setup lang"ts">//封装的jsimport libs from /libs;//重点引入的import type { ComponentInternalIns…...

网络构建关键技术_3.SDN技术

SDN网络在控制平面和转发平面分别采用了不同技术&#xff0c;以满足SDN网络控件的全局性和灵活性&#xff0c;业务转发的高效性及高性价比要求。主要关键技术包括&#xff1a;控制平面技术、数据平面技术和转发规则一致性更新技术等。 1.控制平面技术 控制器是控制平面核心部件…...

【高性能服务器】单进程服务器

&#x1f525;博客主页&#xff1a; 我要成为C领域大神&#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 ​ 单进程服务器 …...

任意密码重置漏洞

文章目录 1. 任意密码重置漏洞原理2. 任意密码重置漏洞产生原因3. 任意密码重置漏洞场景3.1 验证码爆破3.2 验证凭证回传3.3 验证凭证未绑是用户3.4 跳过验证步骤3.5 凭证可预测3.6 同时向多个账户发送凭证 4. 任意密码重置经典案例4.1 中国人寿某重要系统任意账户密码重置4.2 …...

synchronized关键字和ReentrantLock在不同jdk版本中性能哪个高?该怎么选择呢?

synchronized关键字和ReentrantLock在不同JDK版本中的性能差异经历了显著的变化。早期&#xff0c;在JDK 1.5及以前的版本中&#xff0c;ReentrantLock通常提供了更好的性能&#xff0c;主要是因为synchronized关键字的实现较为简单&#xff0c;没有太多的优化&#xff0c;导致…...

【旭日x3派】部署官方yolov5全流程

地平线旭日x3派部署yolov5--全流程 前言一、深度学习环境安装二、安装docker三、部署3.1、安装工具链镜像3.2、配置天工开物OpenExplorer工具包3.3、创建深度学习虚拟空间&#xff0c;安装依赖&#xff1a;3.4、下载yolov5项目源码并运行3.5、pytorch的pt模型文件转onnx3.6、最…...

java LinkedList 怎么保证线程安全

在 Java 中&#xff0c;LinkedList 本身并不是线程安全的。如果需要在多线程环境中使用 LinkedList&#xff0c;可以采取以下几种方法来保证线程安全性&#xff1a; 1. 使用 Collections.synchronizedList Java 提供了一个实用的方法 Collections.synchronizedList 来包装 Li…...

uniapp+vue3开发微信小程序踩坑集

本文主要记录使用uniappvue3开发微信小程序遇见的各种常见问题及注意点。&#xff08;持续更新&#xff09; 问题&#xff1a; 自定义组件为什么有些样式加不上去 给自定义组件增加class的时候&#xff0c;有时候不生效有时候生效&#xff0c;一度让我怀疑自己记忆错乱。后来…...

办公软件WPS与Office的区别

临近计算机考试很多同学在纠结我是报wps好&#xff1f;还是ms office好&#xff1f;下面就来详细说说。 1、wps属于国内金山公司的办公软件&#xff0c;里面包含word、Excel和PPT。考试是2021年开始的&#xff01; 2、MS&#xff08;Microsoft 微软&#xff09; office属于美…...

[数据集][目标检测]睡岗检测数据集VOC+YOLO格式3290张4类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;3316 标注数量(xml文件个数)&#xff1a;3316 标注数量(txt文件个数)&#xff1a;3316 标注…...

使用Java编写网络爬虫

使用Java编写网络爬虫 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 网络爬虫是一种自动化程序&#xff0c;用于从互联网上获取信息并收集数据。在Java中编写…...

生鲜水果行业wordpress主题

水果蔬菜wordpress外贸自建站模板 水果、脐橙、牛油果、菠萝、凤梨、鲜枣、苹果、芒果、瓜果、百香果wordpress外贸独立站模板。 https://www.jianzhanpress.com/?p3932 生鲜wordpress外贸出口网站模板 水果、蔬菜、肉蛋奶、水产、干货等生鲜产品wordpress外贸出口公司网站…...

3.3V到5V的负电源产生电路(电荷泵电压反相器)SGM3204输出电流0.2A封装SOT23-6

前言 SGM3204 非稳压 200mA 电荷泵负电源产生电路&#xff0c;LCEDA原理图请访问资源 SGM3204电荷泵负电源产生电路 SGM3204电荷泵负电源产生电路 一般描述 SGM3204从 1.4V 至 5.5V 的输入电压范围产生非稳压负输出电压。 该器件通常由 5V 或 3.3V 的预稳压电源轨供电。由于…...

Excel 宏录制与VBA编程 —— 15、MsgBox参数详解

Msgbox参数具体如下 Msgbox参数使用1 Msgbox参数使用2&#xff08;返回值示例&#xff09; &ensp ;###### 关注 笔者 - jxd...

Kafka~消息发送过程与ISR机制了解

消息发送过程 使用Kafka发送消息时&#xff0c;一般有两种方式分别是&#xff1a; 同步发送异步发送 同步发送时&#xff0c;可以在发送消息后&#xff0c;通过get方法等待消息结果&#xff0c;这种情况能够准确的拿到消息最终的发送结果&#xff0c;要么是成功、要么是失败…...

multiprocessing.Queue 多个进程生产和多个进程消费怎么处理

在这个示例中&#xff0c;我们创建了一个队列 q&#xff0c;并通过 multiprocessing.Manager().Queue() 来确保队列可以在多个进程之间共享。我们定义了 consumer 和 producer 函数&#xff0c;分别用于从队列中获取数据和向队列中放入数据。 在主进程中&#xff0c;我们创建了…...

配置 Python 解释器及虚拟环境

配置 Python 解释器及虚拟环境 配置 Python 解释器&#xff1a; 1. 打开 PyCharm&#xff0c;进入“File”&#xff08;文件&#xff09;菜单&#xff0c;选择“Settings”&#xff08;设置&#xff09;。 2. 在弹出的设置窗口中&#xff0c;选择“Project: [项目名称]”下的…...

JeecgBoot中如何对敏感信息进行脱敏处理?

数据脱敏即将一些敏感信息通过加密、格式化等方式处理&#xff0c;展示给用户一个新的或是格式化后的信息&#xff0c;避免了敏感信息的暴露。 一、接口脱敏注解 针对接口数据实现脱敏加密&#xff0c;只加密&#xff0c;一般此方案用于数据加密展示。 1.1 注解介绍 注解作用域…...

简易静态网站制作流程图/seo就业

一、双亲存储结构 typedef struct {int data;int parent; }PTree[max_size];//P表示parent图像如下&#xff1a; 二、孩子链存储结构 typedef struct snode{ int data; node *next;//指向兄弟&#xff1b; }Son_node;typedef struct{ int data; int parent; Son_node *fir…...

无锡市滨湖区建设局网站/如何快速提升网站关键词排名

听听各种经过专业制作的歌曲&#xff0c;把关注点放在它们的人声上。你能听到他们有多强的临场感吗&#xff1f;能感受到他们在混音中有多清晰和凸显吗&#xff1f;在某些极端的案例下&#xff0c;你知道它们有多响吗&#xff1f;人声通常(几乎一直)是歌曲中最重要的元素。在专…...

建设银行网站官网网址/武汉网络推广公司

好家伙&#xff0c;这个作者竟然妄图一天就把面向对象的两个特征说了。他可真是自不量力啊&#xff0c;作者心中OS&#xff1a;学习真累&#xff0c;赶快写完去打游戏真香。正文分割线一、抽象1、抽象的定义&#xff1a;抽象&#xff0c;字面意思。很抽象&#xff0c;很多人都不…...

绝缘子网站建设/外包公司的优势和劣势

场景是这样的&#xff1a; 在更多的时候&#xff0c;我们进行滚动升级的时候&#xff0c;我们旧的服务可能还受理了请求或者还有任务在执行&#xff0c;而这个执行时间&#xff0c;可能是几秒钟&#xff0c;也可能是几分钟&#xff0c;如果是大型定时任务跑个半小时也是有的。 …...

网站制作怎么做图标/免费b站在线观看人数在哪儿

日前&#xff0c;高工智能汽车研究院发布《2022年上半年智能驾驶供应链数据报告》&#xff0c;对产业格局、市场发展趋势、细分赛道机会风险等进行了多层次解读。 在智能驾驶板块&#xff0c;2022年上半年的市场态势可以说是调整与增长并存。 今年1-6月中国市场&#xff08;不…...

网站链接数怎么做/深圳关键词优化软件

夜光序言&#xff1a; 自古风流归志士;从来事业属良贤。 正文&#xff1a; 重构成一个组件&#xff0c;组件接收数组参数&#xff0c;每个列表元素分配一个 key 不然会出现警告 a key should be provided for list items&#xff0c;意思就是需要包含 key&#xff1a; <!D…...