算法3_对称加密算法之AES

AES加密算法(带示例) 原创不易,转载请注明出处。 目录 1. 算法简介 2. 算法流程 2.1 扩展密钥 2.2 轮密钥加 2.3 字节代替 2.4 行位移 2.5 列混淆 3. 总结 附录A 运算示例 1.算法简介 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加... 阅读详情
AI摘要

本文详细探讨了AES-256加密算法,包括其128位、192位和256位的版本,密钥长度、分组长度、加密轮数,以及核心操作AddRoundKey、SubByte、ShiftRows和MixColumn的原理与矩阵表示。重点介绍了AES-256的密钥扩展过程和AES-256在FabricV2.2中的应用。

算法3_AES(对称加密算法之高级加密算法)

AES的种类

AES种类密钥长度(bit)分组长度(bit)加密轮数明文长度(bit)密文长度(bit)
AES-12812812810128128
AES-19219212812128128
AES-25625612814128128

分组长度和明文长度是一样。对于明文以128位为一个分组作为AES对称加密算法的输入.

FabricV2.2中AES的密钥长度为32Bytes即256位,所以以下研究256位的AES-256

AES-256

AES算法主要有四种操作处理:分别是(Add Round Key)、(Sub Byte)、(Shift Rows)、(Mix Column)

明文和密钥矩阵的形式排列

128位明文从上到下,从左到右进行排列成4*4的字节矩阵

256位密钥从上到下,从左到右进行排列成4*8的字节矩阵

在这里插入图片描述
在这里插入图片描述

AES基本原理图在这里插入图片描述

对于AES256的上图解释:

上图引用自“于松林. 基于FPGA的AES算法设计与实现[D].解放军信息工程大学,2017.”

  1. 初始密钥就是256位的主密钥
  2. 轮密钥加就是Add Round Key
  3. 字节替换就是Sub Byte
  4. 行变换就是Shift Rows
  5. 列混合就是Mix Column
  6. Nr=14
回合密钥和主密钥(密钥扩展)

AES256对称加密算法中,256位是主密钥(初始密钥),但是AES256是循环加密的一种对称加密算法

通过密钥扩展算法事先生成每个回合需要的128位回合密钥

基本过程是:

  1. 输入一个密钥矩阵128位生成128位的子密钥
  2. 循环Nr+1=15次所以一共生成4*(Nr+1)字的密钥,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0o8r2kwq-1650184688429)(%E7%AE%97%E6%B3%953_AES(%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95%E4%B9%8B%E9%AB%98%E7%BA%A7%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95)].assets/image-20220417155124788-16501819229941.png)

Add Round Key

当前分组与回合密钥进行异或运算

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HQyjONGF-1650184688430)(%E7%AE%97%E6%B3%953_AES(%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95%E4%B9%8B%E9%AB%98%E7%BA%A7%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95)].assets/image-20220417155831887-16501823139281.png)

Sub Byte

分组矩阵中每个字节通过一个8位的S-盒进行转换

AES中加密盒S-盒采用的是16*16的二维矩阵,将分组数据的每个字节高4位作为行号,低4位作为列号

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QWpNGYji-1650184688431)(%E7%AE%97%E6%B3%953_AES(%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95%E4%B9%8B%E9%AB%98%E7%BA%A7%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95)].assets/image-20220417163235607.png)

上图摘自密码学基础:AES加密算法

基本过程:
对 于 分 组 矩 阵 中 的 每 个 字 节 A i , j = [ a 7 , a 6 , a 5 , a 4 , a 3 , a 2 , a 1 , a 0 ] 对于分组矩阵中的每个字节A_{i,j}=[a_7,a_6,a_5,a_4,a_3,a_2,a_1,a_0] 对于分组矩阵中的每个字节Ai,j​=[a7​,a6​,a5​,a4​,a3​,a2​,a1​,a0​]

取 a 0 , a 1 , a 2 , a 3 组 成 的 值 作 为 列 号 ; 取 a 4 , a 5 , a 6 , a 7 的 值 作 为 行 号 . 查 S 表 得 到 变 换 值 B i , j 取a_0,a_1,a_2,a_3组成的值作为列号;取a_4,a_5,a_6,a_7的值作为行号.查S表得到变换值B_{i,j} 取a0​,a1​,a2​,a3​组成的值作为列号;取a4​,a5​,a6​,a7​的值作为行号.查S表得到变换值Bi,j​

最 终 可 以 获 得 由 B i , j 1 ≤ i ≤ 16 1 ≤ j ≤ 16 组 成 的 4 × 4 的 字 节 转 换 矩 阵 最终可以获得由B_{i,j}\quad 1\leq i \leq 16 \quad 1\leq j \leq 16 \quad 组成的4\times 4的字节转换矩阵 最终可以获得由Bi,j​1≤i≤161≤j≤16组成的4×4的字节转换矩阵

Shift Rows

矩阵中的每一行的各个字节循环向左方位移,位移量按照行标号递增而递增

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G0f3ffD6-1650184688432)(%E7%AE%97%E6%B3%953_AES(%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95%E4%B9%8B%E9%AB%98%E7%BA%A7%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95)].assets/image-20220417160720134-16501828410782.png)

Mix Column

基本过程如下:
取 分 组 矩 阵 中 的 某 列 [ a 1 , i , a 2 , i , a 3 , i , a 4 , i ] 分 别 作 为 1 , x , x 2 , x 3 的 系 数 取分组矩阵中的某列 [a_{1,i},a_{2,i},a_{3,i},a_{4,i}] 分别作为1,x,x^2,x^3的系数 取分组矩阵中的某列[a1,i​,a2,i​,a3,i​,a4,i​]分别作为1,x,x2,x3的系数

即 A ( x ) = ( a 4 , i × x 3 + a 3 , i × x 2 + a 2 , i × x + a 1 , i ) 即A(x)=(a_{4,i}\times x^3+a_{3,i} \times x^2+a_{2,i}\times x+a_{1,i}) 即A(x)=(a4,i​×x3+a3,i​×x2+a2,i​×x+a1,i​)

C ( x ) = 3 × x 3 + x 2 + x + 2 C(x)=3\times x^3+x^2+x+2 C(x)=3×x3+x2+x+2

生 成 的 结 果 每 一 列 为 [ b 1 , i , b 2 , i , b 3 , i , b 4 , i ] , B = ( A ( x ) × C ( x ) ) m o d ( x 4 + 1 ) m o d 为 多 项 式 模 运 算 生成的结果每一列为[b_{1,i},b_{2,i},b_{3,i},b_{4,i}],B=(A(x)\times C(x))mod(x^4+1) \quad mod为多项式模运算 生成的结果每一列为[b1,i​,b2,i​,b3,i​,b4,i​],B=(A(x)×C(x))mod(x4+1)mod为多项式模运算

多项式取模运算

总结:

  1. AES高级加密算法根据主密钥的长度可以分为AES128,AES192以及AES256.
  2. 无论哪种AES高级加密算法明文长度都是128位,密文长度都是128位.
  3. 明文和密钥都是在加密过程中都是以矩阵的形式.
  4. 无论那种AES高级加密算法都是回合循环加密算法,主要由4种基本操作组合而成.
  5. 4种基本操作:轮密钥加(Add Round Key)、字节替换(Sub Byte)、行变换(Shift Rows)、列混合(Mix Column).

参考文献:

[1]于松林. 基于FPGA的AES算法设计与实现[D].解放军信息工程大学,2017.

高级加密标准维基百科

密码学基础:AES加密算法

【加密算法 AES256】AES256加密和解密过程 AES是一种对称加密算法,对称指加密和解密使用同一个密钥; 256指密钥的长度是256bit,即32个英文字符的长度;密钥的长度决定了AES加密的轮数 # -*- coding: utf-8 -*- from cryptography.hazmat.primitives import padding from cryptography.hazmat.primitives.ciphers import algorithms from Crypto.Cipher import AES from binasci 阅读详情

相关推荐

实现256位AES加解密算法-附代码

加密函数中,我们创建一个AesCryptoServiceProvider实例,设置加密算法的参数:块大小(BlockSize)、密钥大小(KeySize)、加密模式(Mode)、填充模式(Padding)、秘钥(Key)和初始化向量(IV)。解密函数中,我们同样创建一个AesCryptoServiceProvider实例,设置相应的参数并创建一个解密器对象进行解密操作,最后同样清除AesCryptoServiceProvider实例,返回解密后的数据。iv是初始化向量,用于增强加密的安全性。

2301_79366332的博客 1756

加解密算法

需要秘钥,相同秘钥定义:用于加密和解密的秘钥相同。分类:分组密码算法(Block cipher), 流密码算法 (Stream cipher)常用分组密码算法:AES (常用), SM1 (硬件国密), SM4 (国密), DES (淘汰), 3DES (淘汰), IDEA, RC2等常用流密码算法:RC4等加密过程:先将明文分组,再加密每个明文块,最后组合密文块加密过程:1个bit或1个byte的加密解密过程:1个bit或1个byte的解密需要秘钥,一对秘钥。

求道问术 7501

头歌操作系统2023春季课堂练习2.1:外部中断

本关任务:通过相关知识以及实验回答:版本 1 内核的第 6 次时钟中断发生时,断点和恢复点(指令地址)分别是多少?回答问题:当第一行 0/1 字符全部输出完毕的时候一共发生了几次时钟中断,即第一行完全填满时 jiffies 记录的已发生次数为多少?本关任务:通过实际操作回答在输出第一行 0/1 字符的过程中(如下图所示),共发生了几次时钟中断?2.此时 bochs 虚拟机输出的 0/1 字符串是什么?(只填写数字,不填写空格!根据相关知识进行实际操作,一直输入 c 直到 0/1 将第一行完全填满。

weixin_64821608的博客 8126

AES-256加密算法

AES-256是一种使用256位密钥长度的高级加密标准(Advanced Encryption Standard)。它是对称加密算法,意味着加密和解密使用相同的密钥。AES算法支持不同的密钥长度,包括128位、192位和256位,其中256位密钥长度提供了最高的安全性。总之,AES-256作为当前使用最广泛的加密算法之一,提供了强大的安全性和高效的加解密性能,适用于许多敏感数据的保护需求。解密过程与加密过程类似,但是轮密钥的使用顺序与加密过程相反,最终可以得到原始的明文数据。

m0_60697583的博客 1万+

驱动钛丝(SMA)的应用(5)汽车腰托气阀常见问题及解决方案

财哥在前段时间发布的《驱动钛丝(SMA)的应用(1)汽车腰托支撑按摩气阀模块》一文,引发了很多企业的拜访和交流。 目前很多厂家已经启动或正在进行相关研发,同时也遇到了诸如:钛丝选型、驱动位移、响应设计、温度控制、力量设计、点动滞后、铆接工艺、量化生产等问题。

weixin_39168671的博客 1239

Win11下WSL2安装Ubuntu22.04避坑指南:从镜像源到C++环境配置

本文提供了一份详细的Win11下WSL2安装Ubuntu22.04的实战避坑指南。内容涵盖从WSL2核心安装、自定义安装路径,到更换国内镜像源以解决更新缓慢问题,并一站式配置完整的C++开发环境(包括GCC、CMake、vcpkg等),最后分享提升开发体验的进阶技巧,助你在Windows上打造高效的Linux开发工作站。

weixin_29260291的博客 562

python对称加密_Python3对称加密算法AES、DES3实例详解

本文实例讲述了Python3对称加密算法AES、DES3。分享给大家供大家参考,具体如下:python3.6此库安装方式,需要pip3 install pycryptodome。如有site-packages中存在crypto、pycrypto,在pip之前,需要pip3 uninstall crypto、pip3 uninstall pycrypto,否则无法安装成功。C:\WINDOWS\sy...

weixin_39539002的博客 607

python音频信号分析

声音以具有诸如频率、带宽、分贝等参数的音频信号的形式表示,典型的音频信号可以表示为幅度和时间的函数

MAY的博客 2785

对称加密算法(DES、3重DES、AES和PBE)

对称加密算法,就是公钥和私钥是一样的。这里主要有DES、3重DES、AES和PBE等,以下为各个对称加密算法的加解密使用方法,所有的类均引自JDK,无需另外导包(视情况可能需要阿帕奇的commons.codec包)。 其中AES为目前使用最多的,因为安全性上从未被破解过。 PBE是基于口令的加密,使用中要加入salt(盐--扰码)进行使用。   1、DES import org.apa...

Li_Rhine的博客 1158

两轮差速移动机器人运动分析、建模和控制

两轮差速运动分析及建模运动学分析三种运动状态分析函数模型仿真验证直线验证曲线验证旋转验证运动控制 运动学分析 运动特性为两轮差速驱动,其底部后方两个同构驱动轮的转动为其提供动力,前方的随动轮起支撑作用并不推动其运动,如图1两轮差速驱动示意图所示。 定义其左右驱动轮的中心分别为Wl和Wr,且对应线速度为Vl和Vr,该值可以通过电机驱动接口输出的角转速ωl,ωr2和驱动轮半径r求得,即: Vl=r⋅...

启小新的博客 8万+

GLDAS数据高效处理指南:基于Matlab的NC4转GeoTIFF实战解析

本文提供了一份基于Matlab的GLDAS数据处理实战指南,详细解析了如何将NetCDF4格式的GLDAS数据高效、准确地批量转换为GIS友好的GeoTIFF格式。文章核心内容包括数据理解、环境搭建、核心代码逐步拆解、效率提升技巧以及常见避坑方案,旨在帮助全球生态、水文与气候领域的研究者打通数据预处理的关键环节,提升科研工作效率。

weixin_29094775的博客 310

对称加密算法DES,3重DES,TDEA,Blowfish,RC5,IDEA,AES。

对称加密算法:DES,3重DES,TDEA,Blowfish,RC5,IDEA,AES。  1、对称加密算法 1.1 定义 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yue)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能...

weixin_34167819的博客 1869

MAVLink协议详解

MAVLink是为微型飞行器MAV(Micro Air Vehicle)设计的(LGPL)开源的通讯协议。是无人飞行器和地面站(Ground Control Station ,GCS)之间,以及无人飞行器之间通讯常用的协议。APM、PIXHAWK飞控,Mission Planner、QGroundControl地面站均使用了MAVLink协议进行通讯。 MAVLink源码下载地址(现已更新至v2.0):https://github.com/mavlink/qgroundcontrol   用户手册:ht

程序猿老樊的博客 7702

python3 在线加密_Python3对称加密算法AES、DES3实例详解

本文实例讲述了Python3对称加密算法AES、DES3。分享给大家供大家参考,具体如下:python3.6此库安装方式,需要pip3 install pycryptodome。如有site-packages中存在crypto、pycrypto,在pip之前,需要pip3 uninstall crypto、pip3 uninstall pycrypto,否则无法安装成功。C:\WINDOWS\sy...

weixin_39657662的博客 304

基于Simulink的超级电容快速响应特性建模与仿真

本文介绍了基于Simulink的超级电容快速响应特性建模与仿真方法。主要内容包括:超级电容的工作原理、一阶RC等效电路模型及其动态电压方程;通过Simulink搭建超级电容模型的两种方法(Simscape Electrical推荐方案和基础模块透明教学方案);仿真100A×100ms放电脉冲下的电压响应特性,并与锂电池进行动态对比;分析超级电容在混合储能系统中的功率分配优势。文章还提供了工程实践要点和扩展方向,如电压均衡、温度影响评估以及与DC-DC变换器集成等。通过建模实践,验证了超级电容在毫秒级响应、高

xiaoheshang_123的博客 98

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

AES对称加密算法实践 python3

下面是在python3中使用MODE_CBC(需要salt)的最佳实践 python2环境的见:https://blog.youkuaiyun.com/feitianxuxue/article/details/102960785 如果AES加密是MODE_ECB模式,则不需要随机向量,代码中注释部分 加解密过程: 通过 python encode.py 加密本地data目录下的file.jpg文件(二...

feitianxuxue的专栏 904

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

python3 对称加密算法AES、DES3

python3.6此库安装方式,需要pip3 install pycryptodome。 如有site-packages中存在crypto、pycrypto,在pip之前,需要pip3 uninstall crypto、pip3 uninstall pycrypto,否则无法安装成功。 C:\WINDOWS\system32>pip3 install pycryptodome Coll...

伪善者的博客 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

JAVA加密算法(3)- 对称加密算法(DES、3DES、AES)

##对称加密算法概念 加密密钥和解密密钥相同,大部分算法加密揭秘过程互逆。 特点:算法公开、(相比非对称加密)计算量小、加密速度快、效率高。 弱点:双方都使用同样的密钥,安全性得不到保证。 ##常用对称加密算法 DES(Data Encryption Standard) 3DES(DES...

chixitan0948的博客 157

3.Java开源AES/SM4/3DES对称加密算法的验证说明

1.基于Java的BouncyCastle开源库做了二次封装,已开源。支持AES(256/192/128)/SM4/3DES加密算法; 2.支持上述秘钥长度与ECB/CBC/CTR/CFB工作模式以及NoPadding/PKCS5Padding填充算法的组合验证;

编码之旅 1043

对称加密算法(3):AES

一.AES:AES加密算法即密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日发布于FIPS PUB 197,并在200

草帽的博客 542

des3加密 java_JAVA加密算法(3)- 对称加密算法(DES、3DES、AES)

##对称加密算法概念加密密钥和解密密钥相同,大部分算法加密揭秘过程互逆。特点:算法公开、(相比非对称加密)计算量小、加密速度快、效率高。弱点:双方都使用同样的密钥,安全性得不到保证。##常用对称加密算法DES(Data Encryption Standard)3DES(DES加强版,使用3次DES计算,Triple DES,DESede)AES(Advanced Encryption Standa...

weixin_42297347的博客 249

java des3加密_JAVA加密算法(3)- 对称加密算法(DES、3DES、AES)

对称加密算法概念加密密钥和解密密钥相同,大部分算法加密揭秘过程互逆。特点:算法公开、(相比非对称加密)计算量小、加密速度快、效率高。弱点:双方都使用同样的密钥,安全性得不到保证。常用对称加密算法DES(Data Encryption Standard)3DES(DES加强版,使用3次DES计算,Triple DES,DESede)AES(Advanced Encryption Standard,3...

weixin_35792236的博客 289

3des des java_JAVA加密算法(3)- 对称加密算法(DES、3DES、AES)

对称加密算法概念加密密钥和解密密钥相同,大部分算法加密揭秘过程互逆。特点:算法公开、(相比非对称加密)计算量小、加密速度快、效率高。弱点:双方都使用同样的密钥,安全性得不到保证。常用对称加密算法DES(Data Encryption Standard)3DES(DES加强版,使用3次DES计算,Triple DES,DESede)AES(Advanced Encryption Standard,3...

weixin_35186551的博客 344
上一篇: FabricV2.2BCCSP套件之如何具体选择AES、ECDSA、SHA
下一篇: 算法4_对称加密算法之SM4
Blockchain410
博客等级 码龄5年 3230粉丝 36原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Blockchain410

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值