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

SM4加速处理器、方法、系统和指令技术方案

技术编号:12821432 阅读:79 留言:0更新日期:2016-02-07 12:23
本申请公开了SM4加速处理器、方法、系统和指令。一个方面的处理器包括多个紧缩数据寄存器和用于解码指令的解码单元。该指令指示一个或多个源紧缩数据操作数。该一个或多个源紧缩数据操作数具有四个在先的SM4密码轮的四个32位的结果以及四个32位的值。该处理器也包括与解码单元和多个紧缩数据寄存器耦合的执行单元。该执行单元用于:响应于该指令,将四个后续紧跟的顺序的SM4密码轮的四个32位的结果存储在由该指令所指示的目的地存储位置中。

【技术实现步骤摘要】

本文所述的多个实施例总体涉及处理器。具体地说,本文所述的多个实施例一般涉及在处理器中执行密码术。
技术介绍
密码学是通常用于保护计算机系统和其他电子设备中的机密信息或秘密信息的技术。密码学一般涉及使用密码(cryptologic)算法和密码密钥来保护信息。例如,可执行加密(encryption)(有时也称为密码操作(cipher)),在加密中,使用加密密钥(例如,位串)对未经加密的或明文输入数据(例如,表示文本、数字、可理解字符等的位串)执行由密码算法所指定的一系列变换或操作,以便产生经加密的数据。有时也将该经加密的数据称为密文或密码数据。经加密的数据通常是不可理解的。在不知晓密码密钥的情况下,从经加密数据来确定未经加密的明文数据一般是不太可能的,或者至少并非实际可行的。如果知晓了密码密钥,则可对经加密的数据执行解密(decryption)(有时也称为逆向密码操作(inversecipher))以重新产生对应的明文或未经加密的数据。在解密期间执行的变换或操作基本上可以是加密期间所执行的那些变换或操作的逆转。SM4是由中国政府批准在无线网络中使用的密码算法。SM4之前被称为SMS4。SM4密码算法是块密码操作算法。输入数据(也被称为状态)、输出数据和密码密钥各自是128位的。通过三十二轮执行对数据的加密。每一轮涉及用于将输入数据数据变换为经加密的数据的多个不同的操作或变换。将具有类似变换的三十二轮用于解密数据。也有用于密钥扩展的三十二轮,在其中生成用于不同的加密和解码轮的轮密钥。如果需要,SM4密码算法的进一步细节可在由SunMicrosystems公司的WhitfieldDiffie和索诺玛州立大学的GeorgeLedin翻译并排版的文档“SM4EncryptionAlgorithmforWirelessNetworks”(“用于无线网络的SM4加密算法”)(2008年5月15日,版本1.03)中得到。一个挑战在于,实现SM4密码算法一般是趋于计算密集型的。结果SM4密码算法的软件实现一般容易性能不佳。该不佳的性能至少部分地由于需要执行的大量操作以及需要执行的相对应的大量指令。通常,每一个单轮可获取若干条到许多条指令。此外,回想一下,对于加密、解密和密钥扩展中的每一个都需要三十二轮。附图说明通过参考以下描述以及用于说明多个实施例的附图,可最佳地理解本发明。在附图中:图1是包括一条或多条SM4加速指令的指令集的实施例的框图。图2是可用于执行SM4加速指令的实施例的处理器实施例的框图。图3是执行SM4加速指令的实施例的方法的实施例的流程框图。图4是SM4四密码轮操作的实施例的框图。图5是SM4四密钥扩展轮操作的实施例的框图。图6是SM4执行单元的示例实施例的框图。图7是SM4单轮执行逻辑的示例实施例的框图。图8A是用于SM4四轮密码操作指令的指令格式和用于SM4四轮密钥扩展指令的指令格式的实施例的框图。图8B是针对用于执行四轮的密码操作和四轮的密钥扩展两者的单条SM4加速指令的指令格式的实施例的框图。图9A是示出有序流水线的实施例以及寄存器重命名的无序发布/执行流水线的实施例的框图。图9B是处理器核的实施例的框图,该处理器核包括耦合到执行引擎单元的前端单元,并且前端单元和执行引擎单元两者都耦合到存储器单元。图10A是单个处理器核以及它与管芯上互连网络的连接及其第二级(L2)高速缓存的本地子集的实施例的框图。图10B是图10A的处理器核的部分的展开图的实施例的框图。图11是可具有多于一个的核、可具有集成存储器控制器并且可具有集成图形器件的处理器的实施例的框图。图12是计算机架构的第一实施例的框图。图13是计算机架构的第二实施例的框图。图14是计算机架构的第三实施例的框图。图15是芯片上系统架构的实施例的框图。图16是根据本专利技术的多个实施例的使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。具体实施方式本文中所公开的是SM4加速指令、用于执行这些指令的处理器、在处理或执行这些指令时由处理器执行的方法以及包含一个或多个用于处理或执行这些指令的系统。在以下描述中,阐述多个特定细节(例如,特定指令操作、数据格式、操作数之内的数据的安排、处理器配置、微架构细节、操作序列等)。然而,在没有这些特定细节的情况下,也可实施多个实施例。在其他实例中,未详细示出公知的电路、结构和技术,以避免使对本说明书的理解模糊。图1是包括一条或多条SM4加速指令102的指令集100的框图。SM4加速指令可有助于加速SM4密码算法的实现。该指令集是处理器的指令集架构(ISA)的部分,并且包括处理器操作以执行的原生指令。该指令集中的指令表示提供给处理器以供执行的宏指令、汇编语言指令或机器层级指令。这些指令与通过对指令集中的多条指令进行解码而得到的微指令、微操作或其他指令形成对比。在一些实施例中,该SM4加速指令102可包括SM4四密码操作轮指令104。在密码操作(例如,加密和解密)期间,SM4算法使用轮函数(F)。在方程1中示出该轮函数(F):Xi+4=F(Xi,Xi+1,Xi+2,Xi+3,rki)方程1=XiXORT(Xi+1XORXi+2XORXi+3XORrki)符号“XOR”表示可对这些32位的值执行的按位的异或(XOR)操作。项Xi表示轮i的32位状态片(pieceofstate),Xi+1表示轮(i+1)的32位状态片,以此类推。项rki表示轮i的32位轮密钥。最初,可将128位的输入块(例如,将加密的明文数据的128位)指定为四个32位元素(X0,X1,X2,X3)。可按照大字节存储顺序(bigendianorder)来安排这些元素。该轮函数(F)用于执行三十二轮(例如,用于i=0、1、2、…、31)。具有代表性的是,在第一轮期间,可通过对F(X0,X1,X2,X3,rk0)求值来确定32位的结果X4。在三十二轮加密之后,(X28,X29,X30,X31)表示对应于128位的数据块(X0,X1,X2,X3)的128位的经加密数据。注意,方程1具有函数T(x)。T(x)被称为混合-替换(mixer-substitution)函数。T(x)从32位的输入中生成32位的输出。如方程2中所示,混合-替换函数T(x)包括两个替换函数:T(x)=L(τ(x))方程2<本文档来自技高网...

【技术保护点】
一种处理器,包括:多个紧缩数据寄存器;解码单元,用于解码指令,所述指令用于指示一个或多个源紧缩数据操作数,所述一个或多个源紧缩数据操作数具有四个在先的SM4密码轮的四个32位的结果以及四个32位的值;以及执行单元,与所述解码单元和所述多个紧缩数据寄存器耦合,所述执行单元用于:响应于所述指令,将四个后续紧跟的顺序的SM4密码轮的四个32位的结果存储在由所述指令指示的目的地存储位置中。

【技术特征摘要】
2014.07.22 US 14/337,9991.一种处理器,包括:
多个紧缩数据寄存器;
解码单元,用于解码指令,所述指令用于指示一个或多个源紧缩数据操作
数,所述一个或多个源紧缩数据操作数具有四个在先的SM4密码轮的四个32
位的结果以及四个32位的值;以及
执行单元,与所述解码单元和所述多个紧缩数据寄存器耦合,所述执行单
元用于:响应于所述指令,将四个后续紧跟的顺序的SM4密码轮的四个32位
的结果存储在由所述指令指示的目的地存储位置中。
2.如权利要求1所述的处理器,其特征在于,所述解码单元用于解码所述
指令,所述指令指示具有所述四个在先的SM4密码轮的所述四个32位的结果
的第一128位的源紧缩数据操作数,并且指示具有所述四个32位的值的第二
128位的源紧缩数据操作数。
3.如权利要求1所述的处理器,其特征在于,根据轮顺序,将所述四个在
先的SM4密码轮的所述四个32位的结果安排在源紧缩数据操作数中。
4.如权利要求1所述的处理器,其特征在于,将对应轮的所述32位的值
和所述32位的结果存储在第一和第二源紧缩数据操作数的对应数据元素中。
5.如权利要求1所述的处理器,其特征在于,所述解码单元用于解码所述
指令,其中,所述四个32位的结果是四个在先的SM4加密轮的四个32位的
结果,且其中所述32位的值是用于所述四个在先的SM4加密轮的四个32位
的轮密钥,并且其中,所述执行单元用于存储四个后续紧跟的顺序轮的四个32
位的结果,所述四个后续紧跟的顺序轮的四个32位的结果是四个后续紧跟的
顺序的SM4加密轮的四个32位的结果。
6.如权利要求1所述的处理器,其特征在于,所述解码单元用于解码所述
指令,其中,所述四个32位的结果是四个在先的SM4解密轮的四个32位的
结果,且其中,所述32位的值是用于所述四个在先的SM4解密轮的四个32
位的轮密钥,并且其中,所述执行单元用于存储四个后续紧跟的顺序轮的四个
32位的结果,所述四个后续紧跟的顺序轮的四个32位的结果是四个后续紧跟
的顺序的SM4解密轮的四个32位的结果。
7.如权利要求1所述的处理器,其特征在于,所述解码单元用于解码所述
指令,其中,所述四个32位的结果是用于四个在先的SM4密钥扩展轮的四个
32位的轮密钥,且其中,所述四个32位的值是用于所述四个在先的SM4密钥
扩展轮的四个32位的密钥生成常数,并且其中,所述执行单元用于存储四个
后续紧跟的顺序轮的四个32位的结果,所述四个后续紧跟的顺序轮的四个32
位的结果是用于四个后续紧跟的顺序的SM4密钥扩展轮的四个32位的轮密
钥。
8.如权利要求1所述的处理器,其特征在于,所述解码单元用于解码所述
指令,所述指令指示第一源紧缩数据操作数,所述第一源紧缩数据操作数用于:
将第四在先SM4密码算法轮的第一32位的结果包括在位[31:0]中;
将第三在先SM4密码算法轮的第二32位的结果包括在位[63:32]中;
将第二在先SM4密码算法轮的第三32位的结果包括在位[95:64]中;以及
将紧接的在先SM4密码算法轮的第四32位的结果包括在位[127:96]中。
9.如权利要求1所述的处理器,其特征在于,所述执行单元用于响应于所
述指令来存储结果紧缩数据,所述结果紧缩数据用于:
将第四最新近的SM4密码算法轮的第一32位的结果包括在位[31:0]中;
将第三最新近的SM4密码算法轮的第二32位的结果包括在位[63:32]中;
将第二最新近的SM4密码算法轮的第三32位的结果包括在位[95:64]中;
以及
将最新近的SM4密码算法轮的第四32位的结果包括在位[127:96]中。
10.如权利要求1到9中任意一项所述的处理器,其特征在于,所述解码
单元用于解码所述指令,所述指令具有一个或多个位,所述一个或多个位用于
指定所述四个后续紧跟的顺序的SM4密码轮是密码处理轮还是密钥扩展轮。
11.如权利要求1到9中任意一项所述的处理器,其特征在于,所述执行
单元用于,响应于所述指令,针对所述四个后续紧跟的顺序的SM4密码轮中
的每一个,执行第一组异或(XOR)操作...

【专利技术属性】
技术研发人员:S·格伦V·克拉斯诺夫
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1