当前位置:   article > 正文

用verilog实现AES密码算法1---一些理论准备_aes算法verilogk可配置

aes算法verilogk可配置

用verilog实现AES密码算法1—一些理论准备

这两周做了一个课程设计,是AES密码算法的加解密,用verilog实现的,因为从原理到设计花了一些时间,笔记本上记录了一堆厚厚的分析资料,俗话说好记性不如烂笔头,我觉得有必要记录这些工作。

AES算法总体介绍

AES算法的分组长度和密钥长度均能被独立指定为128位、192位或256位,密钥长度不同,则加密轮数不同。本次实验以密钥长度128位,加密10轮为例,算法中16字节的明文、密文和轮密钥都以一个4x4的矩阵表示。下图为AES算法加解密的流程图:
 AES加解密流程图
AES加密过程涉及到4种操作:分别是字节替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。解密过程分别为对应的逆操作。由于每一步操作都是可逆的,按照相反的顺序进行解密即可恢复明文。加解密中每轮的密钥分别由初始密钥扩展得到。下面是AES一轮加密的过程。
AES一轮加密

字节代换

字节代换的主要功能是通过S盒完成一个字节到另外一个字节的映射,也可以简化为一个简单的查表操作。S盒用于加密查表,逆S盒用于解密查表。它们都是由1616字节组成的矩阵,即矩阵共有256元素,每元素的内容是一个1个字节(8bit)的值,且每个元素各不相同。状态矩阵中的元素按照下面的方式映射为一个新的字节;把该字节的高4位作为行值,低四位作为列值,取出S盒或者逆S盒中对应行列的元素作为输出。AES定义了一个S盒和一个逆S盒,下图AES算法的S盒和逆S盒表格。
AES的s盒

行移位

行移位的功能是实现一个4x4矩阵内部字节之间的置换。它分为正向行移位和行移位逆变换。
正向行移位(左移)
这是一个简单的左循环移位操作。128bit时,状态矩阵的第0行左移0字节,第一行左移1字节,第2行左移2字节…正向行移位的原理图如下:
行移位(左移)
行移位逆变换(右移)
这是一个简单的右循环移位操作。当密钥长度为128bit时,状态矩阵的第0行右移0字节,第一行右移1字节,第2行右移2字节
行移位逆变换(右移)

列混淆

列混淆变换是通过矩阵相乘来实现的,分为正向列混淆和列混淆逆变换,经行移位后的状态矩阵与固定的矩阵相乘,得到混淆后的状态矩阵。正向列混淆的原理图如下:
正向列混淆
根据矩阵的乘法可知,在列混淆的过程中,每个字节对应的值只与该列的4个值有关系。此处的乘法和加法都是定义在GF(28)上的,需要注意如下几点:
(1) 将某个字节所对应的值乘以2,其结果就是将该值的二进制位左移一位,如果该值的最高位为1(表示该数值不小于128),则还需要将移位后的结果异或00011011;
(2) 此处的矩阵乘法与一般意义上矩阵的乘法有所不同,各个值在相加时使用的是模2加法(相当于是异或运算)。
下面是列混淆逆运算的矩阵乘法定义:
列混淆逆运算

密钥扩展

AES首先将初始密钥输入到一个4*4矩阵中,如图3所示,这个44矩阵的每一列的4个字节组成一个字,矩阵4列的4个字依次命名为ω[0]、ω[1]、ω[2]、ω[3].它们构成了一个以字为单位的数组ω。
由初始密钥得到扩展密钥的前4项
接着,对ω数组扩充40个新列,构成总共44列的扩展密钥数组,新列以如下的递归方式产生:
(1) 若i不是4的倍数,那么第i列由 这里写图片描述确定;
(2) 若i是4的倍数,那么第i列由这里写图片描述 确定。
其中g是一个复杂的函数,其组成如下图4所示
 g函数结构图  g函数结构图
由图4看出,g函数由字循环、字节代换和轮常量异或三部分组成,这三部分的作用分别如下:
(1) 字循环:将1个字中的4个字节循环左移1个字节;
(2) 字节代换:对字循环的结果使用S盒(参照图1)进行字节代换;
(3) 轮常量异或:对前两步的结果同轮常量Rcon[j](其值见表5)进行异或,其中j代表轮数。
轮常量Rcon[j]是一个字,其值见表。

j12345678910
Rcon[j]01000000020000000400000008000000100000002000000040000000800000001B00000036000000

轮密钥加

轮密钥加是将128位轮密钥Ki同状态中的数据进行逐位的异或操作,轮密钥由密钥扩展所得。

总结一下

今天总结了AES的结构和各模块的划分,下面几章就要分模块写出verilog的代码。

第一次使用CSDN的这个markdown做笔记还有一些不熟悉的地方,排版这些以后写多了慢慢再改的好看一些。
keep calm and carry on.

Bruce李
西安电子科技大学
2017年6月6日

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/856600
推荐阅读
相关标签
  

闽ICP备14008679号