[发明专利]用于响应于单个指令来执行循环和异或的系统、装置和方法有效
申请号: | 201380045424.3 | 申请日: | 2013-06-21 |
公开(公告)号: | CN104583980B | 公开(公告)日: | 2018-05-29 |
发明(设计)人: | V·戈帕尔;G·M·沃尔里齐;J·D·吉尔福德;K·S·雅普 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F12/04 | 分类号: | G06F12/04 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 何焜 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 异或 计算机处理器 单个指令 循环指令 源操作数 操作数 响应 指令 申请 | ||
本申请公开了在计算机处理器中响应于单个异或和循环指令来执行循环和异或的系统、装置和方法,其中该循环和异或指令包括第一和第二源操作数、目的地操作数以及立即数值。
技术领域
本发明的领域一般涉及计算机处理器架构,更具体地涉及在执行时导致特定结果的指令。
背景
Blake安全散列算法是将成为新的NIST SHA-3标准的五个算法之一。BLAKE是四个散列函数的家族:BLAKE-224、BLAKE-256、BLAKE-384以及BLAKE-512。BLAKE-256和BLAKE-224是基于32位字的,而BLAKE-512和BLAKE-384是基于64位字的。BLAKE-256是具有32位字、14轮以及256位输出的BLAKE,而BLAKE-512是具有64位字、16轮以及512位输出的BLAKE。
BLAKE的压缩函数是基于32位或64位字的4×4矩阵所表示的状态。BLAKE的轮由如下操作组成:执行状态矩阵的独立的列更新,然后执行状态矩阵的对角元素的独立更新。对于每一次列和对角更新,将两个消息字和两个预定常数输入该状态。
以矩阵形式将16字状态v0到v15表示为:
|v0 v1 v2 v3|
|v4 v5 v6 v7|
|v8 v9 v10 v11|
|v12 v13 v14 v15|
BLAKE的轮是使用如下函数对该v0至v15状态矩阵的变换:
使用G(a,b,c,d),以首先更新状态矩阵的多个列G0(v0,v4,v8,vl2)Gl(vl,v5,v9,vl3)G2(v2,v6,vlO,vl4)G3(v3,v7,vll,vl5),然后更新状态矩阵的对角线G4(v0,v5,vlO,vl5)G5(vl,v6,vll,vl2)G6(v2,v7,v8,vl3)G7(v3,v4,v9,vl4)。这在图1中示出。
G函数由8个相关步骤组成:
a=a+b+(m_r(2i)^c_r(2i+1))
d=(d^a)>>>16
c=c+d
b=(b^c)>>>12
a=a+b+(m_r(2i+1)^c_r(2i))
d=(d^a)>>>8
c=c+d
b=(b^c)>>>7
其中m_r(2i)和m_r(2i+l)是每轮16个消息字输入中的两个消息字输入,而c_r(2i)和c_r(2i+l)是16个常数中的两个常数。
列更新函数G0、G1、G2、G3是独立的,并且能并行地执行。在完成列更新之后,执行对角更新函数G4、G5、G6、G7。G4、G5、G6、G7也是完全独立的,并且能并行地被执行。
G函数需要6次异或(XOR)、6次加法以及4次循环(ROTATE),如图2中所示。因此,由8个G函数组成的轮需要48次异或、48次加法以及32次循环,即每轮共需要128个操作。需要附加的28次异或,以用于初始化和终结。作为示例,BLAKE-512需要16轮以及16*128=2048+28=2076个操作。
Skein算法是NIST SHA3安全散列标准中的五个余下的算法中的另一个算法。Skein由3个主函数混合(MIX)、置换(Permute)以及子密钥加法(Sub-Key addition)构成。混合函数仅对一对64位字使用三个数学操作,即异或(XOR)、循环(Rotate)和进位-传递加法。在图3中示出了示例性的混合函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380045424.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种自适应调度方法和设备
- 下一篇:一种一体式开孔器