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

用于高级加密标准(AES)的灵活结构和指令制造技术

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

【技术实现步骤摘要】
用于高级加密标准(AES)的灵活结构和指令本申请是申请日为2008年3月25日、申请号为201310110523.7的同名专利申请的分案申请。
本公开涉及密码算法,并且具体而言,涉及高级加密标准(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位寄存器来存储循环密钥,可以动态地(即,刚好在每个循环之前)生成用于每个循环的密钥。然而,由于依赖于先前指令的结果,使用隐式寄存器可能降低x86型基于寄存器的处理器的性能。存在一些应用受益于动态密钥生成,例如,用于处理可能每个流具有不同密钥的网络分组的应用。可能存在要求更高性能的使用单个密钥的其它应用,例如,使用单个密钥来加密/解密磁盘驱动器的内容。因此,出现了对密钥生成的灵活性的要求。本专利技术的实施例提供了用于在通用处理器中执行AES加密和解密的灵活结构和指令。图1是系统100的框图,其包括根据本专利技术的原理用于在通用处理器中执行AES加密和解密的灵活结构和指令的实施例。系统100包括处理器101、存储器控制器中心(MCH)或(图形存储器控制器中心(GMCH))102以及输入/输出(I/O)控制器中心(ICH)104。MCH102包括存储器控制器106,其控制处理器101和存储器108之间的通信。处理器101和MCH102通过系统总线116进行通信。处理器101可以是多种处理器中的任意一个,诸如:单核奔腾处理器、单核Intel赛扬处理器、XScale处理器,或者诸如奔腾D、处理器或Duo处理器等多核处理器,或者任何其它类型的处理器。存储器108可以是动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)、双数据速率2(DDR2)RAM或者Rambus动态随机存取存储器(RDRAM)或者任何其它类型的存储器。ICH104可以使用高速芯片到芯片互联114(例如,直接介质接口(DMI))来耦合到MCH102。DMI支持经由两个单向通道的2千兆比特/秒的并发传输速率。ICH104可以包括存储I/O控制器110,用于控制与耦合到ICH104的至少一个存储设备112的通信。存储设备可以是诸如:磁盘驱动器、数字视频盘(DVD)驱动器、紧致盘(CD)驱动器、独立磁盘冗余阵列(RAID)、磁带驱动器或其它存储设备。ICH104可以使用串行存储协议通过存储协议互联118与存储设备112进行通信,所述串行存储协议诸如:串行连接小型计算机系统接口(SAS)或者串行高级技术附件(SATA)。处理器101包括AES功能模块103,用于执行AES加密和解密操作。AES功能模块103可以用于对存储在存储器108和/或存储在存储设备112中的信息进行加密或解密。图2是图1中示出的处理器101的实施例的框图。处理器101包括提取和解码单元206,用于对从第一级(L1)指令高速缓存202处接收的处理器指令进行解码。可以将用于执行指令的数据存储在寄存器堆208中。在一个实施例中,寄存器堆208包括多个128位寄存器,AES指令使用这些128位寄存器来存储由AES指令使用的数据。在一个实施例中,寄存器堆是一组128位寄存器,这些128位寄存器类似于在具有流(单指令多数据(SIMD))扩展(SSE)指令集的Intel奔腾MMX处理器中提供的128位MMX寄存器。在SIMD处理器中,以128位的块来处理数据,其中一次载入一个128位的块。提取和解码单元206从L1指令高速缓存202中提取宏指令、解码所述宏指令并且将其分解为称为微操作(μops)的简单操作,这些微操作可以存储在微码只读存储器(ROM)214中。执行单元210调度和执行这些微操作。在示出的实施例中,执行单元210中的AES功能模块103包括用于AES指令集的微操作。退出单元212将所执行指令的结果写入寄存器或存储器。AES指令使用的循环密钥214可以存储在L1数据高速缓存20本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/62/201710815893.html" title="用于高级加密标准(AES)的灵活结构和指令原文来自X技术">用于高级加密标准(AES)的灵活结构和指令</a>

【技术保护点】
一种处理器,包括:多个核心;第一级(L1)指令高速缓存,其存储多个指令,所述多个指令包括所述处理器的指令集的第一高级加密标准(AES)指令,所述指令集包括多个AES指令,每个AES指令包括不同的操作码;L1数据高速缓存;指令提取逻辑,其从所述L1指令高速缓存提取指令;解码逻辑,其对指令进行解码;第一源寄存器,其存储将被用于AES解密操作的最后一个循环的循环密钥;第二源寄存器,其存储将被所述AES解密操作的所述最后一个循环解密的输入数据;执行单元,其包括AES执行逻辑,所述AES执行逻辑执行所述处理器的所述指令集的所述第一AES指令,以执行所述AES解密操作的所述最后一个循环,所述AES解密操作的所述最后一个循环使用来自所述第一源寄存器的所述循环密钥对来自所述第二源寄存器的所述输入数据进行解密,并且将所述AES解密操作的最后一个解密结果存储在目的寄存器中;其中,所述AES解密操作的所述最后一个循环包括:对所述输入数据执行的替换操作,所述替换操作使用逆替换盒(S‑box),逆移位行操作,以及加循环密钥操作,在所述加循环密钥操作中,异或函数使用来自所述循环密钥的数据。

【技术特征摘要】
2007.03.28 US 11/729,1991.一种处理器,包括:多个核心;第一级(L1)指令高速缓存,其存储多个指令,所述多个指令包括所述处理器的指令集的第一高级加密标准(AES)指令,所述指令集包括多个AES指令,每个AES指令包括不同的操作码;L1数据高速缓存;指令提取逻辑,其从所述L1指令高速缓存提取指令;解码逻辑,其对指令进行解码;第一源寄存器,其存储将被用于AES解密操作的最后一个循环的循环密钥;第二源寄存器,其存储将被所述AES解密操作的所述最后一个循环解密的输入数据;执行单元,其包括AES执行逻辑,所述AES执行逻辑执行所述处理器的所述指令集的所述第一AES指令,以执行所述AES解密操作的所述最后一个循环,所述AES解密操作的所述最后一个循环使用来自所述第一源寄存器的所述循环密钥对来自所述第二源寄存器的所述输入数据进行解密,并且将所述AES解密操作的最后一个解密结果存储在目的寄存器中;其中,所述AES解密操作的所述最后一个循环包括:对所述输入数据执行的替换操作,所述替换操作使用逆替换盒(S-box),逆移位行操作,以及加循环密钥操作,在所述加循环密钥操作中,异或函数使用来自所述循环密钥的数据。2.一种处理器,包括:多个核心;所述多个核心中的第一核心,其包括:第一级(L1)指令高速缓存,其存储多个指令,所述多个指令包括所述处理器的指令集的第一高级加密标准(AES)指令,所述指令集包括多个AES指令,每个AES指令包括不同的操作码;L1数据高速缓存;解码单元,其对指令进行解码;第一源寄存器,其存储将被用于AES解密操作的最后一个循环的循环密钥;第二源寄存器,其存储将被所述AES解密操作的所述最后一个循环解密的输入数据;执行单元,其执行所述处理器的所述指令集的所述第一AES指令,以执行所述AES解密操作的所述最后一个循环,所述AES解密操作的所述最后一个循环使用来自所述第一源寄存器的所述循环密钥对来自所述第二源寄存器的所述输入数据进行解密,并且将所述AES解密操作的最后一个解密结果存储在目的寄存器中;其中,所述AES解密操作的所述最后一个循环包括:对所述输入数据执行的替换操作,所述替换操作使用逆替换盒(S-box),逆移位行操作,以及加循环密钥操作,在所述加循环密钥操作中,异或函数使用来自所述循环密钥的数据。3.一种处理器,包括:多个核心;第一级(L1)指令高速缓存,其存储多个指令,所述多个指令包括所述处理器的指令集的第一高级加密标准(AES)指令,所述指令集包括多个AES指令,每个AES指令包括不同的操作码;L1数据高速缓存;指令提取逻辑,其从所述L1指令高速缓存提取指令;解码逻辑,其对指令进行解码;第一源寄存器,其存储将被用于AES加密操作的最后一个循环的循环密钥;第二源寄存器,其存储将被所述AES加密操作的所述最后一个循环加密的输入数据;执行单元,其包括AES执行逻辑,所述AES执行逻辑执行所述处理器的所述指令集的所述第一AES指令,以执行所述AES加密操作的所述最后一个循环,所述AES加密操作的所述最后一个循环使用来自所述第一源寄存器的所述循环密钥对来自所述第二源寄存器的所述输入数据进行加密,并且将所述AES加密操作的最后一个加密结果存储在目的寄存器中;其中,所述AES加密操作的所述最后一个循环包括:对所述输入数据执行的替换操作,所述替换操作使用替换盒(S-box),以得到被替换数据的第一阵列,移位行转换,其将所述第一阵列中的行数据移位一指定量,以生成移位行结果,以及加循环密钥转换,在所述加循环密钥转换中,异或函数使用来自所述循环密钥和所述移位行结果的数据。4.一种处理器,包括:多个核心;所述多个核心中的第一核心,其包括:第一级(L1)指令高速缓存,其存储多个指令,所述多个指令包括所述处理器的指令集的第一高级加密标准(AES)指令,所述指令集包括多个AES指令,每个AES指令包括不同的操作码;L1数据高速缓存;解码单元,其对指令进行解码;第一源寄存器,其存储将被用于AES加密操作的最后一个循环的循环密钥;第二源寄存器,其存储将被所述AES加密操作的所述最后一个循环加密的输入数据;执行单元,其执行所述处理器的所述指令集的所述第一AES指令,以执行所述AES加密操作的所述最后一个循环,所述AES加密操作的所述最后一个循环使用来自所述第一源寄存器的所述循环密钥对来自所述第二源寄存器的所述输入数据进行加密,并且将所述AES加密操作的最后一个加密结果存储在目的寄存器中;其中,所述AES加密操作的所述最后一个循环包括:对所述输入数据执行的替换操作,所述替换操作使用替换盒(S-box),以得到被替换数据的第一阵列,移位行转换,其将所述第一阵列中的行数据移位一指定量,以生成移位行结果,以及加循环密钥转换,在所述加循环密钥转换中,异或函数使用来自所述循环密钥和所述移位行结果的数据。5.一种系统,包括:处理器,其包括:多个核心;第一级(L1)指令高速缓存,其存储多个指令,所述多个指令包括所述处理器的指令集的第一高级加密标准(AES)指令,所述指令集包括多个AES指令,每个AES指令包括不同的操作码;L1数据高速缓存;指令提取逻辑,其从所述L1指令高速缓存提取指令;解码逻辑,其对指令进行解码;第一源寄存器,其存储将被用于AES解密操作的最后一个循环的循环密钥;第二源寄存器,其存储将被所述AES解密操作的所述最后一个循环解密的输入数据;执行单元,其包括AES执行逻辑,所述AES执行逻辑执行所述处理器的所述指令集的所述第一AES指令,以执行所述AES解密操作的所述最后一个循环,所述AES解密操作的所述最后一个循环使用来自所述第一源寄存器的所述循环密钥对来自所述第二源寄存器的所述输入数据进行解密,并且将所述AES解密操作的最后一个解密结果存储在目的寄存器中;其中,所述AES解密操作的所述最后一个循环包括:对所述输入数据执行的替换操作,所述替换操作使用逆替换盒(S-box),逆移位行操作,以及加循环密钥操作,在所述加循环密钥操作中,异或函数使用来自所述循环密钥的数据;系统存储器,其包括通过一个或多个互连耦合到所述处理器的多数据速率动态随机存取存储器;以及一个或多个存储设备,其耦合到所述处理器。6.如权利要求5所述的系统,其中,所述一个或多个存储设备通过至少一个串行连接小型计算机系统接口(SAS)耦合到所述处理器。7.如权利要求5所述的系统,其中,所述一个或多个存储设备被安排为独立磁盘冗余阵列(RAID)。8.如权利要求5所述的系统,还包括耦合到所述处理器以处理数据分组的至少一个网络接口。9.如权利要求5所述的系统,其中,所述一个或多个存储设备通过至少一个串行连接小型计算机系统接口(SAS)耦合到所述处理器,并且所述一个或多个存储设备被安排为独立磁盘冗余阵列(RAID)。10.如权利要求5所述的系统,还包括耦合到所述处理器以处理数据分组的至少一个网络接口,并且其中,所述一个或多个存储设备通过至少一个串行连接小型计算机系统接口(SAS)耦合到所述处理器。11.如权利要求5所述的系统,还包括耦合到所述处理器以处理数据分组的至少一个网络接口,并且其中,所述一个或多个存储设备被安排为独立磁盘冗余阵列(RAID)。12.如权利要求5所述的系统,还包括耦合到所述处理器以处理数据分组的至少一个网络接口,并且其中,所述一个或多个存储设备通过至少一个串行连接小型计算机系统接口(SAS)耦合到所述处理器,并且所述一个或多个存储设备被安排为独立磁盘冗余阵列(RAID)。13.一种系统,包括:处理器,其包括:第一级(L1)指令高速缓存,其存储多个指令,所述多个指令包括所述处理器的指令集的第一高级加密标准(AES)指令,所述指令集包括多个AES指令,每个AES指令包括不同的操作码;L1数据高速缓存;解码单元,其对指令进行解码;第一源寄存器,其存储将被用于AES解密操作的最后一个循环的循环密钥;第二源寄存器,其存储将被所述AES解密操作的所述最后一个循环解密的输入数据;执行单元,其执行所述处理器的所述指令集的所述第一AES指令,以执行所述AES解密操作的所述最后一个循环,所述AES解密操作的所述最后一个循环使用来自所述第一源寄存器的所述循环密钥对来自所述第二源寄存器的所述输入数据进行解密,并且将所述AES解密操作的最后一个解密结果存储在目的寄存器中;其中,所述AES解密操作的所述最后一个循环包括:对所述输入数据执行的替换操作,所述替换操作使用逆替换盒(S-box),逆移位行操作,以及加循环密钥操作,在所述加循环密钥操作中,异或函数使用来自所述循环密钥的数据;系统存储器,其包括通过一个或多个互连耦合到所述处理器的多数据速率动态随机存取存储器;以及一个或多个存储设备,其耦合到所述处理器。14.如权利要求13所述的系统,其中,所述一个或多个存储设备通过至少一个串行连接小型计算机系统接口(SAS)耦合到所述处理器。15.如权利要求13所述的系统,其中,所述一个或多个存储设备被安排为独立磁盘冗余阵列(RAID)。16.如权利要求13所述的系统,还包括耦合到所述处理器以处理数据分组的至少一个网络接口。17.如权利要求13所述的系统,其中,所述一个或多个存储设备通过至少一个串行连接小型计算机系统接口(SAS)耦合到所述处理器,并且所述一个或多个存储设备被安排为独立磁盘冗余阵列(RAID)。18.如权利要求13所述的系统,还包括耦合到所述处理器以处理数据分组的至少一个网络接口,并且其中,所述一个或多个存储设备通过至少一个串行连接小型计算机系统接口(SAS)耦合到所述处理器。19.如权利要求13所述的系统,还包括耦合到所述处理器以处理数据分组的至少一个网络接口,并且其中,所述一个或多个存储设备被安排为独立磁盘冗余阵列(RAID)。20.如权利要求13所述的系统,还包括耦合到所述处理器以处理数据分组的至少一个网络接口,并且其中,所述一个或多个存储设备通过至少一个串行连接小型计算机系统接口(SAS)耦合到所述处理器,并且所述一个或多个存储设备被安排为独立磁盘冗余阵列(RAID)。21.一种系统,包括:处理器,其包括:多个核心;第一级(L1)指令高速缓存,其存储多个指令,所述多个指令包括所述处理器的指令集的第一高级加密标准(AES)指令,所述指令集包括多个AES指令,每个AES指令包括不同的操作码;L1数据高速缓存;指令提取逻辑,其从所述L1指令高速缓存提取指令;解码逻辑,其对指令进行解码;第一源寄存器,其存储将被用于AES加密操作的最后一个循环的循环密钥;第二源寄存器,其存储将被所述AES加密操作的所述最后一个循环加密的输入数据;执行单元,其包括AES执行逻辑,所述AES执行逻辑执行所述处理器的所述指令集的所述第一AES指令,以执行所述AES加密操作的所述最后一个循环,所述AES加密操作的所述最后一个循环使用来自所述第一源寄存器的所述循环密钥对来自所述第二源寄存器的所述输入数据进行加密,并且将所述AES加密操作的最后一个加密结果存储在目的寄存器中;其中,所述AES加密操作的所述最后一个循环包括:对所述输入数据执行的替换操作,所述替换操作使用替换盒(S-box),以得到被替换数据的第一阵列,移位行转换,其将所述第一阵列中的行数据移位一指定量,以生成移位行结果,以及加循环密钥转换,在所述加循环密钥转换中,异或函数使用来自所述循环密钥和所述移位行结果的数据;系统存储器,其包括通过一个或多个互连耦合到所述处理器的多数据速率动...

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

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

1