文档介绍:AES加密技术
2000年10月,NIST (美国国家标准和技术协会)宣布通过从 15 种侯选算法中选出的一项新的密匙加密标准。 Rijndael被选中成为将来
的AES。Rijndael是在1999年下半年,由研究员Joan Daemen 和 Vincent Rijmen创建的。AES正日益成为加密各种形式的电子数据的 实际标准。
美国标准与技术研究院 (NIST)于2002年5月26日制定了 新的高级加密标准(AES)规范。
算法原理
AES算法基于排列和置换运算。排列是对数据重新进行安排,置 换是将一个数据单元替换为另一个。AES使用几种不同的方法来执行 排列和置换运算。
AES是一个迭代的、对称密钥分组的密码,它可以使用128、192 和256位密钥,并且用128位(16字节)分组加密和解密数据。与 公共密钥密码使用密钥对不同, 对称密钥密码使用相同的密钥加密和解 密数据。通过分组密码返回的加密数据的位数与输入数据相同。 迭代加
密使用一个循环结构,在该循环中重复置换和替换输入数据。
AES与3DES的比较
算法
名称
算法类型
密钥长
度
速
度
解密时间(建设
机器每秒尝试
255个密钥)
资源消
耗
AES
对称
128、
高
1490000 亿年
低
block 密
192、256
码
位
3DES
对称
112位或
低
46亿年
中
feistel 密
168位
码
(
.html)
关键词:AES算法DES AVR汇编语言加密算法解密算法
引言
随着对称密码的发展,DES数据加密标准算法由于密钥长度较 小(56位),已经不适应当今分布式开放网络对数据加密安全性的要求, 因此1997年NIST公开征集新的数据加密标准,即AES[1]。经过三轮的 筛选,比利时Joan Daeman 和Vincent Rijmen 提交的Rijndael算法被 提议为AES的最终算法。此算法将成为美国新的数据加密标准而被广
泛应用在各个领域中。尽管人们对AES还有不同的看法,但总体说,AES
作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和
灵活等优点。AES设计有三个密钥长度:128,192,256位,相对而言, AES的128密钥比DES的56密钥强1021倍[2]。AES算法主要包括 三个方面:轮变化、圈数和密钥扩展。本文以
128为例,介绍算法的基 本原理;结合AVR汇编语言,实现高级数据加密算法 AES。
AES加密、解密算法原理和 AVR实现
AES是分组密钥,算法输入128位数据,密钥长度也是128 位。用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关 系如表1所列)。每一轮都需要一个与输入分组具有相同长度的扩展密 钥Expandedkey(i)的参与。由于外部输入的加密密钥 K长度有限,所以
在算法中要用一个密钥扩展程序(Keyexpansion)把外部密钥K扩展成 更长的比特串,以生成各轮的加密和解密密钥。
圈变化
AES每一个圈变换由以下三个层组成:
非线性层 进行Subbyte变换;
线行混合层 进行ShiftRow和MixColumn运算;
密钥加层 进行AddRoundKey运算。
①Subbyte变换是作用在状态中每个字节上的一种非线性字节转 换,可以通过计算出来的S盒进行映射。
Schange:
ldi zh, $ 01;将指针指向S盒的首地址
mov zl,r2 ;将要查找的数据作为指针低地址
ldtemp,z+ ;取出这个对应的数据
mov r2,temp ;交换数据完成查表
.
.
.
ret
②ShiftRow是一个字节换位。它将状态中的行按照不同的偏移量
进行循环移位,而这个偏移量也是根据 Nb的不同而选择的[3]。
shiftrow:;这是一个字节换位的子程序
mov temp,r3;因为是 4X4
mov r3,r7; r2 r6 r10 r14 r2 r6 r10 r14
mov r7,r11; r3 r7 r11 r15---r7 r11 r15 r3
mov r11,r15; r4 r8 r12 r17 r12 r17 r4 r8
mov r15,temp; r5 r9 r13 r18 r18 r5 r9 r13
mov temp,r4
mov temp1,r8
mov r4,r12
mov r