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

用于SHA256算法的消息调度的指令处理器制造技术

技术编号:11371019 阅读:198 留言:0更新日期:2015-04-30 03:42
处理器包括第一执行单元,该第一执行单元用于接收并执行第一指令,该第一指令用于处理安全散列算法256(SHA256)消息调度操作的第一部分,第一指令具有:第一操作数,该第一操作数与用于存储第一组消息输入的第一存储位置相关联;以及第二操作数,该第二操作数与用于存储第二组消息输入的第二存储位置相关联;该处理器进一步包括第二执行单元,该第二执行单元用于接收并执行第二指令,该第二指令用于处理所述SHA256消息调度操作的第二部分,第二指令具有:第三操作数,该第三操作数与用于存储该第一部分的中间结果和第三组消息输入的第三存储位置相关联;以及第四操作数,该第四操作数与用于存储第四组消息输入的第四存储位置相关联。

【技术实现步骤摘要】
【国外来华专利技术】用于SHA256算法的消息调度的指令处理器
本专利技术的各实施例总体涉及指令处理装置。更具体地说,本专利技术的各实施例涉及用于处理SKEIN-256安全散列算法的指令处理装置。
技术介绍
SHA代表安全散列算法。它是由经国家安全局(NSA)设计,并经国家标准技术局(NIST)发布的五个散列函数组成的。这五个散列函数之一是SHA-2。SHA-2是由NSA旨在提供比SHA-1算法更高安全等级而开发的安全散列函数的集合,包括SHA224、SHA256、SHA384和SHA512。SHA224和SHA256是基于生成224位和256位摘要的32位字长的类似算法。SHA384和SHA512基于64位字,并且生成384位和512位的摘要。依赖进位传递加法以及逻辑操作和循环的SHA-2算法在计算上比SHA1更复杂。用于一轮SHA-2操作的关键路径由四个连续的传递加法组成,加法器的输入由复杂的逻辑和循环函数来确定。图1描绘了SHA-2算法的细节。A、B、C、D、E、F、G和H表示8个状态字(对于SHA224/256是32位的,而对于SHA384/512是64位的)。对于每一个迭代执行下列操作:对于SHA-512,按位的循环使用不同的常数。在本示例中,给定的数值是针对SHA-256的。可在轮的关键路径之前执行常数K加Wi消息输入加法。依赖于先前的消息输入的经循环的副本来形成以下消息输入的用于SHA-2算法的消息调度函数也比SHA-1更复杂:对于i从16到63s0:=(w[i-15]ROTR7)XOR(w[i-15]ROTR18)XOR(w[i-15]SHR3)s1:=(w[i-2]ROTR17)XOR(w[i-2]ROTR19)XOR(w[i-2]SHR10)w[i]:=w[i-16]+s0+w[i-7]+s1其中,ROTR(也用作“>>>”)表示按位的右循环运算符;SHR表示按位的右移位运算符;而XOR表示按位的异或运算符。对于SHA-256,每一个迭代执行如下:∑0:=(aROTR2)XOR(aROTR13)XOR(aROTR22)maj:=(aANDb)XOR(aANDc)XOR(bANDc)t2:=∑0+maj∑1:=(eROTR6)XOR(eROTR11)XOR(eROTR25)ch:=(eANDf)XOR((NOTe)ANDg)t1:=h+∑1+ch+k[i]+w[i]h:=gg:=ff:=ee:=d+t1d:=cc:=bb:=aa:=t1+t2用于第1到16轮的消息输入w[i]是32位x16=512位的数据块。用于第17到64轮的w[i]必须经导出。为每一轮指定常数K,可在实际的轮迭代之前计算用于每一轮的W[i]+K[i]值。关于SHA-2规范的进一步的详细信息可在联邦信息处理标准出版物(FIPSPUB180-3,2008年10月出版)公布的安全散列标准中找到。轮处理需要8个(32位)状态变量A到H。横跨两个128位寄存器来分隔这些变量是可能的。然而,为了能够在数据路径中计算完整的轮,我们也需要w[i]+k[i]输入。即便w[i]和k[i]能够更早地相加,也引进我们在2源处理器中不能使用的至少另一源操作数。一个选项将是在每一轮之前将WK值加到H,并且让指令来处理一轮。这将增加会限制吞吐量的指令,更重要的是,会直接增加轮的等待时间(latency)。在前一轮完成之前,下一轮不能开始。如果我们在单指令多数据(SIMD)单元中具有1周期和3周期流水线,则在最好的情况下,我们将被限于每轮1+3周期。在先前的设计中,我们提出了利用两个操作数的在128位寄存器集合上的指令集,通过对状态变量仔细的分区操作,注入WK值以及每条指令计算多轮,该指令集能够实现每轮3周期。仍缺乏高效的方法来执行上述操作。附图说明在所附附图的图中以示例的方式而不是限制的方式来说明本专利技术的各实施例,其中,同样的附图标记指示类似的元素。图1描绘了SHA-2算法的细节。图2是根据本专利技术的一个实施例的处理器或处理器核的执行流水线的框图。图3是示出根据一个实施例的SHA-256的轮操作的框图。图4是示出根据一个实施例的SHA-256操作的过程的框图。图5是示出根据一个实施例的用于执行SHA-2消息调度操作的方法的流程图。图6是示出根据另一实施例的用于执行SHA-2消息调度操作的方法的流程图。图7是示出根据一个实施例的SHA256操作的过程的伪代码。图8A和8B示出根据某些实施例的用于SHA512操作的替代性指令。图9A示出根据本专利技术的一个实施例的示例性高级向量扩展(AVX)指令格式。图9B示出根据本专利技术的另一实施例的示例性高级向量扩展(AVX)指令格式。图9C示出根据本专利技术的另一实施例的示例性高级向量扩展(AVX)指令格式。图10A是示出根据本专利技术的实施例的通用向量友好指令格式及其A类指令模板的框图。图10B是示出根据本专利技术的实施例的通用向量友好指令格式及其B类指令模板的框图。图11A是示出根据本专利技术的一个实施例的示例性专用向量友好指令格式的框图。图11B是示出根据本专利技术的另一实施例的通用向量友好指令格式的框图。图11C是示出根据本专利技术的另一实施例的通用向量友好指令格式的框图。图11D是示出根据本专利技术的另一实施例的通用向量友好指令格式的框图。图12是根据本专利技术的一个实施例的寄存器架构的框图。图13A是示出根据本专利技术的各实施例的示例性有序流水线和示例性的寄存器重命名的无序发布/执行流水线的框图。图13B是示出根据本专利技术的各实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图。图14A是根据本专利技术的一个实施例的处理器核的框图。图14B是根据本专利技术的另一实施例的处理器核的框图。图15是根据本专利技术的各实施例的处理器的框图。图16是根据本专利技术的一个实施例的系统的框图。图17是根据本专利技术的实施例的更具体的示例性系统的框图。图18是根据本专利技术的另一实施例的更具体的示例性系统的框图。图19是根据本专利技术的实施例的SoC的框图。图20是根据本专利技术的实施例的对比使用软件指令转换器将源指令集中的二进制指令变换成目标指令集中的二进制指令的框图。具体实施方式将参考以下所讨论的细节来描述本专利技术的各实施例和方面,并且所附附图将说明各实施例。下列描述和附图是说明本专利技术的,并且不应当被解释为限制本专利技术。描述许多具体的细节以提供对本专利技术的各实施例的透彻理解。然而,在某些实例中,不描述公知的或常规的细节,以便提供本专利技术的实施例的简洁的讨论。说明书中提到“一个实施例”或“一实施例”意思是结合该实施例所描述的特定的特征、结构或特性能够被包括在本专利技术的至少一个实施例中。在本说明书的多处出现的短语“在一个实施例中”不一定全部都指相同的实施例。根据一些实施例,新指令集架构(ISA)用于响应于单条指令(例如,单指令多数据或SIMD指令)来执行一轮或多轮上文所述的SHA-2操作,以提高SHA-2计算的效率。利用使用具有两个源的限制的128位寄存器(如,XMM寄存器)的针对SHA256轮处理的新指令,可在3周期流水线处理器或处理器核中执行该新指令。此外,定义了利用具有两个源操作数的限制的128位SIMD的针对S本文档来自技高网...

【技术保护点】
一种处理器,包括:第一执行单元,所述第一执行单元用于接收用于处理安全散列算法256(SHA256)消息调度操作的第一部分的第一指令,所述第一指令具有:第一操作数,所述第一操作数与用于存储第一组消息输入的第一存储位置相关联;以及第二操作数,所述第二操作数与用于存储第二组消息输入的第二存储位置相关联,并且所述第一执行单元用于基于所述第一组消息输入和所述第二组消息输入来执行所述第一指令以生成中间结果;以及第二执行单元,所述第二执行单元用于接收用于处理所述SHA256消息调度操作的第二部分的第二指令,所述第二指令具有:第三操作数,所述第三操作数与用于存储所述中间结果和第三组消息输入的第三存储位置相关联;以及第四操作数,所述第四操作数与用于存储第四组消息输入的第四存储位置相关联,并且所述第二执行单元用于基于所述中间结果和所述第三组消息输入以及所述第四组消息输入来执行所述第二指令以生成用于SHA256轮操作的下一个迭代的消息输入。

【技术特征摘要】
【国外来华专利技术】2012.09.28 US 13/631,1651.一种处理器,包括:第一执行单元,所述第一执行单元用于执行用于处理安全散列算法256消息调度操作的第一部分的经解码的第一指令,所述第一指令具有:第一操作数,所述第一操作数与用于存储第一组消息输入的第一存储位置相关联;以及第二操作数,所述第二操作数与用于存储第二组消息输入的第二存储位置相关联,并且所述第一执行单元用于基于所述第一组消息输入和所述第二组消息输入来执行所述第一指令以生成中间结果;以及第二执行单元,所述第二执行单元用于执行用于处理所述安全散列算法256消息调度操作的第二部分的经解码的第二指令,所述第二指令具有:第三操作数,所述第三操作数与用于存储所述中间结果和第三组消息输入的第三存储位置相关联;以及第四操作数,所述第四操作数与用于存储第四组消息输入的第四存储位置相关联,并且所述第二执行单元用于基于所述中间结果和所述第三组消息输入以及所述第四组消息输入来执行所述第二指令以生成用于安全散列算法256轮操作的下一个迭代的消息输入。2.如权利要求1所述的处理器,其特征在于,所述第一、第二、第三和第四操作数是指各自具有至少128位的存储位置。3.如权利要求1所述的处理器,其特征在于,所述中间结果存储在与所述第一操作数相关联的所述第一存储位置中。4.如权利要求1所述的处理器,其特征在于,所述用于安全散列算法256轮操作的下一个迭代的消息输入要被存储在与所述第三操作数相关联的第三存储位置中。5.如权利要求1所述的处理器,其特征在于,对于所述安全散列算法256消息调度操作的当前迭代i,所述第一存储位置用于存储消息输入w(i-13)、w(i-14)、w(i-15)和w(i-16),并且所述第二存储位置用于存储消息输入w(i-9)、w(i-10)、w(i-11)和w(i-12)。6.如权利要求1所述的处理器,其特征在于,对于所述安全散列算法256消息调度操作的当前迭代i,所述中间结果用于代表w(i-13)+s0(w(i-12))、w(i-14)+s0(w(i-13))、w(i-15)+s0(w(i-14))和w(i-16)+s0(w(i-15))。7.如权利要求1所述的处理器,其特征在于,对于所述安全散列算法256消息调度操作的当前迭代i,与所述第三操作数相关联的存储位置用于存储所述中间结果和消息输入w(i-5)、w(i-6)和w(i-7)的组合。8.如权利要求1所述的处理器,其特征在于,对于所述安全散列算法256消息调度操作的当前迭代i,用于下一个迭代的消息输入用于代表w(i+3)、w(i+2)、w(i+l)和w(i)。9.一种由处理器执行的方法,所述方法包括:由处理器的解码单元解码第一指令,所述第一指令用于处理安全散列算法256消息调度操作的第一部分,所述第一指令具有:第一操作数,所述第一操作数与用于存储第一组消息输入的第一存储位置相关联;以及第二操作数,所述第二操作数与用于存储第二组消息输入的第二存储位置相关联;由第一执行单元基于所述第一组消息输入和所述第二组消息输入来执行所述第一指令,以生成中间结果;由所述处理器的所述解码单元解码第二指令,所述第二指令用于处理所述安全散列算法256消息调度操作的第二部分,所述第二指令具有:第三操作数,所述第三操作数与用于存储所述中间结果和第三组消息输入的第三存储位置相关联;以及第四操作数,所述第四操作数与用于存储第四组消息输入的第四存储位置相关联;以及由第二执行单元基于所述中间结果和所述第三组消息输入以及所述第四组消息输入来执行所述第二指令,以生成用于安全散列算法256轮操作的下一个迭代的消息输入。10.如权利要求9所述的方法,其特征在于,所述第一、第二、第三和第四操作数是指各自具有至少128位的存储位置。11.如权利要求9所述的方法,其特征在于,所述中间结果存储在与所述第一操作数相关联的所述第一存储位置中。12.如权利要求9所述的方法,其特征在于,所述用于安全散列算法256轮操作的下一个迭代的消息输入存储在与所述第三操作数相关联的第...

【专利技术属性】
技术研发人员:G·M·沃尔里齐K·S·雅普J·D·吉尔福德V·戈帕尔S·M·格尔雷
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1