[发明专利]用于在128位数据路径上的SHA1轮处理的指令集有效
申请号: | 201380045018.7 | 申请日: | 2013-06-14 |
公开(公告)号: | CN104641346B | 公开(公告)日: | 2018-06-08 |
发明(设计)人: | G·M·沃尔里齐;K·S·雅普;V·戈帕尔;S·M·格尔雷;J·D·吉尔福德 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F12/02 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 毛力 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 操作数 指令解码器 存储位置 指令 处理器 存储 组合逻辑函数 接收处理 散列算法 输入执行 耦合 位数据 指令集 四轮 响应 | ||
根据一个实施例,处理器包括:指令解码器,该指令解码器用于接收处理SHA1散列算法的第一指令,该第一指令具有第一操作数、第二操作数和第三操作数,第一操作数指定存储四个SHA状态的第一存储位置,第二操作数指定存储与第五个SHA状态相结合的多个SHA1消息输入的第二存储位置。该处理器还包括执行单元,该执行单元被耦合至指令解码器,该执行单元响应于第一指令,用于使用第三操作数中所指定的组合逻辑函数来对从第一操作数和第二操作数中获取的SHA1状态和消息输入执行至少四轮的SHA1轮操作。
技术领域
本发明的各实施例一般涉及指令处理设备。更具体而言,本发明的各实施例涉及处理SHA1安全散列算法的指令处理设备。
背景技术
SHA代表安全散列算法。它是由国家安全局(NSA)设计且经国家标准和技术局(NIST)公布的五个散列函数组成的。在所有这些散列函数中, SHA1是最流行的一个。SHA1生成用于具有最大长度为264的消息的160 位消息摘要。消息摘要是消息的固定长度的输出。随后,消息摘要被输入到数字签名算法(DSA),该数字签名算法(DSA)随后生成该消息的签名。对消息摘要而不是消息进行签名提供了改善的性能,因为消息摘要将比消息小得多。随后,该消息的接收方将使用相同的散列算法来验证该签名。发生在传送期间的任何变化都将导致不同的消息摘要,从而使签名得不到验证。如果签名验证为真,则接收方能够解锁该消息。该方法防止未经授权的用户看到不是针对其的消息。
在计算消息摘要的时候,SHA1处理512位的块。该消息摘要的总长度将是512的倍数。图1A是示出SHA1操作的典型迭代的框图。图1B和 1C分别示出在SHA1操作的多个轮期间所使用的函数和常数。利用SHA1 散列算法对512位/64字节数据块进行处理是由执行80轮(重复)的轮算法组成的。对于每一轮,需要32位的消息输入,其中,经散列的块的512 位直接用于前16轮的消息数据输入,而用于第17到80轮的消息输入通过根据SHA1标准所指定的“消息调度”函数组合先前的消息输入来导出。
具体来说,根据SHA1标准,使用填补的消息来计算消息摘要。该计算使用两个缓冲器,其中的每个缓冲器均由五个32位字和八十个32位字的序列组成。第一个5字缓冲器的多个字被标记为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).对于t=16到79,使Wt=S1(Wt-3 XOR Wt-8 XOR Wt-14 XOR Wt-16)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380045018.7/2.html,转载请声明来源钻瓜专利网。