基于AES算法实现对数据的加密
2010-09-30 12:55:22 来源:WEB开发网AES加密例程开始是拷贝16字节的输入数组到一个名为State(态)的4x4字节矩阵中。如表3所示。AES算法的主循环对State矩阵执行4个不同的操作为:SubBytes(字节替换)、ShiftRows(行位移变换)、MixColumns(列混合变换)和AddRoundKey。
SubBytes是一个代替操作,它将State矩阵中的每个字节替换成一个由Sbox决定的新字节。
ShiftRows是一个置换操作,它将State矩阵中的字节向左旋转。如表4所示,State的第0行被向左旋转0个位置,State的第1行被向左旋转1个位置,State的第2行被向左旋转2个位置,而State的第3行被向左旋转3个位置。
MixColumns是一个代替操作,它用State字节列的值进行数学域加和域乘的结果代替每个字节。
AddRoundKey(轮密钥加),用密钥调度表中的前4行对State矩阵实行一个字节一个字节的异或(XOR)操作,并用轮密钥表w[e,r]异或输入的State[r.c]。SubBytes、ShiftRows、MixColumns和AddRoundKev 4个操作在一个执行Nr次的循环里被调用,Nr为给定密钥大小的轮数减l。加密算法使用的轮数或是10,12,或是14,这依赖于种子密钥长度是128位、192位还是256位。在这里,因为Nr等于12,则这4个操作被调用11次。该迭代完成后,在拷贝State矩阵到输出参数前,加密算法调用SubBytes、ShiftRows和AddRoundKey后结束。
AES加密算法的核心有4个操作,AddRoundKey使用从种子密钥值中生成的轮密钥代替4组字节。SubBytes替换用一个代替表替换单个字节。ShiftRows通过旋转4字节行的4组字节进行序列置换。MixColumns用域加和域乘的组合来替换字节。
4 结语
相对DES算法,AES算法的实现更简单.同时由于AES算法具备很强的扩散性能,最终形成的密码有很高的随机性,抗分析攻击能力强。在软件工程中,更便于制作成通用的加密对象类型或加密标准组件,在不降低安全性能的条件下,极大的简化数据加密程序的开发难度。
AES算法的实现程序,对处理器性能、内存的需求量等方面的要求低,可以广泛的应用到智能卡、卫星通信、数字电视、流式媒体、加密键盘、ATM、CDM等智能设备中,可提供很高的安全性能,因此,AES将在今后很长时间内具备广阔的应用前景。
- ››基于IP地址的vsftp服务器
- ››基于MySQL 水平分区的优化示例
- ››基于CentOS5的Linux下pptp和openvpn的搭建及配置
- ››基于JavaScript的网页版塔防游戏
- ››基于Android平台 QQ大战360手机游戏爆红
- ››基于Windows Azure的云计算应用设计
- ››基于AES算法实现对数据的加密
- ››基于SoPC目标板Flash编程设计的创建及应用
- ››基于SolidWarks齿轮机构的运动分析与仿真
- ››基于Windwos Server 2008故障转移群
- ››基于JavaScript的REST客户端框架
- ››基于JavaScript和CSS的Web图表框架横向对比
更多精彩
赞助商链接