当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于高级加密标准(AES)的处理器和指令制造技术

技术编号:8802965 阅读:249 留言:0更新日期:2013-06-13 07:04
提供了用于通用处理器的灵活aes指令集。该指令集包括用于执行aes加密或解密的“一次循环”的指令,并且还包括用于执行密钥生成的指令。可以使用立即数来指示循环数和128/192/256位密钥的密钥生成的密钥长度。由于灵活aes指令集不要求跟踪隐式寄存器,所以可以充分利用管道能力。

【技术实现步骤摘要】
用于高级加密标准(AES)的灵活结构和指令本申请是申请日为2008年3月25日、申请号为200880006495.1的同名专利申请的分案申请。
本公开涉及密码算法,并且具体而言,涉及高级加密标准(AES)算法。
技术介绍
密码是依靠算法和密钥来保护信息的工具。这种算法是复杂的数学算法,而所述密钥是比特串。密码系统具有两种基本类型:私用密钥系统和公共密钥系统。私用密钥系统又称为对称系统,其具有两方或多方共享的单个密钥(“私用密钥”)。该单个密钥既用于加密信息也用于解密信息。国家标准和技术研究所(NIST)发布的作为联邦信息处理标准(FIPS) 197的高级加密标准(AES)是一种私用密钥系统。AES是能够加密和解密信息的对称块加密(blockcipher)。加密技术(加密)使用私用密钥(加密密钥)执行一系列的转换,以将被称为“明文”的可理解数据转换为被称为“密文”的无法理解的形式。加密中的转换包括:(1)使用异或(XOR)操作将循环(round)密钥(从加密密钥导出的值)与体(state)(字节的二维阵列)相加;(2 )使用非线性字节替换表(S-盒(S-Box ))对体进行处理;(3 )使用不同的偏移来循环移位所述体的最后三行;以及(4)获取所述体的所有列,并且(相互独立地)混合所述列的数据以产生新的列。解密(反加密)使用加密密钥来执行一系列的转换,以将“密文”块转换为同样大小的“明文”块。反加密中的转换是加密中进行的变换的逆操作。在AES标准中指定Rijindael算法使用长度为128、192和256位的加密密钥来处理128位的数据块。一般将不同的密钥长度称为AES-128、AES-192和AES-256。AES算法在10、12或14个连续循环中将明文转换为密文或者将密文转换为明文,其中,循环的次数取决于密钥长度。附图说明根据下面进行的详细描述以及参考附图,所要求保护主题的实施例的特征将变得明显,其中同样的附图标记代表同样的部件,并且其中:图1是系统的框图,其包括根据本专利技术的原理用于在通用处理器中执行AES加密和解密的灵活结构和指令的实施例;图2是图1中示出的处理器的实施例的框图3是包括图2中示出的用于根据本专利技术的原理来执行AES加密和解密的执行单元的实施例的框图4是示出了通过图3中示出的执行单元的aes加密循环指令流的流程图5是示出了通过图3中示出的执行单元的aes加密最后一个循环指令流的流程图6是示出了通过图3中示出的执行单元的aes解密循环指令流的流程图7是示出了通过图3中示出的执行单元的aes解密最后一个循环指令流的流程图;以及图8示出了可以用来生成循环密钥并执行加密和解密的具有立即(immediate)字节的aes循环指令的实施例。尽管以下详细描述将参考要求保护主题的说明性实施例来进行,但是本领域的技术人员会清楚其多种替换、更改和变化。因此,应当宽泛地看待所要求保护的主题,并且应该仅由所附权利要求对所要求保护的主题进行限定。具体实施方式高级加密标准(AES)算法是典型地在软件或专用处理器中执行的计算密集算法。因此,典型地,仅将加密操作用于对存储在计算机中的信息的子集进行加密,例如,所述子集为可以归类为“最高机密”的信息。然而,需要对存储在计算机中的更多信息进行加密。例如,如果存储在移动计算机中的所有信息都进行了加密,那么就算该移动计算机被盗,这些信息仍能受到保护。AES是利用128、192或256位的密钥长度对128位的比特块进行操作的块加密。根据密钥长度,将一系列的操作反复执行若干个(10、12或14个)循环。通过使用隐式128位寄存器来存储循环密钥,可以动态地(即,刚好在每个循环之前)生成用于每个循环的密钥。然而,由于依赖于先前指令的结果,使用隐式寄存器可能降低χ86型基于寄存器的处理器的性能。存在一些应用受益于动态密钥生成,例如,用于处理可能每个流具有不同密钥的网络分组的应用。可能存在要求更高性能的使用单个密钥的其它应用,例如,使用单个密钥来加密/解密磁盘驱动器的内容。因此,出现了对密钥生成的灵活性的要求。本专利技术的实施例提供了用于在通用处理器中执行AES加密和解密的灵活结构和指令。图1是系统100的框图,其包括根据本专利技术的原理用于在通用处理器中执行AES加密和解密的灵活结构和指令的实施例。系统100包括处理器101、存储器控制器中心(MCH)或(图形存储器控制器中心(GMCH))102以及输入/输出(I/O)控制器中心(ICH)104。MCH102包括存储器控制器1 06,其控制处理器101和存储器108之间的通信。处理器101和MCH102通过系统总线116进行通信。处理器ιο 可以是多种处理器中的任意一个,诸如:单核Intel 奔腾IV 处理器、单核Intel赛扬处理器、Intel XScale处理器,或者诸如Intel 奔腾D、Intel 至 I 处理器或Intel 酷睿 Duo处理器等多核处理器,或者任何其它类型的处理器。存储器108可以是动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)、双数据速率2 (DDR2)RAM或者Rambus动态随机存取存储器(RDRAM)或者任何其它类型的存储器。ICH104可以使用高速芯片到芯片互联114 (例如,直接介质接口(DMI))来耦合到MCH102。DMI支持经由两个单向通道的2千兆比特/秒的并发传输速率。ICH104可以包括存储I/O控制器110,用于控制与耦合到ICH104的至少一个存储设备112的通信。存储设备可以是诸如:磁盘驱动器、数字视频盘(DVD)驱动器、紧致盘(⑶)驱动器、独立冗余磁盘阵列(RAID)、磁带驱动器或其它存储设备。ICH104可以使用串行存储协议通过存储协议互联118与存储设备112进行通信,所述串行存储协议诸如:串行连接微型计算机系统接口(SAS)或者串行高级技术连接(SATA)。处理器101包括AES功能模块103,用于执行aes加密和解密操作。AES功能模块103可以用于对存储在存储器108和/或存储在存储设备112中的信息进行加密或解密。图2是图1中示出的处理器101的实施例的框图。处理器101包括提取和解码单元206,用于对从第一级(LI)指令高速缓存202处接收的处理器指令进行解码。可以将用于执行指令的数据存储在寄存器堆208中。在一个实施例中,寄存器堆208包括多个128位寄存器,aes指令使用这些128位寄存器来存储由aes指令使用的数据。在一个实施例中,寄存器堆是一组128位寄存器,这些128位寄存器类似于在具有流(单指令多数据(SMD))扩展(SSE)指令集的Intel奔腾MMX处理器中提供的128位MMX寄存器。在SMD处理器中,以128位的块来处理数据,其中一次载入一个128位的块。提取和解码单元206从LI指令高速缓存202中提取宏指令、解码所述宏指令并且将其分解为称为微操作(μops)的简单操作,这些微操作可以存储在微码只读存储器(R0M)214中。执行单元210调度和执行这些微操作。在示出的实施例中,执行单元210中的aes功能模块103包括用于aes指令集的微操作。退出单元212将所执行指令的结果写入寄存器或本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/62/201310110523.html" title="用于高级加密标准(AES)的处理器和指令原文来自X技术">用于高级加密标准(AES)的处理器和指令</a>

【技术保护点】
一种装置,包括:执行单元,用于执行aes指令的操作序列,所述操作序列执行可编程次数的aes循环,所述操作使得所述执行单元:如果aes循环次数大于1:将密钥载入到临时密钥寄存器中;以及在执行每个aes循环之前,根据所述密钥来生成用于该aes循环的循环密钥;以及对于每个aes循环,对该aes循环的输入和用于该aes循环的所述循环密钥执行aes循环操作序列,以提供对下一个aes循环的下一个输入或者提供所述aes指令的结果。

【技术特征摘要】
2007.03.28 US 11/729,1991.一种装置,包括: 执行单元,用于执行aes指令的操作序列,所述操作序列执行可编程次数的aes循环,所述操作使得所述执行单元: 如果aes循环次数大于1: 将密钥载入到临时密钥寄存器中;以及 在执行每个aes循环之前,根据所述密钥来生成用于该aes循环的循环密钥;以及对于每个aes循环,对该aes循环的输入和用于该aes循环的所述循环密钥执行aes循环操作序列,以提供对下一个aes循环的下一个输入或者提供所述aes指令的结果。2.如权利要求1所述的装置,其中,如果所述aes循环次数为1,则在执行所述aes循环操作序列之前,所述执行单元: 载入根据所述密钥而预先计算的用于该aes循环的循环密钥。3.如权利要求2所述的装置,其中,所述aes循环操作序列使得所述执行单元: 对该aes循环的输入和用于该aes循环的所述循环密钥执行异或(XOR)操作,以产生中间值; 根据存储在查询表中的值对所述中间值中的每个字节执行替换操作;以及 通过对所述中间值中的行进行移位的比特线性转换来传递所述替换操作的结果。4.如权利要求1所述的装置,其中,对于所述aes循环次数_1,所述aes循环操作序列使得所述执行单元: 对该aes循环的所述输入和用于该aes循环的所述循环密钥执行异或(XOR)操作,以产生中间值; 根据存储在查询表中的值对所述中间值中的每个字节执行替换操作; 通过对所述中间值中的行进行移位的比特线性转换来传递所述替换操作的结果;以及 通过对所述中间值中的列进行混合的比特线性转换来传递所述替换操作的结果。5.如权利要求4所述的装置,其中,对于最后一个aes循环,所述aes循环操作序列使得所述执行单元: 对该aes循环的输入和用于该aes循环的所述循环密钥执行异或(XOR)操作,以产生中间值; 根据存储在查询表中的值对所述中间值中的每个字节执行替换操作;以及 通过对所述中间值中的行进行移位的比特`线性转换来传递所述替换操作的结果。6.如权利要求1所述的装置,其中,所述结果是加密值。7.如权利要求1所述的装置,其中,所述结果是解密值。8.如权利要求1所述的装置,其中,用于第一个aes循环的所述密钥和所述输入存储在寄存器堆中。9.如权利要求1所述的装置,其中,所述寄存器堆包括多个128位的寄存器。10.一种方法,包括: 如果用于aes指令的可编程aes循环次数大于1,则将密钥载入到临时密钥寄存器中,并且在执行每个aes循环之前,根据所述密钥来生成用于该aes循环的循环密钥;以及对于每个aes循环,对该aes循环的输入和用于该aes循环的所述循环密钥执行aes循环操作序列,以提供对下一个aes循环的下一个输入或者提供所述aes指令的结果。11.如权利要求10所述的方法,其中,如果所述aes循环次数为1,则在执行所述aes循环操作序列之前,载入根据所述密钥而预先计算的用于该aes循环的循环密钥。12.如权利要求11所述的方法,其中,执行所...

【专利技术属性】
技术研发人员:S·格伦W·K·费加利V·戈帕尔M·拉古纳丹M·G·狄克逊S·陈努帕蒂M·E·科纳维斯
申请(专利权)人:英特尔公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1