TW201636829A - 具有改進的排程效率之密碼編譯雜湊電路 - Google Patents
具有改進的排程效率之密碼編譯雜湊電路 Download PDFInfo
- Publication number
- TW201636829A TW201636829A TW104134120A TW104134120A TW201636829A TW 201636829 A TW201636829 A TW 201636829A TW 104134120 A TW104134120 A TW 104134120A TW 104134120 A TW104134120 A TW 104134120A TW 201636829 A TW201636829 A TW 201636829A
- Authority
- TW
- Taiwan
- Prior art keywords
- hash
- circuit
- message
- value
- register
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/30—Compression, e.g. Merkle-Damgard construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
諸如用於採礦數位貨幣之採礦電路之密碼編譯雜湊電路可形成於一積體電路上。該雜湊電路可包含執行一密碼編譯協定之運算之暫存器及邏輯電路之順序回合。由該雜湊電路輸出之一最終雜湊值可包含在該密碼編譯雜湊電路之先前回合儲存之雜湊值。可以每回合僅兩個暫存器來形成該雜湊電路,藉此最佳化晶片面積消耗。該雜湊電路可基於一初始雜湊值及多個訊息字而執行密碼編譯雜湊之順序回合。一或多個訊息暫存器可儲存該等訊息字。控制電路可使用指標將該等訊息字自該訊息暫存器選擇性地路由至該雜湊電路。若期望,則該等訊息暫存器可由使用列及行指標讀取之記憶體元件之一或多個陣列來替換。
Description
此申請案主張2015年6月12日提出申請之第14/738,659號美國專利申請案及2014年10月17日提出申請之第62/065,551號臨時專利申請案之優先權,該等專利申請案據此以其全文引用方式併入本文中。
此係關於用於執行密碼編譯運算之電路,且更特定而言,係關於用於執行密碼編譯雜湊運算以用於採礦數位貨幣之電路。
數位貨幣用作一數位交換媒體,其中該等數位貨幣可經轉移以換取貨物及服務。加密貨幣係數位貨幣之實例,其中密碼學管理價值之創造及交換。一加密貨幣之一實例係由比特幣協定管理之比特幣加密貨幣。此與(舉例而言)由一中央機構管理之傳統交換媒體形成對照。
比特幣協定定義一系統,其中藉由一同級間網路之間的共識管理比特幣加密貨幣之創造及分佈。該網路維持一公共分類帳,其中網路之成員經由密碼學驗證並記錄新交易。驗證並記錄加密貨幣交易(諸如以比特幣加密貨幣之交易)之操作有時稱為採礦,此乃因每一採礦操作之完成通常用新創造之加密貨幣(例如,比特幣)獎勵採礦者。經驗證交易及新創造之比特幣記錄在公共分類帳中。公共分類帳用作一官方交易歷史。可自公共分類帳判定由任一實體擁有之加密貨幣金
額。
比特幣採礦操作涉及識別一密碼編譯謎之一解,其中待驗證之交易形成謎參數之部分。通常經由蠻力技術(例如,跨越所有可能解執行之對一謎解之一詳盡搜尋)執行比特幣採礦操作。搜尋密碼編譯謎之解涉及執行密碼編譯雜湊函數及通常計算費力之其他密碼編譯運算。密碼編譯謎之難度已導致使用經特別設計以用於比特幣採礦之專用電路。此專用電路設計、購置及操作起來可係昂貴的。
因此,可期望提供用於執行諸如密碼編譯雜湊函數之密碼編譯運算之改進的系統及方法。
密碼編譯雜湊電路(諸如可用於藉由根據管理數位貨幣之協定完成一函數而採礦該數位貨幣之專用採礦電路)可形成於一電子裝置中之一積體電路上。
該雜湊電路可包含執行一密碼編譯協定之運算(諸如安全雜湊演算法256(SHA-256)密碼編譯演算法)之回合之暫存器及邏輯電路之順序回合。暫存器電路可包含各自儲存32位元雜湊值之暫存器。該暫存器電路可包含(舉例而言):一第一暫存器,其儲存一第一雜湊值;邏輯電路,其至少基於該所儲存第一雜湊值而產生一第二雜湊值;及一第二暫存器,其儲存該第二雜湊值。該第二暫存器可輸出該所儲存第二雜湊值作為自該密碼編譯雜湊電路輸出之一最終雜湊值之部分,然而該第一暫存器直接輸出該所儲存第一雜湊值作為自該密碼編譯雜湊電路輸出之該最終雜湊值之部分(例如,該第一雜湊值可不同於該第二雜湊值)。
若期望,則該雜湊電路可包含:一第三暫存器,其儲存一第三雜湊值;及一第四暫存器,其儲存一第四雜湊值。該邏輯電路可至少基於該所儲存第三雜湊值而產生該第一雜湊值。該第三暫存器可經組
態以直接輸出該所儲存第三雜湊值作為自該密碼編譯雜湊電路輸出之該最終雜湊值之一部分。該邏輯電路可至少基於該所儲存第四雜湊值而產生該第三雜湊值。該第四暫存器可直接輸出該所儲存第四雜湊值作為自該密碼編譯雜湊電路輸出之該最終雜湊值之部分。
若期望,則該雜湊電路可包含:一第三暫存器,其儲存一第三雜湊值;及一第四暫存器,其儲存一第四雜湊值。該邏輯電路可至少基於該所儲存第三雜湊值而產生該第四雜湊值且可至少基於該等所儲存第一及第三雜湊值而產生該第二雜湊值。該第三暫存器可經組態以直接輸出該所儲存第三雜湊值作為自該密碼編譯雜湊電路輸出之該最終雜湊值之部分,然而該第四暫存器可經組態以輸出該所儲存第四雜湊值作為該最終雜湊值之部分。若期望,則該雜湊電路可包含:一第五暫存器,其儲存一第五雜湊值;及一第六暫存器,其儲存一第六雜湊值。該第五暫存器可經組態以直接輸出該第五雜湊值作為自該密碼編譯雜湊電路輸出之該最終雜湊值之部分。該邏輯電路可經組態以至少基於該所儲存第六雜湊值而產生該第三雜湊值且可至少基於該等所儲存第五及第六雜湊值而產生該第一雜湊值。該第六暫存器可經組態以直接輸出該第六雜湊值作為自該密碼編譯雜湊電路輸出之該最終雜湊值之部分。以此方式,該最終雜湊輸出值可包含在該密碼編譯雜湊電路之先前回合處儲存之雜湊值且可以每回合僅兩個暫存器來形成該雜湊電路,藉此減少該雜湊電路之晶片面積消耗。
該雜湊電路可基於一初始雜湊值及自訊息排程電路接收之多個訊息字而執行該SHA-256密碼編譯雜湊演算法之順序回合。該訊息排程電路可包含經組態以儲存該等訊息字之一訊息暫存器。控制電路可將該等訊息字自該訊息暫存器選擇性地路由至該雜湊電路(例如,藉由使用讀取指標自該訊息暫存器讀取該等訊息字之一子集,基於訊息字之該所讀取子集而產生一新訊息字,且使用一寫入指標將該新訊息
字寫入至該訊息暫存器)。該控制電路可在自該訊息暫存器讀取該等訊息字之該子集之後且在將該新訊息字寫入至該訊息暫存器之前使該等讀取指標及該寫入指標遞增。
若期望,則該訊息排程電路可包含經組態以儲存額外訊息字之一額外訊息暫存器。該控制電路可將該等額外訊息字自該額外訊息暫存器選擇性地路由至該雜湊電路。該雜湊電路可包含將該雜湊電路分割成雜湊電路之至少第一及第二群組之至少一個管線暫存器。該第一群組之雜湊電路可基於該等訊息字而執行SHA-256之該複數個順序回合之一第一子集,然而該第二群組之雜湊電路可基於該等額外訊息字及該管線暫存器之一輸出而執行SHA-256之該複數個順序回合之一第二子集。該訊息暫存器可接收並儲存一訊息且該控制電路可將該所儲存訊息之部分作為該等訊息字自該訊息暫存器選擇性地路由至該雜湊電路。
若期望,則該等訊息暫存器可形成為記憶體元件之一或多個陣列。記憶體元件之該等陣列可各自將訊息儲存於對應行上,然而每一列對應於彼訊息之一字。該控制電路可控制記憶體元件之該陣列以使用列及行指標將所要訊息字提供至該雜湊電路。
依據隨附圖式及對較佳實施例之以下詳細說明,本發明之進一步特徵、其本質及各種優點將更顯而易見。
10‧‧‧節點
12‧‧‧路徑
100‧‧‧同級間網路/網路
110‧‧‧電子裝置/裝置
112‧‧‧儲存與處理電路
114‧‧‧輸入-輸出裝置
116‧‧‧採礦電路/電路/積體電路/裝置
120‧‧‧加密貨幣交易/交易
122‧‧‧標頭資訊
124‧‧‧輸入
126‧‧‧輸出
130‧‧‧交易
140‧‧‧交易/幣基交易
142‧‧‧經保留幣基識別符
144‧‧‧區塊高度
146‧‧‧超臨時值
150‧‧‧區塊/新區塊
152‧‧‧區塊標頭
156‧‧‧交易集合
162‧‧‧標頭欄位
164‧‧‧先前區塊識別符/識別符
166‧‧‧默克爾根
168‧‧‧時間戳記/時間戳記欄位
170‧‧‧難度值/難度欄位
172‧‧‧臨時值/臨時欄位
174‧‧‧第一部分/部分
176‧‧‧第二部分/部分
180‧‧‧默克爾樹/樹
182‧‧‧葉節點
184‧‧‧非葉節點
186‧‧‧虛線/邊緣/樹邊緣
188‧‧‧部分
190‧‧‧部分/樹部分
212‧‧‧輸入-輸出電路
214‧‧‧輸入/輸出接腳/接腳/輸入/輸出埠
215‧‧‧處理電路/晶片外電路/晶片外處理電路/外部電路/電路
216‧‧‧控制電路/控制器
218‧‧‧核心區
220‧‧‧核心電路/核心/電路/第一核心/第二核心
224‧‧‧路徑/線路
256‧‧‧安全雜湊演算法
260‧‧‧通信模組/模組
262‧‧‧第一雜湊模組/第一SHA-256模組/雜湊模組
264‧‧‧儲存電路
266‧‧‧第二雜湊模組/第二SHA-256模組/雜湊模組
268‧‧‧填補電路
270‧‧‧難度比較電路
272‧‧‧輸入/難度值
298‧‧‧SHA-256雜湊電路/雜湊排程邏輯/雜湊排程電路/雜湊/SHA-256雜湊排程/SHA-256雜湊排程邏輯
300‧‧‧儲存電路/暫存器電路/暫存器/輸入暫存器/輸入電路/輸入暫存器電路
302‧‧‧儲存電路/暫存器電路/暫存器/輸出暫存器
304‧‧‧加法器電路/加法器
306‧‧‧SHA-256雜湊邏輯/SHA-256邏輯/邏輯/邏輯電路/電路/邏輯運算
398‧‧‧訊息排程邏輯/訊息排程電路/訊息電路/訊息排程
400‧‧‧暫存器/第一字/第二字/第十字/第十五個字
402‧‧‧加法器電路/加法器/第一加法器電路/第二加法器電路/第三加法器電路
404‧‧‧路徑
406‧‧‧邏輯/邏輯電路
500‧‧‧雜湊排程電路/雜湊電路/雜湊排程/排程/排程電路/電路/管線
502‧‧‧第56個回合/第56個雜湊回合
504‧‧‧第57個回合/第57個雜湊回合
506‧‧‧第58個回合
509‧‧‧第60個回合
511‧‧‧輸入/輸入箭頭/路徑
512‧‧‧路徑
513‧‧‧輸入箭頭/路徑
514‧‧‧路徑
516‧‧‧路徑
518‧‧‧路徑
520‧‧‧路徑
522‧‧‧路徑
524‧‧‧路徑
526‧‧‧路徑
528‧‧‧路徑
530‧‧‧路徑
534‧‧‧路徑
536‧‧‧路徑
600‧‧‧時脈信號
700‧‧‧雜湊模組/模組/訊息排程電路
702訊息排程電路/管線暫存器/雜湊管線暫存器/暫存器/管線
702-1‧‧‧第一管線暫存器/第一管線
702-2‧‧‧第二管線暫存器/第二管線
702-3‧‧‧第三管線
702-4‧‧‧第四管線
704-1‧‧‧第一群組/回合/第一雜湊回合群組/第一雜湊群組
704-2‧‧‧第二群組/第二回合群組/回合/第二雜湊回合群組/第二雜湊群組
704-3‧‧‧第三回合群組/回合/第三雜湊回合群組
704-4‧‧‧第四回合群組/回合/第四雜湊回合群組
710‧‧‧控制電路/電路
712‧‧‧訊息暫存器/暫存器/新訊息暫存器
712-1‧‧‧第一暫存器/第一訊息暫存器/暫存器/訊息暫存器
712-2‧‧‧第二暫存器/第二訊息暫存器/訊息暫存器
712-3‧‧‧第三暫存器/第三訊息暫存器
714‧‧‧指標暫存器
720‧‧‧箭頭
800‧‧‧訊息排程電路
802-1‧‧‧第一隨機存取記憶體陣列/陣列/第一陣列
802-2‧‧‧第二隨機存取記憶體陣列/第二陣列
802-3‧‧‧第三隨機存取記憶體陣列/第三陣列
802-4‧‧‧第四隨機存取記憶體陣列/第四陣列
804‧‧‧記憶體單元
806‧‧‧切換電路/電路
810A‧‧‧埠
810B‧‧‧埠
810C‧‧‧埠
810D‧‧‧埠
812A‧‧‧埠
812B‧‧‧埠
812C‧‧‧埠
812D‧‧‧埠
820‧‧‧控制電路/電路
A‧‧‧暫存器/第一暫存器/32位元雜湊值/32位元雜湊部分/雜湊值/輸入暫存器/輸入雜湊值/輸出雜湊值/先前所儲存值/所儲存雜湊值/所儲存值/部分/值
B‧‧‧第二暫存器/暫存器/輸出暫存器/32位元雜湊值/32位元雜湊部分/雜湊值/輸入雜湊值/輸出雜湊值/部分
C‧‧‧第三暫存器/暫存器/32位元雜湊值/32位元雜湊部分/雜湊值/輸入雜湊值/輸出雜湊值/輸入雜湊值/部分/行指標
Ch‧‧‧邏輯區塊/邏輯函數
D‧‧‧暫存器/32位元雜湊值/32位元雜湊部分/雜湊值/輸入雜湊值/輸出雜湊值/部分
E‧‧‧暫存器/32位元雜湊值/32位元雜湊部分/雜湊值/輸入雜湊值/先前所儲存值/所儲存值/部分
F‧‧‧暫存器/32位元雜湊值/32位元雜湊部分/雜湊值/輸入雜湊值/部分
G‧‧‧暫存器/32位元雜湊值/32位元雜湊部分/雜湊值/輸入雜湊值/部分
H‧‧‧暫存器/32位元雜湊值/32位元雜湊部分/雜湊值/輸入雜湊值/部分
Hi‧‧‧雜湊值/初始雜湊值/初始雜湊輸入/初始雜湊/256位元雜湊輸入/輸入初始雜湊值
HF‧‧‧第二雜湊輸出/值/雜湊值/雜湊輸出值/最終雜湊輸出/輸出值
H0‧‧‧雜湊值/葉值/第一雜湊輸出/雜湊輸入值/雜湊輸出/第一雜湊輸入值
HCLK‧‧‧快速時脈信號/信號/時脈信號/時脈
Kt‧‧‧SHA-256恆定值/恆定值
Ma‧‧‧邏輯區塊
MCLK‧‧‧時脈信號/信號/訊息時脈/時脈
P‧‧‧寫入指標/指標
R‧‧‧讀取指標/指標
RA‧‧‧讀取指標
RB‧‧‧讀取指標
RC‧‧‧讀取指標
RD‧‧‧讀取指標
TO‧‧‧時間
W‧‧‧訊息輸入/輸入訊息/訊息
Wt‧‧‧部分/32位元輸入訊息字/字/輸入字/訊息輸入字/32位元字/第一字/第二字/最高有效32位元字/32位元輸入字/訊息字/訊息排程字
W56‧‧‧第56個回合字
W57‧‧‧第57個回合字
W58‧‧‧第58個回合字
Σ1‧‧‧邏輯區塊/邏輯函數
Σ0‧‧‧邏輯區塊
圖1係根據本發明之一實施例之具有可用於採礦數位貨幣之密碼編譯雜湊電路之一節點網路之一說明性圖式。
圖2係根據本發明之一實施例之可包含密碼編譯雜湊電路之一電子裝置之一說明性圖式。
圖3係根據本發明之一實施例之可藉助採礦電路驗證之一說明性數位貨幣交易。
圖4係根據本發明之一實施例之可使用在採礦電路上運行之密碼編譯雜湊電路驗證之在源錢包與目的地錢包之間的一說明性數位貨幣交易。
圖5係根據本發明之一實施例之其中一獎勵金額之一部分指派給一或多個不同錢包之一說明性幣基(coinbase)交易。
圖6係根據本發明之一實施例之可藉由採礦電路產生且記錄在一全球分類帳中之一說明性區塊。
圖7係根據本發明之一實施例之在對一密碼編譯謎求解中可由採礦電路產生之一說明性區塊標頭。
圖8係根據本發明之一實施例之在對一密碼編譯謎求解中可由採礦電路依據一交易集合計算之一說明性默克爾(Merkle)樹。
圖9係根據本發明之一實施例之可由一節點網路維持為數位貨幣交易之一全球分類帳之一說明性區塊鏈。
圖10係根據本發明之一實施例之包含控制電路及用於在一搜尋空間之對應部分上並行執行密碼編譯雜湊函數之多個處理核心的採礦電路之一說明性圖式。
圖11係根據本發明之一實施例之可執行密碼編譯雜湊(例如,SHA-256雜湊)之回合之採礦電路中之一處理核心之一說明性圖式。
圖12係根據本發明之一實施例之可對一輸入雜湊值及自訊息排程電路接收之一字執行一雜湊排程之一回合(例如,SHA-256雜湊之一回合)以產生一雜湊輸出的雜湊邏輯之一回合之一說明性圖式。
圖13係根據本發明之一實施例之可基於一所接收訊息而產生訊息字且可將該等訊息字提供至圖12中所展示之類型之雜湊邏輯之回合以用於產生一雜湊輸出的訊息排程電路之一說明性圖式。
圖14係根據本發明之一實施例之展示可如何在每回合僅兩個雜湊暫存器以用於實施一對角線雜湊方案(其中基於先前雜湊回合之兩
個雜湊暫存器中之所儲存值獲得所有可能雜湊值)之情況下形成圖12中所展示之類型之雜湊電路之多個回合的說明性雜湊電路之圖式。
圖15係根據本發明之一實施例之可由圖14中所展示之類型之雜湊電路執行以基於先前雜湊回合中之所儲存雜湊值而產生一輸出雜湊值之說明性步驟之一流程圖。
圖16係根據本發明之一實施例之展示圖14中所展示之類型之暫存器可如何在已自訊息排程電路接收四個訊息字之後鎖存資料之一說明性時序圖。
圖17係根據本發明之一實施例之展示雜湊電路可如何管線輸送及具備來自使用一指標陣列控制之訊息排程電路之訊息字之一說明性圖式。
圖18係根據本發明之一實施例之由一指標陣列控制以在一新訊息移位至暫存器中之前將十六個訊息提供至雜湊電路之一對應十六個回合的圖17中所展示之類型之一訊息排程暫存器之一說明性圖式。
圖19係根據本發明之一實施例之展示訊息排程電路可如何自使用用於將訊息字提供至雜湊電路之十六個回合之一選定群組之列及行指標控制的多組記憶體元件形成之一說明性圖式。
本發明係關於用於執行密碼編譯運算之電路,且更特定而言係關於用於執行密碼編譯雜湊運算以用於採礦諸如加密貨幣之數位貨幣之電路。本文中所闡述之採礦電路及採礦操作可用於任何數位交換媒體,諸如數位貨幣、積分、獎勵或得分。
儘管使用電路執行密碼編譯運算以用於採礦加密貨幣之實例有時在本文中闡述為一實例,但一般而言,本文中所闡述之系統及方法可適用於用於執行諸如密碼編譯雜湊運算之密碼編譯運算(例如,用於加密或解密敏感資料,用於在一不安全媒體之資料傳輸之前保護通
信,用於模糊或加擾敏感資料等)之任何所要系統。
在其中執行密碼編譯運算以用於維持或採礦一數位加密貨幣之實例中,可提供根據諸如比特幣協定之一加密貨幣協定維持及/或採礦數位加密貨幣的同級體(節點)之一網路。圖1係可根據比特幣協定操作之一同級間網路100之一說明性圖式。網路100包含經由路徑12耦合至其他節點之節點10。節點10可係電子裝置,諸如桌上型電腦、膝上型電腦、蜂巢式電話、伺服器或實施比特幣協定之其他電子裝置。每一節點10可經由路徑12與網路100之其他節點通信。路徑12可(舉例而言)包含將節點10耦合至其他節點之網路路徑,諸如網路電纜及包轉發裝置(例如,交換器、路由器等)。此實例僅係說明性的。網路100之節點10可經由諸如有線或無線網路技術之任何所要根本通信技術耦合且網路100可包含任何所要數目個節點(例如,數十個、數百個、數千個、數百萬個或更多)。
節點10可經由路徑12根據維持加密貨幣之比特幣協定通信。舉例而言,節點10可通信以維持所有官方交易之一全球分類帳。每一節點10可儲存全球分類帳之一副本(例如,一完整副本或僅一部分副本)。藉由每一節點10添加至全球分類帳之交易可由其他節點10驗證以幫助確保分類帳之有效性。
圖2係可用作一同級間網路中之一節點(例如,用作圖1之一節點10)之一電子裝置110之一說明性圖式。如圖2中所展示,裝置110可包含儲存與處理電路112。儲存與處理電路112可包含儲存器,諸如硬碟驅動儲存器、非揮發性記憶體(例如,快閃記憶體或經組態以形成一固態磁碟機之其他電可程式化唯讀記憶體)、揮發性記憶體(例如,靜態或動態隨機存取記憶體)等。儲存與處理電路112中之處理電路可用於控制裝置110之操作。此處理電路可基於一或多個一般用途處理電路(諸如微處理器、微控制器及數位信號處理器)或專用處理電路(諸
如特殊應用積體電路)等。
裝置110可具備輸入-輸出裝置114,諸如按鈕、揚聲器、麥克風、顯示器及適應與裝置110之使用者交互之其他輸入-輸出裝置。輸入-輸出裝置114可包含用於與其他裝置(例如,一加密貨幣網路之其他節點)通信之通信電路。採礦電路116可執行諸如驗證加密貨幣交易之採礦操作(例如,在共享任何獎勵時或諸如裝置之一使用者之多個實體之間的採礦操作)。採礦電路116可將獎勵記錄在全球分類帳中。舉例而言,採礦電路116可係一積體電路晶片。電子裝置110可包含可一起或獨立地操作之此等晶片中之一或多者。
電子裝置110可係一桌上型電腦、一基於機架之系統中之一伺服器、一可攜式電子裝置(諸如一平板電腦、膝上型電腦或一蜂巢式電話)。此等實例僅係說明性的。採礦電路116可提供至可與一加密貨幣網路之其他節點通信之任何所要電子裝置。舉例而言,與一電腦連接之一快閃磁碟機可具備採礦電路116。在此情景中,採礦電路116可操作以藉由在快閃磁碟機連接至一電腦時利用電腦資源(例如,藉由利用來自電腦之電力及電腦與一加密貨幣網路之節點之間的一網路連接)而執行採礦操作。
圖3係可使用諸如圖2之電路116之採礦電路驗證之一說明性加密貨幣交易120之一圖式。如圖3中所展示,交易120可包含標頭資訊122、一或多個輸入124之一集合及一或多個輸出126之一集合。
標頭資訊122可包含一或多個標頭欄位,該等標頭欄位包含幫助識別交易之資訊。舉例而言,該等標頭欄位可包含識別所使用之比特幣協定之版本之一版本號碼。作為另一實例,該等標頭欄位可包含一當前時間戳記及/或關於交易之其他資訊。
數位貨幣可儲存於用作交易源或交易目的地之數位錢包中。舉例而言,一交易可將資金自一源錢包轉移至一目的地錢包。數位錢包
可使用任何所要資料結構形成且可有時稱為數位帳戶。可使用諸如公開秘鑰密碼學之加密方案識別錢包,其中一公開-私有秘鑰對指派給每一錢包。一錢包之公開秘鑰可用於公開地識別該錢包(例如,資金可指向之一公開位址),然而私有秘鑰可由錢包之擁有者用來對交易進行簽章(例如,藉此驗證交易之真實性)。
交易120可識別一輸入124(例如,一資金源)及輸出(例如,目的地)之一集合。該等輸入及輸出可(舉例而言)係其中儲存有貨幣之數位錢包。該等輸入可將一先前交易之一輸出稱為一資金源或可識別交易120係創造新貨幣之一起源交易(有時稱為一幣基交易)。
圖4係將貨幣自一源錢包轉移至一目的地錢包之一說明性交易130之一圖式。如圖4中所展示,輸入124可包含一先前交易識別符、一輸出識別符及一簽章。若期望,則諸如版本號碼或時間戳記資訊之圖3之標頭資訊122可包含於圖5之交易中。
先前交易識別符可識別全球分類帳之哪一交易含有源錢包。若期望,則先前交易識別符可藉由先前交易之一雜湊(例如,H(TXPREV))或雙重雜湊(例如,H(H(TXPREV)))識別先前交易TXPREV。輸出識別符可識別所識別先前交易之哪一輸出用作交易130之源錢包。舉例而言,先前交易之輸出126可經枚舉且源錢包之索引可用作輸出識別符。
交易130可經簽名以幫助確保交易之真實性。舉例而言,源錢包之私有秘鑰可用於加密交易130或交易130之一部分以產生儲存於交易130中之簽章。源錢包之公開秘鑰可由其他者(例如,其他網路節點)使用以解密簽章且確認交易之真實性。
輸出126之集合識別一或多個目的地錢包及用以自源錢包轉移至每一目的地錢包之一各別金額。在圖4之實例中,交易包含一個目的地錢包及待自源錢包轉移至目的地錢包之一對應金額。可連同待自源
錢包轉移至每一目的地錢包之對應金額列出多個目的地錢包(例如,兩個、三個、四個或更多個)。若期望,則亦可列出由輸入124識別之源錢包作為一目的地錢包。舉例而言,待轉移至目的地錢包之金額可小於由先前交易之輸出識別為屬於源錢包之金額。在此情景中,源錢包之金額與轉移金額之間的差可指派給源錢包作為一額外輸出條目。若期望,則在輸出126中指派給源錢包之金額可小於起初儲存之金額與轉移金額之間的差。在此情景中,原始源金額與輸出126中之金額總和之間的差可用作對驗證交易之任何採礦者之額外獎勵(例如,除由加密貨幣協定定義之任何預定獎勵之外)。
圖5係可產生新數位貨幣之一起源交易(亦即,幣基交易)之一說明性圖式。如圖5中所展示,交易140包含將交易識別為一幣基交易之資訊。該資訊可包含一經保留幣基識別符142、一區塊高度144及一超臨時(extra-nonce)值146。若期望,則諸如版本號碼或時間戳記資訊之圖3之標頭資訊122可包含於圖5之交易中。
經保留幣基識別符142可係經保留以用於幣基交易之一值。區塊高度144可幫助識別幣基交易位於全球分類帳內之位置(例如,表示全球分類帳之一區塊鏈之哪一區塊)。超臨時值146係可在採礦操作期間修改之一任意值。
與諸如圖4之交易130之正常交易形成對照,幣基交易140不提供輸出126之一資金源。替代地,幣基交易140可創造新貨幣。由加密貨幣協定判定所創造之新貨幣之金額。舉例而言,加密貨幣網路之節點可通信且建立經創造以用於驗證交易之一商定獎勵。可基於全球分類帳之大小(例如,全球分類帳中之經記錄區塊之數量)確定該商定獎勵。作為一實例,用於以比特幣協定驗證及記錄交易之獎勵可獎勵若干個比特幣(貨幣單位),諸如25個比特幣。此實例僅係說明性的,此乃因所獎勵之比特幣之數目可小於25(例如,12.5、6.25等)或甚至可
係零。
在某些情景中,使用採礦電路驗證之交易可包含費用。舉例而言,圖4之交易130可將比源錢包中所含有的比特幣少之比特幣指派給目的地錢包。在此情景中,剩餘者可用作一採礦者之費用(例如,一額外獎勵)。此額外獎勵可在幣基交易140中指派給採礦者之錢包或亦可藉由採礦電路在採礦者之錢包與其他錢包(例如,利潤共享錢包)之間分割。
在執行採礦操作以驗證及記錄一交易集合中,採礦電路可產生待記錄在全球分類帳中之一區塊,如圖6中所展示。圖6之區塊150可包含區塊標頭152、幣基交易TX0(例如,一幣基交易140)及待記錄之一交易集合156。
區塊標頭152可包含識別區塊150之資訊及由採礦電路產生以完成一函數之額外資訊,諸如滿足一密碼編譯謎之資訊。可產生額外資訊以對至少部分地由區塊標頭152判定之函數輸入之一給定集合及一所要輸出或輸出範圍之函數(例如,謎)求解。圖7係一說明性區塊標頭152之一圖式。如圖7中所展示,區塊標頭152可包含標頭欄位162、一先前區塊識別符164、一默克爾根166、一時間戳記168、一難度值170及一臨時值172。
標頭欄位162可包含任何所要標頭欄位,諸如比特幣協定之一版本號碼。先前區塊識別符164可識別全球分類帳中之一先前區塊(例如,全球分類帳可係一區塊鏈,其中每一區塊參考該鏈中之一先前區塊)。舉例而言,該先前區塊識別符可係先前區塊之區塊標頭之一雜湊。
可依據包含幣基交易140及交易集合156之區塊150之交易產生默克爾根166。默克爾根166可提供區塊150中之交易之一緊湊表示。舉例而言,默克爾根166可係一256位元(32位元組)值,然而區塊150之
交易可係數百個、數千個或數百萬個位元組。
難度值170係藉助區塊150經求解之函數(例如,密碼編譯謎)之一參數。針對比特幣協定,密碼編譯謎涉及產生區塊標頭152使得區塊標頭152之雜湊小於一預定值。可使用諸如安全雜湊演算法(SHA)之一協定判定之雜湊函數計算該雜湊。預定值可取決於難度值170。舉例而言,難度值170可規定雜湊區塊標頭值中需要一個二進制資料表示中之多少前導零。
採礦電路116可調整區塊標頭152中之欄位中之一或多者以便給區塊標頭152提供對密碼編譯謎求解之一雜湊值(例如,一充分小之雜湊值)。舉例而言,該採礦電路可調整臨時值或時間戳記值。作為另一實例,該採礦電路可調整區塊之幣基交易中之超臨時值,此間接調整默克爾根。採礦電路116可藉由在密碼編譯謎之所有可能解內反覆而執行詳盡搜尋。
由密碼編譯謎使用之雜湊函數可以順序步驟(有時在本文中稱為階段)對區塊標頭152進行操作。若期望,則可在一第一雜湊階段中處理區塊標頭152之一第一部分174,然而可在一第二後續雜湊階段中處理區塊標頭152之一第二部分176。每一雜湊階段可涉及邏輯運算之若干個所謂的回合。邏輯運算之每一回合可涉及相同邏輯函數(例如,對每一回合之不同輸入進行操作)。舉例而言,雜湊函數中之邏輯運算之一給定回合之輸出可用作邏輯運算之一後續回合之一輸入。可以此方式反覆地執行該等邏輯運算以產生雜湊函數之一輸出。舉例而言,當使用一安全雜湊演算法(SHA)256函數時,可在產生一雜湊輸出之前藉由SHA-256之64個回合對區塊標頭152之第二部分176進行操作(例如,至實施SHA-256雜湊演算法之邏輯電路之一初始輸入可由邏輯電路操作且經提供為至與邏輯電路之先前回合完全相同的邏輯電路之一後續回合之一輸入,依此類推,直至已執行邏輯函數之所要數
目個回合為止)。此實例僅係說明性的。雜湊回合之數目可取決於由採礦電路116執行之雜湊演算法。
部分174可包含標頭欄位162、先前區塊識別符164及默克爾根166之一第一部分,然而部分176可包含默克爾根166之一第二部分、時間戳記168、難度值170及臨時值172。該SHA函數可基於區塊標頭152之部分174而產生第一階段之一輸出值。該第一階段之該輸出值可用作至該SHA函數之第二階段連同區塊標頭152之部分176之一輸入。該SHA函數之該第二階段可產生區塊標頭152之雜湊值。可使用採礦電路116上之專用硬體電路實施該SHA函數。
可藉由自對應區塊150之交易產生一默克爾樹而計算默克爾根166。圖8係自包含交易TX0、TX1、TX2、TX3、TX4、TX5、TX6及TX7之一區塊產生之一說明性默克爾樹180之一圖式。其中區塊包含八個交易之圖8之實例僅係說明性的。可依據任一二進制數目個交易(例如,2、4、6、8等)計算一默克爾樹。若一區塊不含有二進制數目個交易,則可添加佔位交易以完成默克爾樹。此等佔位交易僅用於產生默克爾樹且不添加至區塊。
如圖8中所展示,默克爾樹180包含各自藉由計算一各別交易之雜湊(例如,使用SHA函數)產生之葉節點182。舉例而言,依據交易TX0(例如,一幣基交易)之(雙重)雜湊計算雜湊值H0,然而分別依據交易TX1、TX2、TX3、TX4、TX5、TX6及TX7計算雜湊值H1、H2、H3、H4、H5、H6及H7。
默克爾樹180可經組織為其中每一非葉節點184具有兩個子節點之一個二進制樹。可藉由將一較低(先前)層級之節點雜湊而計算樹之每一連續層級之節點。可藉由將儲存於葉節點182中之值雜湊而產生樹之第二層級(例如,儲存雜湊值H8、H9、H10及H11之節點)。舉例而言,藉由串接葉值H0及H1且將經串接結果雜湊而產生雜湊值H8。
類似地,可藉由將第二層級之值雜湊而產生樹之第三層級(例如,可藉由將H8與H9之序連雜湊而計算雜湊值H12,然而可藉由將H10與H11之序連雜湊而計算雜湊值H13)。樹中之層級之數目可取決於區塊中之交易之數目。在圖8之實例中,默克爾樹180之根處於第四層級且依據雜湊值H12及H13來計算。
默克爾樹180之每一節點處之雜湊值具有一固定之預定大小(例如,256個位元),且取決於彼節點之子節點處之值。默克爾根因此用作對應區塊中之所有交易之一緊湊表示,此乃因對一交易之任何改變向上擴散至默克爾根。舉例而言,對幣基交易TX0之改變致使雜湊值H8改變,此修改雜湊值H12,此接著修改默克爾根值。類似地,對交易中之任一者之改變導致對默克爾根值之改變。
採礦電路116可產生默克爾樹180之某些或所有同時搜尋一密碼編譯謎之解。舉例而言,在透過一幣基交易TX0中之超臨時值反覆中,可需要採礦電路針對每一新超臨時值重新計算默克爾根。為幫助減少計算時間且改進效能,採礦電路可在每一反覆期間重新計算默克爾樹180之僅一部分。特定而言,對幣基交易TX0之改變僅影響雜湊值H0、H8、H12及默克爾根,然而默克爾樹之剩餘節點未改變。虛線186表示將在修改幣基交易TX0時需要重新計算之雜湊值與保持未改變之雜湊值分開的默克爾樹之邊緣。在邊緣186左邊之節點需要重新計算(樹180之部分188),然而在邊緣186右邊之節點不需要重新計算(樹180之部分190)。採礦電路可將恆定節點儲存在邊緣186處且重新使用所儲存值以重新計算默克爾根。在圖8之實例中,可儲存雜湊值H1、H9及H13,然而不需要儲存樹部分190之剩餘雜湊值。若期望,則可藉由在採礦電路116外部之電路晶片外計算在邊緣186左邊之節點(例如,以節省處理時間、功率及採礦電路116上之晶片面積)。
圖9係自一區塊鏈200形成之一全球分類帳之一說明性圖式。如
圖9中所展示,區塊鏈200可包含不指向任何先前區塊之一起源區塊150’。舉例而言,區塊150’之先前區塊識別符164不識別任何其他區塊。每一連續區塊150識別鏈中之先前區塊,如由箭頭202所展示(例如,每一區塊之先前區塊識別符164識別區塊鏈200中之先前區塊)。
在採礦操作期間,一裝置收集尚未記錄在區塊鏈200中之交易之一集合。採礦電路可識別區塊鏈200中之最後一(最近記錄之)區塊。採礦電路可隨後依據交易集合產生一新區塊150,使得新區塊包含識別區塊鏈200之最後一區塊且對由區塊鏈使用之加密貨幣協定之密碼編譯謎求解之一識別符164。
區塊鏈200包含多個分支係可能的。舉例而言,可在發現各自具有相同先前區塊識別符之不同謎解時產生分支204。在此情景中,較長且包含更多區塊之分支用作全域暫存器。換言之,忽略分支204且不考量要記錄分支204之區塊150中之交易,此乃因分支206包含比分支204多之區塊(亦即,分支206中之四個經連接區塊對比分支204中之僅三個經連接區塊)。
諸如圖2之電路116之採礦電路可實施為一專用積體電路(例如,一特殊應用積體電路),如圖10之圖式中所展示。如圖10中所展示,積體電路116可具有用於驅動信號離開裝置116且用於經由輸入-輸出(I/O)接腳214自其他裝置接收信號之輸入-輸出電路212。舉例而言,I/O電路212及接腳214可在採礦電路116與圖2之電子裝置110上之其他電路之間傳達信號。如圖10中所展示,採礦電路116可自諸如處理電路215之晶片外處理電路接收資料。晶片外電路215可用於預計算由電路116執行之雜湊函數之若干部分。舉例而言,晶片外電路215可計算如圖7中所展示之區塊標頭152之部分174之雜湊值且可將雜湊值(例如,雜湊值Hi)提供至電路116。電路116在對區塊標頭152之部分176執行雜湊函數時可使用雜湊值Hi作為一輸入。
採礦電路116可包含一核心區218及藉由諸如互連路徑之路徑224耦合至該核心區之控制電路216。核心區218可包含可由控制電路216控制以識別一密碼編譯謎之解之多個核心電路220。舉例而言,每一核心電路220可包含對由控制電路216經由路徑224提供之輸入執行諸如SHA函數之一密碼編譯演算法的專用邏輯。核心區218可包含由控制電路216並行操作之任何所要數目個核心電路(例如,數十個、數百個或更多核心電路)。
由控制電路216提供至一給定核心220之輸入可包含一部分地填充之區塊標頭。舉例而言,部分地填充之區塊標頭可包含標頭欄位162、先前區塊識別符164、一當前時間及難度值170。輸入可包含待求解之區塊之交易之默克爾根、交易自身或用於計算默克爾根之充分資訊(例如,圖8之默克爾樹邊緣186)。輸入可包含由晶片外處理電路215計算之初始雜湊值Hi。可藉由嘗試藉助由控制電路提供之輸入對密碼編譯謎求解之核心220產生區塊標頭及區塊之剩餘欄位。
控制電路216可分割密碼編譯謎之可能解之搜尋空間且給每一核心電路220指派搜尋空間之一不同部分(例如,使得並行操作之多個核心電路220可更有效地搜尋密碼編譯謎之解)。可基於由控制電路提供至核心電路之輸入而分割搜尋空間。舉例而言,可藉由將不同範圍之臨時值172指派給不同核心220、藉由將不同範圍之超臨時值指派給不同核心220等而分割搜尋空間。
若期望,則採礦電路116中之每一核心電路220可包含執行諸如安全雜湊演算法(SHA)函數之密碼編譯雜湊函數之專用邏輯。舉例而言,核心220可對由控制電路216經由路徑224提供之輸入執行SHA-2雜湊函數(例如,在32位元字作為至每一雜湊回合之一訊息排程輸入之情況下計算且輸出256位元雜湊輸出的SHA-256雜湊函數)。
圖11係圖10之電路116中之一例示性核心220之一說明性圖式。
在圖11之實例中,電路220用於對自控制電路216接收之輸入執行SHA-256雜湊。然而,此僅係說明性的且一般而言,核心220可用於對自控制電路216接收之輸入執行任何所要雜湊演算法(例如,以供在一比特幣協定、另一數位貨幣協定中使用或以供在與一數位貨幣無關之一密碼編譯系統中使用),或核心220可與採礦電路116分開形成(例如,在一專用積體電路或與採礦電路116分開之積體電路上)且可通常對自任何所要源接收之任何所要輸入執行密碼編譯雜湊函數(例如,SHA-256雜湊)。
如圖11中所展示,核心220可包含通信電路,諸如經由路徑224自控制電路216接收一訊息輸入W之通信模組260。自控制電路216接收之訊息輸入W可包含供用作至一SHA-256雜湊演算法之一輸入的區塊標頭152之若干部分,舉例而言。核心220可經由輸入/輸出埠214自外部電路215接收一初始雜湊輸入Hi。可基於一比特幣區塊標頭之一部分晶片外計算初始雜湊輸入Hi。舉例而言,可在電路215處藉由將區塊標頭152之部分174雜湊(例如,與一SHA-256雜湊協定一起使用單一或雙重雜湊)而計算初始雜湊輸入Hi。核心220可包含儲存電路264,該儲存電路包含揮發性及/或非揮發性記憶體。
若期望,則核心220可包含多個順序雜湊模組,諸如第一雜湊模組262及第二雜湊模組266。第一雜湊模組262及第二雜湊模組266可用於基於初始雜湊Hi及在線路224上接收之訊息輸入而執行一雙重SHA-256雜湊。舉例而言,第一雜湊模組262(有時在本文中稱為第一SHA-256模組262)可對初始雜湊Hi及訊息輸入W執行SHA-256雜湊以產生一第一雜湊輸出H0。第一雜湊輸出H0可經提供作為至第二雜湊模組266(有時在本文中稱為第二SHA-256模組266)之一訊息輸入。第二雜湊模組266可接收常數因子作為一初始雜湊輸入(例如,由SHA-256雜湊演算法判定之常數因子,諸如一或多個質數)。第二雜湊模組266可基於
第一雜湊輸出H0而使用一訊息排程對常數因子執行SHA-256雜湊以產生一第二雜湊輸出HF(有時在本文中稱為一最終雜湊輸出)。
在圖11之實例中,初始雜湊Hi包含256個位元,然而訊息輸入W包含512個位元。第一雜湊輸出H0可包含256個位元(例如,如由第一雜湊模組262實施之SHA-256演算法所判定)。核心220可包含用於使第一雜湊輸出H0填補有所要數目個零使得經填補第一雜湊輸出H0包含512個位元(例如,使得第一雜湊輸出H0可用作至第二SHA-256模組266之512位元訊息輸入)之填補電路268。輸入至第二雜湊模組266之常數因子可包含256個位元。第二雜湊輸出HF可包含256個位元(例如,如由第二雜湊模組266實施之SHA-256演算法所判定)。
核心220可包含難度比較電路270。第二雜湊輸出HF可提供至難度比較電路270。難度比較電路270可比較第二雜湊輸出HF與在輸入272處接收之一預定難度值。舉例而言,可自控制電路216或其他所要外部電路接收難度值272。舉例而言,由採礦電路116或由任何其他源實施之數位貨幣協定可規定難度值272(例如,可由按比特幣協定操作之節點網路判定且可隨時間調整難度值,使得由整個網路在一給定時間週期內計算密碼編譯謎之可預測數目個解)。若第二雜湊輸出HF滿足預定難度值(例如,若如由比特幣協定規定之最低有效零位元之一數目係充分的或若值HF小於預定難度值),則可在線路224上發佈一發現信號,從而指示已發現給定初始雜湊Hi及訊息輸入W(例如,與初始雜湊及訊息相關聯之比特幣區塊標頭)之一解。若未發現解,則可改變搜尋空間(例如,使用一不同時間戳記欄位168、難度欄位170、臨時欄位172、超臨時欄位等)且可重複計算直至發現一解為止,直至改變搜尋空間為止,或直至接收區塊鏈200(圖9)中之一新區塊150為止。
每一雜湊模組262及266可執行SHA-256雜湊之多個回合(例如,
如由SHA-256雜湊協定規定)。雜湊之每一回合可涉及對至彼回合之一輸入執行相同邏輯函數以產生用於彼回合之一輸出。雜湊之每一回合可接收訊息輸入W之一部分(例如,訊息輸入之一32位元字或自訊息輸入W導出之一經修改32位元字)。一給定回合之輸出可用作下一回合之一輸入(連同來自訊息輸入之另一字)。
在有時在本文中闡述為一實例之一情景中(例如,當根據比特幣或SHA-256協定操作時),第一雜湊模組262可基於初始雜湊Hi及輸入訊息W執行雜湊之64個回合以產生第一雜湊輸出H0。類似地,第二雜湊模組266可基於常數因子及第一雜湊輸出H0執行雜湊之64個回合以產生第二雜湊輸出HF。在典型情景中,由核心220上之專用邏輯執行由第一雜湊模組262(或第二雜湊模組266)執行之SHA-256雜湊之每一回合。第一雜湊模組262中之SHA-256邏輯之一第一回合之輸出可用作至第一雜湊模組262中之SHA-256邏輯之第二回合之一輸入(連同由訊息排程邏輯基於輸入訊息W而產生之一字),該第二回合之輸出可用作至第一雜湊模組262中之SHA-256邏輯之一第三回合之一輸入(連同由訊息排程邏輯基於輸入訊息W而產生之一額外字)等。可對一雜湊輸入及一對應訊息輸入執行由第一雜湊模組262及第二雜湊模組266執行之SHA-256之每一回合。雜湊輸入與訊息輸入可如由SHA-256協定所判定而組合以產生用作SHA-256雜湊之後續回合之一雜湊輸入的一雜湊輸出。最終(例如,第64個)回合之雜湊輸出可作為雜湊輸出值H0或HF經輸出。
第一雜湊模組262及第二雜湊模組266上之專用邏輯硬體(例如,硬編碼電路)可執行由SHA-256雜湊協定實施之邏輯運算,舉例而言。使用硬體執行邏輯運算可顯著快於使用軟體執行相同邏輯運算。圖12係可使用核心220上之專用邏輯形成之SHA-256雜湊函數邏輯之一單個回合之一說明性圖式。圖12之電路可實施於圖11之第一及/或
第二雜湊模組上且可針對由雜湊模組實施之每一數目個回合在雜湊模組上經重複(例如,圖12之電路可在每一雜湊模組中重複64次)。圖12之電路可有時在本文中稱為一雜湊排程、雜湊排程電路、雜湊排程邏輯(hash schedule logic或hash scheduling logic)。
如圖12中所展示,SHA-256雜湊電路298可包含諸如儲存電路300及302(例如,暫存器電路300及302)之儲存電路。暫存器電路300對於SHA-256雜湊邏輯306之對應回合可用作一輸入暫存器。儲存於暫存器電路300上之資料可傳遞至SHA-256雜湊邏輯306且根據SHA-256雜湊協定(例如,如圖12之邏輯圖式中所展示)對該資料進行操作。SHA-256邏輯306之輸出可傳遞至輸出暫存器302。在典型配置中,暫存器電路300及302各自包含各自儲存一對應32位元雜湊值之八個對應暫存器A至H(例如,一第一暫存器A、一第二暫存器B、一第三暫存器C等)(例如,針對雜湊之第一回合,暫存器A可儲存初始雜湊Hi之最高有效32個位元,然而暫存器H儲存初始雜湊Hi之最低有效32個位元)。換言之,一256位元雜湊輸入Hi可分割成各自儲存於輸入暫存器電路300之一對應暫存器上之八個32位元雜湊值A至H。每一32位元雜湊值可連同訊息輸入W之部分(字)Wt傳遞至邏輯306。邏輯306之輸出可儲存於暫存器電路302上(例如,邏輯306之輸出可分割成各自儲存於輸出暫存器電路302之一對應暫存器上之32位元雜湊值A至H)。
作為一實例,圖12之雜湊排程邏輯298可係形成於雜湊模組262上之SHA-256雜湊邏輯之一第一回合。在此情景中,暫存器300可接收並儲存經由輸入/輸出埠214接收之初始雜湊Hi(例如,分割成32位元雜湊部分A至H)。可由訊息排程電路基於512位元輸入訊息W產生一32位元輸入訊息字Wt。加法器電路304(例如,以32為模之加法電路)可接收來自訊息排程電路之字Wt以及一SHA-256恆定值Kt。恆定值Kt可由SHA-256雜湊協定規定且可對應於在暫存器300與302之間實
施之SHA-256之特定回合數目(例如,Kt可具有針對SHA-256之第一回合之一第一值、針對SHA-256之第二回合之一第二值、針對SHA-256之第64個回合之一第三值等)。
輸入字Wt可由核心220上之對應訊息排程邏輯提供至雜湊排程電路298。訊息排程邏輯可自通信模組260(圖11)接收訊息輸入W且可根據SHA-256協定執行對訊息W之運算以產生訊息輸入字Wt。舉例而言,訊息排程邏輯可對輸入訊息W執行邏輯運算且可在於任一給定時間處執行邏輯運算之後輸出輸入訊息W之一單個32位元字Wt。一對應訊息輸入字Wt可針對雜湊模組262中之SHA-256之每一回合提供至加法器304(例如,可在SHA-256之第一回合期間提供一第一字W0,可在SHA-256之第二回合期間提供一第二字W1,等)。字Wt可係在一給定時間處儲存於訊息排程邏輯中之訊息之最高有效字。
儲存於暫存器300上之32位元雜湊值、對應訊息輸入字Wt及對應回合恆定值Kt可傳遞至邏輯306且由邏輯306處理,如圖12中所展示及定義。經處理32位元雜湊值可儲存於輸出暫存器302上。由邏輯306中之邏輯區塊Ch、Σ1、Ma及Σ0執行之邏輯函數如圖12中所展示而經定義。圖12之邏輯電路306之配置由SHA-256協定判定且僅係說明性的。一般而言,任何所要邏輯可形成於電路306中以用於對儲存於暫存器300中之輸入雜湊值進行操作。
儲存於輸出暫存器302中之32位元經處理雜湊值Hi'可提供至邏輯306(例如,具有與圖11中所展示相同之組態之邏輯電路)之一後續回合且邏輯之後續回合之輸出可提供至一額外組暫存器電路。以此方式,雜湊模組262(或雜湊模組266)上之SHA-256邏輯之64個回合中之每一者可包含對應邏輯電路306及暫存器電路300/302。在另一適合配置中,針對SHA-256雜湊之64個回合中之兩者或兩者以上,暫存器302之輸出可迴圈回至暫存器300。在雜湊298之最終回合(例如,第64
個回合)之後,儲存於邏輯電路之第64個回合中之暫存器302上之經處理雜湊值可用作圖11之雜湊輸出H0(例如,在通過邏輯306之64個回合之後,可產生第一雜湊輸出H0作為儲存於第一雜湊模組262之最終輸出暫存器電路302上之雜湊值)。雜湊輸出H0可傳遞至第二雜湊模組266(圖11)。類似邏輯可形成於第二雜湊模組266上以使用常數因子作為儲存於第二雜湊模組266之輸入暫存器300上之初始雜湊值且使用對應於第一雜湊輸出H0的來自訊息輸入之字來產生最終雜湊輸出HF。
圖13係形成於圖11之第一及/或第二雜湊模組上以用於基於所接收訊息W產生提供至雜湊排程邏輯298之輸入字Wt之訊息排程邏輯398之一說明性圖式。諸如圖11之512位元訊息輸入W之一初始訊息可儲存於暫存器400中。每一暫存器400可儲存訊息W之一對應32位元部分(字)。針對由雜湊排程電路298執行之SHA-256之每一回合,可透過暫存器400使所儲存訊息W逐字移位。在透過暫存器400之每一移位之後之最高有效32位元字Wt可提供為至雜湊排程邏輯298之對應回合之輸入字Wt。以此方式,每一32位元輸入字Wt基於自控制器216接收之訊息輸入W。
舉例而言,在如圖12中所展示之SHA-256雜湊排程298之第一回合期間,一第一最高有效32位元字Wt可經由路徑404提供至加法器304,且儲存於暫存器400上之每一字可經移位轉變至下一暫存器400(例如,沿向左之一方向,如圖13中所展示)。在使字移位之後之最高有效32位元字Wt可經由路徑404提供至加法器304且可再次使該等字移位至下一暫存器400。此程序可繼續使得一不同訊息輸入字Wt提供至SHA-256雜湊排程邏輯298之64個回合中之每一者。儲存於暫存器400上之字中之某些字可傳遞至邏輯406及加法器電路402(以二為模之加法加法器電路402)且一對應字可提供至訊息排程邏輯398中之最後一(最低有效)暫存器400。
在其中訊息排程電路398形成於第一雜湊模組262中之實例中,最初儲存於暫存器400上之512位元訊息可係自控制器216接收之輸入訊息W。在其中訊息排程電路398形成於第二雜湊模組266上之實例中,最初儲存於暫存器400上之512位元訊息可係由第一雜湊模組262產生之第一雜湊輸出H0(例如,在使用填補電路268填補至512個位元之後)。邏輯406、暫存器400及加法器402之配置可由SHA-256雜湊協定判定。此實例僅用於說明,且若有需要,可使用暫存器400、邏輯406及加法器402之任何配置以用於產生訊息字Wt。
採礦電路116中之每一核心220可包含第一雜湊模組262及第二雜湊模組266。此實例僅係說明性的且一般而言,核心220可包含使用任何所要雜湊協定執行雜湊之任何所要數目個回合之任何所要數目個雜湊模組。在圖11至圖13之實例中,每一核心220可包含雜湊排程邏輯298(如圖12中所展示)及對應訊息排程邏輯398(如圖13中所展示)之64個回合以用於並行計算雜湊值(例如,用於比在僅使用一單個核心之情況下更有效地找到密碼編譯謎之一解)。舉例而言,一第一核心220之第一雜湊模組可包含雜湊排程邏輯298之64個回合,毗鄰於第一核心之一第二核心220之第一雜湊模組可包含雜湊排程邏輯之64個回合等。雜湊邏輯之每一回合可需要採礦電路116上之預定量之晶片面積及預定量之電力以用於計算SHA-256雜湊函數。可期望能夠減少由用於並行計算雜湊函數之核心220使用之面積及電力以減小晶片成本且增加功率效率。
如圖12之實例中所展示,雜湊排程電路298基於儲存於輸入電路300之一或多個暫存器中之雜湊值而計算輸出用於暫存器302中之每一者之雜湊值(例如,每一雜湊輸出值未必係對應輸入暫存器電路300之雜湊值A至H中之每一者之一函數)。舉例而言,儲存於輸出暫存器電路302之暫存器B中之輸出雜湊值僅僅係儲存於輸入暫存器電路300之
暫存器A上之輸入雜湊值(例如,儲存於輸入暫存器A上之雜湊值移位至輸出暫存器B,使得儲存於暫存器B中之輸出雜湊值並非任何其他輸入雜湊值B至H之一函數)。類似地,儲存於輸出暫存器電路302之暫存器C中之輸出雜湊值等於儲存於輸入暫存器電路300之暫存器B上之輸入雜湊值且儲存於輸出暫存器電路302之暫存器D中之輸出雜湊值等於儲存於輸入暫存器電路300之暫存器C上之輸入雜湊值(例如,不對輸入雜湊值A、B及C執行處理或與其他雜湊值之邏輯組合以用於產生輸出雜湊值B、C及D)。
儘管計算輸出暫存器電路302中之輸出雜湊值E作為輸入雜湊值D、E、F、G及H之一函數(包含由加法器304進行之邏輯運算以及邏輯函數Ch及Σ1),但輸出暫存器電路302中之輸出雜湊值F僅僅等於輸入暫存器電路300之輸入雜湊值E,輸出暫存器電路302中之輸出雜湊值G等於輸入暫存器電路300之輸入雜湊值F,且輸出雜湊值H等於輸入暫存器電路300之輸入雜湊值G(例如,而並非任何其他輸入雜湊值之一函數)。當雜湊排程電路298之一單個回合之輸出暫存器形成雜湊排程電路298之一後續回合之輸入暫存器時,輸入雜湊值B、C、D、F、G及H僅僅係儲存於雜湊排程電路298之先前回合之輸入暫存器中之雜湊值(例如,一給定回合之輸入雜湊值B經計算為等於先前回合之輸出雜湊值A,一給定回合之輸入雜湊值C經計算為等於先前回合之輸出雜湊值B,一給定回合之輸入雜湊值D經計算為等於先前回合之輸出雜湊值C,一給定回合之輸入雜湊值F經計算為等於先前回合之輸出雜湊值E,一給定回合之輸入雜湊值G經計算為等於先前回合之輸出雜湊值F,且一給定回合之輸入雜湊值H經計算為等於先前回合之輸出雜湊值G)。僅輸入雜湊值A及E經計算為雜湊排程電路298之先前回合之一個以上輸出雜湊值之邏輯組合。若期望,則暫存器B、C、D、F、G及H之每一雜湊值可自雜湊排程電路298之先前執行之回合基於
一對應雜湊值A及E而判定。
若期望,則核心電路220可經配置以利用此等冗餘性來減少核心220所需要之晶片面積及處理資源量。圖14係展示在不形成用於儲存雜湊值B、C、D、F、G或H之每一回合之暫存器電路之情況下可如何執行雜湊排程電路之多個回合之一圖式。
如圖14中所展示,雜湊排程電路500可包含SHA-256雜湊邏輯之若干個回合。雜湊電路500可形成於(舉例而言)圖11之第一雜湊模組262或第二雜湊模組266上。在圖14之實例中,展示SHA-256雜湊排程之64個回合中之五個回合(例如,具有由暫存器儲存之一狀態之一第56個回合502,具有由暫存器儲存之一狀態之一第57個回合504,具有由暫存器儲存之一狀態之一第58個回合506,具有由暫存器儲存之一狀態之一第59個回合508,及具有由暫存器儲存之一狀態之一第60個回合509)。第56個雜湊回合502之暫存器可等效於雜湊排程500之第55個回合之輸出暫存器302或雜湊排程電路500之第56個回合之輸入暫存器300,第57個雜湊回合504之暫存器可等效於雜湊排程500之第56個回合之輸出暫存器302或雜湊排程電路500之第57個回合之輸入暫存器300等。雜湊之每一回合可僅包含雜湊值A及E之暫存器,然而自先前所儲存值A及E獲得雜湊值B至D及F至H中之每一者。此實例僅係說明性的,且一般而言,圖14中所展示之雜湊排程500之圖案可針對雜湊排程之64個回合中之每一者而重複。第56個至第60個回合在本文中經闡述為用以圖解說明本發明之特徵之一實例。
如圖14中所展示,一第一雜湊值可基於排程500之先前回合之雜湊值及一對應第56個回合字W56(例如,由圖13之訊息排程電路398產生且在輸入511處接收)而儲存於第56個回合502之暫存器A上。輸入箭頭511可表示第56個回合字W56與如圖12之邏輯306之一或多個回合所給定之先前回合之一或多個雜湊值的邏輯組合。一第二雜湊值可基於
排程電路500之先前回合之雜湊值且基於第56個回合字W56而儲存於第56個回合502之暫存器E上。輸入箭頭513可表示第56個回合字W56與如圖12之邏輯306所給定之先前回合之雜湊值的組合。每一回合之所儲存雜湊值可用於獲得後續回合之雜湊值(例如,可使用來自先前回合之雜湊值獲得一給定回合之雜湊值)。
在圖14之實例中,可獲得第57個回合504之雜湊值B作為第56個回合502之所儲存雜湊值A,如由路徑512所展示,可獲得第57個回合504之雜湊值C作為第56個回合502之雜湊值B,如由路徑514所展示,且可獲得第57個回合504之雜湊值D作為第56個回合502之雜湊值C,如由路徑516所展示(例如,基於圖12中所展示之邏輯運算306,其中輸出雜湊值B、C及D分別自輸入雜湊值A、B及C獲取,且其中輸入雜湊值A、B及C係先前回合之輸出雜湊值A、B及C)。
類似地,可獲得第57個回合504之雜湊值F作為第56個回合502之所儲存雜湊值E,如由路徑518所展示,可獲得第57個回合504之雜湊值G作為第56個回合502之雜湊值F,如由路徑520所展示,且可獲得第57個回合504之雜湊值H作為第56個回合502之雜湊值G,如由路徑522所展示。
一雜湊值可基於排程電路500之先前回合之雜湊值及一對應第57個回合字W57而儲存於第57個回合504之暫存器A上(例如,如由路徑511所展示)。一額外雜湊值可基於排程電路500之先前回合之雜湊值且基於第57個回合字W57而儲存於第57個回合504之暫存器E上(例如,如由路徑513所展示)。可獲得第58個回合506之雜湊值B作為第57個回合504之所儲存雜湊值A,如由路徑524所展示,可獲得第58個回合506之雜湊值C作為第57個回合504之雜湊值B,如由路徑512所展示,且可獲得第58個回合506之雜湊值D作為第57個回合504之雜湊值C,如由路徑514所展示。由於第57個回合504之雜湊值B與第56個回合
502之所儲存雜湊值A相同,因此第58個回合506之雜湊值C可經計算為等於第56個回合504之所儲存雜湊值A(如由路徑512所展示)。
類似地,可獲得第58個回合506之雜湊值F作為第57個回合504之所儲存雜湊值E,如由路徑526所展示,可獲得第58個回合506之雜湊值G作為第57個回合504之雜湊值F,如由路徑518所展示,且可獲得第58個回合506之雜湊值H作為第57個回合504之雜湊值G,如由路徑520所展示。由於第57個回合504之雜湊值F與第56個回合502之所儲存雜湊值E相同,因此第58個回合506之雜湊值G可經計算為等於第56個回合502之所儲存雜湊值E(如由路徑518所展示)。
一雜湊值可基於排程電路500之先前回合之雜湊值及一對應第58個回合字W58而儲存於第58個回合506之暫存器A上(例如,如由路徑511所展示)。一額外雜湊值可基於排程電路500之先前回合之雜湊值且基於第58個回合字W58而儲存於第58個回合506之暫存器E上(例如,如由路徑513所展示)。可獲得第59個回合508之雜湊值B作為第58個回合506之所儲存雜湊值A,如由路徑528所展示,可獲得第59個回合508之雜湊值C作為第58個回合506之雜湊值B,如由路徑524所展示,且可獲得第59個回合508之雜湊值D作為第58個回合506之雜湊值C,如由路徑512所展示。由於第58個回合506之雜湊值B與第57個回合504之所儲存雜湊值A相同,因此第59個回合508之雜湊值C可經計算為等於第57個回合504之所儲存雜湊值A(如由路徑524所展示)。由於第58個回合506之雜湊值C與第57個回合504之雜湊值B(其與第56個回合502之所儲存雜湊值A相同)相同,因此第59個回合508之雜湊值D可經計算為等於第56個回合502之所儲存雜湊值A(如由路徑512所展示)。
類似地,可獲得第59個回合508之雜湊值F作為第58個回合506之所儲存雜湊值E,如由路徑530所展示,可獲得第59個回合508之雜湊
值G作為第58個回合506之雜湊值F,如由路徑526所展示,且可獲得第59個回合508之雜湊值H作為第58個回合506之雜湊值G,如由路徑518所展示。由於第58個回合506之雜湊值F與第57個回合504之所儲存雜湊值E相同,因此第59個回合508之雜湊值G可經計算為等於第57個回合504之所儲存雜湊值E(如由路徑526所展示)。由於第58個回合506之雜湊值G與第57個回合504之雜湊值F(其與第56個回合502之所儲存雜湊值E相同)相同,因此第59個回合508之雜湊值H可經計算為等於第56個回合502之所儲存雜湊值E(如由路徑518所展示)。如圖14所示,字W59可被提供至回合508且字W60可被提供至回合509。
以此方式,可獲得雜湊值B至D及F至H中之每一者作為來自雜湊電路500之三個先前回合中之一者之所儲存雜湊值A及E。一般而言,雜湊電路500之任一給定回合之雜湊值B可經計算為等於來自緊接在雜湊電路之給定回合之前之回合之所儲存雜湊值A(例如,可藉由擷取第55個回合之所儲存雜湊值A而獲得第56個回合502之雜湊值B,如由路徑514所展示,可藉由擷取第57個回合504之所儲存雜湊值A而獲得第58個回合506之雜湊值B,如由路徑524所展示,可藉由擷取第59個回合508之所儲存雜湊值A而獲得第60個回合509之雜湊值B,如由路徑534所展示,等)。雜湊電路500之任一給定回合之雜湊值F可經判定為等於來自緊接在雜湊電路之給定回合之前之回合之所儲存雜湊值E(例如,可藉由擷取第55個回合之所儲存雜湊值E而獲得第56個回合502之雜湊值F,如由路徑520所展示,可藉由擷取第57個回合504之所儲存雜湊值E而獲得第58個回合506之雜湊值F,如由路徑526所展示,可藉由擷取第59個回合508之所儲存雜湊值E而獲得第60個回合509之雜湊值F,如由路徑536所展示,等)。
一般而言,雜湊電路500之任一給定回合之雜湊值C可經判定為等於來自在雜湊電路之給定回合之前之兩個回合之所儲存雜湊值A(例如,可藉由擷取第55個回合之所儲存雜湊值A而獲得第57個回合
504之雜湊值C,如由路徑514所展示,可藉由擷取第56個回合502之所儲存雜湊值A而獲得第58個回合506之雜湊值C,如由路徑512所展示,可藉由擷取第58個回合506之所儲存雜湊值A而獲得第60個回合509之雜湊值C,如由路徑528所展示,等)。類似地,雜湊電路500之任一給定回合之雜湊值G可經判定為等於來自在雜湊電路之給定回合之前之兩個回合之所儲存雜湊值E(例如,可藉由擷取第55個回合之所儲存雜湊值A而獲得第57個回合504之雜湊值G,如由路徑520所展示,可藉由擷取第56個回合502之所儲存雜湊值E而獲得第58個回合506之雜湊值G,如由路徑518所展示,可藉由擷取第58個回合506之所儲存雜湊值E而獲得第60個回合509之雜湊值G,如由路徑530所展示,等)。
另外,一般而言,雜湊電路500之任一給定回合之雜湊值D可經計算為等於來自在雜湊電路之給定回合之前之三個回合之所儲存雜湊值A(例如,可藉由擷取第54個回合之所儲存雜湊值A而獲得第57個回合504之雜湊值D,如由路徑516所展示,可藉由擷取第56個回合502之所儲存雜湊值A而獲得第59個回合508之雜湊值D,如由路徑512所展示,可藉由擷取第57個回合504之所儲存雜湊值A而獲得第60個回合509之雜湊值D,如由路徑524所展示,等)。類似地,雜湊電路500之任一給定回合之雜湊值H可經判定為等於來自在雜湊電路之給定回合之前之三個回合之所儲存雜湊值E(例如,可藉由擷取第54個回合之所儲存雜湊值E而獲得第57個回合504之雜湊值H,如由路徑522所展示,可藉由擷取第56個回合502之所儲存雜湊值A而獲得第59個回合508之雜湊值H,如由路徑518所展示,可藉由擷取第57個回合504之所儲存雜湊值E而獲得第60個回合509之雜湊值H,如由路徑526所展示,等)。以此方式,可藉由擷取來自緊接在一給定回合之前的電路500之三個回合中之一者之一所儲存雜湊值A而獲得一給定回合之
每一雜湊值B至D,然而可藉由擷取來自緊接在給定回合之前的電路500之三個回合中之一者之一所儲存雜湊值E而獲得一給定回合之每一雜湊值E至H。因此無需形成每一回合之個別暫存器B至D及F至H以用於記錄雜湊電路500之任一給定回合之狀態。
類似地,可基於來自雜湊電路500之四個先前回合之所儲存雜湊值A而產生每一所儲存雜湊值A,然而可基於來自雜湊電路500之四個先前回合之所儲存雜湊值A而計算每一所儲存雜湊值E。如圖12中所展示,計算每一雜湊值A作為先前回合之輸出雜湊值B、C、E、F、G及H之一函數,且計算每一雜湊值E作為先前回合之輸出雜湊值D、E、F、G及H之一函數。由於雜湊值B至H係僅基於先前回合之所儲存雜湊值A及E而獲得,因此一給定回合之雜湊值A及E亦僅基於先前回合之所儲存值A及E。
舉例而言,藉由自先前雜湊回合數目N-1擷取(例如,讀取)一所儲存雜湊值A而獲得一給定雜湊回合數目N之雜湊值B(例如,回合N=59之雜湊值B係自第58個回合506之暫存器A擷取,如由路徑528所展示),藉由自先前雜湊回合數目N-2擷取一所儲存雜湊值A而獲得一給定回合N之雜湊值C(例如,回合N=59之雜湊值C係自第57個回合504之暫存器A擷取,如由路徑524所展示),且藉由自先前雜湊回合數目N-3擷取一所儲存雜湊值A而獲得一給定回合N之雜湊值D(例如,回合N=59之雜湊值D係自第56個回合502之暫存器A擷取,如由路徑512所展示)。類似地,藉由自先前雜湊回合數目N-1擷取一所儲存雜湊值E而獲得一給定雜湊回合數目N之每一雜湊值F,藉由自先前雜湊回合數目N-2擷取一所儲存雜湊值E而獲得一給定雜湊回合數目N之每一雜湊值G,且藉由自先前雜湊回合數目N-3擷取一所儲存雜湊值E而獲得一給定雜湊回合數目N之每一雜湊值H。
一般而言,一給定雜湊回合數目N之所儲存雜湊值A係基於先前
雜湊回合數目N-1之雜湊值A、B、C、D、E、F、G及H(例如,使用圖12之邏輯運算306)而判定。藉由分別擷取先前雜湊回合數目N-2之所儲存雜湊值A以及雜湊值B及C(例如,基於圖12之演算法)而獲得來自先前雜湊回合數目N-1之雜湊值B、C及D。藉由分別擷取先前雜湊回合數目N-3之所儲存雜湊值A及雜湊值B而獲得先前雜湊回合數目N-2之雜湊值B及C。藉由擷取先前雜湊回合數目N-4之所儲存雜湊值A而獲得先前雜湊回合數目N-3之雜湊值B。類似地,基於先前雜湊回合數目N-1之雜湊值E、F、G及H(例如,使用圖12之邏輯運算306)而判定給定雜湊回合數目N之所儲存雜湊值E。藉由分別擷取先前雜湊回合數目N-2之所儲存雜湊值E以及雜湊值F及G(例如,基於圖12之演算法)而獲得先前雜湊回合數目N-1之雜湊值F、G及H。藉由擷取先前雜湊回合數目N-3之所儲存雜湊值E及雜湊值F而獲得先前雜湊回合數目N-2之雜湊值F及G。藉由擷取先前雜湊回合數目N-4之所儲存雜湊值E而獲得先前雜湊回合數目N-3之雜湊值F。
換言之,可藉由對儲存於雜湊電路500之先前四個回合(例如,針對一給定回合N之回合N-1、N-2、N-3及N-4)中之每一者之暫存器A及E中之雜湊值進行擷取及/或執行邏輯運算而獲得雜湊值中之每一者。在雜湊電路500之64個回合之後,可藉由讀取第64個回合之所儲存雜湊值A及E且藉由讀取來自雜湊電路500之第60個至第63個回合之暫存器A及E之所儲存雜湊值B至D及F至H而獲得第64個回合之最終狀態。由於雜湊電路500之每一可能輸出可藉由擷取/輸出僅基於所儲存值A及E判定之值而獲得,因此可自雜湊電路500省略暫存器B至D及F至H之硬體(例如,雜湊值可僅儲存於暫存器A及E中而無需在後續回合中針對雜湊值B至D及F至H將雜湊值移位至暫存器)。暫存器B至D及F至H在圖14中由虛線框表示以指示無需經形成以用於待由雜湊電路500輸出之對應狀態之實體暫存器。相比而言,可藉由獲得先前回合之暫
存器A及E之輸出而隱式地判定任何所要雜湊值B至D及F至H。藉由形成雜湊電路500而不形成暫存器B至D及F至H,可顯著減少核心220上之處理資源及晶片面積,藉此允許核心220之改進的計算效率及減少之功率要求。圖14之雜湊電路可有時在本文中稱為對角線雜湊電路,此乃因每一雜湊值B至D及F至H可藉由沿著一對應對角線路徑自一暫存器A或E擷取一所儲存值而獲得。
由雜湊電路500之每一回合輸出之雜湊值可有時稱為雜湊輸出值。由雜湊電路500之最終回合(例如,電路500之第64個回合)輸出之雜湊輸出值可有時在本文中稱為自電路500輸出之一最終雜湊值或最終雜湊輸出值。由在雜湊電路500之最終回合之前之回合輸出之雜湊輸出值可有時在本文中稱為中間雜湊值、工作值、工作變數、中間工作值、中間工作變數、工作雜湊值、工作雜湊變數、中間工作雜湊值或中間工作雜湊變數。
圖15係可由圖14中所展示之類型之雜湊電路500執行以用於基於來自先前雜湊回合之所儲存值A及E而產生一最終雜湊輸出值之說明性步驟之一流程圖。
在步驟550處,雜湊電路500可透過雜湊電路之N個回合使雜湊值移位同時將雜湊值僅儲存於每一回合之暫存器A及E上(例如,其中基於來自先前回合之所儲存值A及E而計算雜湊值A及E)。在圖14之實例中,雜湊電路500可透過雜湊電路之六十四個回合使雜湊值移位。電路500之第64個回合之暫存器A及E中之所儲存雜湊值可經輸出且識別為最終雜湊值A及E(例如,由串A|B|C|D|E|F|G|H給定之一最終雜湊值之部分A及E,其中「|」表示序連運算子)。
在步驟552處,儲存於雜湊電路之N-1回合中之暫存器A及E上之雜湊值可直接自雜湊電路500輸出(例如,而不在稍後回合中透過任何暫存器電路傳遞)且分別經識別為最終B及F雜湊值。舉例而言,電路
500之第63個回合之暫存器A及E中之所儲存值可經輸出且識別為各別最終雜湊值B及F(例如,最終雜湊值A|B|C|D|E|F|G|H之部分B及F)。
在步驟554處,儲存於雜湊電路之N-2回合中之暫存器A及E上之雜湊值可直接自雜湊電路500輸出而不在雜湊電路500之稍後回合中儲存在任何其他暫存器電路處且可分別識別為最終C及G雜湊值。舉例而言,電路500之第62個回合之暫存器A及E中之所儲存值可直接自雜湊電路輸出且識別為各別最終雜湊值C及G(例如,最終雜湊值A|B|C|D|E|F|G|H之部分C及G)。
在步驟556處,儲存於雜湊電路之N-3回合之暫存器A及E上之雜湊值可直接自雜湊電路500輸出而不在雜湊電路500之稍後回合中儲存在任何其他暫存器電路處且可分別識別為最終D及H雜湊值。舉例而言,電路500之第61個回合之暫存器A及E中之所儲存值可直接自雜湊電路輸出且識別為各別最終雜湊值D及H(例如,最終雜湊值A|B|C|D|E|F|G|H之部分D及H)。
在步驟558處,最終雜湊值A至H可經組合(例如,藉由序連在步驟550處儲存之最終A及E值與在步驟552處讀取之最終B及F值、在步驟554處讀取之最終C及G雜湊值以及在步驟556處讀取之最終D及H雜湊值)以產生一最終雜湊輸出值(例如,最終雜湊輸出值A|B|C|D|E|F|G|H)。舉例而言,最終雜湊輸出值可傳遞至難度比較電路(例如,在其中雜湊電路550形成於第二雜湊模組266上之情景中)或可傳遞至填補電路(例如,在其中雜湊電路500形成於第一雜湊模組262上之情景中)。
圖16係展示時脈信號可如何提供至圖14之雜湊電路500以用於基於來自先前雜湊回合之所儲存雜湊值A及E而產生一雜湊輸出之一說明性時序圖。如圖16中所展示,一時脈信號600可提供至雜湊電路500之一給定回合。雜湊電路500之暫存器A及E可(舉例而言)將資料鎖存
於時脈信號600之一上升邊緣上。
在時間T0處,時脈信號600之一上升邊緣可提供至雜湊電路500之給定回合之暫存器A及E且暫存器A及E可鎖存資料(例如,可鎖存由暫存器A及E之四個先前回合輸出之已與一對應訊息字Wt邏輯組合之資料)。圖13之訊息排程電路398可每一時間週期T將不同訊息字Wt提供至雜湊排程電路500。在四個時間週期T已逝去之後(例如,在提供擁有訊息字Wt之四個回合之後),時脈信號600之一上升邊緣可控制暫存器A及E以鎖存新資料。時脈信號600可每4*T時間週期具備一上升邊緣以允許執行邏輯計算之四個回合以用於產生將儲存於暫存器A上之下一值(例如,此乃因每一值A係基於所儲存值之四個先前回合而計算)。若期望,則字Wt可由訊息電路398預計算且每一時間週期T提供至雜湊電路500(例如,此乃因用以計算一給定字Wt之時間一般比計算一雜湊值A或E所需要之時間週期短得多)。圖16之實例僅係說明性的。若期望,則暫存器A及E可在時脈信號600之下降邊緣上或基於任何其他觸發器進行鎖存。
在某些情景中,圖13之訊息排程電路398包含雜湊電路500之每一回合之各別暫存器。舉例而言,圖13之訊息排程電路398可包含各自使字移位至下一暫存器之十六個暫存器400。包含用於將字在暫存器之間雜湊及移位之每一回合之一各別暫存器可消耗核心220上之過量之晶片空間。若期望,則圖13之訊息排程電路398可藉由針對雜湊電路500之每十六個回合使訊息排程電路形成有一單個暫存器而最佳化以減少資源及面積消耗。圖17係展示可如何提供最佳化訊息排程電路以用於產生用於雜湊電路500之訊息字之一說明性圖式。
如圖17中所展示,雜湊模組700(例如,圖11之第一雜湊模組262、第二雜湊模組266等)可包含具有用於實施一SHA-256雜湊演算法之64個雜湊回合之雜湊電路500(例如,如結合圖12及/或圖14所闡
述)及用於將訊息字提供至雜湊電路500之訊息排程電路702。
若期望,則雜湊電路500可包含插置於雜湊電路500之16個回合(16R)之每一群組704之間的管線暫存器702。舉例而言,一第一管線暫存器702-1可插置於十六個回合(例如,回合0至15)之一第一群組704-1與十六個回合(例如,回合16至31)之一第二群組704-2之間,一第二管線暫存器702-2可插置於第二回合群組704-2與一第三回合群組704-3(例如,回合32至47)之間,且一第四管線暫存器可形成於一第四回合群組704-4(例如,回合48至63)之輸出處。第一個十六個回合704-1可接收一輸入初始雜湊值Hi且可在具備由訊息排程電路702產生之訊息排程字Wt時基於圖12及/或圖14中所展示之邏輯之十六個回合而處理初始雜湊值Hi。
控制電路710可控制字Wt至雜湊電路500之傳輸(例如,電路710可在雜湊電路500與訊息排程電路702之間介接)。雜湊管線暫存器702可使用時脈信號Mclk計時且可將前16個回合704之輸出鎖存在時脈信號Mclk之一上升邊緣處。此實例僅係說明性的,且若期望,則管線暫存器702可在時脈Mclk之一下降邊緣上或使用任何其他所要觸發器進行鎖存。
十六個字Wt可時脈信號Mclk之每循環提供至每一雜湊回合群組704。以此方式,可執行雜湊之十六個回合(每一回合具備一對應訊息字Wt)以產生鎖存至每一暫存器702上之一輸出。換言之,時脈信號Mclk可控制管線702使得管線一旦已產生前十六個雜湊回合704之輸出便鎖存該輸出。舉例而言,第一管線702-1可鎖存回合704-1之一輸出且可將經鎖存資料作為一輸入提供至回合704-2。第二管線702-2可鎖存回合704-2之一輸出且可將經鎖存資料作為一輸入提供至回合704-3。第三管線702-3可鎖存回合704-3之一輸出且可將經鎖存資料作為一輸入提供至回合704-4。第四管線702-4可鎖存回合704-4之輸出且可
輸出彼值作為雜湊輸出值H0(或第二雜湊模組266中之輸出值HF)。
訊息排程電路702可包含控制電路710、訊息暫存器712(例如,一第一暫存器712-1、一第二暫存器712-2、一第三暫存器712-3、一第四暫存器712-4等)及一指標暫存器714。第一訊息暫存器712-1可接收一訊息輸入W(例如,在其中模組700係第一雜湊模組262之情景中自模組260或在其中模組700係第二雜湊模組266之情景中自第一雜湊模組262,如圖11中所展示)。暫存器712可使用時脈信號Mclk(例如,提供至管線暫存器702之相同時脈信號)計時。暫存器712可在接收時脈信號Mclk之一上升邊緣時鎖存其輸入。藉由使暫存器702與管線暫存器702同步,新字可在由電路500執行雜湊之每十六個回合之後移位至訊息暫存器712中。此實例僅係說明性的,且若期望,則暫存器712可在時脈信號Mclk之一下降邊緣上或使用任何其他觸發器鎖存資料。
如圖17中所展示,第一訊息暫存器712-1可將輸入W鎖存在時脈信號Mclk之一上升邊緣上。第一訊息暫存器712-1可基於所儲存訊息W而產生並輸出訊息字Wt。暫存器712可基於自指標暫存器714接收之讀取及寫入指標而輸出字Wt。由指標暫存器714產生之讀取及寫入指標可自暫存器712讀取字且可基於如圖13中所展示之訊息排程398之邏輯演算法而透過暫存器712控制字移位。指標暫存器714可使用具有比時脈信號Mclk之週期短十五倍之一週期之一快速時脈信號Hclk來計時。指標暫存器714可控制暫存器712以針對時脈信號Mclk之每一循環基於儲存於彼暫存器上之一訊息而輸出十六個不同字Wt。在時脈信號Mclk之一個循環之後(例如,在已輸出16個訊息字Wt且已由每一雜湊回合群組704執行十六個雜湊回合之後),儲存於暫存器712-1上之訊息可輸出且鎖存至第二暫存器712-2上且一新訊息可經鎖存及儲存至第一暫存器712-1上。可繼續此程序直至訊息儲存於每一暫存器712上為止。
每一暫存器712可經由控制電路710將一所儲存訊息W之十六個訊息字Wt提供至一對應雜湊回合群組704(例如,針對對應回合群組704中之一對應回合提供十六個訊息字中之每一者)。舉例而言,第一訊息暫存器712-1可經由控制電路710將十六個不同訊息字Wt提供至第一雜湊回合群組704-1,第二訊息暫存器712-2可經由控制電路710將十六個不同訊息字Wt提供至第二回合群組704-2,第三訊息暫存器712-3可將訊息字Wt提供至第三回合群組704-3等。由於訊息W針對雜湊電路500之每十六個回合(例如,針對信號Mclk之每一週期或信號Hclk之每十六個週期)移位至一新訊息暫存器712,因此每一訊息暫存器712可將適當訊息字Wt提供至雜湊電路500之其對應回合。
圖18係展示可如何使用自指標暫存器714接收之指標控制訊息暫存器712之一說明性圖式。如圖18中所展示,訊息暫存器712(例如,訊息暫存器712-1、712-2等中之一給定者)可自包含四個讀取指標RA、RB、RC及RD以及一個寫入指標PW之指標暫存器714接收一指標陣列。一訊息W可最初儲存於暫存器712上(例如,當接收時脈信號Mclk之一上升邊緣時)。訊息W可分割成十六個32位元字W0至W15(例如,字W15可係訊息中之一最高有效字,然而字W0係訊息中之一最低有效字)。每一字W0至W15可在載入至暫存器上之前經預計算。
自指標暫存器714接收之讀取指標R可自選定位置處之暫存器712讀取字且自指標暫存器714接收之寫入指標P可將一字寫入至一選定位置處之暫存器712,使得使用一單個暫存器712及對應指標之調整執行圖13中所展示之訊息排程398之邏輯演算法。舉例而言,在訊息W已載入至暫存器712上之後,讀取指標RD可讀取字W15(對應於來自圖13中之左邊之第一字400),讀取指標RC可讀取字W14(對應於圖13中所展示之第二字400),讀取指標RB可讀取字W6(對應於圖13中所展示之第十字400),且讀取指標RA可讀取字W1(對應於圖13中所展示之第
十五個字400)。讀取字W15可提供至如圖13中所展示之邏輯電路406且邏輯電路406之輸出可使用第一加法器電路402與讀取字W15組合。讀取字W6及第一加法器電路402之輸出可在第二加法器電路402處組合。讀取字W1可提供至邏輯406且邏輯406之輸出可在第三加法器電路402處與第二加法器電路之輸出組合。
在已基於圖13之邏輯讀取及組合值中之每一者之後,每一讀取指標R及寫入指標P可向上移位一個字。舉例而言,讀取指標RA遞增至字W0,讀取指標RB遞增至字W5,讀取指標RC遞增至字W13,讀取指標RD遞增至字W14,且寫入指標P遞增至字W14,如由箭頭720所展示。在已使指標移位之後,新計算之字(例如,如在移位及使用圖13中所展示之邏輯之前基於由讀取指標R讀取之字而計算)可寫入在寫入指標P之位置處。以此方式,可藉由以下方式執行圖13之訊息排程演算法:使用一單個暫存器且使提供至暫存器之讀取及寫入指標移位,而非藉由形成十六個單獨暫存器400且使值在暫存器之間移位,藉此相對於其中形成十六個單獨暫存器之情景節省核心220上之有價值之晶片面積。
可透過暫存器712以係時脈信號Mclk之頻率之十六倍之一頻率使指標R及P遞增(例如,此乃因時脈信號Hclk具有一頻率,其為信號Mclk之十六倍以上),使得十六個字提供至雜湊電路500之十六個回合704之一對應群組。在已自暫存器712讀取十六個字之後,指標可使暫存器712溢位,可接收訊息時脈Mclk之一上升邊緣,寫入於暫存器712上之訊息W可移位至後續訊息暫存器712,且一新訊息W可寫入至暫存器712上。暫存器712可隨後將新儲存之訊息之訊息字Wt提供至其對應雜湊回合群組704。
在實踐中,使訊息W在訊息暫存器712之間移位可需要過量處理資源。若期望,則可使用諸如一隨機存取記憶體(RAM)陣列之一記憶
體陣列或其他記憶體單元而非使用圖16及圖17中所展示之類型之一分散暫存器組實施訊息排程電路700以消除使訊息W在訊息暫存器712之間移位之需要。圖19係展示可如何使用記憶體(例如,靜態或動態隨機存取記憶體(RAM))實施訊息排程電路700之一說明性圖式。
如圖19中所展示,雜湊模組700可包含由記憶體元件802之一或多個陣列(例如,一第一RAM陣列802-1、一第二RAM陣列802-2、一第三RAM陣列802-3及一第四RAM陣列802-4)形成之訊息排程電路800。陣列802可包含任何所要類型之記憶體,諸如靜態隨機存取記憶體(SRAM)。每一陣列802可包含配置成列及行之若干個記憶體單元804。每一記憶體單元804可儲存一對應32位元字。一陣列802中之記憶體單元804之每一行可包含一對應訊息W(其中每一行表示彼訊息中之一32位元字)。以此方式,多個訊息可經預計算且儲存至每一陣列802上。陣列802可經由切換電路806(例如,一切換矩陣或切換組構)耦合至雜湊電路500。
陣列802可自指標暫存器714(未展示)接收在一給定時間處選擇(啟動)陣列802之行中之一單個行(例如,在一給定時間處啟動所儲存字中之一單個字)之行指標C。自指標暫存器714接收之讀取指標R及寫入指標P可讀取及寫入選定行之字以實施圖13之訊息排程演算法(例如,類似於如結合圖18所闡述),使得十六個字Wt由每一行之每一暫存器輸出。在已執行雜湊之十六個回合之後(例如,在已讀取十六個字之後),指標暫存器714可使行指標C移位至陣列802中之下一行以啟動儲存於彼行中之訊息W。此訊息然後可用於產生待提供至雜湊電路500之對應字Wt(基於指標R及P)。若期望,則陣列802之每一行可針對一特定雜湊回合群組704包含用於產生字之一訊息。舉例而言,陣列704之第一行可用於針對第一雜湊回合群組704-1提供字,陣列704之第二行可用於針對第二雜湊回合群組704-2提供字等。行指標C可經
移位以選擇對應於雜湊回合群組704中之一給定者的陣列802之行以用於將訊息字提供至彼雜湊回合群組。
字Wt可由切換電路806路由至一對應雜湊回合群組704(例如,使得每一陣列802在一給定時間處將字Wt提供至一單個對應雜湊回合群組704)。切換電路806可具有各自耦合至一對應雜湊回合群組704之一第一埠群組812及各自耦合至訊息記憶體陣列802中之一對應者之一第二埠群組810。控制電路820可提供將切換電路806放在一所要組態中之控制信號以用於在任何所要陣列802與任何所要雜湊群組704之間路由字Wt。舉例而言,電路820可控制切換電路806以在行指標C指向陣列802-1之第一行時傳遞來自陣列802-1之第一行之字,可控制電路806以在行指標C指向陣列802-1之第二行時傳遞來自陣列802-1之第二行之字,可控制電路806以在行指標C指向陣列802-1之第三行時傳遞來自陣列802-1之第三行之字等。切換電路806可將來自第二陣列802-2、第三陣列802-3及第四陣列802-4之訊息字同時路由至對應雜湊回合群組704(例如,不自第一陣列802-1接收訊息字之雜湊回合群組704)。
舉例而言,控制電路820可將切換電路806放在一第一組態中,其中埠812A耦合至埠810A,埠812B耦合至埠810B,埠812C耦合至埠810C,且埠812D耦合至埠810D使得第一陣列802-1將字Wt提供至第一雜湊回合群組704-1,第二陣列802-2將字Wt提供至第二雜湊回合群組704-2,第三陣列802-3將字Wt提供至第三雜湊回合群組704-3,且第四陣列802-4將字Wt提供至第四雜湊回合群組704-4(例如,同時使用行指標C選擇每一陣列802之第一行)。作為另一實例,控制電路820可將切換電路806放在一第二組態中,其中埠810A耦合至埠812B,埠810B耦合至埠812C,埠810C耦合至埠812D,且埠810D耦合至埠812A使得第一陣列802-1將字提供至第二雜湊回合群組704-2,第二陣列
802-2將字提供至第三雜湊回合群組704-3,第三陣列802-3將字提供至第四雜湊回合群組704-4,且第四陣列802-4將字提供至第一雜湊回合群組704-1(例如,同時使用行指標C選擇每一陣列802中之第二行)。舉例而言,可在已使用切換電路806之第一組態執行雜湊之十六個回合之後(例如,在處於第一組態中時時脈信號Mclk之一個週期之後)使用切換電路806之第二組態,使得雜湊值繼續透過雜湊電路500之管線暫存器702傳遞。
類似地,控制電路820可將切換電路806放在繼第二組態之後之一第三組態中(例如,在處於第二組態中時脈信號Mclk之一個週期之後),其中埠810A耦合至埠812C,埠810B耦合至埠812D,埠810C耦合至埠812A,且埠810D耦合至埠812B使得第一陣列802-1將字提供至第三雜湊回合群組704-3,第二陣列802-2將字提供至第四雜湊回合群組704-4,第三陣列802-3將字提供至第一雜湊回合群組704-1,且第四陣列802-4將字提供至第二雜湊回合群組704-2(例如,同時使用行指標C選擇每一陣列802中之第三行)。控制電路820可隨後將切換電路806放在一第四組態中,其中埠810A耦合至埠812D,埠810B耦合至埠812A,埠810C耦合至埠812B,且埠810D耦合至埠812C使得第一陣列802-1將字提供至第四雜湊回合群組704-4,第二陣列802-2將字提供至第一雜湊回合群組704-1,第三陣列802-3將字提供至第二雜湊回合群組704-2,且第四陣列802-4將字提供至第三雜湊回合群組704-3(例如,同時使用行指標C選擇每一陣列802中之第四行)。控制電路820可隨後將切換電路806放回至第一組態中。以此方式,陣列802中之每一者可基於四個所儲存訊息將訊息字提供至管線輸送之雜湊回合群組704中之每一者且陣列802中之每一者可在雜湊值透過管線500傳遞時同時將字提供至一對應群組704(例如,訊息字可作為一個二維記憶體查找而非作為一連串暫存器之一輸出提供至雜湊電路500)。
圖17及圖18之實例僅係說明性的。若期望,則陣列802可形成為同時將字提供至雜湊回合之每一群組之一單個陣列(例如,具有十六個列及行)或形成為任一所要數目個陣列。訊息可以任一所要次序儲存於陣列802之行中(例如,用於第一雜湊群組704-1之一訊息可形成於陣列802之第一行、第二行、第三行或第四行中,用於第二雜湊群組704-2之一訊息可形成於第一行、第二行、第三行或第四行中等)。雜湊電路500可分割成任一所要大小之雜湊回合群組(例如,可形成任一所要數目個管線暫存器702),諸如八個回合、三十二個回合、四個回合等之群組。時脈Mclk及Hclk之頻率可經調整以適應每一管線輸送之群組704中之回合之數目之任何改變(例如,在其中每一群組704包含八個雜湊回合之情景中,時脈Hclk可具有係時脈Mclk之週期之1/8之一週期)。一般而言,任一所要陣列802可使用切換電路806以任一所要次序耦合至任一對應雜湊回合群組704。
以此方式,訊息字可藉由使耦合至記憶體陣列之指標移位而非使訊息W在如圖17之配置中之暫存器之間移位且而非使字在如圖13中所展示之多個暫存器400之間移位而提供。藉由減少所需要之訊息及字移位之數目,可減少訊息排程電路之電力及資源消耗。若期望,則圖17及圖19之訊息排程配置可與圖14之對角線雜湊電路或與任一其他所要雜湊方案組合。舉例而言,圖17及圖19之雜湊回合704可針對每一回合僅包含暫存器A及E且暫存器702可基於先前雜湊回合之暫存器A及E中之所儲存雜湊值而記錄雜湊值B至D及F至H。若期望,則可使用一對角線訊息傳送方案(例如,類似於圖14之對角線雜湊方案)操作訊息排程電路702及/或800。
根據一實施例,提供一積體電路上之密碼編譯雜湊電路,該密碼編譯雜湊電路包含:一第一暫存器,其儲存一第一雜湊值;邏輯電路,其經組態以至少基於該所儲存第一雜湊值而產生一第二雜湊值;
及一第二暫存器,其儲存該第二雜湊值,該第二暫存器經組態以輸出該所儲存第二雜湊值作為一雜湊輸出值之部分,該第一暫存器經組態以直接輸出該所儲存第一雜湊值作為該雜湊輸出值之部分,且該第一雜湊值不同於該第二雜湊值。
根據另一實施例,該密碼編譯雜湊電路包含:一第三暫存器,其儲存一第三雜湊值,該邏輯電路經組態以至少基於該所儲存第三雜湊值而產生該第一雜湊值,該第三暫存器經組態以直接輸出該所儲存第三雜湊值作為該雜湊輸出值之一部分,且該第三雜湊值不同於該等第一及第二雜湊值。
根據另一實施例,該密碼編譯雜湊電路包含:一第四暫存器,其儲存一第四雜湊值,該邏輯電路經組態以至少基於該所儲存第四雜湊值而產生該第三雜湊值,該第四暫存器經組態以直接輸出該所儲存第四雜湊值作為該雜湊輸出值之部分,且該第四雜湊值不同於該等第一、第二及第三雜湊值。
根據另一實施例,該雜湊輸出值包含一256位元雜湊輸出值且該等第一、第二、第三及第四雜湊值各自具有32個位元。
根據另一實施例,該密碼編譯雜湊電路包含:一第三暫存器,其儲存一第三雜湊值;及一第四暫存器,其儲存一第四雜湊值,該邏輯電路經組態以至少基於該所儲存第三雜湊值而產生該第四雜湊值且該邏輯電路經組態以至少基於該等所儲存第一及第三雜湊值而產生該第二雜湊值,該第三暫存器經組態以直接輸出該所儲存第三雜湊值作為該雜湊輸出值之部分,該第四暫存器經組態以輸出該所儲存第四雜湊值作為該雜湊輸出值之部分,該第三雜湊值不同於該等第一及第二雜湊值,且該第四雜湊值不同於該等第一、第二及第三雜湊值。
根據另一實施例,該密碼編譯雜湊電路包含:一第五暫存器,其儲存一第五雜湊值,該第五暫存器經組態以直接輸出該第五雜湊值
作為該雜湊輸出值之部分,且該第五雜湊值不同於該等第一、第二、第三及第四雜湊值;及一第六暫存器,其儲存一第六雜湊值,該邏輯電路經組態以至少基於該所儲存第六雜湊值而產生該第三雜湊值,該邏輯電路經組態以至少基於該等所儲存第五及第六雜湊值而產生該第一雜湊值,該第六暫存器經組態以直接輸出該第六雜湊值作為該雜湊輸出值之部分,且該第六雜湊值不同於該等第一、第二、第三、第四及第五雜湊值。
根據另一實施例,該密碼編譯雜湊電路包含:一第七暫存器,其儲存一第七雜湊值,該第七暫存器經組態以直接輸出該第七雜湊值作為該雜湊輸出值之部分,且該第七雜湊值不同於該等第一、第二、第三、第四、第五及第六雜湊值;及一第八暫存器,其儲存一第八雜湊值,該邏輯電路經組態以至少基於該所儲存第八雜湊值而產生該第六雜湊值,該邏輯電路經組態以至少基於該等所儲存第七及第八雜湊值而產生該第五雜湊值,該第八暫存器經組態以直接輸出該第八雜湊值作為該雜湊輸出值之部分,且該第八雜湊值不同於該等第一、第二、第三、第四、第五、第六及第七雜湊值。
根據另一實施例,該雜湊輸出值包含一256位元值且該雜湊輸出值中之該等第一、第二、第三、第四、第五、第六、第七及第八雜湊值各自具有32個位元。
根據另一實施例,該邏輯電路自訊息排程電路接收一32位元訊息字且經組態以至少基於該所儲存第一雜湊值及該所接收32位元訊息字而產生該第二雜湊值。
根據另一實施例,該密碼編譯雜湊電路包含經組態以執行一SHA-256雜湊演算法之六十四個回合之安全雜湊演算法256(SHA-256)電路,且該等第一及第二雜湊暫存器用於執行該SHA-256雜湊演算法之該六十四個回合中之兩個回合。
根據另一實施例,該密碼編譯雜湊電路經組態以將該雜湊輸出值提供至根據一比特幣協定比較該雜湊輸出值與一預定難度值之難度比較電路。
根據另一實施例,該雜湊輸出值包含自該密碼編譯雜湊電路輸出之一最終雜湊值。
根據另一實施例,該雜湊輸出值包含用於產生自該密碼編譯雜湊電路輸出之一最終雜湊值之一中間工作值。
根據一實施例,提供一種積體電路,該積體電路包含:雜湊電路,其經組態以基於一初始雜湊值及複數個訊息字而執行一密碼編譯雜湊演算法之複數個順序回合;一訊息暫存器,其經組態以儲存該複數個訊息字;及控制電路,該控制電路經組態以將該複數個訊息字自該訊息暫存器選擇性地路由至該雜湊電路。
根據另一實施例,該控制電路經組態以藉由將該複數個訊息字之選定訊息字自該訊息暫存器順序地路由至該雜湊電路而選擇性地路由該複數個訊息字。
根據另一實施例,該控制電路經組態以藉由向該訊息暫存器提供複數個讀取指標及一寫入指標而選擇性地路由該複數個訊息字。
根據另一實施例,該控制電路經組態以使用該複數個讀取指標自該訊息暫存器讀取該複數個訊息字之一子集,經組態以基於該複數個訊息字之該所讀取子集而產生一新訊息字,且經組態以使用該寫入指標將該新訊息字寫入至該訊息暫存器。
根據另一實施例,該控制電路經組態以在自該訊息暫存器讀取該複數個訊息字之該子集之後且在將該新訊息字寫入至該訊息暫存器之前使該複數個讀取指標及該寫入指標遞增。
根據另一實施例,該積體電路包含:一額外訊息暫存器,其經組態以儲存額外複數個訊息字,該控制電路經組態以將該額外複數個
訊息字自該額外訊息暫存器選擇性地路由至該雜湊電路。
根據另一實施例,該積體電路包含:至少一個管線暫存器,其將該雜湊電路分割成雜湊電路之至少第一及第二群組,該第一群組之雜湊電路經組態以基於該複數個訊息字而執行該密碼編譯雜湊演算法之該複數個順序回合之一第一子集,該第二群組之雜湊電路經組態以基於該額外複數個訊息字及該管線暫存器之一輸出而執行該密碼編譯雜湊演算法之該複數個順序回合之一第二子集,該控制電路經組態以將該複數個訊息字自該訊息暫存器選擇性地路由至該第一群組之雜湊電路,且該控制電路經組態以將該額外複數個訊息字自該額外訊息暫存器選擇性地路由至該第二群組之雜湊電路。
根據另一實施例,該密碼編譯雜湊演算法包含具有六十四個順序回合之一安全雜湊演算法256(SHA-256)演算法,該複數個順序雜湊回合之該第一子集包含該六十四個順序回合中之一第一個十六個順序回合,且該複數個順序雜湊回合之該第二子集包含該六十四個順序回合中之一第二個十六個順序回合。
根據另一實施例,該至少一個管線暫存器、該訊息暫存器及該額外訊息暫存器係使用具有一共同頻率之一時脈信號來計時。
根據另一實施例,該訊息暫存器接收並儲存一訊息且該控制電路將該所儲存訊息之部分作為該複數個訊息字自該訊息暫存器選擇性地路由至該雜湊電路。
根據另一實施例,該訊息係一512位元訊息且該複數個訊息字中之每一訊息字係一32位元訊息字。
根據另一實施例,該積體電路包含一額外訊息暫存器,該訊息暫存器經組態以在該複數個訊息字已被路由至該雜湊電路之後將該所儲存訊息提供至該額外訊息暫存器,且該控制電路經組態以將該複數個訊息字自該額外訊息暫存器選擇性地路由至該雜湊電路。
根據一實施例,一種形成支援以一數位貨幣之交易之節點之一同級間網路中之一節點的電子裝置,提供該電子裝置,該電子裝置包含:雜湊電路,其經組態以至少基於一初始雜湊值及複數個訊息字而執行一安全雜湊演算法256(SHA-256)密碼編譯雜湊演算法之複數個順序回合;一記憶體陣列,其經組態以儲存該複數個訊息字;及控制電路,該控制電路經組態以將該複數個訊息字自該記憶體陣列選擇性地路由至該雜湊電路。
根據另一實施例,該雜湊電路包含:一第一群組之雜湊電路,其經組態以基於該初始雜湊值及該複數個訊息字而執行該SHA-256密碼編譯雜湊演算法之該複數個順序回合;及一第二群組之雜湊電路,其經組態以基於該第一群組之雜湊電路之一輸出及額外複數個訊息字而執行該SHA-256密碼編譯雜湊演算法之額外複數個順序回合,該記憶體陣列進一步經組態以儲存該額外複數個訊息字,且該控制電路經組態以將該額外複數個訊息字自該記憶體陣列選擇性地路由至該第二群組之雜湊電路。
根據另一實施例,該記憶體陣列包含配置成列及行之複數個記憶體元件且該控制電路經組態以藉由提供該記憶體陣列之列及行指標而選擇性地路由該額外複數個訊息字及該複數個訊息字。
根據另一實施例,該電子裝置包含:一額外記憶體陣列,其經組態以儲存該複數個訊息字及該額外複數個訊息字,該控制電路經組態以與將該額外複數個訊息字自該額外記憶體陣列選擇性地路由至該第二群組之雜湊電路同時地將該複數個訊息字自該記憶體陣列選擇性地路由至該第一群組之雜湊電路。
根據另一實施例,該電子裝置包含:一管線暫存器,其插置於該第一群組之雜湊電路與該第二群組之間;及切換電路,其耦合於該記憶體陣列、該額外記憶體陣列及該雜湊電路之間,該控制電路經組
態以控制該切換電路以在該記憶體陣列、該額外記憶體陣列及該雜湊電路之間選擇性地路由該複數個訊息字及該額外複數個訊息字。
前述內容僅圖解說明本發明之原理且熟習此項技術者可在不背離本發明之範疇及精神之情況下做出各種修改。可個別地或以任何組合形式實施前述實施例。
500‧‧‧雜湊排程電路/雜湊電路/雜湊排程/排程/排程電路/電路/管線
502‧‧‧第56個回合/第56個雜湊回合
504‧‧‧第57個回合/第57個雜湊回合
506‧‧‧第58個回合
509‧‧‧第60個回合
511‧‧‧輸入/輸入箭頭/路徑
512‧‧‧路徑
513‧‧‧輸入箭頭/路徑
514‧‧‧路徑
516‧‧‧路徑
518‧‧‧路徑
520‧‧‧路徑
522‧‧‧路徑
524‧‧‧路徑
526‧‧‧路徑
528‧‧‧路徑
530‧‧‧路徑
534‧‧‧路徑
536‧‧‧路徑
A‧‧‧暫存器/第一暫存器/32位元雜湊值/32位元雜湊部分/雜湊值/輸入暫存器/輸入雜湊值/輸出雜湊值/先前所儲存值/所儲存雜湊值/所儲存值/部分/值
B‧‧‧第二暫存器/暫存器/輸出暫存器/32位元雜湊值/32位元雜湊部分/雜湊值/輸入雜湊值/輸出雜湊值/部分
C‧‧‧第三暫存器/暫存器/32位元雜湊值/32位元雜湊部分/雜湊值/輸入雜湊值/輸出雜湊值/輸入雜湊值/部分/行指標
D‧‧‧暫存器/32位元雜湊值/32位元雜湊部分/雜湊值/輸入雜湊值/輸出雜湊值/部分
E‧‧‧暫存器/32位元雜湊值/32位元雜湊部分/雜湊值/輸入雜湊值/先前所儲存值/所儲存值/部分
F‧‧‧暫存器/32位元雜湊值/32位元雜湊部分/雜湊值/輸入雜湊值/部分
G‧‧‧暫存器/32位元雜湊值/32位元雜湊部分/雜湊值/輸入雜湊值/部分
H‧‧‧暫存器/32位元雜湊值/32位元雜湊部分/雜湊值/輸入雜湊值/部分
W56‧‧‧第56個回合字
W57‧‧‧第57個回合字
W58‧‧‧第58個回合字
Claims (30)
- 一種一積體電路上之密碼編譯雜湊電路,其包括:一第一暫存器,其儲存一第一雜湊值;邏輯電路,其經組態以至少基於該所儲存第一雜湊值而產生一第二雜湊值;及一第二暫存器,其儲存該第二雜湊值,其中該第二暫存器經組態以輸出該所儲存第二雜湊值作為一雜湊輸出值之一部分,該第一暫存器經組態以直接輸出該所儲存第一雜湊值作為該雜湊輸出值之部分,且該第一雜湊值不同於該第二雜湊值。
- 如請求項1之密碼編譯雜湊電路,其進一步包括:一第三暫存器,其儲存一第三雜湊值,其中該邏輯電路經組態以至少基於該所儲存第三雜湊值而產生該第一雜湊值,其中該第三暫存器經組態以直接輸出該所儲存第三雜湊值作為該雜湊輸出值之一部分,且其中該第三雜湊值不同於該等第一及第二雜湊值。
- 如請求項2之密碼編譯雜湊電路,其進一步包括:一第四暫存器,其儲存一第四雜湊值,其中該邏輯電路經組態以至少基於該所儲存第四雜湊值而產生該第三雜湊值,其中該第四暫存器經組態以直接輸出該所儲存第四雜湊值作為該雜湊輸出值之部分,且其中該第四雜湊值不同於該等第一、第二及第三雜湊值。
- 如請求項3之密碼編譯雜湊電路,其中該雜湊輸出值包括一256位元雜湊輸出值且其中該等第一、第二、第三及第四雜湊值各自具有32個位元。
- 如請求項1之密碼編譯雜湊電路,其進一步包括: 一第三暫存器,其儲存一第三雜湊值;及一第四暫存器,其儲存一第四雜湊值,其中該邏輯電路經組態以至少基於該所儲存第三雜湊值而產生該第四雜湊值且該邏輯電路經組態以至少基於該等所儲存第一及第三雜湊值而產生該第二雜湊值,其中該第三暫存器經組態以直接輸出該所儲存第三雜湊值作為該雜湊輸出值之部分,其中該第四暫存器經組態以輸出該所儲存第四雜湊值作為該雜湊輸出值之部分,其中該第三雜湊值不同於該等第一及第二雜湊值,且其中該第四雜湊值不同於該等第一、第二及第三雜湊值。
- 如請求項5之密碼編譯雜湊電路,其進一步包括:一第五暫存器,其儲存一第五雜湊值,其中該第五暫存器經組態以直接輸出該第五雜湊值作為該雜湊輸出值之部分,且其中該第五雜湊值不同於該等第一、第二、第三及第四雜湊值;及一第六暫存器,其儲存一第六雜湊值,其中該邏輯電路經組態以至少基於該所儲存第六雜湊值而產生該第三雜湊值,其中該邏輯電路經組態以至少基於該等所儲存第五及第六雜湊值而產生該第一雜湊值,其中該第六暫存器經組態以直接輸出該第六雜湊值作為該雜湊輸出值之部分,且其中該第六雜湊值不同於該等第一、第二、第三、第四及第五雜湊值。
- 如請求項6之密碼編譯雜湊電路,其進一步包括:一第七暫存器,其儲存一第七雜湊值,其中該第七暫存器經組態以直接輸出該第七雜湊值作為該雜湊輸出值之部分,且其中該第七雜湊值不同於該等第一、第二、第三、第四、第五及第六雜湊值;及一第八暫存器,其儲存一第八雜湊值,其中該邏輯電路經組 態以至少基於該所儲存第八雜湊值而產生該第六雜湊值,其中該邏輯電路經組態以至少基於該等所儲存第七及第八雜湊值而產生該第五雜湊值,其中該第八暫存器經組態以直接輸出該第八雜湊值作為該雜湊輸出值之部分,且其中該第八雜湊值不同於該等第一、第二、第三、第四、第五、第六及第七雜湊值。
- 如請求項7之密碼編譯雜湊電路,其中該雜湊輸出值包括一256位元值且該雜湊輸出值中之該等第一、第二、第三、第四、第五、第六、第七及第八雜湊值各自具有32個位元。
- 如請求項1之密碼編譯雜湊電路,其中該邏輯電路自訊息排程電路接收一32位元訊息字且經組態以至少基於該所儲存第一雜湊值及該所接收32位元訊息字而產生該第二雜湊值。
- 如請求項1之密碼編譯雜湊電路,其中該密碼編譯雜湊電路包括經組態以執行一SHA-256雜湊演算法之六十四個回合之安全雜湊演算法256(SHA-256)電路,且其中該等第一及第二雜湊暫存器用於執行該SHA-256雜湊演算法之該六十四個回合中之兩個回合。
- 如請求項10之密碼編譯雜湊電路,其中該密碼編譯雜湊電路經組態以將該雜湊輸出值提供至根據一比特幣協定比較該雜湊輸出值與一預定難度值之難度比較電路。
- 如請求項1之密碼編譯雜湊電路,其中該雜湊輸出值包括自該密碼編譯雜湊電路輸出之一最終雜湊值。
- 如請求項1之密碼編譯雜湊電路,其中該雜湊輸出值包括用於產生自該密碼編譯雜湊電路輸出之一最終雜湊值之一中間工作值。
- 一種積體電路,其包括:雜湊電路,其經組態以基於一初始雜湊值及複數個訊息字而 執行一密碼編譯雜湊演算法之複數個順序回合;一訊息暫存器,其經組態以儲存該複數個訊息字;及控制電路,其中該控制電路經組態以將該複數個訊息字自該訊息暫存器選擇性地路由至該雜湊電路。
- 如請求項14之積體電路,其中該控制電路經組態以藉由將該複數個訊息字中之選定訊息字自該訊息暫存器順序地路由至該雜湊電路而選擇性地路由該複數個訊息字。
- 如請求項14之積體電路,其中該控制電路經組態以藉由向該訊息暫存器提供複數個讀取指標及一寫入指標而選擇性地路由該複數個訊息字。
- 如請求項16之積體電路,其中該控制電路經組態以使用該複數個讀取指標自該訊息暫存器讀取該複數個訊息字之一子集,經組態以基於該複數個訊息字之該所讀取子集而產生一新訊息字,且經組態以使用該寫入指標將該新訊息字寫入至該訊息暫存器。
- 如請求項17之積體電路,其中該控制電路經組態以在自該訊息暫存器讀取該複數個訊息字之該子集之後且在將該新訊息字寫入至該訊息暫存器之前使該複數個讀取指標及該寫入指標遞增。
- 如請求項14之積體電路,其進一步包括:一額外訊息暫存器,其經組態以儲存額外複數個訊息字,其中該控制電路經組態以將該額外複數個訊息字自該額外訊息暫存器選擇性地路由至該雜湊電路。
- 如請求項19之積體電路,其進一步包括:至少一個管線暫存器,其將該雜湊電路分割成雜湊電路之至少第一及第二群組,其中該第一群組之雜湊電路經組態以基於 該複數個訊息字而執行該密碼編譯雜湊演算法之該複數個順序回合之一第一子集,其中該第二群組之雜湊電路經組態以基於該額外複數個訊息字及該管線暫存器之一輸出而執行該密碼編譯雜湊演算法之該複數個順序回合之一第二子集,其中該控制電路經組態以將該複數個訊息字自該訊息暫存器選擇性地路由至該第一群組之雜湊電路,且其中該控制電路經組態以將該額外複數個訊息字自該額外訊息暫存器選擇性地路由至該第二群組之雜湊電路。
- 如請求項20之積體電路,其中該密碼編譯雜湊演算法包括具有六十四個順序回合之一安全雜湊演算法256(SHA-256)演算法,其中該複數個順序雜湊回合之該第一子集包括該六十四個順序回合中之第一個十六個順序回合,且其中該複數個順序雜湊回合之該第二子集包括該六十四個順序回合中之第二個十六個順序回合。
- 如請求項20之積體電路,其中該至少一個管線暫存器、該訊息暫存器及該額外訊息暫存器係使用具有一共同頻率之一時脈信號來計時。
- 如請求項14之積體電路,其中該訊息暫存器接收並儲存一訊息且其中該控制電路將該所儲存訊息之部分作為該複數個訊息字自該訊息暫存器選擇性地路由至該雜湊電路。
- 如請求項23之積體電路,其中該訊息係一512位元訊息且該複數個訊息字中之每一訊息字係一32位元訊息字。
- 如請求項23之積體電路,其進一步包括:一額外訊息暫存器,其中該訊息暫存器經組態以在該複數個訊息字已被路由至該雜湊電路之後將該所儲存訊息提供至該額外訊息暫存器,且其中該控制電路經組態以將該複數個訊息字 自該額外訊息暫存器選擇性地路由至該雜湊電路。
- 一種形成支援以一數位貨幣之交易之節點之一同級間網路中之一節點的電子裝置,該電子裝置包括:雜湊電路,其經組態以至少基於一初始雜湊值及複數個訊息字而執行一安全雜湊演算法256(SHA-256)密碼編譯雜湊演算法之複數個順序回合;一記憶體陣列,其經組態以儲存該複數個訊息字;及控制電路,其中該控制電路經組態以將該複數個訊息字自該記憶體陣列選擇性地路由至該雜湊電路。
- 如請求項26之電子裝置,其中該雜湊電路包括:一第一群組之雜湊電路,其經組態以基於該初始雜湊值及該複數個訊息字而執行該SHA-256密碼編譯雜湊演算法之該複數個順序回合;及一第二群組之雜湊電路,其經組態以基於該第一群組之雜湊電路之一輸出及額外複數個訊息字而執行該SHA-256密碼編譯雜湊演算法之額外複數個順序回合,其中該記憶體陣列進一步經組態以儲存該額外複數個訊息字,且其中該控制電路經組態以將該額外複數個訊息字自該記憶體陣列選擇性地路由至該第二群組之雜湊電路。
- 如請求項27之電子裝置,其中該記憶體陣列包括配置成列及行之複數個記憶體元件,且其中該控制電路經組態以藉由將列及行指標提供至該記憶體陣列而選擇性地路由該額外複數個訊息字及該複數個訊息字。
- 如請求項27之電子裝置,其進一步包括:一額外記憶體陣列,其經組態以儲存該複數個訊息字及該額外複數個訊息字,其中該控制電路經組態以與將該額外複數個 訊息字自該額外記憶體陣列選擇性地路由至該第二群組之雜湊電路同時地將該複數個訊息字自該記憶體陣列選擇性地路由至該第一群組之雜湊電路。
- 如請求項29之電子裝置,其進一步包括:一管線暫存器,其插置於該第一群組之雜湊電路與該第二群組之雜湊電路之間;及切換電路,其耦合於該記憶體陣列、該額外記憶體陣列及該雜湊電路之間,其中該控制電路經組態以控制該切換電路以在該記憶體陣列、該額外記憶體陣列及該雜湊電路之間選擇性地路由該複數個訊息字及該額外複數個訊息字。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201462065551P | 2014-10-17 | 2014-10-17 | |
| US14/738,659 US20160112200A1 (en) | 2014-10-17 | 2015-06-12 | Cryptographic hashing circuitry having improved scheduling efficiency |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW201636829A true TW201636829A (zh) | 2016-10-16 |
Family
ID=54347876
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW104134120A TW201636829A (zh) | 2014-10-17 | 2015-10-16 | 具有改進的排程效率之密碼編譯雜湊電路 |
Country Status (3)
| Country | Link |
|---|---|
| US (2) | US20160112200A1 (zh) |
| TW (1) | TW201636829A (zh) |
| WO (1) | WO2016060932A1 (zh) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI660274B (zh) * | 2017-03-28 | 2019-05-21 | 香港商阿里巴巴集團服務有限公司 | 基於區塊鏈的資料處理方法及設備 |
| TWI805488B (zh) * | 2022-08-09 | 2023-06-11 | 大陸商鼎捷軟件股份有限公司 | 自動編譯系統及自動編譯方法 |
| US12411996B2 (en) | 2022-08-10 | 2025-09-09 | International Business Machines Corporation | Hardware-based implementation of secure hash algorithms |
| TWI900865B (zh) * | 2022-07-05 | 2025-10-11 | 美商萬國商業機器公司 | 一種處理器以及在該處理器中進行資料處理之方法 |
Families Citing this family (61)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10354325B1 (en) | 2013-06-28 | 2019-07-16 | Winklevoss Ip, Llc | Computer-generated graphical user interface |
| US10068228B1 (en) | 2013-06-28 | 2018-09-04 | Winklevoss Ip, Llc | Systems and methods for storing digital math-based assets using a secure portal |
| US10269009B1 (en) | 2013-06-28 | 2019-04-23 | Winklevoss Ip, Llc | Systems, methods, and program products for a digital math-based asset exchange |
| US11282139B1 (en) | 2013-06-28 | 2022-03-22 | Gemini Ip, Llc | Systems, methods, and program products for verifying digital assets held in a custodial digital asset wallet |
| US9892460B1 (en) | 2013-06-28 | 2018-02-13 | Winklevoss Ip, Llc | Systems, methods, and program products for operating exchange traded products holding digital math-based assets |
| US10409827B2 (en) * | 2014-10-31 | 2019-09-10 | 21, Inc. | Digital currency mining circuitry having shared processing logic |
| US9960909B2 (en) * | 2014-12-08 | 2018-05-01 | Open-Silicon Inc. | High speed and low power hashing system and method |
| US9853977B1 (en) | 2015-01-26 | 2017-12-26 | Winklevoss Ip, Llc | System, method, and program product for processing secure transactions within a cloud computing system |
| US10158480B1 (en) | 2015-03-16 | 2018-12-18 | Winklevoss Ip, Llc | Autonomous devices |
| US10915891B1 (en) | 2015-03-16 | 2021-02-09 | Winklevoss Ip, Llc | Autonomous devices |
| HK1249791A1 (zh) | 2015-03-31 | 2018-11-09 | Nasdaq, Inc. | 区块链交易记录的系统和方法 |
| AU2016288644A1 (en) | 2015-07-02 | 2018-02-22 | Nasdaq, Inc. | Systems and methods of secure provenance for distributed transaction databases |
| US11526877B2 (en) | 2015-10-22 | 2022-12-13 | Coinbase, Inc. | Electronic devices having embedded circuitry for accessing remote digital services |
| US10108812B2 (en) | 2016-01-28 | 2018-10-23 | Nasdaq, Inc. | Systems and methods for securing and disseminating time sensitive information using a blockchain |
| AU2017216289A1 (en) | 2016-02-04 | 2018-09-27 | Nasdaq Technology Ab | Systems and methods for storing and sharing transactional data using distributed computer systems |
| US10313108B2 (en) | 2016-06-29 | 2019-06-04 | Intel Corporation | Energy-efficient bitcoin mining hardware accelerators |
| US10142098B2 (en) * | 2016-06-29 | 2018-11-27 | Intel Corporation | Optimized SHA-256 datapath for energy-efficient high-performance Bitcoin mining |
| US10242065B1 (en) * | 2016-06-30 | 2019-03-26 | EMC IP Holding Company LLC | Combining merkle trees in graph databases |
| EP3491612A1 (en) * | 2016-07-29 | 2019-06-05 | Nchain Holdings Limited | Blockchain-implemented method and system |
| US10755242B2 (en) * | 2016-09-23 | 2020-08-25 | Intel Corporation | Bitcoin mining hardware accelerator with optimized message digest and message scheduler datapath |
| US10938571B2 (en) * | 2016-10-26 | 2021-03-02 | Acronis International Gmbh | System and method for verification of data transferred among several data storages |
| US10586210B2 (en) * | 2016-11-30 | 2020-03-10 | International Business Machines Corporation | Blockchain checkpoints and certified checkpoints |
| US11823089B2 (en) * | 2016-12-02 | 2023-11-21 | Christian Günther | System and method for managing transactions in dynamic digital documents |
| US11574372B2 (en) * | 2017-02-08 | 2023-02-07 | Upstream Data Inc. | Blockchain mine at oil or gas facility |
| US10997120B2 (en) * | 2017-03-16 | 2021-05-04 | Cisco Technology, Inc. | Systems and methods for device visiting frequency estimation |
| CN107124278B (zh) * | 2017-03-30 | 2021-03-30 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置以及数据共享系统 |
| US10630769B2 (en) * | 2017-12-26 | 2020-04-21 | Akamai Technologies, Inc. | Distributed system of record transaction receipt handling in an overlay network |
| US12141871B1 (en) | 2018-02-12 | 2024-11-12 | Gemini Ip, Llc | System, method and program product for generating and utilizing stable value digital assets |
| US10540654B1 (en) | 2018-02-12 | 2020-01-21 | Winklevoss Ip, Llc | System, method and program product for generating and utilizing stable value digital assets |
| US11200569B1 (en) | 2018-02-12 | 2021-12-14 | Winklevoss Ip, Llc | System, method and program product for making payments using fiat-backed digital assets |
| US10929842B1 (en) | 2018-03-05 | 2021-02-23 | Winklevoss Ip, Llc | System, method and program product for depositing and withdrawing stable value digital assets in exchange for fiat |
| US11139955B1 (en) | 2018-02-12 | 2021-10-05 | Winklevoss Ip, Llc | Systems, methods, and program products for loaning digital assets and for depositing, holding and/or distributing collateral as a token in the form of digital assets on an underlying blockchain |
| US12271898B1 (en) | 2018-03-05 | 2025-04-08 | Gemini Ip, Llc | System, method and program product for modifying a supply of stable value digital asset tokens |
| US10373158B1 (en) | 2018-02-12 | 2019-08-06 | Winklevoss Ip, Llc | System, method and program product for modifying a supply of stable value digital asset tokens |
| US10373129B1 (en) | 2018-03-05 | 2019-08-06 | Winklevoss Ip, Llc | System, method and program product for generating and utilizing stable value digital assets |
| US10438290B1 (en) | 2018-03-05 | 2019-10-08 | Winklevoss Ip, Llc | System, method and program product for generating and utilizing stable value digital assets |
| US11334883B1 (en) | 2018-03-05 | 2022-05-17 | Gemini Ip, Llc | Systems, methods, and program products for modifying the supply, depositing, holding and/or distributing collateral as a stable value token in the form of digital assets |
| US11909860B1 (en) | 2018-02-12 | 2024-02-20 | Gemini Ip, Llc | Systems, methods, and program products for loaning digital assets and for depositing, holding and/or distributing collateral as a token in the form of digital assets on an underlying blockchain |
| US11522700B1 (en) | 2018-02-12 | 2022-12-06 | Gemini Ip, Llc | Systems, methods, and program products for depositing, holding and/or distributing collateral as a token in the form of digital assets on an underlying blockchain |
| US11308487B1 (en) | 2018-02-12 | 2022-04-19 | Gemini Ip, Llc | System, method and program product for obtaining digital assets |
| US11475442B1 (en) | 2018-02-12 | 2022-10-18 | Gemini Ip, Llc | System, method and program product for modifying a supply of stable value digital asset tokens |
| US11005646B2 (en) * | 2018-05-23 | 2021-05-11 | International Business Machines Corporation | Blockchain stochastic timer transaction synchronization |
| US12093942B1 (en) | 2019-02-22 | 2024-09-17 | Gemini Ip, Llc | Systems, methods, and program products for modifying the supply, depositing, holding, and/or distributing collateral as a stable value token in the form of digital assets |
| US11240022B1 (en) | 2019-04-11 | 2022-02-01 | Wells Fargo Bank, N.A. | Passive encryption rotation keys |
| CN114144743A (zh) | 2019-05-15 | 2022-03-04 | 上游数据公司 | 移动式区块链挖矿系统和使用方法 |
| US11501370B1 (en) | 2019-06-17 | 2022-11-15 | Gemini Ip, Llc | Systems, methods, and program products for non-custodial trading of digital assets on a digital asset exchange |
| US11770256B1 (en) | 2019-06-20 | 2023-09-26 | Marvell Asia Pte, Ltd. | System and method for bitcoin mining with reduced power |
| US11438142B1 (en) | 2019-08-19 | 2022-09-06 | Marvell Asia Pte, Ltd. | System and method for mining digital currency in a blockchain network |
| CA3076653A1 (en) | 2020-03-21 | 2021-09-21 | Upstream Data Inc. | Portable blockchain mining systems and methods of use |
| US11424922B2 (en) * | 2020-05-14 | 2022-08-23 | Paypal, Inc. | Hashing schemes for cryptographic private key generation |
| CN111600699B (zh) * | 2020-06-17 | 2025-03-11 | 深圳比特微电子科技有限公司 | 用于实现散列算法的电路和方法 |
| TWI734554B (zh) * | 2020-07-13 | 2021-07-21 | 鴻海精密工業股份有限公司 | 基於區塊鏈系統之多媒體資料流防篡改裝置、方法及介質 |
| CN111651402B (zh) * | 2020-07-16 | 2025-03-11 | 深圳比特微电子科技有限公司 | 时钟树、用于执行哈希算法的电路、计算芯片、算力板和计算设备 |
| US20220200807A1 (en) * | 2020-12-17 | 2022-06-23 | Nxp B.V. | Device attestation |
| CN114860318B (zh) * | 2021-02-05 | 2025-05-13 | 深圳比特微电子科技有限公司 | 运算电路、计算芯片和运算电路制造方法 |
| CN114912405B (zh) * | 2021-02-08 | 2025-04-11 | 深圳比特微电子科技有限公司 | 采用全定制布局摆放的芯片以及用于实现散列运算的电子装置 |
| US12047491B2 (en) * | 2021-04-28 | 2024-07-23 | Nxp B.V. | Speeding up hash-chain computations |
| US11288663B1 (en) | 2021-06-25 | 2022-03-29 | Arri E. Manuel | Blockring service, system, and method thereof |
| US12061513B2 (en) * | 2021-11-01 | 2024-08-13 | Chain Reaction Ltd. | Cryptocurrency miner with current reducing compute engine arrangement |
| US12026119B2 (en) * | 2022-06-10 | 2024-07-02 | Chain Reaction Ltd. | Cryptocurrency miner and device enumeration |
| CN118656340A (zh) * | 2024-06-12 | 2024-09-17 | 比特小鹿半导体科技有限公司 | 数据处理方法及设备 |
Family Cites Families (29)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW338263U (en) | 1997-05-31 | 1998-08-11 | chun-sheng Cai | Improved structure of a pair of sandals |
| TW453064B (en) | 2000-01-15 | 2001-09-01 | Via Tech Inc | Transmission control circuit using hashing function operation and its method |
| US7142669B2 (en) | 2000-11-29 | 2006-11-28 | Freescale Semiconductor, Inc. | Circuit for generating hash values |
| US6829355B2 (en) * | 2001-03-05 | 2004-12-07 | The United States Of America As Represented By The National Security Agency | Device for and method of one-way cryptographic hashing |
| US7363099B2 (en) | 2002-06-07 | 2008-04-22 | Cadence Design Systems, Inc. | Integrated circuit metrology |
| US7584441B2 (en) | 2003-09-19 | 2009-09-01 | Cadence Design Systems, Inc. | Method for generating optimized constraint systems for retimable digital designs |
| JP2007536581A (ja) | 2004-05-07 | 2007-12-13 | メンター・グラフィクス・コーポレーション | プロセス変動バンドを用いた集積回路レイアウト設計法 |
| CN101375284B (zh) | 2004-10-25 | 2012-02-22 | 安全第一公司 | 安全数据分析方法和系统 |
| US20080256503A1 (en) | 2006-09-12 | 2008-10-16 | International Business Machines Corporation | Power management architecture and method of modulating oscillator frequency based on voltage supply |
| JP2008103936A (ja) | 2006-10-18 | 2008-05-01 | Toshiba Corp | 秘密情報管理装置および秘密情報管理システム |
| JP2008112318A (ja) | 2006-10-31 | 2008-05-15 | Matsushita Electric Ind Co Ltd | 半導体集積回路の消費電力最適化方法及び半導体設計装置 |
| US7827516B1 (en) | 2007-01-03 | 2010-11-02 | Pdf Solutions, Inc. | Method and system for grouping logic in an integrated circuit design to minimize number of transistors and number of unique geometry patterns |
| US7757187B2 (en) | 2007-01-03 | 2010-07-13 | Pdf Solutions Inc. | Method for mapping a Boolean logic network to a limited set of application-domain specific logic cells |
| US7784013B2 (en) | 2007-01-03 | 2010-08-24 | PDF Acquisition Corp | Method for the definition of a library of application-domain-specific logic cells |
| KR100901697B1 (ko) * | 2007-07-09 | 2009-06-08 | 한국전자통신연구원 | 저전력 sha-1 해쉬 연산 장치 및 이를 이용한 저전력hmac 암호 장치 |
| CN101939946B (zh) | 2008-01-07 | 2013-04-24 | 安全第一公司 | 使用多因素或密钥式分散对数据进行保护的系统和方法 |
| US8160242B2 (en) * | 2008-10-07 | 2012-04-17 | Lsi Corporation | Efficient implementation of arithmetical secure hash techniques |
| JP5198572B2 (ja) * | 2008-10-07 | 2013-05-15 | 富士通株式会社 | 暗号化装置 |
| US8020127B1 (en) * | 2008-11-21 | 2011-09-13 | Xilinx, Inc. | Clock frequency exploration for circuit designs having multiple clock domains |
| TW201038036A (en) | 2009-04-03 | 2010-10-16 | Ra Link Technology Corp | Method for generating hash keys and apparatus for using the same |
| US9413529B2 (en) | 2009-10-30 | 2016-08-09 | International Business Machines Corporation | Distributed storage network and method for storing and retrieving encryption keys |
| CN103477341B (zh) * | 2011-04-06 | 2016-05-18 | 塞尔蒂卡姆公司 | 散列算法在处理器上的有效实现 |
| CN104011709B (zh) | 2011-12-22 | 2018-06-05 | 英特尔公司 | 在256位数据路径中执行jh加密散列的指令 |
| US8873750B2 (en) * | 2013-03-14 | 2014-10-28 | International Business Machines Corporation | Instruction for performing a pseudorandom number generate operation |
| US20170228953A1 (en) | 2014-08-07 | 2017-08-10 | 8857911 Canada Inc. | Proximity access control devices, systems and related methods |
| US20160086175A1 (en) * | 2014-09-22 | 2016-03-24 | Qualcomm Incorporated | Peer-to-peer transaction system |
| US9601022B2 (en) | 2015-01-29 | 2017-03-21 | Qualcomm Incorporated | Systems and methods for restricting drone airspace access |
| US10043021B2 (en) | 2016-04-07 | 2018-08-07 | Blackberry Limited | Controlling access to application data |
| SG11202010090RA (en) | 2018-04-17 | 2020-11-27 | Coinbase Inc | Offline storage system and method of use |
-
2015
- 2015-06-12 US US14/738,659 patent/US20160112200A1/en not_active Abandoned
- 2015-10-08 WO PCT/US2015/054711 patent/WO2016060932A1/en not_active Ceased
- 2015-10-16 TW TW104134120A patent/TW201636829A/zh unknown
-
2020
- 2020-09-10 US US17/017,027 patent/US12063291B2/en active Active
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI660274B (zh) * | 2017-03-28 | 2019-05-21 | 香港商阿里巴巴集團服務有限公司 | 基於區塊鏈的資料處理方法及設備 |
| US10545794B2 (en) | 2017-03-28 | 2020-01-28 | Alibaba Group Holding Limited | Blockchain-based data processing method and equipment |
| US10877802B2 (en) | 2017-03-28 | 2020-12-29 | Advanced New Technologies Co., Ltd. | Blockchain-based data processing method and equipment |
| TWI900865B (zh) * | 2022-07-05 | 2025-10-11 | 美商萬國商業機器公司 | 一種處理器以及在該處理器中進行資料處理之方法 |
| TWI805488B (zh) * | 2022-08-09 | 2023-06-11 | 大陸商鼎捷軟件股份有限公司 | 自動編譯系統及自動編譯方法 |
| US12411996B2 (en) | 2022-08-10 | 2025-09-09 | International Business Machines Corporation | Hardware-based implementation of secure hash algorithms |
Also Published As
| Publication number | Publication date |
|---|---|
| US12063291B2 (en) | 2024-08-13 |
| US20160112200A1 (en) | 2016-04-21 |
| WO2016060932A1 (en) | 2016-04-21 |
| US20200412544A1 (en) | 2020-12-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TW201636829A (zh) | 具有改進的排程效率之密碼編譯雜湊電路 | |
| TWI610188B (zh) | 具有共用處理邏輯之數位貨幣採礦電路 | |
| Gupta et al. | Lightweight hardware accelerator for post-quantum digital signature CRYSTALS-Dilithium | |
| US9942046B2 (en) | Digital currency mining circuitry with adaptable difficulty compare capabilities | |
| Wang et al. | XMSS and embedded systems: XMSS hardware accelerators for RISC-V | |
| TW201602933A (zh) | 數位貨幣探勘電路 | |
| Xie et al. | Special session: The recent advance in hardware implementation of post-quantum cryptography | |
| US10545865B2 (en) | Systems and methods for implementing low-latency lookup circuits using sparse hash functions | |
| Chen et al. | Complete and improved FPGA implementation of classic McEliece | |
| Shen et al. | High-throughput GPU implementation of Dilithium post-quantum digital signature | |
| Yuksel et al. | Universal hash functions for emerging ultra-low-power networks | |
| CN101111834A (zh) | 动态可重配置处理器 | |
| US11943332B2 (en) | Low depth AES SBox architecture for area-constraint hardware | |
| WO2019179258A1 (zh) | 一种工作量证明运算芯片优化的方法和系统 | |
| CN108959168B (zh) | 基于片上内存的sha512全流水电路及其实现方法 | |
| Khalid et al. | RC4-AccSuite: A hardware acceleration suite for RC4-like stream ciphers | |
| Tetu et al. | A standalone fpga-based miner for lyra2rev2 cryptocurrencies | |
| CN112613080A (zh) | 一种面向轻量级分组密码算法的可重构阵列单元及阵列 | |
| CN116415271A (zh) | 数据处理的方法和计算平台 | |
| Duke-Bergman et al. | Evaluating the performance of FPGA-based Secure Hash Algorithms for use in SPHINCS+ | |
| TWI776543B (zh) | 計算晶片、算力板和數據處理設備 | |
| Dong et al. | Eco-bike: Bridging the gap between pqc bike and gpu acceleration | |
| Gan et al. | Cuot: Accelerating Oblivious Transfer on Gpus for Privacy-Preserving Computation | |
| Sokolov et al. | GALS partitioning by behavioural decoupling expressed in Petri nets | |
| Wang | Hardware architectures for post-quantum cryptography |