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

处理SHA-1安全散列算法的方法和设备技术

技术编号:10352959 阅读:125 留言:0更新日期:2014-08-27 09:29
处理器包括接收处理SHA-1散列算法的第一指令的指令解码器,所述第一指令具有存储SHA-1状态的第一操作数,存储多个消息的第二操作数,以及指定散列函数的第三操作数;以及,耦合到指令解码器的执行单元,所述执行单元,使用在所述第三操作数中指定的所述散列函数,对在所述第一操作数中指定的所述SHA-1状态,以及所述第二操作数中指定的所述多个消息,执行多轮所述SHA-1散列算法。

【技术实现步骤摘要】
【国外来华专利技术】处理SHA-1安全散列算法的方法和设备
本专利技术的各实施例一般涉及指令处理设备。更具体而言,本专利技术的各实施例涉及处理SHA-1安全散列算法的指令处理设备。背景SHA代表安全散列算法。它包括由国家安全局(NationalSecurityAgency:NSA)设计并国家标准与技术协会(NIST)发布的五个散列函数。在所有散列函数中,SHA-1是最流行的一个。SHA-1为具有最大长度264的消息产生160比特消息摘要。消息摘要是消息的固定长度输出。然后,消息摘要被输入到数字签名算法(DSA),该数字签名算法随后将生成消息的签名。对消息摘要进行签名代替对消息进行签名提供了改善的性能,因为消息摘要比消息小得多。消息的接收方将使用相同散列算法来验证该签名。在中转过程中发生的任何改变都将导致不同的消息摘要,如此,签名将不会通过验证。一旦它被验证为真的,接收方就能够解锁该消息。此方法防止未经授权的用户查看不是发往他们的消息。当计算消息摘要时,SHA-1处理512比特的块。消息摘要的总长度将是512的倍数。图1是示出了SHA-1操作的典型迭代的框图。图2A和2B示出了示出了诸轮SHA-1操作中所分别使用的函数和常量。利用SHA-1散列算法对512比特/64字节的数据块的处理包括执行80轮(重复)的轮式(round)算法。对于每一轮,都要求32比特的消息输入,其中,对于头16轮消息数据输入,直接使用正在被散列的512比特的块,并且通过根据由SHA-1标准所指定的“消息调度”函数组合先前消息输入,来导出17到80轮的消息输入。具体地,根据SHA-1标准,使用填充的消息,来计算消息摘要。计算使用两个缓冲器,每个缓冲器都包括五个32比特字,以及八十个32比特字的序列。第一5字(word)缓冲器的字被标记为A、B、C、D,以及E。第二5字缓冲器的字被标记为H0、H1、H2、H3,以及H4。80字序列的字被标记为W0,W1,...,W79。还使用单字缓冲器TEMP。为生成消息摘要,按顺序处理标准中所定义的16字块M1,M2,...,Mn。对每一个Mi的处理涉及80个步骤。在处理任何块之前,按如下方式初始化{Hi}:H0=0x67452301;H1=0xEFCDAB89;H2=0x98BADCFE;H3=0x10325476;以及H4=0xC3D2E1F0。然后,处理M1,M2,...,Mn。为处理Mi,执行下列操作:a).将Mi划分成16个字W0,W1,...,W15,其中,W0是最左边的字。b).Fort=16到79,令Wt=S1(Wt-3XORWt-8XORWt-14XORWt-16).c).令A=H0,B=H1,C=H2,D=H3,E=H4.d).Fort=0到79doTEMP=S5(A)+ft(B,C,D)+E+Wt+Kt;E=D;D=C;C=S30(B);B=A;A=TEMP;e).令H0=H0+A,H1=H1+B,H2=H2+C,H3=H3+D,H4=H4+E。在处理Mn之后,消息摘要是通过5个字H0、H1、H2、H3,以及H4来表示的160比特字符串。可另选地,根据SHA-1标准,上文假设序列W0,…,W79实现为八十个32比特字的阵列。从执行时间的最小化的观点来看,这是有效率的,因为轻松地计算步骤(b)中的Wt-3,...,Wt-16的地址。如果空间非常宝贵,则替代方案是将{Wt}视为循环队列,这可以使用十六个32比特字W[0],...W[15]来实现。在此情况下,假设MASK=0x0000000F,那么,对Mi的处理如下:a).将Mi划分成16个字W[0],...,W[15],其中,W[0]是最左边的字。b).令A=H0,B=H1,C=H2,D=H3,E=H4.c).Fort=0至79dos=t^MASK;if(t>=16)W[s]=S1(W[(s+13)^MASK]XORW[(s+8)ANDMASK]XORW[(s+2)^MASK]XORW[s]);TEMP=S5(A)+f1(B,C,D)+E+W[s]+Kt;E=D;D=C;C=S30(B);B=A;A=TEMP;d).令H0=H0+A,H1=H1+B,H2=H2+C,H3=H3+D,H4=H4+E。可以在由联邦信息处理标准出版社出版的安全散列标准中发现涉及SHA-1规范的进一步的详细信息(FIPSPUB180-19954月17日)。常规软件解决方案使用标准32比特指令和32比特寄存器/存储器。轮式计算需要四个32比特加法,两个32比特旋转,逻辑函数和移动。第17到80轮的每一个消息输入都需要旋转和3个互斥OR(或)(XOR:异或)。对于80轮/消息遍历(pass)中的每一个,利用四个32比特加法,3个旋转,以及多个逻辑函数,甚至对在多个执行单元处理器下,也要求多个周期来处理一轮。缺乏高效方式来执行上面的操作。附图简述本专利技术的各实施例是作为示例说明的,而不仅限于各个附图的图形,在附图中,类似的参考编号表示类似的元件。图1是示出了SHA-1标准算法的典型过程的框图。图2A和2B是示出了SHA-1标准算法中所使用的函数和常量的图示。图3是示出了根据一实施例的处理器的示例的框图。图4是示出了根据一实施例的执行SHA-1算法的过程的框图。图5是示出了根据一实施例的执行执行SHA-1一轮操作的方法的流程图。图6是示出了根据一实施例的执行SHA-1消息调度操作的方法的流程图。图7是示出了根据另一实施例的执行SHA-1消息调度操作的方法的流程图。图8A和8B是根据一实施例的表示由处理器接收到的执行SHA-1算法的代码的序列的伪代码。图9是示出了根据一实施例的数据处理系统的示例的框图。图10是示出了根据另一实施例的数据处理系统的示例的框图。具体实施方式下面将参考下面所讨论的细节来描述本专利技术的各实施例并各方面,各个附图将示出各实施例。下面的描述和图形只是本专利技术的说明,而不作为对本专利技术的限制。描述了很多具体细节,以便全面地理解本专利技术的各实施例。然而,在某些实例中,没有描述已知的或常规的细节,以便提供对本专利技术的各实施例的简洁的讨论。在本说明书中对“一个实施例”或“实施例”的引用意思指和该实施例一起描述的特定特征、结构或特征可以被包括在本专利技术的至少一个实施例中。在本说明书中的不同位置出现短语“在一个实施例中”不一定都是指同一个实施例。根据某些实施例,响应于单个指令,使用新指令集体系结构(ISA)来执行上文所描述的多个SHA-1操作,以提高SHA-1计算的效率。性能可以通过缩短执行SHA-1轮式函数所需的时间同时推导第17到80轮的消息输入来优化,以使得执行SHA-1算法的速度主要受轮式计算支配。在一个实施例中,使用具有至少160个比特的寄存器来存储SHA-1状态变量(例如,状态变量A、B、C、D,以及E)和多个消息输入(例如,四个消息输入),以便可以由诸如向量启用处理器之类的处理器响应于单个指令并行地执行多轮(例如,四轮)SHA-1轮式散列操作。另外,还使用具有至少128个比特的寄存器来基于先前消息输入,为下一周期或迭代(例如,下四轮)准备多个消息输入。图3是示出了根据一个实施例的处理器的示例的框图。参考图3,处理器100可以表示任何类型的指令处理设备。例如,处理本文档来自技高网...
处理SHA-1安全散列算法的方法和设备

【技术保护点】
一种处理器,包括:用于接收处理SHA‑1散列算法的第一指令的指令解码器,所述第一指令具有用于存储SHA‑1状态的第一操作数,用于存储多个消息的第二操作数,以及指定散列函数的第三操作数;以及耦合到所述指令解码器的执行单元,所述执行单元响应于所述第一指令,使用在所述第三操作数中指定的所述散列函数,对在所述第一操作数中指定的所述SHA‑1状态以及在所述第二操作数中指定的所述多个消息,执行多轮所述SHA‑1散列算法。

【技术特征摘要】
【国外来华专利技术】1.一种处理器,包括:用于接收处理SHA-1散列算法的第一指令的指令解码器,所述第一指令具有用于存储SHA-1状态的第一操作数,用于存储多个消息的第二操作数,以及指定散列函数的第三操作数;以及耦合到所述指令解码器的执行单元,所述执行单元响应于所述第一指令,使用在所述第三操作数中指定的所述散列函数,对在所述第一操作数中指定的所述SHA-1状态以及在所述第二操作数中指定的所述多个消息,执行多轮所述SHA-1散列算法。2.如权利要求1所述的处理器,其特征在于,所述第一操作数指定具有存储SHA-1状态变量的数据的至少160比特的第一寄存器。3.如权利要求2所述的处理器,其特征在于,所述第二操作数指定具有存储至少四个消息的至少128比特的第二寄存器或存储器位置。4.如权利要求3所述的处理器,其特征在于,响应于作为单指令多数据(SIMD)指令的所述第一指令,执行至少四轮所述SHA-1算法。5.如权利要求1所述的处理器,其特征在于,所述指令解码器接收第二指令,并且其中响应于所述第二指令,所述执行单元被配置成基于由所述第二指令所指定的多个第一先前消息,来执行消息调度操作的第一部分。6.如权利要求5所述的处理器,其特征在于,所述指令解码器接收第三指令,并且其中响应于所述第三指令,所述执行单元被配置成对第二先前消息以及在所述第三指令中指定的中间结果,执行所述消息调度操作的第二部分,从而为要在接下来的多轮SHA-1算法期间执行的所述SHA-1算法的多轮操作生成接下来的输入消息。7.如权利要求6所述的处理器,其特征在于,对于SHA-1轮式操作的当前轮i,所述第一先前消息包括消息w(i-5)到w(i-16),其中所述第二先前消息包括消息w(i-1)到w(i-4),并且其中所述接下来的输入消息包括w(i),w(i+1),w(i+2),以及w(i+3)。8.如权利要求6所述的处理器,其特征在于,所述中间结果包括w(i-5)XORw(i-11)XORw(i-13)、w(i-6)XORw(i-12)XORw(i-14)、w(i-7)XORw(i-13)XORw(i-15),以及w(i-8)XORw(i-14)XORw(i-16)的结果。9.一种用于执行指令的方法,包括:在处理器的指令解码器处,接收用于处理SHA-1散列算法的第一指令,所述第一指令具有用于存储SHA-1状态的第一操作数,用于存储多个消息的第二操作数,以及用于指定散列函数的第三操作数;以及响应于所述第一指令,由所述处理器的执行单元通过使用在所述第三操作数中指定的所述散列函数,对在所述第一操作数中指定的所述SHA-1状态以及所述第二操作数中指定的所述多个消息,执行多轮所述SHA-1散列算法。10.如权利...

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

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

1