首页 > 编程知识 正文

aes是什么意思,RSA加密算法对efg进行加密

时间:2023-05-03 18:32:47 阅读:169698 作者:897

由于解密了DES加密算法,未解密3DES加密算法,但3DES算法加密解密效率低,目前都在使用AES算法。

AES加密算法是密码学中的高级加密标准,AES是分组加密法,将明文分成一个组,各组长度相等,加密数据集直到加密整个明文。 在AES标准中,分组的长度只有128比特,并且每个字节加密AES。 这意味着每个组可以有16个字节(密钥长度可以是128位、192位或256位)。 结果,密钥的长度不同,建议加密的循环数也不同。

AES算法思想:

1 )设计简单

2 )多平台速度快,代码紧凑

3 )抵抗所有已知攻击

4 )不采用Feistel结构,循环函数由非线性层、线性混合层、密钥相加层三种不同的可逆均匀变换组成。

明文p需要分组,如图所示,称为以字节为元素的矩阵数组表示的状态。

16字节的明文按此顺序排列,规则是从上到下,从左到右。

同样,密钥k也必须按照与明文p相同的原理进行分组。 下图是128位密钥矩阵。

下图为AES加密流程:

加密过程: c=e(k,p ),其中c为经加密的密文,k为密钥,p为明文,e为加密函数。

解码过程: p=d(k,p ),其中d是解码过程的逆运算。

AES的具体加密过程如下图所示。

AES加密过程通过字节替换、低移位、列模糊化和循环密钥相加四个步骤实现。

注意:密钥长度不同,加密的回合数也不同。 在第一个循环之前添加循环密钥,而在最后一个循环中不执行混淆列操作。

让我解释一下这四个步骤的具体含义:

字节替换:是非线性替换,其具体原理是用一个替换表(s盒)替换每个字节,实际上是查找表操作。 然后,该过程可逆地将各字节的前4位作为行值,将下4位作为列值,检索到s框并输出。

下图是s框(x表示行,y表示列),例如,字节为0x14时,前4位十六进制数为1,后4位十六进制数为4,查找s框第1行第4列的值,发现是0xfa,原始字节

解密过程与此相同,唯一采用的是倒s盒。

接下来是行位移操作

对于4*4矩阵,操作如下:

第0行:不动

第1行:循环左移1字节;

第二行:循环左移2个字节;

第三行:将循环左移3个字节。

解密过程循环右移,每行的移位字节数与加密过程相同。 下图是列移位的图像。

接下来是列混淆操作

实际上乘以44个矩阵和其他44个矩阵的异或,如下图所示,得到新的4*4的矩阵。

解码处理是重新计算与该矩阵的异或。 为什么这么说呢,因为通过两次异或运算得到的值就是原始数据本身。

最后轮密钥加号操作

循环密钥和状态矩阵进行逐位异或操作。

该循环密钥由种子密钥通过密钥组织算法得到,循环密钥长度与组长相同。

解密过程与此相同,进行两次异或运算得到原始数据。

密钥编排算法基本原则

1 )循环密钥的位数等于组长将循环数乘以1。

例如,加密128位明文需要总计(10(1) *128=1408位密钥。

2 )将种子密钥扩展为扩展密钥

3 )循环密钥取自扩展密钥,第一循环取扩展密钥的第0~3列,按顺序类推。

过程如下。

定义: w [0]到w [3]是初始键

如果如果i=4的倍数,即I是每个组的第一列,请执行以下三个步骤

1 )将w[i-1]循环左移1字节:

w [0] w [1] w [2] w [3] w [4] 2b 28 ab 09 cf7eaef 74 F4 f15 d 2154 f3c 16 a 6883 c09 w’[ I ]=w [ I-1 ]向左移动一个字节而获得。

w’[4]=w [3]左移一个字节={09,cf,4f,3c}字节左移={cf,4f,3c,09}

2 )对w’[ I ]的每个字节进行s盒替换,本质上是查询查找表,替换为另一个字节。

即,查表后为w’’[ I ]。

例如,w’[4]查表后的w’’[4]={ 8a,84,eb,01},需要s盒自检。

3 )将前两个步骤的结果与同圈常数Rcon[j]进行异或。 j表示轮数,Rcon[j]如下图所示

j 12345 rcon [ j ] 0100000002000004000000008000000000 rcon [ j ] 20000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

即w [4]=w [0]w’’[4]rcon [1],

那么w [8]=w [4]w’’[8]rcon [2],……

如果如果i4的倍数,即I是每个组的第2、3和4列,请执行以下操作

即w[i]=w[i-4]w[i-1]

例如w[5]=w[1]w[4],w[6]=w[2][5],……

的最终扩展键为{w[4]、w[5]、w[6]和w[7]。 随后的每个关键点都基于上一个倒圆角创建。

你可能不太明白你在说什么,我稍后补充。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。