一种方法的一方面包括接收指令。所述指令指示包括了针对安全哈希算法2(SHA2)哈希算法的当前轮(i)的状态数据元素ai、bi、ei和fi的第一紧缩数据的第一源。所述指令指示第二紧缩数据的第二源。所述第一紧缩数据具有的比特宽度小于SHA2哈希算法的八个状态数据元素ai、bi、ci、di、ei、fi、gi、hi的组合的比特宽度。所述方法还包括响应于所述指令,在由所述指令指示的目的地中存储结果。所述结果包括已经通过至少一轮的所述SHA2哈希算法从相对应的状态数据元素ai、bi、ei、和fi而更新的已更新的状态数据元素ai+、bi+、ei+、和fi+。
【技术实现步骤摘要】
【国外来华专利技术】
实施例涉及指令处理装置。具体地,实施例涉及用于处理安全哈希算法的指令处 理装置和指令。
技术介绍
安全哈希标准(SHS) (FIPS PUB 180-3),联邦信息处理标准公告,是由国家标准 和技术研究所在2008年10月发布的。SHS标准指定了安全哈希算法SHA-224、SHA-256、 SHA-384、以及SHA-512。在本申请中这四个算法还统称为SHA2有算法、SHA2算法、SHA2哈 希等。 这些SHA2哈希算法允许计算代表被称为消息的输入数据的浓缩表示的消息摘 要。当长度小于2~64比特(对于SHA-224以及SHA-256)或小于2~128比特(对于SHA-384 以及SHA-512)的消息被输入到哈希算法时,输出被称为消息摘要的结果。有时,消息摘要 也被称为摘要或哈希。消息摘要对于SHA-224是224比特,对于SHA-256是256比特,对于 SHA-384是384比特,或对于SHA-512是512比特。SHA-224和SHA-256是基于32比特字 长的。SHA-384和SHA-512是基于64比特字长的。 在该标准中指定的哈希算法被称为是安全的,这是因为对于给定的算法,认为1) 找到与给定的消息摘要对应的消息,或2)找到产生相同的消息摘要的两个不同的消息在 计算上是不可行的。这意味着对消息的任何改变将会(具有较高的可能性)导致不同的消 息摘要。 SHA2算法在电子设备中被广泛使用以用于认证、验证、识别、完整性检查、或其它 目的。它们可以用于各种不同的目的。SHA2算法的一种常见使用是验证消息的完整性和/ 或验证所检测到的对消息的改变。例如,可以针对消息生成初始的消息摘要,且然后,可以 针对该消息重新生成另一消息摘要且假定消息自身没有被改变的情况下,该另一消息摘要 应该与初始的消息摘要相同。安全哈希函数的其它示例包括但不限于生成数字签名、消息 认证码、验证文件或消息的完整性、识别文件或数据、以及伪随机生成和密钥衍生。 图1示出了单轮的SHA2算法100的细节。类似于所示的该轮的总共64轮可以用 于计算最后的消息摘要。八个状态字a;、bp Cp山、e;、fp gjP h ; 101被输入到该轮。这 八个状态字在标准中也被称为八个工作变量。对于SHA-224和SHA-256,这些状态字中的 每一个都是32比特。对于SHA-384和SHA-512,这些状态字中的每一个都是64比特。此 外,到该轮的输入为到当前轮的消息输入(即,W(i)) 102以及到当前轮的常数输入(例如, K(i)) 103。针对每一轮执行一组SHA2操作104。该组操作包括多个模加法(由内部具有 加号的方框示出),且对函数的计算被称为Ch、Σ r Maj、Σ。。还存在对这些状态字的重映 射。该轮的输出为八个已更新的状态字ai+1、bi+1、c i+1、di+1、ei+1、fi+1、gi+1和h i+1 105。 针对64轮中的每一个该组操作包括以下操作: Σ o(a) = (a ROTR 2) XOR (a ROTR 13) XOR (a ROTR 22) Σ !(e) = (e ROTR 6) XOR (e ROTR 11) XOR (e ROTR 25) Maj (a,b,c) = (a AND b) XOR (a AND c) XOR (b AND c) Ch(e,f, g) = (e AND f)XOR((NOT e)AND g) T1= h+Σ 1(e)+Ch(e,f,g)+K1+'^1 T2= Σ。(a)+Maj (a,b,c) h = g g = f f = e e = d+T! d = c c = b b = a a = VT2 在上文中," ROTR"指定了逐位右旋转操作其右侧的比特数目," XOR"指定了逻辑异 或操作,"AND"指定了逻辑与操作,"NOT"指定了逻辑非操作。旋转量是对于SHA-256特定 的。其它的SHA2算法使用不同的移位和旋转量。 如可以看到的,SHA2算法的每一轮涉及大量的操作。此外,生成消息摘要涉及 六十四轮这样的轮。一个巨大的挑战在于传统地实现SHA2算法涉及在处理器上执行大量 的指令。通常,SHA2算法中的每一轮可能采用从若干到许多个指令。例如,在一个可能的 实现中,在一轮内,单独的指令可以用于执行旋转、逻辑AND、X0R、和NOT操作、加法等中的 一个。这与存在64轮的现实相结合,可以趋向于使得实现SHA2算法是非常计算密集的并 且花费大量的时间。【附图说明】 通过参考以下用于示出本专利技术实施例的描述和附图可以最佳地理解本专利技术。在附 图中: 图1示出了单轮安全哈希算法2 (SHA2)哈希算法的细节。 图2是具有包括对执行一个或多个SHA2算法有用的一个或多个指令的指令集的 指令处理装置的框图。 图3是具有SHA2执行逻辑的指令处理装置的实施例的框图,SHA2执行逻辑可操 作以执行对处理SHA2安全哈希算法有用的指令的至少一个实施例。 图4是处理对SHA2安全哈希算法有用的指令的方法的实施例的方框流程图。 图5示出了一轮SHA2算法的一部分。 图6是寄存器中的四个状态字或元素 a、b、e和f的子集的实施例的框图。 图7A是由SHA2输入指令的第一实施例执行的操作的框图。 图7B是由SHA2两轮指令的实施例执行的操作的框图。 图8A是由SHA2输入指令的第二实施例执行的操作的框图。 图8B是由SHA2两轮低更新指令的实施例执行的操作的框图。 图8C是由SHA2两轮高更新指令的实施例执行的操作的框图。 图9是由SHA2 128比特的两轮指令的实施例执行的操作的框图。 图10是由SHA2 256比特的两轮指令的实施例执行的操作的框图。 图11是由SHA2 128比特的四轮指令的实施例执行的操作的框图。 图12是由SHA2 512比特的四轮指令的实施例执行的操作的框图。 图13A-C是合适的指令格式的框图。 图14是适当组的紧缩数据寄存器的示例性实施例的框图。 图15A示出了示例性的AVX指令格式,其包括VEX前缀、真实操作码字段、Mod R/ M字节、SIB字节、位移字段、以及IMM8。 图15B示出了来自图15A的哪些字段组成了完整的操作码字段以及基础操作字 段。 图15C示出了来自图15A的哪些字段组成了寄存器索引字段1544。 图16是根据本专利技术一个实施例的寄存器架构的框图。 图17A是根据本专利技术实施例的示出了示例性有序管线和示例性寄存器重命名、乱 序发布/执行管线两者的框图。 图17B示出了处理器内核,其包括耦合到执行引擎单元的前端单元,且这两者都 親合到存储器单元。 图18A是根据本专利技术实施例的单个处理器内核,连同到其管芯上互连网络的连接 以及其级别2(L2)的本地子集一起的框图。 图18B是根据本专利技术实施例的在图18A中的处理器内核的一部分的扩展图。 图19是根据本专利技术实施例的处理器的框图,该处理器可以具有超过一个的内核、 可以具有集成存储器控制器、且可以具有集成显卡。 图20示出了根据本专利技术一个实施例的系统的框图。 图21根据本专利技术一个实施例示出了第一更具体的示例性系统的框图。 图22根据本专利技术一个实施例示出了第二更具体的示例性系本文档来自技高网...
【技术保护点】
一种方法,包括:接收指令,所述指令指示包括了针对安全哈希算法2(SHA2)哈希算法的当前轮(i)的状态数据元素ai、bi、ei和fi的第一紧缩数据的第一源,所述指令还指示第二紧缩数据的第二源,其中,所述第一紧缩数据具有的比特宽度小于所述SHA2哈希算法的八个状态数据元素ai、bi、ci、di、ei、fi、gi和hi的组合的比特宽度;并且响应于所述指令,在由所述指令指示的目的地中存储结果,所述结果包括已经通过至少一轮的所述SHA2哈希算法从相对应的状态数据元素ai、bi、ei和fi而更新的已更新的状态数据元素ai+、bi+、ei+和fi+。
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:G·M·沃尔里克,K·S·叶,V·戈帕尔,J·D·吉尔福德,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。