用于處理blake安全散列算法的指令處理器、方法以及系統(tǒng)的制作方法
【專利摘要】一方面的方法包括接收一指令,該指令指示第一源,該第一源具有至少一組四個狀態(tài)矩陣數(shù)據(jù)元素的指令,這些四個狀態(tài)矩陣數(shù)據(jù)元素表示向加密散列算法的G函數(shù)的完整的一組四個輸入。算法使用十六數(shù)據(jù)元素狀態(tài)矩陣,并在更新列和對角線中的數(shù)據(jù)元素之間交替。指令還指示第二源,該第二源具有表示消息和常量數(shù)據(jù)的數(shù)據(jù)元素。響應于指令,將結果存儲在由指令指示的目的地。結果包括更新的狀態(tài)矩陣數(shù)據(jù)元素,其中包括至少一組四個更新的狀態(tài)矩陣數(shù)據(jù)元素。四個更新的狀態(tài)矩陣數(shù)據(jù)元素中的每一個都表示由G函數(shù)更新的第一源的四個狀態(tài)矩陣數(shù)據(jù)元素中的對應的一個。
【專利說明】用于處理BLAKE安全散列算法的指令處理器、方法以及系統(tǒng)
[0001]背景
[0002]領域
[0003]各實施例涉及處理器。具體而言,各實施例涉及執(zhí)行指令以處理BLAKE安全散列算法的處理器。
[0004]背景信息
[0005]加密散列函數(shù)廣泛地用于電子設備中。可以將消息或輸入數(shù)據(jù)輸入到加密散列函數(shù)中,可以處理消息或輸入數(shù)據(jù),并可以輸出加密散列。加密散列有時稱為消息摘要、摘要或散列。加密散列函數(shù)一般是這樣的,以便對輸入數(shù)據(jù)的更改將還改變輸出的散列。加密散列函數(shù)通常用于安全性、認證、驗證,或標識。加密散列函數(shù)的特定應用的示例包括,但不僅限于,用于生成數(shù)字簽名、消息認證代碼、驗證文件或消息的完整性、標識文件或數(shù)據(jù),以及偽隨機數(shù)生成和密鑰導出。
[0006]BLAKE是由國家標準與技術協(xié)會(NIST)選擇用于SHA-3的五個最終方案之中的散列函數(shù)或算法的系列。在2010年12月16日版本1.3中由Jean-Jean-Philippe Aumasson等人所著的SHA-3建議BLAKE中描述了 BLAKE。BLAKE包括被稱為BLAKE_224、BLAKE_256、BLAKE-384,以及BLAKE-512的四個散列函數(shù)。BLAKE-256是算法的32位版本。BLAKE-224是使用不同的初始值,不同的填充,并將輸出或摘要從256位截斷到224位,從BLAKE-256導出的。BLAKE-512是算法的64位版本。BLAKE-384是使用不同的初始值,不同的填充,并將摘要從512位截斷到384 位,從BLAKE-512導出的。表1列出了四個BLAKE散列函數(shù)的特性。
[0007]表1。
[0008]
【權利要求】
1.一種方法,包括: 接收指令,所述指令指示第一源,所述第一源具有打包的狀態(tài)矩陣數(shù)據(jù)元素,打包的狀態(tài)矩陣數(shù)據(jù)元素包括至少一組四個狀態(tài)矩陣數(shù)據(jù)元素,所述四個狀態(tài)矩陣數(shù)據(jù)元素表示向加密散列算法的G函數(shù)的完整的一組四個輸入,所述加密散列算法使用具有十六個狀態(tài)矩陣數(shù)據(jù)元素的狀態(tài)矩陣,并在更新所述狀態(tài)矩陣的列和對角線中的狀態(tài)矩陣數(shù)據(jù)元素之間交替,所述指令還指示第二源,所述第二源具有表示消息和常量數(shù)據(jù)的打包的數(shù)據(jù)元素;以及 響應于所述指令,將結果存儲在由所述指令指示的目的地中,所述結果具有打包的更新的狀態(tài)矩陣數(shù)據(jù)元素,其中包括至少一組四個更新的狀態(tài)矩陣數(shù)據(jù)元素,所述一組中的四個更新的狀態(tài)矩陣數(shù)據(jù)元素中的每一個都表示由所述G函數(shù)更新的所述第一源的所述一組中的所述四個狀態(tài)矩陣數(shù)據(jù)元素中的對應的一個。
2.如權利要求1所述的方法,其特征在于,所述加密散列算法是BLAKE散列算法。
3.如權利要求1所述的方法,其特征在于,所述G函數(shù)包括至少四個異或(xor)運算、六個加法運算,以及四個循環(huán)運算。
4.如權利要求1所述的方法,其特征在于,存儲包括存儲具有所述四個更新的狀態(tài)矩陣數(shù)據(jù)元素的所述組的所述結果,所述四個更新的狀態(tài)矩陣數(shù)據(jù)元素表示所述狀態(tài)矩陣的完整的列和完整的對角線中的一個。
5.如權利要求1所述的方法,其特征在于,存儲包括存儲具有至少八個更新的狀態(tài)矩陣數(shù)據(jù)元素的所述結 果,所述八個更新的狀態(tài)矩陣數(shù)據(jù)元素表示所述狀態(tài)矩陣的至少兩個完整的列和至少兩個完整的對角線中的一個。
6.如權利要求1所述的方法,其特征在于,接收包括接收所述指令,所述指令指示所述第一源,所述第一源具有多組四個狀態(tài)矩陣數(shù)據(jù)元素,其中,每一組四個狀態(tài)矩陣數(shù)據(jù)元素都表示向所述G函數(shù)的不同的對應的實例的不同的完整的四個輸入的組,并且存儲包括存儲包括多組四個更新的狀態(tài)矩陣數(shù)據(jù)元素的所述結果,每一組所述四個更新的狀態(tài)矩陣數(shù)據(jù)元素都對應于所述第一源的所述多組所述四個狀態(tài)矩陣數(shù)據(jù)元素中的不同的一組并包括由所述G函數(shù)更新的狀態(tài)矩陣數(shù)據(jù)元素。
7.如權利要求6所述的方法,其特征在于,存儲包括存儲包括四組四個更新的狀態(tài)矩陣數(shù)據(jù)元素的所述結果。
8.如權利要求1所述的方法,其特征在于,接收包括接收所述指令,所述指令指示所述第一源,所述第一源具有所述十六個狀態(tài)矩陣數(shù)據(jù)元素中的全部,并且存儲包括存儲包括十六個更新的狀態(tài)矩陣數(shù)據(jù)元素的所述結果,每一個狀態(tài)矩陣數(shù)據(jù)元素都表示由所述G函數(shù)更新的所述第一源的所述十六個狀態(tài)矩陣數(shù)據(jù)元素中的對應的一個。
9.如權利要求1所述的方法,其特征在于,接收包括接收指示所述十六個狀態(tài)矩陣數(shù)據(jù)元素中的全部的所述指令,并且存儲包括存儲包括至少八個更新的狀態(tài)矩陣數(shù)據(jù)元素的所述結果,每一個狀態(tài)矩陣數(shù)據(jù)元素都表示由所述G函數(shù)更新的所述第一源的所述十六個狀態(tài)矩陣數(shù)據(jù)元素中的至少八個中的對應的一個。
10.如權利要求1所述的方法,其特征在于,接收包括接收指示所述第二源具有數(shù)據(jù)元素的所述指令,每一個數(shù)據(jù)元素都表示消息數(shù)據(jù)和常量數(shù)據(jù)的異或(Xor)。
11.一種設備,包括:多個打包的數(shù)據(jù)寄存器;以及 與所述多個所述打包的數(shù)據(jù)寄存器耦合的執(zhí)行單元,響應于一指令,所述指令指示第一源,所述第一源具有打包的狀態(tài)矩陣數(shù)據(jù)元素,所述打包的狀態(tài)矩陣數(shù)據(jù)元素包括至少一組四個狀態(tài)矩陣數(shù)據(jù)元素,所述四個狀態(tài)矩陣數(shù)據(jù)元素表示向加密散列算法的G函數(shù)的完整的一組四個輸入,所述指令還指示第二源,所述第二源具有表示消息和常量數(shù)據(jù)的打包的數(shù)據(jù)元素,所述執(zhí)行單元用于將結果存儲在由所述指令指示的目的地,所述結果具有打包的更新的狀態(tài)矩陣數(shù)據(jù)元素,其中包括至少一組四個更新的狀態(tài)矩陣數(shù)據(jù)元素,所述一組中的所述四個更新的狀態(tài)矩陣數(shù)據(jù)元素中的每一個都表示由所述G函數(shù)更新的所述第一源中的所述一組中的所述四個狀態(tài)矩陣數(shù)據(jù)元素中的對應的一個, 其中所述加密散列算法將使用具有十六狀態(tài)矩陣數(shù)據(jù)元素的狀態(tài)矩陣,并將在更新所述狀態(tài)矩陣的列和對角線中的狀態(tài)矩陣數(shù)據(jù)元素之間交替。
12.如權利要求11所述的設備,其特征在于,所述加密散列算法是BLAKE散列算法。
13.如權利要求11所述的設備,其特征在于,所述G函數(shù)包括至少四個異或(xor)運算、六個加法運算,以及四個循環(huán)運算。
14.如權利要求11所述的設備,其特征在于,所述執(zhí)行單元將存儲具有所述四個更新的狀態(tài)矩陣數(shù)據(jù)元素的所述組的所述結果,所述狀態(tài)矩陣數(shù)據(jù)元素將表示所述狀態(tài)矩陣的完整的列和完整的對角線中的一個。
15.如權利要求11所述的設備,其特征在于,所述執(zhí)行單元將存儲具有所述至少八個更新的狀態(tài)矩陣數(shù)據(jù) 元素的所述結果,所述狀態(tài)矩陣數(shù)據(jù)元素將表示所述狀態(tài)矩陣的至少兩個完整的列和至少兩個完整的對角線中的一個。
16.如權利要求11所述的設備,其特征在于,接收包括接收指示所述第一源具有多組四個狀態(tài)矩陣數(shù)據(jù)元素的所述指令,其中,每一組四個狀態(tài)矩陣數(shù)據(jù)元素都表示向所述G函數(shù)的不同的對應的實例的不同的完整的四個輸入的組,并且所述執(zhí)行單元將存儲包括多組四個更新的狀態(tài)矩陣數(shù)據(jù)元素的所述結果,每一組所述四個更新的狀態(tài)矩陣數(shù)據(jù)元素都對應于所述第一源的所述多組所述四個狀態(tài)矩陣數(shù)據(jù)元素中的不同的一組,并包括由所述G函數(shù)更新的狀態(tài)矩陣數(shù)據(jù)元素。
17.如權利要求11所述的設備,其特征在于,所述結果將包括四組更新的狀態(tài)矩陣數(shù)據(jù)元素,每一組都有四個更新的狀態(tài)矩陣數(shù)據(jù)元素。
18.如權利要求11所述的設備,其特征在于,所述指令將指示所述第一源具有所述十六個狀態(tài)矩陣數(shù)據(jù)元素中的全部,并且所述執(zhí)行單元將存儲包括十六個更新的狀態(tài)矩陣數(shù)據(jù)元素的所述結果,每一個狀態(tài)矩陣數(shù)據(jù)元素都將表示由所述G函數(shù)更新的所述第一源的所述十六個狀態(tài)矩陣數(shù)據(jù)元素中的對應的一個。
19.如權利要求11所述的設備,其特征在于,所述指令將指示所述十六個狀態(tài)矩陣數(shù)據(jù)元素中的全部,并且,其特征在于,所述執(zhí)行單元將存儲包括至少八個更新的狀態(tài)矩陣數(shù)據(jù)元素的所述結果,每一個狀態(tài)矩陣數(shù)據(jù)元素都將表示由所述G函數(shù)更新的所述第一源的所述十六個狀態(tài)矩陣數(shù)據(jù)元素中的八個中的對應的一個。
20.如權利要求11所述的設備,其特征在于,所述指令將指示所述第二源具有數(shù)據(jù)元素,每一個數(shù)據(jù)元素都表示消息數(shù)據(jù)和常量數(shù)據(jù)的異或(xor)。
21.—種系統(tǒng),包括:互連; 與所述互連耦合的處理器,響應于一指令,所述指令指示第一源,所述第一源具有打包的狀態(tài)矩陣數(shù)據(jù)元素,所述打包的狀態(tài)矩陣數(shù)據(jù)元素包括至少一組四個狀態(tài)矩陣數(shù)據(jù)元素,所述四個狀態(tài)矩陣數(shù)據(jù)元素表示向BLAKE安全散列算法的G函數(shù)的完整的一組四個輸入,所述指令還指示第二源,所述第二源具有表示消息和常量數(shù)據(jù)的打包的數(shù)據(jù)元素,所述處理器用于將結果存儲在由所述指令指示的目的地中,所述結果具有打包的更新的狀態(tài)矩陣數(shù)據(jù)元素,其中包括至少一組四個更新的狀態(tài)矩陣數(shù)據(jù)元素,所述一組中的所述四個更新的狀態(tài)矩陣數(shù)據(jù)元素中的每一個都表示由所述G函數(shù)更新的所述第一源的所述一組中的所述四個狀態(tài)矩陣數(shù)據(jù)元素中的對應的一個;以及 與所述互連耦合的動態(tài)隨機存取存儲器(DRAM)。
22.如權利要求21所述的系統(tǒng),其特征在于,所述處理器將存儲具有所述至少八個更新的狀態(tài)矩陣數(shù)據(jù)元素的所述結果,所述狀態(tài)矩陣數(shù)據(jù)元素將表示所述狀態(tài)矩陣的至少兩個完整的列和至少兩個完整的對角線中的一個。
23.如權利要求21所述的系統(tǒng),其特征在于,所述指令將指示所述十六個狀態(tài)矩陣數(shù)據(jù)元素中的全部,并且所述處理器將存儲包括至少八個更新的狀態(tài)矩陣數(shù)據(jù)元素的所述結果,每一個狀態(tài)矩陣數(shù)據(jù)元素都將表示由所述G函數(shù)更新的所述第一源的所述十六個狀態(tài)矩陣數(shù)據(jù)元素中的至少八個中的對應的一個。
24.一種制品,包括: 包括一個或多個固態(tài)數(shù)據(jù)存儲材料的機器可讀的存儲介質,所述機器可讀的存儲介質存儲指令, 所述指令指示第一源具有打包的狀態(tài)矩陣數(shù)據(jù)元素,其中包括至少一組四個狀態(tài)矩陣數(shù)據(jù)元素,所述四個狀態(tài)矩陣數(shù)據(jù)元素表示向散列算法的函數(shù)的完整的一組四個輸入,所述函數(shù)包括至少四個異或(xor)運算、六個加法運算以及四個循環(huán)運算,所述散列算法使用具有十六個狀態(tài)矩陣數(shù)據(jù)元素的狀態(tài)矩陣,所述指令還指示第二源具有表示消息和常量數(shù)據(jù)的打包的數(shù)據(jù)元素,所述指令如果由機器執(zhí)行,可用于導致所述機器執(zhí)行包括下列各項的操作: 將結果存儲在由所述指令指示的目的地,所述結果具有打包的更新的狀態(tài)矩陣數(shù)據(jù)元素,其中包括至少一組四個更新的狀態(tài)矩陣數(shù)據(jù)元素,所述一組中的所述四個更新的狀態(tài)矩陣數(shù)據(jù)元素中的每一個都表示由所述G函數(shù)更新的所述第一源的所述一組中的所述四個狀態(tài)矩陣數(shù)據(jù)元素中的對應的一個。
25.如權利要求24所述的制品,其特征在于,所述散列算法是BLAKE散列算法。
26.如權利要求24所述的制品,其特征在于,所述指令將導致所述機器存儲具有所述至少八個更新的狀態(tài)矩陣數(shù)據(jù)元素的所述結果,所述狀態(tài)矩陣數(shù)據(jù)元素表示所述狀態(tài)矩陣的至少兩個完整的列和至少兩個完整的對角線中的一個。
27.如權利要求1所述的方法,其特征在于,所述指令包括列步驟指令,還包括執(zhí)行隨后的指示所述所述列步驟指令的所述目的地作為源的對角線步驟指令,并且在所述對角線步驟指令訪問所述列步驟指令的所述結果中的所述打包的更新的狀態(tài)矩陣數(shù)據(jù)元素之前,在所述列步驟指令和所述隨后的對角線步驟指令之間沒有中間指令重新排列所述列步驟指令的所述結果中的所述打包的更新的狀態(tài)矩陣數(shù)據(jù)元素的順序。
28.如權利要求1所述的方法,其特征在于,所述指令包括對角線步驟指令,還包括執(zhí)行指示所述所述對角線步驟指令的所述目的地作為源的隨后的列步驟指令,并且在所述列步驟指令訪問所述對角線步驟指令的所述結果中的所述打包的更新的狀態(tài)矩陣數(shù)據(jù)元素之前,在所述對角線步驟指令和所述列步驟指令之間沒有中間指令重新排列所述對角線步驟指令的所述結果中的所述打包 的更新的狀態(tài)矩陣數(shù)據(jù)元素的順序。
【文檔編號】H04L9/12GK104025502SQ201180075858
【公開日】2014年9月3日 申請日期:2011年12月22日 優(yōu)先權日:2011年12月22日
【發(fā)明者】G·M·沃爾里齊, K·S·雅普, J·D·吉爾福德, V·戈帕爾, E·奧茲圖科, S·M·格爾雷, W·K·費格哈利, M·G·迪克森 申請人:英特爾公司