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

用于处理SHA‑2安全散列算法的方法和设备技术

技术编号:15695125 阅读:191 留言:0更新日期:2017-06-24 10:31
本发明专利技术涉及用于处理SHA‑2安全散列算法的方法和设备。一种处理器包括指令解码器,用于接收第一指令以处理安全散列算法2(SHA‑2)散列算法,第一指令具有与存储SHA‑2状态的第一存储位置相关联的第一操作数以及与存储多个消息和轮常数相关联的第二存储位置相关联的第二操作数。处理器还包括耦合到所述指令解码器的执行单元,用于对所述第一操作数指定的SHA‑2状态和所述第二操作数指定的多个消息和轮常数执行SHA‑2散列算法的一次或多次迭代。

【技术实现步骤摘要】
用于处理SHA-2安全散列算法的方法和设备本申请是国际申请日为2012/03/30,国际申请号为PCT/US2012/031632,进入中国国家阶段的申请号为201280072066.0,题为“用于处理SHA-2安全散列算法的方法和设备”的专利技术专利申请的分案申请。
本专利技术的各实施例一般涉及指令处理设备。更具体而言,本专利技术的各实施例涉及处理SHA-2安全散列算法的指令处理设备。
技术介绍
SHA代表安全散列算法。它包括由国家安全局(NSA)设计且由国家标准和技术局(NIST)公布的五个散列函数。其中之一是SHA-2。SHA-2是一组安全散列函数,包括由NSA开发的SHA224、SHA256、SHA384和SHA512,旨在提供比SHA-1更高级别的安全性。SHA224和SHA256是基于32位字长度的类似算法,产生224和256位的摘要(digest)。SHA384和SHA512基于64位字且产生384和512位的摘要。SHA-2算法在计算上比SHA1更复杂,依赖于进位传播加法(propagateaddition)以及逻辑操作和循环移位(rotate)。用于一轮SHA-2操本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/62/201710073658.html" title="用于处理SHA‑2安全散列算法的方法和设备原文来自X技术">用于处理SHA‑2安全散列算法的方法和设备</a>

【技术保护点】
一种处理器,包括:多个64位通用寄存器;多个128位单指令多数据(SIMD)寄存器;数据高速缓存;指令高速缓存;二级(L2)高速缓存,其耦合到所述数据高速缓存并耦合到所述指令高速缓存;分支预测单元;指令转换后备缓冲器(TLB),其耦合到所述指令高速缓存;指令获取单元;解码单元,其耦合到所述指令获取单元,所述解码单元用于解码指令,所述指令包括安全散列算法(SHA)256调度指令,所述SHA256调度指令具有第一字段以指定所述128位SIMD寄存器中的第一128位SIMD源寄存器,所述第一128位SIMD源寄存器用于存储第一操作数,所述第一操作数包括在位[31:0]中的第一32位数据元素,在位[6...

【技术特征摘要】
1.一种处理器,包括:多个64位通用寄存器;多个128位单指令多数据(SIMD)寄存器;数据高速缓存;指令高速缓存;二级(L2)高速缓存,其耦合到所述数据高速缓存并耦合到所述指令高速缓存;分支预测单元;指令转换后备缓冲器(TLB),其耦合到所述指令高速缓存;指令获取单元;解码单元,其耦合到所述指令获取单元,所述解码单元用于解码指令,所述指令包括安全散列算法(SHA)256调度指令,所述SHA256调度指令具有第一字段以指定所述128位SIMD寄存器中的第一128位SIMD源寄存器,所述第一128位SIMD源寄存器用于存储第一操作数,所述第一操作数包括在位[31:0]中的第一32位数据元素,在位[63:32]中的第二32位数据元素,在位[95:64]中的第三32位数据元素,在位[127:96]中的第四32位数据元素,所述SHA256调度指令具有第二字段以指定所述128位SIMD寄存器中的第二128位SIMD源寄存器,所述第二操作数包括在位[31:0]中的第五32位数据元素,在位[63:32]中的第六32位数据元素,在位[95:64]中的第七32位数据元素,在位[127:96]中的第八32位数据元素;以及执行单元,其耦合到所述解码单元,并耦合到所述128位SIMD寄存器,所述执行单元用于执行所述SHA256调度指令并产生结果,所述结果将包括:在位[31:0]中的第一32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第一32位数据元素,和b)一个值,其等于所述第二32位数据元素循环右移7位,并和循环右移18位的所述第二32位数据元素相异或,并和向右移位3位的所述第二32位数据元素相异或;在位[63:32]中的第二32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第二32位数据元素,和b)一个值,其等于所述第三32位数据元素循环右移7位,并和循环右移18位的所述第三32位数据元素相异或,并和向右移位3位的所述第三32位数据元素相异或;在位[95:64]中的第三32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第三32位数据元素,和b)一个值,其等于所述第四32位数据元素循环右移7位,并和循环右移18位的所述第四32位数据元素相异或,并和向右移位3位的所述第四32位数据元素相异或;在位[127:96]中的第四32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第四32位数据元素,和b)一个值,其等于所述第五32位数据元素循环右移7位,并和循环右移18位的所述第五32位数据元素相异或,并和向右移位3位的所述第五32位数据元素相异或。2.如权利要求1所述的处理器,其特征在于,所述解码单元用于解码第二SHA256调度指令,该第二SHA256调度指令用于执行SHA256调度的另一部分。3.如权利要求1所述的处理器,其特征在于,所述第一和第二128位SIMD源寄存器中的一个还用作目的地以存储所述结果。4.如权利要求1所述的处理器,其特征在于,所述处理器是精简指令集计算(RISC)处理器。5.如权利要求1所述的处理器,还包括重排序缓冲器。6.如权利要求1所述的处理器,还包括寄存器重命名逻辑。7.一种处理器,包括:多个64位通用寄存器;多个128位单指令多数据(SIMD)寄存器;数据高速缓存;指令高速缓存;二级(L2)高速缓存,其耦合到所述数据高速缓存并耦合到所述指令高速缓存;分支预测单元;指令转换后备缓冲器(TLB),其耦合到所述指令高速缓存;指令获取单元;解码装置,用于解码指令,所述指令包括安全散列算法(SHA)256调度指令,所述SHA256调度指令具有第一字段以指定所述128位SIMD寄存器中的第一128位SIMD源寄存器,所述第一128位SIMD源寄存器用于存储第一操作数,所述第一操作数包括在位[31:0]中的第一32位数据元素,在位[63:32]中的第二32位数据元素,在位[95:64]中的第三32位数据元素,在位[127:96]中的第四32位数据元素,所述SHA256调度指令具有第二字段以指定所述128位SIMD寄存器中的第二128位SIMD源寄存器,所述第二操作数包括在位[31:0]中的第五32位数据元素,在位[63:32]中的第六32位数据元素,在位[95:64]中的第七32位数据元素,在位[127:96]中的第八32位数据元素;以及执行装置,用于执行所述SHA256调度指令并产生结果,所述结果将包括:在位[31:0]中的第一32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第一32位数据元素,和b)一个值,其等于所述第二32位数据元素循环右移7位,并和循环右移18位的所述第二32位数据元素相异或,并和向右移位3位的所述第二32位数据元素相异或;在位[63:32]中的第二32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第二32位数据元素,和b)一个值,其等于所述第三32位数据元素循环右移7位,并和循环右移18位的所述第三32位数据元素相异或,并和向右移位3位的所述第三32位数据元素相异或;在位[95:64]中的第三32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第三32位数据元素,和b)一个值,其等于所述第四32位数据元素循环右移7位,并和循环右移18位的所述第四32位数据元素相异或,并和向右移位3位的所述第四32位数据元素相异或;在位[127:96]中的第四32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第四32位数据元素,和b)一个值,其等于所述第五32位数据元素循环右移7位,并和循环右移18位的所述第五32位数据元素相异或,并和向右移位3位的所述第五32位数据元素相异或。8.一种方法,包括:解码安全散列算法(SHA)256调度指令,所述SHA256调度指令具有第一字段以指定所述128位SIMD寄存器中的第一128位SIMD源寄存器,所述第一128位SIMD源寄存器用于存储第一操作数,所述第一操作数包括在位[31:0]中的第一32位数据元素,在位[63:32]中的第二32位数据元素,在位[95:64]中的第三32位数据元素,在位[127:96]中的第四32位数据元素,所述SHA256调度指令具有第二字段以指定所述128位SIMD寄存器中的第二128位SIMD源寄存器,所述第二操作数包括在位[31:0]中的第五32位数据元素,在位[63:32]中的第六32位数据元素,在位[95:64]中的第七32位数据元素,在位[127:96]中的第八32位数据元素;以及执行所述SHA256调度指令并产生结果,所述结果将包括:在位[31:0]中的第一32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第一32位数据元素,和b)一个值,其等于所述第二32位数据元素循环右移7位,并和循环右移18位的所述第二32位数据元素相异或,并和向右移位3位的所述第二32位数据元素相异或;在位[63:32]中的第二32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第二32位数据元素,和b)一个值,其等于所述第三32位数据元素循环右移7位,并和循环右移18位的所述第三32位数据元素相异或,并和向右移位3位的所述第三32位数据元素相异或;在位[95:64]中的第三32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第三32位数据元素,和b)一个值,其等于所述第四32位数据元素循环右移7位,并和循环右移18位的所述第四32位数据元素相异或,并和向右移位3位的所述第四32位数据元素相异或;在位[127:96]中的第四32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第四32位数据元素,和b)一个值,其等于所述第五32位数据元素循环右移7位,并和循环右移18位的所述第五32位数据元素相异或,并和向右移位3位的所述第五32位数据元素相异或。9.如权利要求8所述的方法,还包括:解码第二SHA256调度指令;以及执行所述第二SHA256调度指令以执行SHA256调度的另一部分。10.如权利要求8所述的方法,还包括使用所述第一和第二128位SIMD源寄存器中的一个作为目的地来存储所述结果。11.如权利要求8所述的方法,还包括执行寄存器重命名。12.一种片上系统(SoC),包括:集成存储器控制单元;以及处理器,所述处理器包括:多个64位通用寄存器;多个128位单指令多数据(SIMD)寄存器;数据高速缓存;指令高速缓存;二级(L2)高速缓存,其耦合到所述数据高速缓存并耦合到所述指令高速缓存;分支预测单元;指令转换后备缓冲器(TLB),其耦合到所述指令高速缓存;指令获取单元;解码单元,其耦合到所述指令获取单元,所述解码单元用于解码指令,所述指令包括安全散列算法(SHA)256调度指令,所述SHA256调度指令具有第一字段以指定所述128位SIMD寄存器中的第一128位SIMD源寄存器,所述第一128位SIMD源寄存器用于存储第一操作数,所述第一操作数包括在位[31:0]中的第一32位数据元素,在位[63:32]中的第二32位数据元素,在位[95:64]中的第三32位数据元素,在位[127:96]中的第四32位数据元素,所述SHA256调度指令具有第二字段以指定所述128位SIMD寄存器中的第二128位SIMD源寄存器,所述第二操作数包括在位[31:0]中的第五32位数据元素,在位[63:32]中的第六32位数据元素,在位[95:64]中的第七32位数据元素,在位[127:96]中的第八32位数据元素;以及执行单元,其耦合到所述解码单元,并耦合到所述128位SIMD寄存器,所述执行单元用于执行所述SHA256调度指令并产生结果,所述结果将包括:在位[31:0]中的第一32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第一32位数据元素,和b)一个值,其等于所述第二32位数据元素循环右移7位,并和循环右移18位的所述第二32位数据元素相异或,并和向右移位3位的所述第二32位数据元素相异或;在位[63:32]中的第二32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第二32位数据元素,和b)一个值,其等于所述第三32位数据元素循环右移7位,并和循环右移18位的所述第三32位数据元素相异或,并和向右移位3位的所述第三32位数据元素相异或;在位[95:64]中的第三32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第三32位数据元素,和b)一个值,其等于所述第四32位数据元素循环右移7位,并和循环右移18位的所述第四32位数据元素相异或,并和向右移位3位的所述第四32位数据元素相异或;在位[127:96]中的第四32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第四32位数据元素,和b)一个值,其等于所述第五32位数据元素循环右移7位,并和循环右移18位的所述第五32位数据元素相异或,并和向右移位3位的所述第五32位数据元素相异或。13.如权利要求12所述的SoC,其特征在于,所述解码单元用于解码第二SHA256调度指令,该第二SHA256调度指令用于执行SHA256调度的另一部分。14.如权利要求12所述的SoC,其特征在于,所述第一和第二128位SIMD源寄存器中的一个还用作目的地以存储所述结果。15.如权利要求12所述的SoC,其特征在于,所述处理器是精简指令集计算(RISC)处理器核。16.如权利要求12所述的SoC,其特征在于,所述处理器还包括重排序缓冲器。17.如权利要求12所述的SoC,其特征在于,所述处理器还包括寄存器重命名逻辑。18.如权利要求12所述的SoC,还包括图像处理器。19.如权利要求12所述的SoC,还包括显示单元,用于耦合到一个或多个显示器。20.如权利要求12所述的SoC,还包括通信设备。21.如权利要求12所述的SoC,还包括图形处理单元(GPU)。22.如权利要求12所述的SoC,还包括网络处理器。23.如权利要求12所述的SoC,还包括直接存储器访问(DMA)单元。24.如权利要求12所述的SoC,还包括通信处理器。25.一种片上系统(SoC),包括:集成存储器控制单元;以及处理器,所述处理器包括:多个64位通用寄存器;多个128位单指令多数据(SIMD)寄存器;数据高速缓存;指令高速缓存;二级(L2)高速缓存,其耦合到所述数据高速缓存并耦合到所述指令高速缓存;分支预测单元;指令转换后备缓冲器(TLB),其耦合到所述指令高速缓存;指令获取单元;解码装置,用于解码指令,所述指令包括安全散列算法(SHA)256调度指令,所述SHA256调度指令具有第一字段以指定所述128位SIMD寄存器中的第一128位SIMD源寄存器,所述第一128位SIMD源寄存器用于存储第一操作数,所述第一操作数包括在位[31:0]中的第一32位数据元素,在位[63:32]中的第二32位数据元素,在位[95:64]中的第三32位数据元素,在位[127:96]中的第四32位数据元素,所述SHA256调度指令具有第二字段以指定所述128位SIMD寄存器中的第二128位SIMD源寄存器,所述第二操作数包括在位[31:0]中的第五32位数据元素,在位[63:32]中的第六32位数据元素,在位[95:64]中的第七32位数据元素,在位[127:96]中的第八32位数据元素;以及执行装置,用于执行所述SHA256调度指令并产生结果,所述结果将包括:在位[31:0]中的第一32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第一32位数据元素,和b)一个值,其等于所述第二32位数据元素循环右移7位,并和循环右移18位的所述第二32位数据元素相异或,并和向右移位3位的所述第二32位数据元素相异或;在位[63:32]中的第二32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第二32位数据元素,和b)一个值,其等于所述第三32位数据元素循环右移7位,并和循环右移18位的所述第三32位数据元素相异或,并和向右移位3位的所述第三32位数据元素相异或;在位[95:64]中的第三32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第三32位数据元素,和b)一个值,其等于所述第四32位数据元素循环右移7位,并和循环右移18位的所述第四32位数据元素相异或,并和向右移位3位的所述第四32位数据元素相异或;在位[127:96]中的第四32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第四32位数据元素,和b)一个值,其等于所述第五32位数据元素循环右移7位,并和循环右移18位的所述第五32位数据元素相异或,并和向右移位3位的所述第五32位数据元素相异或。26.一种方法,包括:使用集成存储器控制器单元来访问存储器;解码安全散列算法(SHA)256调度指令,所述SHA256调度指令具有第一字段以指定所述128位SIMD寄存器中的第一128位SIMD源寄存器,所述第一128位SIMD源寄存器用于存储第一操作数,所述第一操作数包括在位[31:0]中的第一32位数据元素,在位[63:32]中的第二32位数据元素,在位[95:64]中的第三32位数据元素,在位[127:96]中的第四32位数据元素,所述SHA256调度指令具有第二字段以指定所述128位SIMD寄存器中的第二128位SIMD源寄存器,所述第二操作数包括在位[31:0]中的第五32位数据元素,在位[63:32]中的第六32位数据元素,在位[95:64]中的第七32位数据元素,在位[127:96]中的第八32位数据元素;以及执行所述SHA256调度指令并产生结果,所述结果将包括:在位[31:0]中的第一32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第一32位数据元素,和b)一个值,其等于所述第二32位数据元素循环右移7位,并和循环右移18位的所述第二32位数据元素相异或,并和向右移位3位的所述第二32位数据元素相异或;在位[63:32]中的第二32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第二32位数据元素,和b)一个值,其等于所述第三32位数据元素循环右移7位,并和循环右移18位的所述第三32位数据元素相异或,并和向右移位3位的所述第三32位数据元素相异或;在位[95:64]中的第三32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第三32位数据元素,和b)一个值,其等于所述第四32位数据元素循环右移7位,并和循环右移18位的所述第四32位数据元素相异或,并和向右移位3位的所述第四32位数据元素相异或;在位[127:96]中的第四32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第四32位数据元素,和b)一个值,其等于所述第五32位数据元素循环右移7位,并和循环右移18位的所述第五32位数据元素相异或,并和向右移位3位的所述第五32位数据元素相异或。27.如权利要求26所述的方法,还包括:解码第二SHA256调度指令;以及执行所述第二SHA256调度指令以执行SHA256调度的另一部分。28.如权利要求26所述的方法,还包括使用所述第一和第二128位SIMD源寄存器中的一个作为目的地来存储所述结果。29.如权利要求26所述的方法,还包括执行寄存器重命名。30.如权利要求26所述的方法,还包括和网络处理器交换数据。31.如权利要求26所述的方法,还包括和通信设备交换数据。32.一种数据处理系统,包括:存储器;显示器;以及处理器,所述处理器包括:多个64位通用寄存器;多个128位单指令多数据(SIMD)寄存器;数据高速缓存;指令高速缓存;二级(L2)高速缓存,其耦合到所述数据高速缓存并耦合到所述指令高速缓存;分支预测单元;指令转换后备缓冲器(TLB),其耦合到所述指令高速缓存;指令获取单元;解码单元,其耦合到所述指令获取单元,所述解码单元用于解码指令,所述指令包括安全散列算法(SHA)256调度指令,所述SHA256调度指令具有第一字段以指定所述128位SIMD寄存器中的第一128位SIMD源寄存器,所述第一128位SIMD源寄存器用于存储第一操作数,所述第一操作数包括在位[31:0]中的第一32位数据元素,在位[63:32]中的第二32位数据元素,在位[95:64]中的第三32位数据元素,在位[127:96]中的第四32位数据元素,所述SHA256调度指令具有第二字段以指定所述128位SIMD寄存器中的第二128位SIMD源寄存器,所述第二操作数包括在位[31:0]中的第五32位数据元素,在位[63:32]中的第六32位数据元素,在位[95:64]中的第七32位数据元素,在位[127:96]中的第八32位数据元素;以及执行单元,其耦合到所述解码单元,并耦合到所述128位SIMD寄存器,所述执行单元用于执行所述SHA256调度指令并产生结果,所述结果将包括:在位[31:0]中的第一32位结果数据元素,其等于以下项的总和:a)所述第一操作数的第一32位数据元素,和b)一个值,其等于所述第二32位数据元素循环右移7位,并和循环右移18位的所述第二32位数据元素相异或,并和向右移位3位的...

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

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

1