2。3。2 透明加密算法AES

AES(The Advanced Encryption Standard)是美国国家标准与技术研究所研制的一种加密算法。具体来定义的话,AES 是一个迭代的、有对称密钥分组的密码,它的密钥可以有128、192 和 256 位,用 128 位进行加密和解密数据。分组是指对明文数据库中一组比特同时进行加密,而非一个比特。与公共密钥的密码需要明确定义不一样,对称密钥密码使用相同的密钥加密和解密数据。但是通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构[16]。

下面来解释这种本文用到的算法。AES 用192位密钥对一个16位字节数据块进行加密和解密的情形如图2-2所示。

                       图2-2 AES加解密过程

下面是128位值以及它们对应的索引数组:

00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

192位密钥的值是:

00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 0 1 2 3 4 5 6 7 8 9 10 1112 13 14 15 16 17 18 19 20 21 22 23

                          图2-3 S-盒( Sbox )

当 AES 的构造函数被调用时,用于加密的表被初始化。第一个表是取代盒称为S-盒。它是一个16×16的矩阵。S-盒的前五行和前五列如图2-3所示。在幕后,加密例程获该密钥数组并用它来生成一个名为w[]的密钥调度表,如图2-4所示[17]。

                     图2-4 密钥调度表(Key Sched)

w[] 最初的 Nk (6) 行被作为种子,用原始密钥值(0x00 到0x17)。剩余行从种子密钥来产生。关键是这里现在有不止一个密钥在用。新的密钥被称为轮密钥(round keys),用来把它们与原始种子密钥区分出来。

                        图2-5 State (态)数组

AES加密开始是复制输入数组到一个名为State (态)的 4×4 字节矩阵中。如上图2-5所示。加密算法实现的一个预处理步骤被称为 AddRoundKey(轮密钥加)。AddRoundKey 用密钥调度表中的前四行对 State 矩阵实行异或操作,并用轮密钥表 w[c,r] 异或输入 State[r,c]。AES 算法对 State 矩阵执行四种操作,分别被称为SubBytes(字节替换)、ShiftRows(行位移变换)、MixColumns(列混合变换) 和 AddRoundKey(轮密钥加)。SubBytes 是一个代替操作,将 State 矩阵中的每个字节替换成由 Sbox 决定的新字节。继而你用 x 和 y 进到 Sbox 表中寻找代替值。ShiftRows 是一个置换操作,它将 State 矩阵中的字节向左循环。 ShiftRows 如何操作 State[]如图2-6所示。State 的第0行被向左旋转0位,同理State 的第1行被向左平移1位,State 的第2行被向左平移2位,而 State 的第3行被向左平移3位[17]。

                    图2-6 ShiftRows 操作 State[]

字节替换、行位移变换、列混合变换和轮密钥加四个操作在一个执行 Nr 次的循环里被调用,为给定密钥的轮数减 。轮数是10,12或者14,对应于种子长度128、192 或者256 位。迭代完成后,在拷贝State 矩阵到输出参数前,加密算法用 SubBytes、ShiftRows 和 AddRoundKey 后完成[17]。文献综述

所以大致说来,AES加密算法的核心有四个操作。总结来说就是AddRoundKey使用从种子密钥值中生成的轮密钥代替 4 组字节;SubBytes 替换用一个代替表替换单个字节;ShiftRows 旋转4 组字节进行序列置换;MixColumns用域加和域乘的组合来代替[10、15]。

AES其实广泛在各种应用中,从很小的智能卡到大型的多处理器主机系统。可以说AES加密算法是在已经开发出的加密算法中的安全性排名最前列。理想来说,假设密钥长度为256 位,应该没有已知的反加密能在一个存在的时间内破解AES(在最快的系统上,少说也要数十年的时间)。

上一篇:ASP.net移动互联的小微企业智慧运营云平台平台系统管理
下一篇:jsp+mysql嵌入式系统实验室实践教学辅助系统设计

Android全国天气移动终端应用程序设计研究

Android员工请假系统设计

Android手机考勤系统设计

Android大学一卡通APP设计与开发+源代码

楼宇能源监控android端的设计+源代码

Android药品公司管理系统的设计+源代码

java景点移动导游系统设计与实现

弹道修正弹实测弹道气象数据使用方法研究

淮安市老漂族心理与休闲体育现状的研究

浅谈动画短片《天降好运》中的剧本创作

组态王文献综述

大学生就业方向与专业关系的研究

紫陵阁

适合宝妈开的实体店,适...

小学《道德与法治》学习心得体会

林业机械作业中的安全性问题【2230字】

人事管理系统开题报告