博客导读网

一个让你随便看看的地方

使用AES-NI进行加密实例分析(1) —— AES-NI简介

推荐
英特尔® 软件网络博客 - 中文

Intel AES指令(AES-NI)是Intel32纳米微架构上的一组新指令。这些指令对于使用AES(Advancde Encryption Standard)算法进行数据加解密的操作能够起到加速的作用。AES标准由FIPS定义,如今广泛应用在贸易安全,数据库的加密等各个方面。
Intel AES-NI包括七条指令。其中六条是硬件对AES的支持(四条关于AES加解密,另两条指令有关AES key的扩展)。第七条指令有助于进位乘法。
AES-NI可以灵活地支持AES的各种使用方式,包括各种标准密钥的长度,各种模式的操作,甚至是一些非标准或是未来可能的各种方式。对比现在一些纯软件的实现,它对性能的提升非常显著。
Intel IPP从6.1.2之后的版本都有对AES-NI指令的支持。IPP加密库的实现使用户能够方便且容易地把原来的应用移植到新的平台上,无需做任何的代码改动,就可以在新处理器上即刻获得性能提升。服务器Xeon5600系列的处理器有对AES-NI的支持。很多使用AES加密的应用也因此获得了性能提升。
好吧,前面这段官方的介绍是我直译而来,想了解更多,请读以下的链接:
Intel Advanced Encryption Standard (AES) Instructions Set - Rev 3:
http://software.intel.com/en-us/articles/intel-advanced-encryption-standard-aes-instructions-set/
AES-NI support in Intel IPP:
http://software.intel.com/en-us/articles/aes-ni-support-in-intel-ipp/
本篇以及接下来的几篇博客就是想用实际案例来证明前面所说的内容不是空谈。
草拟如下计划:
1)AES-NI介绍及IPP sample的结果(就是本文哈)
2)如何使用IPP及OpenSSL写自己的加密代码
3)使用AES-NI对于AES加密的性能提升
4)补充(如果有的话)
另,我和TCE的Ying JJ 合作了一篇application note,里面讲述了有关IPP sample的使用。
地址如下:
http://software.intel.com/en-us/articles/boosting-openssl-aes-encryption-with-intel-ipp/
我把IPP sample的测试结果总结如下:
a)      在CBC, CFB,OFB模式下, IPP vs OpenSSL的加速比分别为 2.59X, 2.87X and 1.35X; 可见IPP对CFB模式 的性能提升更好。 
b)       对于加密和解密两种操作,IPP vs OpenSSL 的加速比分别为1.34 and 4.13X; 可见IPP对于解密操作的性能提升更多。

c)       对于不同长度的密钥(128b, 192b and 256b),IPP vs OpenSSL 的加速比分别为2.25X,2.27X and 2.29X. 基本都差不多。

d)      对于不同长度加密数据 (从256B 到 16384B),IPP vs OpenSSL 的加速比从 [...]
原文地址:http://software.intel.com/zh-cn/blogs/2010/04/07/aes-ni1-aes-ni/

中文的其他文章
OpenCV学习笔记(一)——安装配置、第一个程序 OpenCV学习笔记(三)——Mat,图像的新容器
OpenCV学习笔记(二)——新版本模块结构 OpenCV学习笔记(四)——新版本的数据结构core
OpenCV学习笔记(五)——2.0以上版本和以下版本的数据兼容 案例研究:使用英特尔GPA优化《兵王》游戏的性能
Win8应用开发介绍(六) Win8伴你随行 ICC 编译 Google Mock 和 Google Test 的问题
如何搭建英特尔WIDI开发环境?(1) 如何搭建英特尔WIDI开发环境?(2)
更多...

© 2010 博客导读网 BlogABC.NET 本站所有内容皆由网友推荐而来,所有博文的版权归原作者所有,如有冒犯,请邮件告知。uncracker#gmail.com