AES算法用于保护文档的机密性 - 图文 联系客服

发布时间 : 星期六 文章AES算法用于保护文档的机密性 - 图文更新完毕开始阅读03d74ee0b9f3f90f77c61b08

1. AES算法分析

1.1 AES算法产生背景

作为传统对称加密算法标准DES的替代者,由美国国家标准与技术研究所(NIST)于1997年面向全球提出征集该算法的公告,要求分组大小为128位,允许3个不同的密钥大小,即128位,192位或256位,算法必须是可公开的。1999年3月22日,NIST从15个候选算法中公布了5个候选算法进入第二轮选择:MARS,RC6,Rijndael,SERPENT和Twofish。2000年10月2日,以安全性(稳定的数学基础,没有算法弱点,算法抗密码分析的强度,算法输出的随机性),性能(必须能在多种平台上以较快的速度实现),大小(不能占用大量的存储空间和内存),实现特性(灵活性,硬件和软件适应性,算法的简单性等)为标准而最终选定了两个比利时研究者Vincent Rijmen和Joan Daemen发明的Rijndael算法。并于2001年12月正式发布了AES标准(FIPS 197)。 该算法是迭代分组密码算法,其分组长度和密钥长度都可改变,该算法的扩充形式允许分组长度和密钥长度以32b的步长,从128b到256b范围内进行特定的变化。该算法的主要优点是:设计简单,密钥建立时间短,且灵敏良好,需要的内存空间少,在所有平台上运行良好,支持并行处理,抗所有已知攻击。

1.2 AES算法原理

堆成密码算法根据对明文消息加密方式的不同,可分为两大类;即分组密码和流密码。分组密码将消息分为固定长度的分组,输出的密文分组通常与输入的明文分组长度相同。AES算法属于分组密码算法,它的输入分组,输出分组以及加/解密过程中的中间分组都是128比特。密钥的长度k为128,192,或265比特。用Nk-4,6,8代表密钥串的字数(1字--32比特),在本文编制的程序中由用户选定。用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系见表1)。每一轮都需要一个和输入分组具有同样长度(128比特)的扩展密钥Kc的参与。由于外部输入的加密密钥K长度有限,所以在AES中要用一个密钥扩展程序把外部密钥K扩展成更长的比特串,以生成各轮的加密密钥。 1)加密变换

设X是AES的128比特明文输入,Y是128比特的密文输出,则AES密文Y可以用下面的复合变换表示;Y=A k(r+1)*R*S*Akr*C*R*S*A(r-1)*****C*R*S*Akl(X)。其中“*”表示复合运算。这里Aki:表示对X的一个变换Aki(X)=X异或Ki(Ki为第i

轮的子密钥,为比特串的异或运算)。S:S是一个给定的转换表。R:行置换。C:列置换。S`(x)=a(x)异或s(x)

1.3 AES算法安全性分析

1)AES汇聚了安全性能,效率,可是线性和灵活性等优点,最大的优点是可以给出算法最佳差分特征的概率,并分析算法抵抗差分密码分析及线性密码分析的能力。AES对内存的需求非常低,也使它你适合用于资源受限制的环境。AES操作简单,并可抵御强大和实时的攻击.AES的密钥,分组和轮数的组合对应关系。 2)对AES密码的攻击大致有差分和线性分析攻击,变量法攻击和Square攻击等。

3)差分和线性分析攻击:差分和线性分析方法是到目前为止二种最有用的通用密码分析方法。对于这些攻击提供轮数低的复杂度是在设计AES密码时的最基本的准则。对于AES密码来说,已经证明对于一个4轮的AES密码来说,差分分析方法的概率上限是2-150,线性分析方法的概率上限是2-75。结合实际AES密码的轮数,这些轮数对于抵抗上述攻击能够提供足够的安全性。已经证明对于一个4轮的AES密码来说,差分分析方法的概率上限是2-150,线性分析方法的概率上限是2-75。结合实际AES密码的轮数,这些轮数对于抵抗上述攻击能够提供足够的安全性。

4)变量法攻击:在变量法公布之后,线性和差分攻击方法在某些方面已经做了扩展,也公布了一些和它相关的攻击方法。最好的扩展方法是截段差分分析法(truncated differentials)。但是在设计AES密码的时候就已经考虑到这种攻击方法,AES密码能够比较好地抵抗这种攻击。其他的攻击方法还有:不可能差分攻击:差分密码攻击是利用高概率特征或差分恢复密钥,不可能差分攻击是利用概率为0(或非常小)的特征或差分,其基本思想是排除那些导致概率为0(或非常小)的特征或差分的候选密钥。对5轮的AES密码,可以用不可能差分攻击方法,它要求229.5个选择明文、231个密文、242个存储字和226小时的预先处理时间,使得它可以攻击6轮的AES密码。但是对于轮数更高的AES密码,采用该方法攻击则没有更好的效果。

5)Square攻击:对AES密码分析最有效的就是Square攻击,它是一个选择明文攻击,通过研究基于字节结构的密文来进行攻击。它对于和AES密码的其中一轮有相似结构的任何密文都是有效的。这种攻击的其他名字还有“饱和攻击”这种攻击能够破解具有7轮的192位和256位AES密码),L.Knudsen和D.Wagner提出的“积分密码分析”,以及A.Biryukov和A.Shamir提出的“结构攻击”。最初的Square攻击对6~7轮的AES密码(例如AES-128和AES-192)的破解比穷尽密钥搜索攻击快。N.Ferguson等在减少破解的工作方面做了一些优化,因此,它能够在有256位相关密码的277个明文,2224个密文,破解9轮的AES-256密码。

1.4 AES算法应用

1)应用与无线网络中:

由于无线网络的通信信道较有线网络更为开发,安全性的要求更高。目前,无线网络主要有两个国际标准:一是用于WLAN的IEEE803.11协议(Wi-Fi);二是用于WMAN的IEEE803.16协议(WiMAX)。这两个协议在制定初期所采用的安全机制分别为RC4和DES, 后来这两个协议也都将AES加入到协议的安全机制中。此外,为了保障数据传输安全性,其他的一些无线网络技术也都使用了AES加密算法。例如ZigBee技术,为确保MAC帧的完整性、机密性、真实性和一致性,其MAC层使用AES算法进行加密,并且生成一系列的安全机制。 ZigBee技术是一种近距离、低复杂度、低功耗、低数据速率,低成本的双向无线通信技术,主要适用于自动控制和远程控制领域,可以嵌入到各种设备中。 2)应用于电子商务中:

在电子商务方面,主要是AES在电子商务基础平台中的密码协议和交易安全协议中的应用。例如,将AES加密算法应用在SSL(Secure Sockets Layer安全套接层)协议中。在实施数据传输前,发送方通过身份认证后,用SSL安全通道发送AES密钥到接收方的同时,使用AES算法对实时数据加密,然后基于UDP协议通过互联网发送加密的实时数据到接收方。这样接收方可以用接收到的AES密钥得到具体的实时数据。此外,还可以研究将AES与其他一些公钥加密算法(非对称加密算法)相结合,设计出新的密码。目前比较典型的研究包括:AES加密算法与RSA加密算法相结合的混合加密体系;利用NTRU公钥密码体系分配AES密钥;AES加密算法与ECC(椭圆曲线加密算法)相结合的加密体系;AES加密算法在数据签名中的应用;AES加密算法在公钥加密体系PKI中的应用等等。 3)应用与软件中:

在AES软件实现方面,其应用领域包含语音、视频信息的加密,数据库中的数据加密等。随着计算机对多媒体信息处理能力的增强,多媒体信息加密的问题日渐凸显。由于多媒体信息的数据量很大,直接对其加密效率较低。所以,不仅要考虑数据加密算法AES的使用方法,还要设计相应的对多媒体信息进行加密的过程。关于AES加密算法在数据库方面的应用,主要在于如何在数据输入、输出中生成、分配和管理 所用的密钥以及安全的数据加密策略。 4)应用与硬件中:

在AES硬件实现方面,主要方向有射频IC卡中的数据安全、智能安全卡和对硬盘数据的加密等方面。目前射频IC卡的应用范围很广,如公交IC卡、校园一卡通、门禁卡和新一代的居民身份证中都嵌入了IC芯片。其中所存储的数据通常都含有持卡人的私人信息,这些信息如果不经过加密处理,很可能泄露出去。因此,如何在射频IC卡中加入数据加密功能是AES硬件应用的一个研究方向。随着密码技术的高速发展,高级加密标准AES加密算法将逐渐取代DES加密算法在IPSec、SSL和ATM中的使用,并广泛应用于虚拟专用网、远程访问服务器(RAS)、SONET(同步光网络)、高速ATM/Ethernet路由器、卫星通信、移动通信、电子金融业务等领域。此外,网络保密系统、财政保密、电子游戏保密等方面也将采用AES加密算法,将现有的关于AES研究成果与其他领域的相关技术与应用相结合,从应用的角度拓展数据加密技术,从而获得新的应用,是AES(Rijndeal)的发展方向。