AES加密算法的实现及应用

2009-07-05 10:02赵雪梅
现代经济信息 2009年23期
关键词:数组加密算法移位

赵雪梅

摘要:AES加密算法具有安全性高,运行速度快,对硬件配置要求低,算法属于对称算法等优点,非常适合硬件的实现。课题对于AES加密算法进行改进,提高程序运行效率进行了研究。研究主要包括AES加密算法的改进,C语言实现,以及完成对数据流的加密和解密过程,同时对AES加密算法的应用进行了简单介绍。

关键词:AESC语言加密

前言: AES加密算法作为DES加密算法的替代品,具有安全、高效以及在不同硬件和软件[6]运行环境下表现出的始终如一的良好性能,因此该算法具有较高的开发潜力和良好的实用价值。本研究主要包括AES加密算法的改进,C语言实现,以及完成对数据流的加密和解密过程,同时对AES加密算法的应用进行了简单介绍。

一、AES加密算法的改进及实现

(1)AES加密算法的流程图

在图1.1中,Round代表加密的轮数,即程序循环次数。State代表状态矩阵,一个存储原始数据的数组。RoundKey代表经过扩展运算后的密钥数组。ByteSub()代表置换函数,对状态矩阵State中的数据进行置换。ShiftRow()代表移位函数,对状态矩阵State中的数据进行移位运算。MixColumn()代表列混合运算函数,对状态矩阵State中的数据进行列混合运算。AddRoundKey()代表异或运送函数,对数组State和数组RoundKey进行异或运算。由上图可以看出,最后一次轮变换比前几次轮变换少执行一次MixColumn()函数。

(2)AES解密算法的流程图

在图1.2中,Round代表加密的轮数,即程序循环次数。State代表状态矩阵,一个存储原始数据的数组。RoundKey代表经过扩展运算后的密钥数组。InvByteSub()代表置换函数,对状态矩阵State中的数据进行置换。InvShiftRow()代表移位函数,对状态矩阵State中的数据进行移位运算。InvMixColumn()代表列混合运算函数,对状态矩阵State中的数据进行列混合运算。由上图可以看出,最后一次轮变换比前几次轮变换少执行一次MixColumn()函数。

二、AES加密算法复杂度分析

下面对改进前的算法和改进后的算法进行复杂度分析[8]以及程序执行效率的分析。

设b为0x00—0xff中的任意常数,以0x09*b为例进行讨论。该算式分解如下:

猜你喜欢
数组加密算法移位
JAVA稀疏矩阵算法
JAVA玩转数学之二维数组排序
再生核移位勒让德基函数法求解分数阶微分方程
大型总段船坞建造、移位、定位工艺技术
Σ(X)上权移位算子的不变分布混沌性
Excel数组公式在林业多条件求和中的应用
HES:一种更小公钥的同态加密算法
基于小波变换和混沌映射的图像加密算法
多指离断手指移位再植拇指25例
寻找勾股数组的历程