当前位置:首页 > 服务与支持 > 工业知识 > 正文内容

AES-NI指令集是什么技术哦?

2022-05-16 12:50:05工业知识1

AES 高级加密标准


高级加密标准(Advanced Encryption Standard,AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。Intel在新处理器中加入的AES-NI指令集,并不能自动为你的数据进行加密。然而他也是第一个解决加密解密复杂程度迈出的重要一步。你可以把它看做是购买Intel 32nm处理器的一种增值服务。


AES是目前最为流行的加密标准,在IT世界如此在整个加密算法世界亦是如此。标准的AES加密位宽是每个文件块128bit,包含128、192、256bit密码,这也就是俗称的AES-128、AES-192、AES-256。AES衍生出许多加密方案,比如TrueCrypt。不过这个标准最重要的就是通过了美国政府的权威认证,并且开始大肆流行起来。


AES加密数据


AES加密是基于替代置换网络算法,这意味着需要进行一系列的数学运算,努力建立一个复杂的数学模型进行数据的加密。输入的文字总是一些纯文本和键盘操作。同时加密的数据也会进行简单的同或、异或或者更为复杂的处理。因为单一的堆砌数据也是非常容易被的,因此整个加密过程会经历多次循环。AES-NI加密可以进行10个、12个、14个循环,对应AES-128、AES-192、AES-256规范。当然在解密时,也会经历同样的操作。


AES加密过程


AES加密过程是在一个4×4的字节矩阵上运作,这个矩阵又称为“体(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个Byte)。(Rijndael加密法因支持更大的区块,其矩阵行数可视情况增加)加密时,各轮AES加密循环(除最后一轮外)均包含4个步骤:


1、addroundKey — 矩阵中的每一个字节都与该次回合金钥(round key)做XOR计算;每个子密钥由密钥生成方案产生。
2、SubBytes — 通过一个非线性的替换函数,用查找表的方式把每个字节替换成对应的字节。
3、ShiftRows — 将矩阵中的每个横列进行循环式移位。
4、MixColumns — 为了充分混合矩阵中各个直行的操作。这个步骤使用线性转换来混合每内联的四个字节。


最后一个加密循环中省略MixColumns步骤,而以另一个addroundKey取代。



AES的安全性如何?


由于弱版的AES已遭,其加密循环数和原本的加密循环数相差无几,有些密码学家开始担心AES的安全性:要是有人能将该著名的攻击加以改进,这个区块加密系统就会被。在密码学的意义上,只要存在一个方法,比暴力搜索密钥还要更有效率,就能被视为一种“”。故一个针对AES 128位密钥的攻击若“只”需要2120计算复杂度(少于暴力搜索法 2128),128位密钥的AES就算被了;即便该方法在目前还不实用。从应用的角度来看,这种程度的依然太不切实际。最著名的暴力攻击法是distributed.net针对64位密钥RC5所作的攻击。(该攻击在2002年完成。根据摩尔定律,到2005年12月,同样的攻击应该可以66位密钥的RC5。)


由于现代计算机科技的进步,AES最大的敌人可能就是CUDA这样的高性能计算设备,或者是分布式的运算网络。有人已经可以在1各月的时间内,暴力AES-128的密码。但是对于AES来说,还有一个潜在的方式,那就是旁道攻击。


旁道攻击


旁道攻击不攻击密码本身,而是攻击那些实现于不安全系统(会在不经意间泄漏信息)上的加密系统。2005年4月,D.J. Bernstein公布了一种缓存时序攻击法,他以此了一个装载OpenSSL AES加密系统的客户服务器。为了设计使该服务器公布所有的时序信息,攻击算法使用了2亿多条筛选过的明码。有人认为,对于需要多个跳跃的国际互联网而言,这样的攻击方法并不实用。Bruce Schneier称此攻击为“好的时序攻击法”。


2005年10月,Eran Tromer和另外两个研究员发表了一篇论文,展示了数种针对AES的缓存时序攻击法(PDF)。其中一种攻击法只需要800个写入动作,费时65毫秒,就能得到一把完整的AES密钥。但攻击者必须在运行加密的系统上拥有运行程序的权限,方能以此法该密码系统。


Intel的AES-NI指令


鉴于上述AES加密应用的普遍性与相对的安全可靠性,使得它成为了目前应用最为广泛的加密算法。不管AES是否会在未来被新的算法淘汰,当今的处理器加入针对AES的指令集,有助于减轻加密解密时的运算负荷。处理器可以使用封装数据的方式来批量处理这些加密的数据。这对于数据安全和可靠性要求较高的商务和企业应用,有着非常大的意义。


本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:http://www.lengcanghe.com/fwyzc/gyzs/14564.html