[發明專利]用于響應于單個指令來執行循環和異或的系統、裝置和方法有效
| 申請號: | 201810362434.4 | 申請日: | 2013-06-21 | 
| 公開(公告)號: | CN108563465B | 公開(公告)日: | 2022-09-20 | 
| 發明(設計)人: | V·戈帕爾;G·M·沃爾里齊;J·D·吉爾福德;K·S·雅普 | 申請(專利權)人: | 元平臺公司 | 
| 主分類號: | G06F9/30 | 分類號: | G06F9/30 | 
| 代理公司: | 北京安信方達知識產權代理有限公司 11262 | 代理人: | 周靖;楊明釗 | 
| 地址: | 美國加利*** | 國省代碼: | 暫無信息 | 
| 權利要求書: | 查看更多 | 說明書: | 查看更多 | 
| 摘要: | |||
| 搜索關鍵詞: | 用于 響應 單個 指令 執行 循環 系統 裝置 方法 | ||
本申請公開了在計算機處理器中響應于單個異或和循環指令來執行循環和異或的系統、裝置和方法,其中該循環和異或指令包括第一和第二源操作數、目的地操作數以及立即數值。
本發明專利申請是國際申請號為PCT/US2013/047185,國際申請日為2013年06月21日,進入中國國家階段的申請號為201380045424.3,名稱為“用于響應于單個指令來執行循環和異或的系統、裝置和方法”的發明專利申請的分案申請。
技術領域
本發明的領域一般涉及計算機處理器架構,更具體地涉及在執行時導致特定結果的指令。
背景
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,v12)G1(v1,v5,v9,v13)G2(v2,v6,vlO,v14)G3(v3,v7,v11,v15),然后更新狀態矩陣的對角線G4(v0,v5,vlO,v15)G5(v1,v6,v11,v12)G6(v2,v7,v8,v13)G7(v3,v4,v9,v14)。這在圖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+1)是每輪16個消息字輸入中的兩個消息字輸入,而c_r(2i)和c_r(2i+1)是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個操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于元平臺公司,未經元平臺公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810362434.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:寄存器及其初始化方法
- 下一篇:一種符合安全保密的帶觸摸屏PAD及實現方法





