用于sha256算法的消息调度的指令集的制作方法

文档序号:8269360阅读:685来源:国知局
用于sha256算法的消息调度的指令集的制作方法
【技术领域】
[0001] 本发明的各实施例总体涉及指令处理装置。更具体地说,本发明的各实施例涉及 用于处理SKEIN-256安全散列算法的指令处理装置。
【背景技术】
[0002] SHA代表安全散列算法。它是由经国家安全局(NSA)设计,并经国家标准技术局 (NIST)发布的五个散列函数组成的。这五个散列函数之一是SHA-2。SHA-2是由NSA旨在 提供比SHA-1算法更高安全等级而开发的安全散列函数的集合,包括SHA 224、SHA 256、 SHA 384和SHA 512。SHA 224和SHA 256是基于生成224位和256位摘要的32位字长的 类似算法。SHA 384和SHA 512基于64位字,并且生成384位和512位的摘要。
[0003] 依赖进位传递加法以及逻辑操作和循环的SHA-2算法在计算上比SHA1更复杂。用 于一轮SHA-2操作的关键路径由四个连续的传递加法组成,加法器的输入由复杂的逻辑和 循环函数来确定。图1描绘了 SHA-2算法的细节。A、B、C、D、E、F、G和H表示8个状态字 (对于SHA224/256是32位的,而对于SHA384/512是64位的)。对于每一个迭代执行下列 操作:
【主权项】
1. 一种处理器,包括: 第一执行单元,所述第一执行单元用于接收用于处理安全散列算法256 (SHA256)消息 调度操作的第一部分的第一指令,所述第一指令具有:第一操作数,所述第一操作数与用于 存储第一组消息输入的第一存储位置相关联;W及第二操作数,所述第二操作数与用于存 储第二组消息输入的第二存储位置相关联,并且所述第一执行单元用于基于所述第一组消 息输入和所述第二组消息输入来执行所述第一指令W生成中间结果;W及 第二执行单元,所述第二执行单元用于接收用于处理所述SHA256消息调度操作的第 二部分的第二指令,所述第二指令具有:第=操作数,所述第=操作数与用于存储所述中 间结果和第=组消息输入的第=存储位置相关联;W及第四操作数,所述第四操作数与用 于存储第四组消息输入的第四存储位置相关联,并且所述第二执行单元用于基于所述中 间结果和所述第=组消息输入W及所述第四组消息输入来执行所述第二指令W生成用于 SHA256轮操作的下一个迭代的消息输入。
2. 如权利要求1所述的处理器,其特征在于,所述第一、第二、第=和第四操作数是指 各自具有至少128位的存储位置。
3. 如权利要求1所述的处理器,其特征在于,所述中间结果存储在与所述第一操作数 相关联的所述第一存储位置中。
4. 如权利要求1所述的处理器,其特征在于,所述用于SHA256轮操作的下一个迭代的 消息输入存储在与所述第=操作数相关联的第=存储位置中。
5. 如权利要求1所述的处理器,其特征在于,对于所述SHA256消息调度操作的当前迭 代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所述的处理器,其特征在于,对于所述SHA256消息调度操作 的当前迭代 i,所述中间结果代表 w(i-13)+s0(w(i-12))、w(i-14)+s0(w(i-13))、 w(i_15)+sO(w(i_14))和 w(i_16)+sO(w(i_15))。
7. 如权利要求1所述的处理器,其特征在于,对于所述SHA256消息调度操作的当前迭 代i,所述第S存储位置存储所述中间结果和消息输入w(i-5)、w(i-6)和w(i-7)的组合。
8. 如权利要求1所述的处理器,其特征在于,对于所述SHA256消息调度操作的当前迭 代i,用于下一个迭代的消息输入代表W (i+3)、W (i+2)、W (i+U和W (i)。
9. 一种方法,包括: 由处理器的第一执行单元接收第一指令,所述第一指令用于处理安全散列算法 256(SHA256)消息调度操作的第一部分,所述第一指令具有:第一操作数,所述第一操作数 与用于存储第一组消息输入的第一存储位置相关联;W及第二操作数,所述第二操作数与 用于存储第二组消息输入的第二存储位置相关联; 由所述第一执行单元基于所述第一组消息输入和所述第二组消息输入来执行所述第 一指令,W生成中间结果; 由所述处理器的第二执行单元接收第二指令,所述第二指令用于处理所述SHA256消 息调度操作的第二部分,所述第二指令具有:第=操作数,所述第=操作数与用于存储所述 中间结果和第=组消息输入的第=存储位置相关联;W及第四操作数,所述第四操作数与 用于存储第四组消息输入的第四存储位置相关联;W及 由所述第二执行单元基于所述中间结果和所述第=组消息输入w及所述第四组消息 输入来执行所述第二指令,W生成用于SHA256轮操作的下一个迭代的消息输入。
10. 如权利要求9所述的方法,其特征在于,所述第一、第二第立和第四操作数是指各 自具有至少128位的存储位置。
11. 如权利要求9所述的方法,其特征在于,所述中间结果存储在与所述第一操作数相 关联的所述第一存储位置中。
12. 如权利要求9所述的方法,其特征在于,所述用于SHA256轮操作的下一个迭代的消 息输入存储在与所述第=操作数相关联的第=存储位置中。
13. 如权利要求9所述的方法,其特征在于,对于所述SHA256消息调度操作的当前迭 代i,所述第一存储位置存储消息输入W (i-13)、W (i-14)、W (i-15)和W (i-16),并且所述第 二存储位置存储消息输入w(i-9)、w(i-lO)、w(i-ll)和w(i-12)。
14. 如权利要求9所述的方法,其特征在于,对于所述SHA256消息调度操作的当前迭代 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. 如权利要求9所述的方法,其特征在于,对于所述SHA256消息调度操作的当前迭代 i,所述第S存储位置存储所述中间结果和消息输入w(i-5)、w(i-6)和w(i-7)的组合。
16. 如权利要求9所述的方法,其特征在于,对于所述SHA256消息调度操作的当前迭代 i,用于下一个迭代的消息输入代表W (i+3)、W (i+2)、W (i+U和W a)。
17. -种数据处理系统,包括: 互连; 动态随机存取存储器值RAM),所述动态随机存取存储器值RAM)禪合到所述互连;W及 处理器,所述处理器禪合到所述互连,所述处理器包括: 第一执行单元,所述第一执行单元用于接收用于处理安全散列算法256 (SHA256)消息 调度操作的第一部分的第一指令,所述第一指令具有:第一操作数,所述第一操作数与用于 存储第一组消息输入的第一存储位置相关联;W及第二操作数,所述第二操作数与用于存 储第二组消息输入的第二存储位置相关联,并且所述第一执行单元用于基于所述第一组消 息输入和所述第二组消息输入来执行所述第一指令W生成中间结果;W及 第二执行单元,所述第二执行单元用于接收用于处理所述SHA256消息调度操作的第 二部分的第二指令,所述第二指令具有:第=操作数,所述第=操作数与用于存储所述中 间结果和第=组消息输入的第=存储位置相关联;W及第四操作数,所述第四操作数与用 于存储第四组消息输入的第四存储位置相关联,并且所述第二执行单元用于基于所述中 间结果和所述第=组消息输入W及所述第四组消息输入来执行所述第二指令W生成用于 SHA256轮操作的下一个迭代的消息输入。
18. 如权利要求17所述的系统,其特征在于,所述第一、第二、第=和第四操作数是指 各自具有至少128位的存储位置。
19. 如权利要求17所述的系统,其特征在于,所述中间结果存储在与所述第一操作数 相关联的所述第一存储位置中。
20. 如权利要求17所述的系统,其特征在于,所述用于SHA256轮操作的下一个迭代的 消息输入存储在与所述第=操作数相关联的第=存储位置中。
21.如权利要求17所述的系统,其特征在于,对于所述SHA256消息调度操作的当前迭 代i,所述第一存储位置存储消息输入W (i-13)、W (i-14)、W (i-15)和W (i-16),并且所述第 二存储位置存储消息输入w(i-9)、w(i-lO)、w(i-ll)和w(i-12)。 2 2.如权利要求17所述的系统,其特征在于,对于所述SHA2 56消息调度操作 的当前迭代 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))。
23. 如权利要求17所述的系统,其特征在于,对于所述SHA256消息调度操作的当前迭 代i,所述第S存储位置存储所述中间结果和消息输入w(i-5)、w(i-6)和w(i-7)的组合。
24. 如权利要求17所述的系统,其特征在于,对于所述SHA256消息调度操作的当前迭 代i,用于下一个迭代的消息输入代表W (i+3)、W (i+2)、W (i+U和W a)。
【专利摘要】处理器包括第一执行单元,该第一执行单元用于接收并执行第一指令,该第一指令用于处理安全散列算法256(SHA256)消息调度操作的第一部分,第一指令具有:第一操作数,该第一操作数与用于存储第一组消息输入的第一存储位置相关联;以及第二操作数,该第二操作数与用于存储第二组消息输入的第二存储位置相关联;该处理器进一步包括第二执行单元,该第二执行单元用于接收并执行第二指令,该第二指令用于处理所述SHA256消息调度操作的第二部分,第二指令具有:第三操作数,该第三操作数与用于存储该第一部分的中间结果和第三组消息输入的第三存储位置相关联;以及第四操作数,该第四操作数与用于存储第四组消息输入的第四存储位置相关联。
【IPC分类】G06F9-46, G06F9-38
【公开号】CN104583958
【申请号】CN201380044923
【发明人】G·M·沃尔里齐, K·S·雅普, J·D·吉尔福德, V·戈帕尔, S·M·格尔雷
【申请人】英特尔公司
【公开日】2015年4月29日
【申请日】2013年6月12日
【公告号】DE112013004798T5, US8838997, US20140093069, WO2014051735A1
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1