JP6051458B2 - 複数のハッシュ動作を効率的に実行する方法および装置 - Google Patents
複数のハッシュ動作を効率的に実行する方法および装置 Download PDFInfo
- Publication number
- JP6051458B2 JP6051458B2 JP2015028528A JP2015028528A JP6051458B2 JP 6051458 B2 JP6051458 B2 JP 6051458B2 JP 2015028528 A JP2015028528 A JP 2015028528A JP 2015028528 A JP2015028528 A JP 2015028528A JP 6051458 B2 JP6051458 B2 JP 6051458B2
- Authority
- JP
- Japan
- Prior art keywords
- state values
- rounds
- processor
- storage location
- hash function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 29
- 230000015654 memory Effects 0.000 claims description 55
- 230000006870 function Effects 0.000 claims description 53
- 230000002093 peripheral effect Effects 0.000 claims description 2
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000006835 compression Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 10
- 238000007667 floating Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 239000000872 buffer Substances 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F9/30105—Register structure
-
- 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/3239—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 non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30079—Pipeline control instructions, e.g. multicycle NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
一実施形態で、リングベースの相互接続ユニット212が統合グラフィックスロジック208、一連の共有キャッシュユニット206、およびシステムエージェントユニット210/統合メモリコントローラユニット214を相互接続する一方で、複数の代替の実施形態はそのような複数のユニットを相互接続するための任意の数の既知の技術を使用してよい。一実施形態で、1または複数のキャッシュユニット206と、複数のコア202Aから202Nとの間の一貫性が維持される。
B(現在のRound)←A(前のRound)
D(現在のRound)←C(前のRound)
F(現在のRound)←E(前のRound)および
H(現在のRound)←G(前のRound)
Claims (25)
- プロセッサがハッシュ関数を実行する方法であって、
前記プロセッサが前記ハッシュ関数の複数のRoundを計算するために使用される複数の状態値の第1のセットを格納するようにレジスタセット内で第1のストレージ位置を指定する段階と、
前記プロセッサが前記ハッシュ関数の複数のRoundを計算するためにまた使用される複数の状態値の第2のセットを格納するように前記レジスタセット内で第2のストレージ位置を指定する段階と、
前記プロセッサが前記複数の状態値の第1のセットおよび前記複数の状態値の第2のセットを使用し、前記ハッシュ関数の複数のRoundを実行する段階とを備え、
複数のRoundの第1のセットのための前記複数の状態値の第1のセットおよび複数のRoundの第2のセットのための前記複数の状態値の第2のセットを格納すべく前記第1のストレージ位置が指定され、前記複数のRoundの第1のセットのための前記複数の状態値の第2のセットおよび前記複数のRoundの第2のセットのための前記複数の状態値の第1のセットを格納すべく前記第2のストレージ位置が指定されるように、前記実行する段階が、前記プロセッサが前記第1のストレージ位置および前記第2のストレージ位置の複数の前記指定をスワッピングすることを含む、方法。 - 前記複数のRoundの第1のセットが複数の偶数のRoundを有し、前記複数のRoundの第2のセットが複数の奇数のRoundを有する、請求項1に記載の方法。
- 前記実行する段階がさらに、
前記プロセッサが各Roundにおいて、既存の複数の状態値の第1のセットおよび既存の複数の状態値の第2のセットを使用し、新しい複数の状態値の第1のセットを計算する段階と、
前記プロセッサが前記複数の状態値の第2のセットを前記既存の複数の状態値の第1のセットに等しくなるよう設定する段階とを有する、請求項1または2に記載の方法。 - 前記複数の状態値の第2のセットを前記既存の複数の状態値の第1のセットに等しくなるよう前記設定する段階の動作が、前記第1のストレージ位置および前記第2のストレージ位置の複数の前記指定を前記スワッピングすることによって自動的に実行される、請求項3に記載の方法。
- 前記第1のストレージ位置および前記第2のストレージ位置の各々が、128ビットパックレジスタを有する、請求項4に記載の方法。
- 前記第1のストレージ位置および前記第2のストレージ位置の各々が、256ビットパックレジスタを有する、請求項4に記載の方法。
- 前記ハッシュ関数がセキュアメッセージ(SM)3ハッシュ関数を有しており、前記複数の状態値の第1のセットは前記SM3ハッシュ関数のA変数、C変数、E変数、およびG変数を有し、前記複数の状態値の第2のセットは前記SM3ハッシュ関数のB変数、D変数、F変数、およびH変数を有する、請求項3に記載の方法。
- 前記複数の状態値の第1のセットおよび前記複数の状態値の第2のセットの各値が32ビット値を有する、請求項1から7のいずれか一項に記載の方法。
- 前記複数の状態値の第1のセットが、4つの32ビット値を有し、前記複数の状態値の第2のセットが別の4つの32ビット値を有する、請求項8に記載の方法。
- プロセッサであって、
ハッシュ関数の複数の状態変数が格納される、第1のストレージ位置と第2のストレージ位置とを含むレジスタセットと、
前記ハッシュ関数を実行し、かつ、前記ハッシュ関数の複数のRoundを計算するために使用される複数の状態値の第1のセットを格納するように前記第1のストレージ位置を指定し、かつ、前記ハッシュ関数の前記複数のRoundを計算するためにまた使用される複数の状態値の第2のセットを格納するように前記第2のストレージ位置を指定する実行ユニットと、
前記複数の状態値の第1のセットおよび前記複数の状態値の第2のセットを使用し、前記ハッシュ関数の複数のRoundを実行する前記実行ユニットであって、複数のRoundの第1のセットのための前記複数の状態値の第1のセットおよび複数のRoundの第2のセットのための前記複数の状態値の第2のセットを格納すべく前記第1のストレージ位置が指定され、前記複数のRoundの第1のセットのための前記複数の状態値の第2のセットおよび前記複数のRoundの第2のセットのための前記複数の状態値の第1のセットを格納すべく前記第2のストレージ位置が指定されるように、前記第1のストレージ位置および前記第2のストレージ位置の複数の前記指定をスワッピングすることを実行することが含む前記実行ユニットとを備えるプロセッサ。 - 前記複数のRoundの第1のセットが複数の偶数のRoundを有し、前記複数のRoundの第2のセットが複数の奇数のRoundを有する、請求項10に記載のプロセッサ。
- 実行することがさらに、
各Roundにおいて、既存の複数の状態値の第1のセットおよび既存の複数の状態値の第2のセットを使用し、新しい複数の状態値の第1のセットを計算することと、
前記複数の状態値の第2のセットを前記既存の複数の状態値の第1のセットに等しくなるよう設定することとを含む、請求項10または11に記載のプロセッサ。 - 前記複数の状態値の第2のセットを前記既存の複数の状態値の第1のセットに等しくなるよう前記設定する動作が、前記第1のストレージ位置および前記第2のストレージ位置の複数の前記指定を前記スワッピングすることによって自動的に実行される、請求項12に記載のプロセッサ。
- 前記第1のストレージ位置および前記第2のストレージ位置の各々が、128ビットパックレジスタを有する、請求項13に記載のプロセッサ。
- 前記第1のストレージ位置および前記第2のストレージ位置の各々が、256ビットパックレジスタを有する、請求項13に記載のプロセッサ。
- 前記ハッシュ関数がセキュアメッセージ(SM)3ハッシュ関数を有しており、前記複数の状態値の第1のセットは前記SM3ハッシュ関数のA変数、C変数、E変数、およびG変数を有し、前記複数の状態値の第2のセットは前記SM3ハッシュ関数のB変数、D変数、F変数、およびH変数を有する、請求項12に記載のプロセッサ。
- 前記複数の状態値の第1のセットおよび前記複数の状態値の第2のセットの各値が32ビット値を有する、請求項10から16のいずれか一項に記載のプロセッサ。
- 前記複数の状態値の第1のセットが、4つの32ビット値および前記複数の状態値の第2のセットが別の4つの32ビット値を有する、請求項17に記載のプロセッサ。
- システムであって、
複数の命令とデータとを格納するメモリと、
前記複数の命令とデータとをキャシュする複数のキャッシュレベルを有するキャッシュサブシステムと、
ネットワーク上で前記システムを通信可能に連結するネットワークインタフェースと、
1または複数の周辺機器から複数のコマンドを受信する、少なくとも1つの入出力ユニットと、
プロセッサとを備え、
前記プロセッサが
ハッシュ関数の複数の状態変数が格納される、第1のストレージ位置と第2のストレージ位置とを含むレジスタセットと、
前記ハッシュ関数を実行し、かつ、前記ハッシュ関数の複数のRoundを計算するために使用される複数の状態値の第1のセットを格納するように前記第1のストレージ位置を指定し、かつ、前記ハッシュ関数の前記複数のRoundを計算するためにまた使用される複数の状態値の第2のセットを格納するように前記第2のストレージ位置を指定する実行ユニットと、
前記複数の状態値の第1のセットおよび前記複数の状態値の第2のセットを使用し、前記ハッシュ関数の複数のRoundを実行する前記実行ユニットであって、複数のRoundの第1のセットのための前記複数の状態値の第1のセットおよび複数のRoundの第2のセットのための前記複数の状態値の第2のセットを格納すべく前記第1のストレージ位置が指定され、前記複数のRoundの第1のセットのための前記複数の状態値の第2のセットおよび前記複数のRoundの第2のセットのための前記複数の状態値の第1のセットを格納すべく前記第2のストレージ位置が指定されるように、前記第1のストレージ位置および前記第2のストレージ位置の複数の前記指定をスワッピングすることを実行することが含む前記実行ユニットとを備える、システム。 - 前記複数のRoundの第1のセットが複数の偶数のRoundを有し、前記複数のRoundの第2のセットが複数の奇数のRoundを有する、請求項19に記載のシステム。
- 実行することがさらに、
各Roundにおいて、既存の複数の状態値の第1のセットおよび既存の複数の状態値の第2のセットを使用し、新しい複数の状態値の第1のセットを計算することと、
前記複数の状態値の第2のセットを前記既存の複数の状態値の第1のセットに等しくなるよう設定することとを含む、請求項19または20に記載のシステム。 - 前記複数の状態値の第2のセットを前記既存の複数の状態値の第1のセットに等しくなるよう前記設定する動作が、前記第1のストレージ位置および前記第2のストレージ位置の複数の前記指定を前記スワッピングすることによって自動的に実行される、請求項21に記載のシステム。
- 前記第1のストレージ位置および前記第2のストレージ位置の各々が、128ビットパックレジスタを有する、請求項22に記載のシステム。
- 前記第1のストレージ位置および前記第2のストレージ位置の各々が、256ビットパックレジスタを有する、請求項22に記載のシステム。
- 前記ハッシュ関数がセキュアメッセージ(SM)3ハッシュ関数を有しており、前記複数の状態値の第1のセットは前記SM3ハッシュ関数のA変数、C変数、E変数、およびG変数を有し、前記複数の状態値の第2のセットは前記SM3ハッシュ関数のB変数、D変数、F変数、およびH変数を有する、請求項21に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/228,056 US9912481B2 (en) | 2014-03-27 | 2014-03-27 | Method and apparatus for efficiently executing hash operations |
US14/228,056 | 2014-03-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015212804A JP2015212804A (ja) | 2015-11-26 |
JP6051458B2 true JP6051458B2 (ja) | 2016-12-27 |
Family
ID=52822172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015028528A Expired - Fee Related JP6051458B2 (ja) | 2014-03-27 | 2015-02-17 | 複数のハッシュ動作を効率的に実行する方法および装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9912481B2 (ja) |
JP (1) | JP6051458B2 (ja) |
KR (1) | KR101732046B1 (ja) |
CN (1) | CN104951702B (ja) |
DE (1) | DE102015002254A1 (ja) |
GB (1) | GB2528343B (ja) |
TW (2) | TWI610184B (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2497070B (en) * | 2011-11-17 | 2015-11-25 | Advanced Risc Mach Ltd | Cryptographic support instructions |
US8924741B2 (en) | 2012-12-29 | 2014-12-30 | Intel Corporation | Instruction and logic to provide SIMD secure hashing round slice functionality |
US10038550B2 (en) | 2013-08-08 | 2018-07-31 | Intel Corporation | Instruction and logic to provide a secure cipher hash round functionality |
US10503510B2 (en) | 2013-12-27 | 2019-12-10 | Intel Corporation | SM3 hash function message expansion processors, methods, systems, and instructions |
US9317719B2 (en) * | 2014-09-04 | 2016-04-19 | Intel Corporation | SM3 hash algorithm acceleration processors, methods, systems, and instructions |
US9658854B2 (en) | 2014-09-26 | 2017-05-23 | Intel Corporation | Instructions and logic to provide SIMD SM3 cryptographic hashing functionality |
US10020934B2 (en) * | 2015-11-05 | 2018-07-10 | Intel Corporation | Hardware accelerator for cryptographic hash operations |
CN106452769B (zh) * | 2016-09-13 | 2019-11-29 | 杭州华为数字技术有限公司 | 一种数据处理方法、数据处理装置以及处理器 |
US10824428B2 (en) | 2019-03-29 | 2020-11-03 | Intel Corporation | Apparatuses, methods, and systems for hashing instructions |
CN114499465A (zh) * | 2020-10-23 | 2022-05-13 | 北京京东方技术开发有限公司 | 散列算法及电路、电子设备 |
US11275726B1 (en) * | 2020-12-06 | 2022-03-15 | Kamu Data Inc. | Distributed data processing method with complete provenance and reproducibility |
CN113721986B (zh) * | 2021-07-23 | 2024-02-09 | 浪潮电子信息产业股份有限公司 | 一种数据压缩方法、装置及电子设备和存储介质 |
Family Cites Families (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2458331A1 (de) | 1973-12-13 | 1975-06-19 | Honeywell Inf Systems | Datenverarbeitungssystem zur adressierung eines in einem sekundaerspeicher abgelegten datensatzes |
US4250483A (en) | 1978-01-30 | 1981-02-10 | Rubner Anthony C | System for signalized intersection control |
DE68926200T2 (de) | 1988-08-11 | 1996-10-17 | Ibm | Geheime Datenübertragung mittels Steuervektoren |
US5339398A (en) | 1989-07-31 | 1994-08-16 | North American Philips Corporation | Memory architecture and method of data organization optimized for hashing |
US5349642A (en) | 1992-11-03 | 1994-09-20 | Novell, Inc. | Method and apparatus for authentication of client server communication |
US5649179A (en) | 1995-05-19 | 1997-07-15 | Motorola, Inc. | Dynamic instruction allocation for a SIMD processor |
US5608801A (en) | 1995-11-16 | 1997-03-04 | Bell Communications Research, Inc. | Efficient cryptographic hash functions and methods for amplifying the security of hash functions and pseudo-random functions |
US5920900A (en) | 1996-12-30 | 1999-07-06 | Cabletron Systems, Inc. | Hash-based translation method and apparatus with multiple level collision resolution |
US5897637A (en) | 1997-03-07 | 1999-04-27 | Apple Computer, Inc. | System and method for rapidly identifying the existence and location of an item in a file |
US6067547A (en) | 1997-08-12 | 2000-05-23 | Microsoft Corporation | Hash table expansion and contraction for use with internal searching |
US5960434A (en) | 1997-09-26 | 1999-09-28 | Silicon Graphics, Inc. | System method and computer program product for dynamically sizing hash tables |
US6260055B1 (en) | 1997-10-15 | 2001-07-10 | Kabushiki Kaisha Toshiba | Data split parallel shifter and parallel adder/subtractor |
US6226710B1 (en) | 1997-11-14 | 2001-05-01 | Utmc Microelectronic Systems Inc. | Content addressable memory (CAM) engine |
US6360218B1 (en) | 1998-10-26 | 2002-03-19 | Microsoft Corporation | Compact record format for low-overhead databases |
US6307955B1 (en) | 1998-12-18 | 2001-10-23 | Topaz Systems, Inc. | Electronic signature management system |
US7065633B1 (en) | 1999-01-28 | 2006-06-20 | Ati International Srl | System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU |
US6578131B1 (en) | 1999-04-27 | 2003-06-10 | Microsoft Corporation | Scaleable hash table for shared-memory multiprocessor system |
US6983350B1 (en) | 1999-08-31 | 2006-01-03 | Intel Corporation | SDRAM controller for parallel processor architecture |
US6631419B1 (en) | 1999-09-22 | 2003-10-07 | Juniper Networks, Inc. | Method and apparatus for high-speed longest prefix and masked prefix table search |
US6594665B1 (en) | 2000-02-18 | 2003-07-15 | Intel Corporation | Storing hashed values of data in media to allow faster searches and comparison of data |
US6952770B1 (en) | 2000-03-14 | 2005-10-04 | Intel Corporation | Method and apparatus for hardware platform identification with privacy protection |
US6470329B1 (en) | 2000-07-11 | 2002-10-22 | Sun Microsystems, Inc. | One-way hash functions for distributed data synchronization |
US20020032551A1 (en) | 2000-08-07 | 2002-03-14 | Jabari Zakiya | Systems and methods for implementing hash algorithms |
US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
US7299355B2 (en) | 2001-01-12 | 2007-11-20 | Broadcom Corporation | Fast SHA1 implementation |
US7073059B2 (en) | 2001-06-08 | 2006-07-04 | Hewlett-Packard Development Company, L.P. | Secure machine platform that interfaces to operating systems and customized control programs |
US7249255B2 (en) * | 2001-06-13 | 2007-07-24 | Corrent Corporation | Apparatus and method for a hash processing system using multiple hash storage areas |
US7240203B2 (en) | 2001-07-24 | 2007-07-03 | Cavium Networks, Inc. | Method and apparatus for establishing secure sessions |
KR100423811B1 (ko) | 2001-12-12 | 2004-03-22 | 한국전자통신연구원 | 카스미 암호화 알고리즘을 응용한 암호화 장치 |
US7395412B2 (en) | 2002-03-08 | 2008-07-01 | Ip-First, Llc | Apparatus and method for extending data modes in a microprocessor |
US7400722B2 (en) | 2002-03-28 | 2008-07-15 | Broadcom Corporation | Methods and apparatus for performing hash operations in a cryptography accelerator |
US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7165135B1 (en) | 2002-04-18 | 2007-01-16 | Advanced Micro Devices, Inc. | Method and apparatus for controlling interrupts in a secure execution mode-capable processor |
EP1495401B1 (en) | 2002-04-18 | 2007-01-24 | Advanced Micro Devices, Inc. | Initialization of a computer system including a secure execution mode-capable processor |
JP2004109420A (ja) | 2002-09-18 | 2004-04-08 | Sony Corp | 乱数生成装置及び乱数生成方法 |
US7373514B2 (en) | 2003-07-23 | 2008-05-13 | Intel Corporation | High-performance hashing system |
US7921300B2 (en) | 2003-10-10 | 2011-04-05 | Via Technologies, Inc. | Apparatus and method for secure hash algorithm |
US7684563B1 (en) | 2003-12-12 | 2010-03-23 | Sun Microsystems, Inc. | Apparatus and method for implementing a unified hash algorithm pipeline |
US7599489B1 (en) | 2004-02-09 | 2009-10-06 | Sun Microsystems Inc. | Accelerating cryptographic hash computations |
US7602905B2 (en) * | 2004-09-01 | 2009-10-13 | Texas Instruments Incorporated | Processes, circuits, devices, and systems for encryption and decryption and other purposes, and processes of making |
WO2006098015A1 (ja) | 2005-03-16 | 2006-09-21 | Mitsubishi Denki Kabushiki Kaisha | データ変換装置及びデータ変換方法 |
US7725624B2 (en) | 2005-12-30 | 2010-05-25 | Intel Corporation | System and method for cryptography processing units and multiplier |
US8073892B2 (en) | 2005-12-30 | 2011-12-06 | Intel Corporation | Cryptographic system, method and multiplier |
US8020142B2 (en) | 2006-12-14 | 2011-09-13 | Intel Corporation | Hardware accelerator |
US7949130B2 (en) | 2006-12-28 | 2011-05-24 | Intel Corporation | Architecture and instruction set for implementing advanced encryption standard (AES) |
US8281109B2 (en) | 2007-12-27 | 2012-10-02 | Intel Corporation | Compressed instruction format |
US8923510B2 (en) | 2007-12-28 | 2014-12-30 | Intel Corporation | Method and apparatus for efficiently implementing the advanced encryption standard |
US8340280B2 (en) | 2008-06-13 | 2012-12-25 | Intel Corporation | Using a single instruction multiple data (SIMD) instruction to speed up galois counter mode (GCM) computations |
US8711159B2 (en) | 2009-02-23 | 2014-04-29 | Microsoft Corporation | VGPU: a real time GPU emulator |
US20100250965A1 (en) | 2009-03-31 | 2010-09-30 | Olson Christopher H | Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm |
US8832464B2 (en) * | 2009-03-31 | 2014-09-09 | Oracle America, Inc. | Processor and method for implementing instruction support for hash algorithms |
WO2011120421A1 (zh) | 2010-03-31 | 2011-10-06 | 北京飞天诚信科技有限公司 | 加密引擎的实现方法 |
US8583902B2 (en) | 2010-05-07 | 2013-11-12 | Oracle International Corporation | Instruction support for performing montgomery multiplication |
CA2830779C (en) | 2011-04-06 | 2017-03-07 | Certicom Corp. | Efficient implementation of hash algorithm on a processor |
JP2012252281A (ja) | 2011-06-06 | 2012-12-20 | Canon Inc | 演算処理装置およびその方法、並びに、情報処理装置 |
US8855302B2 (en) | 2011-06-21 | 2014-10-07 | Intel Corporation | Apparatus and method for Skein hashing |
GB2497070B (en) * | 2011-11-17 | 2015-11-25 | Advanced Risc Mach Ltd | Cryptographic support instructions |
US8954754B2 (en) | 2011-12-22 | 2015-02-10 | Intel Corporation | Method and apparatus to process SHA-1 secure hashing algorithm |
EP3627764B1 (en) | 2012-03-30 | 2021-07-28 | Intel Corporation | Method and apparatus to process sha-2 secure hashing algorithm |
US10198248B2 (en) * | 2012-07-11 | 2019-02-05 | Intel Corporation | Parallel processing of a single data buffer |
GB2496934B (en) | 2012-08-07 | 2014-06-11 | Imagination Tech Ltd | Multi-stage register renaming using dependency removal |
US8924741B2 (en) | 2012-12-29 | 2014-12-30 | Intel Corporation | Instruction and logic to provide SIMD secure hashing round slice functionality |
US20140362098A1 (en) | 2013-06-10 | 2014-12-11 | Sharp Laboratories Of America, Inc. | Display stream compression |
CN103457719B (zh) | 2013-07-23 | 2016-06-08 | 国家密码管理局商用密码检测中心 | 一种对sm3密码算法hmac模式的侧信道能量分析方法 |
US10038550B2 (en) * | 2013-08-08 | 2018-07-31 | Intel Corporation | Instruction and logic to provide a secure cipher hash round functionality |
CN103490895B (zh) | 2013-09-12 | 2016-09-14 | 电小虎能源科技(北京)有限公司 | 一种应用国密算法的工业控制身份认证方法及装置 |
US9424209B2 (en) * | 2013-09-19 | 2016-08-23 | Intel Corporation | Dynamic heterogeneous hashing functions in ranges of system memory addressing space |
US9390246B2 (en) * | 2013-09-25 | 2016-07-12 | Intel Corporation | Creating secure original equipment manufacturer (OEM) identification |
US9250914B2 (en) * | 2013-12-20 | 2016-02-02 | Intel Corporation | Method and apparatus for selecting cache locality for atomic operations |
US10503510B2 (en) | 2013-12-27 | 2019-12-10 | Intel Corporation | SM3 hash function message expansion processors, methods, systems, and instructions |
US9361106B2 (en) | 2013-12-27 | 2016-06-07 | Intel Corporation | SMS4 acceleration processors, methods, systems, and instructions |
US9317719B2 (en) | 2014-09-04 | 2016-04-19 | Intel Corporation | SM3 hash algorithm acceleration processors, methods, systems, and instructions |
US9658854B2 (en) | 2014-09-26 | 2017-05-23 | Intel Corporation | Instructions and logic to provide SIMD SM3 cryptographic hashing functionality |
-
2014
- 2014-03-27 US US14/228,056 patent/US9912481B2/en active Active
-
2015
- 2015-02-16 TW TW105144233A patent/TWI610184B/zh not_active IP Right Cessation
- 2015-02-16 TW TW104105374A patent/TWI575388B/zh active
- 2015-02-17 JP JP2015028528A patent/JP6051458B2/ja not_active Expired - Fee Related
- 2015-02-23 DE DE102015002254.7A patent/DE102015002254A1/de active Pending
- 2015-02-25 GB GB1503156.0A patent/GB2528343B/en active Active
- 2015-02-27 KR KR1020150028373A patent/KR101732046B1/ko active IP Right Grant
- 2015-03-04 CN CN201510096246.8A patent/CN104951702B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB2528343B (en) | 2016-12-14 |
TWI575388B (zh) | 2017-03-21 |
US20150280917A1 (en) | 2015-10-01 |
KR101732046B1 (ko) | 2017-05-02 |
US9912481B2 (en) | 2018-03-06 |
GB201503156D0 (en) | 2015-04-08 |
TW201738773A (zh) | 2017-11-01 |
TW201546628A (zh) | 2015-12-16 |
GB2528343A (en) | 2016-01-20 |
JP2015212804A (ja) | 2015-11-26 |
DE102015002254A1 (de) | 2015-10-01 |
KR20150112782A (ko) | 2015-10-07 |
CN104951702A (zh) | 2015-09-30 |
CN104951702B (zh) | 2018-11-09 |
TWI610184B (zh) | 2018-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6051458B2 (ja) | 複数のハッシュ動作を効率的に実行する方法および装置 | |
US10503505B2 (en) | Read and write masks update instruction for vectorization of recursive computations over independent data | |
CN106575215B (zh) | 处理指令的系统、设备、方法、处理器、介质和电子设备 | |
JP6340097B2 (ja) | リードマスク及びライトマスクにより制御されるベクトル移動命令 | |
JP6373425B2 (ja) | 複数のビットを左にシフトし、複数の1を複数の下位ビットにプルインするための命令 | |
US10387149B2 (en) | Apparatus and method to reverse and permute bits in a mask register | |
KR101851439B1 (ko) | 충돌 검출을 수행하고, 레지스터의 콘텐츠를 다른 레지스터의 데이터 구성요소 위치들로 브로드캐스트하기 위한 시스템들, 장치들 및 방법들 | |
KR101787615B1 (ko) | 단일 명령어에 응답하여 회전 및 xor을 수행하기 위한 시스템들, 장치들, 및 방법들 | |
US20140189288A1 (en) | Instruction to reduce elements in a vector register with strided access pattern | |
US11176278B2 (en) | Efficient rotate adder for implementing cryptographic basic operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160524 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160819 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161004 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20161102 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161108 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6051458 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |