用于处理sha-2安全散列算法的方法和设备的制作方法

xiaoxiao2020-9-10  8

用于处理sha-2安全散列算法的方法和设备的制作方法
【专利摘要】一种处理器包括指令解码器,用于接收第一指令以处理安全散列算法2(SHA-2)散列算法,第一指令具有与存储SHA-2状态的第一存储位置相关联的第一操作数以及与存储多个消息和轮常数相关联的第二存储位置相关联的第二操作数。处理器还包括耦合到所述指令解码器的执行单元,用于对所述第一操作数指定的SHA-2状态和所述第二操作数指定的多个消息和轮常数执行SHA-2散列算法的一次或多次迭代。
【专利说明】用于处理SHA-2安全散列算法的方法和设备

【技术领域】
[0001] 本发明的各实施例一般涉及指令处理设备。更具体而言,本发明的各实施例涉及 处理SHA-2安全散列算法的指令处理设备。

【背景技术】
[0002] SHA代表安全散列算法。它包括由国家安全局(NSA)设计且由国家标准和技术局 (NIST)公布的五个散列函数。其中之一是SHA-2。SHA-2是一组安全散列函数,包括由NSA 开发的SHA 224、SHA 256、SHA 384和SHA 512,旨在提供比SHA-1更高级别的安全性。SHA 224和SHA 256是基于32位字长度的类似算法,产生224和256位的摘要(digest)。SHA 384和SHA 512基于64位字且产生384和512位的摘要。
[0003] SHA-2算法在计算上比SHA 1更复杂,依赖于进位传播加法(propagate addition)以及逻辑操作和旋转。用于一轮SHA-2操作的关键路径包括四个连续的传播加 法,且加法器输入由复杂逻辑和旋转函数确定。图1描述SHA-2算法的细节。A,B,C,D,E,F,G 和H表示8个状态字(对于SHA 224/256为32位,且对于SHA384/512为64位)。对于每 次迭代执行以下的操作:

【权利要求】
1. 一种处理器,包括: 指令解码器,用于接收第一指令以处理安全散列算法2 (SHA-2)散列算法,所述第一指 令具有与存储SHA-2状态的第一存储位置相关联的第一操作数以及与存储多个消息和轮 常数的第二存储位置相关联的第二操作数;以及 耦合到所述指令解码器的执行单元,用于响应于第一指令对所述第一操作数指定的 SHA-2状态和所述第二操作数指定的多个消息和轮常数执行SHA-2散列算法的一次或多次 迭代。
2. 如权利要求1所述的处理器,其特征在于,所述第一操作数指定具有至少256位的第 一寄存器,用以存储用于执行SHA-256轮操作的SHA-2状态变量。
3. 如权利要求2所述的处理器,其特征在于,第二操作数指定具有至少64位的第二寄 存器或存储器位置,用以存储用于SHA-256轮操作的至少两个消息和轮常数。
4. 如权利要求1所述的处理器,其特征在于,所述第一操作数指定具有至少512位的第 一寄存器,用以存储用于执行SHA-512轮操作的SHA-2状态变量。
5. 如权利要求1所述的处理器,其特征在于,所述指令解码器接收第二指令,且其中响 应于第二指令,所述执行单元被配置成基于由第二指令指定的多个第一先前消息执行消息 调度操作的第一部分并生成中间结果。
6. 如权利要求5所述的处理器,其特征在于,所述第二指令包括第三操作数、第四操 作数和第五操作数,其中对于SHA-2轮操作的当前迭代i,所述第三操作数指定用于存储消 息w(i-13)、w(i-14)、w(i-15)和w(i-16)的位置,其中所述第四操作数指定用于存储消息w(i-9)、w(i-10)、w(i-ll)和w(i-12)的位置,且其中中间结果被存储在由所述第五操作数 指定的位置中。
7. 如权利要求6所述的处理器,其特征在于,所述中间结果包括w (i-3) +sO (w (i-12))、 w (i_14) +sO (w (i_13))、w (i_15) +sO (w (i_14))、w (i_16) +sO (w (i_15)),且其中函数 sO (x) 由 sO(x) = (x ROTR 7)X0R(x ROTR 18)X0R(x ROTR 3)来表示。
8. 如权利要求5所述的处理器,其特征在于,所述指令解码器接收第三指令,且其中响 应于第三指令,所述执行单元配置成对第三指令中指定的中间结果和第二先前消息执行消 息调度操作的第二部分并生成接下来的输入消息,用于将在SHA-2算法的一轮或多轮的接 下来的迭代期间执行的SHA-2算法的一轮或多轮操作。
9. 如权利要求8所述的处理器,其特征在于,所述第三指令包括第六操作数、第七操 作数和第八操作数,其中对于SHA-2轮操作的当前迭代i,第六操作数指定用于存储消息 w(i-5)、w(i-6)、w(i-7)和w(i-8)的寄存器,其中第七操作数指定用于存储消息w(i-l)、W(i-2)、w(i-3)和w(i-4)的寄存器,且其中接下来的输入消息包括将要存储在由第八操作 数指定的寄存器中的w(i)、w(i+l)、w(i+2)和w(i+3)。
10. -种方法,包括: 在指令解码器处接收第一指令以处理安全散列算法2 (SHA-2)散列算法,所述第一指 令具有与存储SHA-2状态的第一存储位置相关联的第一操作数以及与存储多个消息和轮 常数的第二存储位置相关联的第二操作数;以及 响应于第一指令,由耦合到所述指令解码器的执行单元对所述第一操作数指定的 SHA-2状态和所述第二操作数指定的多个消息和轮常数执行SHA-2散列算法的一次或多次 迭代。
11. 如权利要求10所述的方法,其特征在于,所述第一操作数指定具有至少256位的第 一寄存器,用以存储用于执行SHA-256轮操作的SHA-2状态变量。
12. 如权利要求11所述的方法,其特征在于,第二操作数指定具有至少64位的第二寄 存器或存储器位置,用以存储用于SHA-256轮操作的至少两个消息和轮常数。
13. 如权利要求10所述的方法,其特征在于,所述第一操作数指定具有至少512位的第 一寄存器,用以存储用于执行SHA-512轮操作的SHA-2状态变量。
14. 如权利要求10所述的方法,其特征在于,所述指令解码器接收第二指令,且其中响 应于第二指令,所述执行单元被配置成基于由第二指令指定的多个第一先前消息执行消息 调度操作的第一部分并生成中间结果。
15. 如权利要求14所述的方法,其特征在于,所述第二指令包括第三操作数、第四操 作数和第五操作数,其中对于SHA-2轮操作的当前迭代i,所述第三操作数指定用于存储消 息w(i-13)、w(i-14)、w(i-15)和w(i-16)的位置,其中所述第四操作数指定用于存储消息w(i-9)、w(i-10)、w(i-ll)和w(i-12)的位置,且其中中间结果被存储在由所述第五操作数 指定的位置中。
16. 如权利要求15所述的方法,其特征在于,所述中间结果包括w (i-3) +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)),且其中函数 s0 (x) 由 s0(x) = (x ROTR 7)X0R(x ROTR 18)X0R(x ROTR 3)来表示。
17. 如权利要求14所述的方法,其特征在于,所述指令解码器接收第三指令,且其中响 应于第三指令,所述执行单元配置成对第三指令中指定的中间结果和第二先前消息执行消 息调度操作的第二部分并生成接下来的输入消息,用于将在SHA-2算法的一轮或多轮的接 下来的迭代期间执行的SHA-2算法的一轮或多轮操作。
18. 如权利要求17所述的方法,其特征在于,所述第三指令包括第六操作数、第七操 作数和第八操作数,其中对于SHA-2轮操作的当前迭代i,第六操作数指定用于存储消息 w(i-5)、w(i-6)、w(i-7)和w(i-8)的位置,其中第七操作数指定用于存储消息w(i-l)、W(i-2)、w(i-3)和w(i-4)的寄存器,且其中接下来的输入消息包括将要存储在由第八操作 数指定的寄存器中的w(i)、w(i+l)、w(i+2)和w(i+3)。
19. 一种数据处理系统,包括: 互连; 耦合所述互连的处理器,用于执行权利要求10-18中的任一项所述的方法;以及 耦合到所述互连的动态随机存取存储器(DRAM)。
【文档编号】H04L9/28GK104509026SQ201280072066
【公开日】2015年4月8日 申请日期:2012年3月30日 优先权日:2012年3月30日
【发明者】K·S·雅普, G·M·沃尔里齐, J·D·吉尔福德, V·戈帕尔, E·奥兹图科, S·M·格尔雷, W·K·费格哈利, M·G·迪克森 申请人:英特尔公司

最新回复(0)