用于处理blake安全散列算法的指令处理器、方法以及系统的制作方法

文档序号:7978671阅读:110来源:国知局
用于处理blake安全散列算法的指令处理器、方法以及系统的制作方法
【专利摘要】一方面的方法包括接收一指令,该指令指示第一源,该第一源具有至少一组四个状态矩阵数据元素的指令,这些四个状态矩阵数据元素表示向加密散列算法的G函数的完整的一组四个输入。算法使用十六数据元素状态矩阵,并在更新列和对角线中的数据元素之间交替。指令还指示第二源,该第二源具有表示消息和常量数据的数据元素。响应于指令,将结果存储在由指令指示的目的地。结果包括更新的状态矩阵数据元素,其中包括至少一组四个更新的状态矩阵数据元素。四个更新的状态矩阵数据元素中的每一个都表示由G函数更新的第一源的四个状态矩阵数据元素中的对应的一个。
【专利说明】用于处理BLAKE安全散列算法的指令处理器、方法以及系统
[0001]背景
[0002]领域
[0003]各实施例涉及处理器。具体而言,各实施例涉及执行指令以处理BLAKE安全散列算法的处理器。
[0004]背景信息
[0005]加密散列函数广泛地用于电子设备中。可以将消息或输入数据输入到加密散列函数中,可以处理消息或输入数据,并可以输出加密散列。加密散列有时称为消息摘要、摘要或散列。加密散列函数一般是这样的,以便对输入数据的更改将还改变输出的散列。加密散列函数通常用于安全性、认证、验证,或标识。加密散列函数的特定应用的示例包括,但不仅限于,用于生成数字签名、消息认证代码、验证文件或消息的完整性、标识文件或数据,以及伪随机数生成和密钥导出。
[0006]BLAKE是由国家标准与技术协会(NIST)选择用于SHA-3的五个最终方案之中的散列函数或算法的系列。在2010年12月16日版本1.3中由Jean-Jean-Philippe Aumasson等人所著的SHA-3建议BLAKE中描述了 BLAKE。BLAKE包括被称为BLAKE_224、BLAKE_256、BLAKE-384,以及BLAKE-512的四个散列函数。BLAKE-256是算法的32位版本。BLAKE-224是使用不同的初始值,不同的填充,并将输出或摘要从256位截断到224位,从BLAKE-256导出的。BLAKE-512是算法的64位版本。BLAKE-384是使用不同的初始值,不同的填充,并将摘要从512位截断到384 位,从BLAKE-512导出的。表1列出了四个BLAKE散列函数的特性。
[0007]表1。
[0008]
【权利要求】
1.一种方法,包括: 接收指令,所述指令指示第一源,所述第一源具有打包的状态矩阵数据元素,打包的状态矩阵数据元素包括至少一组四个状态矩阵数据元素,所述四个状态矩阵数据元素表示向加密散列算法的G函数的完整的一组四个输入,所述加密散列算法使用具有十六个状态矩阵数据元素的状态矩阵,并在更新所述状态矩阵的列和对角线中的状态矩阵数据元素之间交替,所述指令还指示第二源,所述第二源具有表示消息和常量数据的打包的数据元素;以及 响应于所述指令,将结果存储在由所述指令指示的目的地中,所述结果具有打包的更新的状态矩阵数据元素,其中包括至少一组四个更新的状态矩阵数据元素,所述一组中的四个更新的状态矩阵数据元素中的每一个都表示由所述G函数更新的所述第一源的所述一组中的所述四个状态矩阵数据元素中的对应的一个。
2.如权利要求1所述的方法,其特征在于,所述加密散列算法是BLAKE散列算法。
3.如权利要求1所述的方法,其特征在于,所述G函数包括至少四个异或(xor)运算、六个加法运算,以及四个循环运算。
4.如权利要求1所述的方法,其特征在于,存储包括存储具有所述四个更新的状态矩阵数据元素的所述组的所述结果,所述四个更新的状态矩阵数据元素表示所述状态矩阵的完整的列和完整的对角线中的一个。
5.如权利要求1所述的方法,其特征在于,存储包括存储具有至少八个更新的状态矩阵数据元素的所述结 果,所述八个更新的状态矩阵数据元素表示所述状态矩阵的至少两个完整的列和至少两个完整的对角线中的一个。
6.如权利要求1所述的方法,其特征在于,接收包括接收所述指令,所述指令指示所述第一源,所述第一源具有多组四个状态矩阵数据元素,其中,每一组四个状态矩阵数据元素都表示向所述G函数的不同的对应的实例的不同的完整的四个输入的组,并且存储包括存储包括多组四个更新的状态矩阵数据元素的所述结果,每一组所述四个更新的状态矩阵数据元素都对应于所述第一源的所述多组所述四个状态矩阵数据元素中的不同的一组并包括由所述G函数更新的状态矩阵数据元素。
7.如权利要求6所述的方法,其特征在于,存储包括存储包括四组四个更新的状态矩阵数据元素的所述结果。
8.如权利要求1所述的方法,其特征在于,接收包括接收所述指令,所述指令指示所述第一源,所述第一源具有所述十六个状态矩阵数据元素中的全部,并且存储包括存储包括十六个更新的状态矩阵数据元素的所述结果,每一个状态矩阵数据元素都表示由所述G函数更新的所述第一源的所述十六个状态矩阵数据元素中的对应的一个。
9.如权利要求1所述的方法,其特征在于,接收包括接收指示所述十六个状态矩阵数据元素中的全部的所述指令,并且存储包括存储包括至少八个更新的状态矩阵数据元素的所述结果,每一个状态矩阵数据元素都表示由所述G函数更新的所述第一源的所述十六个状态矩阵数据元素中的至少八个中的对应的一个。
10.如权利要求1所述的方法,其特征在于,接收包括接收指示所述第二源具有数据元素的所述指令,每一个数据元素都表示消息数据和常量数据的异或(Xor)。
11.一种设备,包括:多个打包的数据寄存器;以及 与所述多个所述打包的数据寄存器耦合的执行单元,响应于一指令,所述指令指示第一源,所述第一源具有打包的状态矩阵数据元素,所述打包的状态矩阵数据元素包括至少一组四个状态矩阵数据元素,所述四个状态矩阵数据元素表示向加密散列算法的G函数的完整的一组四个输入,所述指令还指示第二源,所述第二源具有表示消息和常量数据的打包的数据元素,所述执行单元用于将结果存储在由所述指令指示的目的地,所述结果具有打包的更新的状态矩阵数据元素,其中包括至少一组四个更新的状态矩阵数据元素,所述一组中的所述四个更新的状态矩阵数据元素中的每一个都表示由所述G函数更新的所述第一源中的所述一组中的所述四个状态矩阵数据元素中的对应的一个, 其中所述加密散列算法将使用具有十六状态矩阵数据元素的状态矩阵,并将在更新所述状态矩阵的列和对角线中的状态矩阵数据元素之间交替。
12.如权利要求11所述的设备,其特征在于,所述加密散列算法是BLAKE散列算法。
13.如权利要求11所述的设备,其特征在于,所述G函数包括至少四个异或(xor)运算、六个加法运算,以及四个循环运算。
14.如权利要求11所述的设备,其特征在于,所述执行单元将存储具有所述四个更新的状态矩阵数据元素的所述组的所述结果,所述状态矩阵数据元素将表示所述状态矩阵的完整的列和完整的对角线中的一个。
15.如权利要求11所述的设备,其特征在于,所述执行单元将存储具有所述至少八个更新的状态矩阵数据 元素的所述结果,所述状态矩阵数据元素将表示所述状态矩阵的至少两个完整的列和至少两个完整的对角线中的一个。
16.如权利要求11所述的设备,其特征在于,接收包括接收指示所述第一源具有多组四个状态矩阵数据元素的所述指令,其中,每一组四个状态矩阵数据元素都表示向所述G函数的不同的对应的实例的不同的完整的四个输入的组,并且所述执行单元将存储包括多组四个更新的状态矩阵数据元素的所述结果,每一组所述四个更新的状态矩阵数据元素都对应于所述第一源的所述多组所述四个状态矩阵数据元素中的不同的一组,并包括由所述G函数更新的状态矩阵数据元素。
17.如权利要求11所述的设备,其特征在于,所述结果将包括四组更新的状态矩阵数据元素,每一组都有四个更新的状态矩阵数据元素。
18.如权利要求11所述的设备,其特征在于,所述指令将指示所述第一源具有所述十六个状态矩阵数据元素中的全部,并且所述执行单元将存储包括十六个更新的状态矩阵数据元素的所述结果,每一个状态矩阵数据元素都将表示由所述G函数更新的所述第一源的所述十六个状态矩阵数据元素中的对应的一个。
19.如权利要求11所述的设备,其特征在于,所述指令将指示所述十六个状态矩阵数据元素中的全部,并且,其特征在于,所述执行单元将存储包括至少八个更新的状态矩阵数据元素的所述结果,每一个状态矩阵数据元素都将表示由所述G函数更新的所述第一源的所述十六个状态矩阵数据元素中的八个中的对应的一个。
20.如权利要求11所述的设备,其特征在于,所述指令将指示所述第二源具有数据元素,每一个数据元素都表示消息数据和常量数据的异或(xor)。
21.—种系统,包括:互连; 与所述互连耦合的处理器,响应于一指令,所述指令指示第一源,所述第一源具有打包的状态矩阵数据元素,所述打包的状态矩阵数据元素包括至少一组四个状态矩阵数据元素,所述四个状态矩阵数据元素表示向BLAKE安全散列算法的G函数的完整的一组四个输入,所述指令还指示第二源,所述第二源具有表示消息和常量数据的打包的数据元素,所述处理器用于将结果存储在由所述指令指示的目的地中,所述结果具有打包的更新的状态矩阵数据元素,其中包括至少一组四个更新的状态矩阵数据元素,所述一组中的所述四个更新的状态矩阵数据元素中的每一个都表示由所述G函数更新的所述第一源的所述一组中的所述四个状态矩阵数据元素中的对应的一个;以及 与所述互连耦合的动态随机存取存储器(DRAM)。
22.如权利要求21所述的系统,其特征在于,所述处理器将存储具有所述至少八个更新的状态矩阵数据元素的所述结果,所述状态矩阵数据元素将表示所述状态矩阵的至少两个完整的列和至少两个完整的对角线中的一个。
23.如权利要求21所述的系统,其特征在于,所述指令将指示所述十六个状态矩阵数据元素中的全部,并且所述处理器将存储包括至少八个更新的状态矩阵数据元素的所述结果,每一个状态矩阵数据元素都将表示由所述G函数更新的所述第一源的所述十六个状态矩阵数据元素中的至少八个中的对应的一个。
24.一种制品,包括: 包括一个或多个固态数据存储材料的机器可读的存储介质,所述机器可读的存储介质存储指令, 所述指令指示第一源具有打包的状态矩阵数据元素,其中包括至少一组四个状态矩阵数据元素,所述四个状态矩阵数据元素表示向散列算法的函数的完整的一组四个输入,所述函数包括至少四个异或(xor)运算、六个加法运算以及四个循环运算,所述散列算法使用具有十六个状态矩阵数据元素的状态矩阵,所述指令还指示第二源具有表示消息和常量数据的打包的数据元素,所述指令如果由机器执行,可用于导致所述机器执行包括下列各项的操作: 将结果存储在由所述指令指示的目的地,所述结果具有打包的更新的状态矩阵数据元素,其中包括至少一组四个更新的状态矩阵数据元素,所述一组中的所述四个更新的状态矩阵数据元素中的每一个都表示由所述G函数更新的所述第一源的所述一组中的所述四个状态矩阵数据元素中的对应的一个。
25.如权利要求24所述的制品,其特征在于,所述散列算法是BLAKE散列算法。
26.如权利要求24所述的制品,其特征在于,所述指令将导致所述机器存储具有所述至少八个更新的状态矩阵数据元素的所述结果,所述状态矩阵数据元素表示所述状态矩阵的至少两个完整的列和至少两个完整的对角线中的一个。
27.如权利要求1所述的方法,其特征在于,所述指令包括列步骤指令,还包括执行随后的指示所述所述列步骤指令的所述目的地作为源的对角线步骤指令,并且在所述对角线步骤指令访问所述列步骤指令的所述结果中的所述打包的更新的状态矩阵数据元素之前,在所述列步骤指令和所述随后的对角线步骤指令之间没有中间指令重新排列所述列步骤指令的所述结果中的所述打包的更新的状态矩阵数据元素的顺序。
28.如权利要求1所述的方法,其特征在于,所述指令包括对角线步骤指令,还包括执行指示所述所述对角线步骤指令的所述目的地作为源的随后的列步骤指令,并且在所述列步骤指令访问所述对角线步骤指令的所述结果中的所述打包的更新的状态矩阵数据元素之前,在所述对角线步骤指令和所述列步骤指令之间没有中间指令重新排列所述对角线步骤指令的所述结果中的所述打包 的更新的状态矩阵数据元素的顺序。
【文档编号】H04L9/12GK104025502SQ201180075858
【公开日】2014年9月3日 申请日期:2011年12月22日 优先权日:2011年12月22日
【发明者】G·M·沃尔里齐, K·S·雅普, J·D·吉尔福德, V·戈帕尔, E·奥兹图科, S·M·格尔雷, W·K·费格哈利, M·G·迪克森 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1