JP6592804B2 - 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 - Google Patents
新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 Download PDFInfo
- Publication number
- JP6592804B2 JP6592804B2 JP2017001149A JP2017001149A JP6592804B2 JP 6592804 B2 JP6592804 B2 JP 6592804B2 JP 2017001149 A JP2017001149 A JP 2017001149A JP 2017001149 A JP2017001149 A JP 2017001149A JP 6592804 B2 JP6592804 B2 JP 6592804B2
- Authority
- JP
- Japan
- Prior art keywords
- aes
- round
- instruction set
- instruction
- purpose processor
- 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.)
- Active
Links
- 238000006467 substitution reaction Methods 0.000 claims description 49
- 238000012545 processing Methods 0.000 claims description 29
- 230000006870 function Effects 0.000 claims description 26
- 238000000034 method Methods 0.000 claims description 17
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 230000001360 synchronised effect Effects 0.000 claims description 2
- 230000008878 coupling Effects 0.000 claims 4
- 238000010168 coupling process Methods 0.000 claims 4
- 238000005859 coupling reaction Methods 0.000 claims 4
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000009466 transformation Effects 0.000 description 10
- 239000000203 mixture Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 3
- 239000003607 modifier Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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/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/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
- G06F9/3895—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- 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/40—Specific encoding of data in memory or cache
- G06F2212/402—Encrypted data
-
- 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/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- 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/45—Caching of specific data in cache memory
- G06F2212/454—Vector or matrix data
-
- 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/60—Details of cache memory
- G06F2212/602—Details relating to cache prefetching
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
- Executing Machine-Instructions (AREA)
Description
AESDECRYPTRound xmmsrcdst xmm
ブロック500で、実行は、AES暗号化最終ラウンド命令を待つ。もしもAES暗号化最終ラウンド命令がフェッチ復号化部206で既に復号化されている場合、処理はブロック502に進む。復号化されていない場合は、ブロック500に留まり、AESラウンド暗号化命令を待つ。
ブロック502で、ブロック404(図4)との関連で説明したS−ボックスルックアップに類似した方法で最終ラウンドにS−ボックスルックアップを行う。処理はブロック504へ進む。
ブロック504で、ブロック406(図4)で他のラウンドとの関連で説明したような方法で最終ラウンドに行シフト演算を行う。処理はブロック506へ進む。
ブロック506で、拡張鍵からのラウンド鍵、およびそのAESラウンドの行シフト318または列混合320の結果の排他的論理和演算を行う。処理はブロック508へ進む。
ブロック508で、暗号化最終ラウンド演算の結果を、レジスタファイル304のソース/宛先レジスタ306に格納する。これでAES命令の処理が完了する。
ブロック600で、実行は、AES復号化ラウンド命令を待つ。AES復号化ラウンド命令がフェッチ復号化部206により既に復号化されている場合、処理はブロック602に進む。復号化されていない場合は、ブロック600に留まり、AES復号化ラウンド命令を待つ。
ブロック602で、フェッチ復号化部206による命令復号化中、復号化ラウンドを行う必要がある旨を制御ロジック322に格納して、復号化ラウンド実行に利用されるラウンド鍵およびソース(128ビットブロック状態)をレジスタファイル304から実行部210へロードする。処理はブロック604へ進む。
ブロック604で行う処理は復号化である。AES規格に定義されている逆s−ボックスルックアップを行うことで、置換演算を128ビットブロック状態に対して行う。処理はブロック606へ進む。
ブロック606で、FIPS PUB197で定義されている逆行シフト演算を行う。処理はブロック608へ進む。
ブロック608で、FIPS PUB197で定義されている逆行シフト演算を行う。処理はブロック610へ進む。
ブロック610で、拡張鍵からのラウンド鍵、およびそのAESラウンドの行シフト318または列混合320の結果の排他的論理和演算を行う。処理はブロック612へ進む。
ブロック612で、そのラウンドの復号化演算の結果(128ビットブロック状態)を、レジスタファイル304のソース/宛先レジスタ302に格納する。これでAES復号化ラウンド命令処理が完了する。
ブロック700で、実行部210は、AES復号化最終ラウンド命令を待つ。もしもAES復号化最終ラウンド命令がフェッチ復号化部206で既に復号化されている場合、処理はブロック702に進む。復号化されていない場合は、ブロック700に留まり、AES復号化ラウンド命令を待つ。
ブロック702で、FIPS PUB197で定義されている逆s−ボックスルックアップを行うことで、最終ラウンドの128ビットブロック状態に置換演算を行う。処理はブロック704へ進む。
ブロック704で、FIPS PUB197で定義されているような方法で最終ラウンドに逆行シフト演算を行う。処理はブロック706へ進む。
ブロック706で、拡張鍵からのラウンド鍵、およびそのAESラウンドの行シフト318または列混合320の結果の排他的論理和演算を行う。処理はブロック708へ進む。
ブロック708で、復号化最終ラウンド演算の結果を、レジスタファイル304のソース/宛先レジスタ306に格納する。これでAES復号化最終ラウンド命令の処理が完了する。
dest:=aes_key_round(source2,source1),key_select_modifier
[項目1]
AES命令の一連の演算を行う実行部を備える装置であって、
前記一連の演算は、プラグラム可能な数のAESラウンドを行い、
前記演算は前記実行部に、
前記AESラウンドの数が1より大きい場合、鍵を一時的鍵レジスタにロードさせ、
各AESラウンドを行う前に、前記鍵に基づいて前記AESラウンドのラウンド鍵を生成させ、
各AESラウンドにおいて、前記AESラウンドの入力および前記AESラウンドの前記ラウンド鍵に対して一連のAESラウンド演算を行わせて、次のAESラウンドの次の入力または前記AES命令の結果を提供させる、装置。
[項目2]
前記AESラウンドの数が1に等しい場合、前記一連のAESラウンド演算を行う前に、前記実行部は、前記鍵に基づいて前記AESラウンドについて予め計算されたラウンド鍵をロードする、項目1に記載の装置。
[項目3]
前記一連のAESラウンド演算により、前記実行部は、
前記ラウンドの入力および前記AESラウンドの前記ラウンド鍵に対して排他的論理和(XOR)演算を行って、中間値を生成し、
ルックアップテーブルに格納されている値に基づいて、前記中間値の各バイトに対して置換演算を行い、
前記置換演算の結果に、前記中間値の行をシフトさせるビット線形変換を行う、項目2に記載の装置。
[項目4]
前記AESラウンドの数−1に対して前記一連のAESラウンド演算を行うことで、前記実行部は、
前記AESラウンドの前記入力および前記AESラウンドの前記ラウンド鍵に対して排他的論理和(XOR)演算を行って、中間値を生成し、
ルックアップテーブルに格納されている値に基づいて、前記中間値の各バイトに対して置換演算を行い、
前記置換演算の結果に、前記中間値の行をシフトさせるビット線形変換を行い、
前記置換演算の結果に、前記中間値の列同士を混合させるビット線形変換を行う、項目1に記載の装置。
[項目5]
最終ラウンドに前記一連のAESラウンド演算を行うことで、前記実行部は、
前記ラウンドの入力および前記AESラウンドの前記ラウンド鍵に対して排他的論理和(XOR)演算を行って、中間値を生成し、
ルックアップテーブルに格納されている値に基づいて、前記中間値の各バイトに対して置換演算を行い、
前記置換演算の結果に、前記中間値の行をシフトさせるビット線形変換を行う、項目4に記載の装置。
[項目6]
前記結果は暗号化された値である、項目1に記載の装置。
[項目7]
前記結果は復号化された値である、項目1に記載の装置。
[項目8]
第1のAESラウンドの鍵および入力がレジスタファイルに格納されている、項目1に記載の装置。
[項目9]
前記レジスタファイルは複数の128ビットレジスタを含む、項目8に記載の装置。
[項目10]
AES命令のプログラム可能なAESラウンドの数が1より大きい場合、鍵を一時的鍵レジスタにロードして、各AESラウンドを行う前に、前記鍵に基づいて前記AESラウンドのラウンド鍵を生成する段階と、
各AESラウンドにおいて、前記AESラウンドの入力および前記AESラウンドの前記ラウンド鍵に対して一連のAESラウンド演算を行い、次のAESラウンドの次の入力または前記AES命令の結果を提供する段階と、を備える方法。
[項目11]
前記AESラウンドの数が1に等しい場合、前記一連のAESラウンド演算を行う前に、前記鍵に基づいて前記AESラウンドについて予め計算されたラウンド鍵をロードする段階を備える、項目10に記載の方法。
[項目12]
前記一連のAESラウンド演算を行う段階は、
前記ラウンドの入力および前記AESラウンドの前記ラウンド鍵に対して排他的論理和(XOR)演算を行って、中間値を生成する段階と、
ルックアップテーブルに格納されている値に基づいて、前記中間値の各バイトに対して置換演算を行う段階と、
前記置換演算の結果に、前記中間値の行をシフトさせるビット線形変換を行う段階と、を有する、項目11に記載の方法。
[項目13]
前記ラウンドの数1に対して前記一連のAESラウンド演算を行う段階は、
前記AESラウンドの前記入力および前記AESラウンドの前記ラウンド鍵に対して排他的論理和(XOR)演算を行って、中間値を生成する段階と、
ルックアップテーブルに格納されている値に基づいて、前記中間値の各バイトに対して置換演算を行う段階と、
前記置換演算の結果に、前記中間値の行をシフトさせるビット線形変換を行う段階と、
前記置換演算の結果に、前記中間値の列同士を混合させるビット線形変換を行う段階と、を有する、項目10に記載の方法。
[項目14]
最終AESラウンドに前記一連のAESラウンド演算を行う段階は、
前記ラウンドの入力および前記AESラウンドの前記ラウンド鍵に対して排他的論理和(XOR)演算を行って、中間値を生成する段階と、
ルックアップテーブルに格納されている値に基づいて、前記中間値の各バイトに対して置換演算を行う段階と、
前記置換演算の結果に、前記中間値の行をシフトさせるビット線形変換を行う段階と、を有する、項目13に記載の方法。
[項目15]
前記結果は暗号化された値である、項目10に記載の方法。
[項目16]
前記結果は復号化された値である、項目10に記載の方法。
[項目17]
第1のAESラウンドの鍵および入力がレジスタファイルに格納されている、項目10に記載の方法。
[項目18]
前記レジスタファイルは複数の128ビットレジスタを含む、項目17に記載の方法。
[項目19]
関連情報を有する機械アクセス可能な媒体を含む物品であって、前記情報はアクセスされると機械に、
AES命令のプログラム可能なAESラウンドの数が1より大きい場合、鍵を一時的鍵レジスタにロードさせ、各AESラウンドを行う前に、前記鍵に基づいて前記AESラウンドのラウンド鍵を生成させ、
各AESラウンドにおいて、前記AESラウンドの入力および前記AESラウンドの前記ラウンド鍵に対して一連のAESラウンド演算を行わせて、次のAESラウンドの次の入力または前記AES命令の結果を提供させる、物品。
[項目20]
前記AESラウンドの数が1に等しい場合、前記一連のAESラウンド演算を行う前に、前記鍵に基づいて前記AESラウンドについて予め計算されたラウンド鍵がロードされる、項目19に記載の物品。
[項目21]
データおよび命令を格納するダイナミックランダムアクセスメモリと、
前記メモリに連結されて前記命令を実行するプロセッサと、を備えるシステムであって、
前記プロセッサは、
AES命令の一連の演算を行う実行部を備え、
前記一連の演算は、プラグラム可能な数のAESラウンドを行い、
前記演算は前記実行部に、
前記AESラウンドの数が1より大きい場合、鍵を一時的鍵レジスタにロードさせ、
各AESラウンドを行う前に、前記鍵に基づいて前記AESラウンドのラウンド鍵を生成させ、
各AESラウンドにおいて、前記AESラウンドの入力および前記AESラウンドの前記ラウンド鍵に対して一連のAESラウンド演算を行わせて、次のAESラウンドの次の入力または前記AES命令の結果を提供させる、システム。
[項目22]
前記AESラウンドの数が1に等しい場合、前記一連のAESラウンド演算を行う前に、前記実行部は、前記鍵に基づいて前記AESラウンドについて予め計算されたラウンド鍵をロードする、項目21に記載のシステム。
Claims (49)
- システムであって、
汎用プロセッサと、
1又は複数の相互接続を介して前記汎用プロセッサに連結されたマルチデータレートダイナミックランダムアクセスメモリを有するシステムメモリと、
前記汎用プロセッサに連結された1又は複数の格納デバイスと
を備え、
前記汎用プロセッサは、
複数のコアと、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は、前記汎用プロセッサの命令セットの第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか、復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
前記L1命令キャッシュからの複数の命令をフェッチする命令フェッチロジックと、
複数の命令を復号化する復号化ロジックと、
AES復号化演算のラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES復号化演算の前記ラウンドによって復号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
AES実行ロジックを含み、前記AES復号化演算の前記ラウンドを実行するために前記汎用プロセッサの前記命令セットの前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES復号化演算は、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを復号化して、前記AES復号化演算の前記ラウンドの結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES復号化演算の前記ラウンドは、
前記入力データに対して実行される換字演算であって、逆換字ボックス(S−box)を使用する換字演算と、
逆行シフト演算と、
逆列混合演算と、
排他的論理和関数が前記ラウンド鍵からのデータに使用されるラウンド鍵加算演算と
を含む、
システム。 - システムであって、
汎用プロセッサと、
1又は複数の相互接続を介して前記汎用プロセッサに連結されたマルチデータレートダイナミックランダムアクセスメモリを有するシステムメモリと、
前記汎用プロセッサに連結された1又は複数の格納デバイスと
を備え、
前記汎用プロセッサは、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は、前記汎用プロセッサの命令セットの第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか、復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
複数の命令を復号化する復号化ユニットと、
AES復号化演算のラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES復号化演算の前記ラウンドによって復号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
前記AES復号化演算の前記ラウンドを実行するために前記汎用プロセッサの前記命令セットの前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES復号化演算は、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを復号化して、前記AES復号化演算の前記ラウンドの結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES復号化演算の前記ラウンドは、
前記入力データに対して実行される換字演算であって、逆換字ボックス(S−box)を使用する換字演算と、
逆行シフト演算と、
逆列混合演算と、
排他的論理和関数が前記ラウンド鍵からのデータに使用されるラウンド鍵加算演算と
を含む、
システム。 - システムであって、
汎用プロセッサと、
1又は複数の相互接続を介して前記汎用プロセッサに連結されたマルチデータレートダイナミックランダムアクセスメモリを有するシステムメモリと、
前記汎用プロセッサに連結された1又は複数の格納デバイスと
を備え、
前記汎用プロセッサは、
複数のコアと、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は、前記汎用プロセッサの命令セットの第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか、復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
前記L1命令キャッシュからの複数の命令をフェッチする命令フェッチロジックと、
複数の命令を復号化する復号化ロジックと、
AES暗号化演算のラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES暗号化演算の前記ラウンドによって暗号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
AES実行ロジックを含み、前記AES暗号化演算の前記ラウンドを実行するために前記汎用プロセッサの前記命令セットの前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES暗号化演算は、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを暗号化して、前記AES暗号化演算の前記ラウンドの結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES暗号化演算の前記ラウンドは、
前記入力データに対してバイト換字を実行するサブバイト変換であって、換字ボックス(S−box)を使用して、換字されたデータの第1のアレイをもたらすサブバイト変換と、
前記第1のアレイの行データを特定の量シフトして第2のアレイをもたらす行シフト変換と、
列混合結果を生成すべく、前記第2のアレイの複数の列がガロア体GF(28)上の多項式として扱われ、モジュロx4+1が固定多項式で乗算される列混合変換と、
排他的論理和関数が前記ラウンド鍵及び前記列混合結果からのデータに使用されるラウンド鍵加算変換と
を含む、
システム。 - システムであって、
汎用プロセッサと、
1又は複数の相互接続を介して前記汎用プロセッサに連結されたマルチデータレートダイナミックランダムアクセスメモリを有するシステムメモリと、
前記汎用プロセッサに連結された1又は複数の格納デバイスと
を備え、
前記汎用プロセッサは、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は、前記汎用プロセッサの命令セットの第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
複数の命令を復号化する復号化ユニットと、
AES暗号化演算のラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES暗号化演算の前記ラウンドによって暗号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
前記AES暗号化演算の前記ラウンドを実行するために前記汎用プロセッサの前記命令セットの前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES暗号化演算は、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを暗号化して、前記AES暗号化演算の前記ラウンドの結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES暗号化演算の前記ラウンドは、
前記入力データに対してバイト換字を実行するサブバイト変換であって、換字ボックス(S−box)を使用して、換字されたデータの第1のアレイをもたらすサブバイト変換と、
前記第1のアレイの行データを特定の量シフトして第2のアレイをもたらす行シフト変換と、
列混合結果を生成すべく、前記第2のアレイの複数の列がガロア体GF(28)上の多項式として扱われ、モジュロx4+1が固定多項式で乗算される列混合変換と、
排他的論理和関数が前記ラウンド鍵及び前記列混合結果からのデータに使用されるラウンド鍵加算演算と
を含む、
システム。 - システムであって、
汎用プロセッサと、
1又は複数の相互接続を介して前記汎用プロセッサに連結されたマルチデータレートダイナミックランダムアクセスメモリを有するシステムメモリと、
前記汎用プロセッサに連結された1又は複数の格納デバイスと
を備え、
前記汎用プロセッサは、
複数のコアと、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は、前記汎用プロセッサの命令セットの第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
前記L1命令キャッシュからの複数の命令をフェッチする命令フェッチロジックと、
複数の命令を復号化する復号化ロジックと、
AES復号化演算の最終ラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES復号化演算の前記最終ラウンドによって復号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
前記AES復号化演算の前記最終ラウンドを実行するために前記汎用プロセッサの前記命令セットの前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行するAES実行ロジックを含む実行ユニットであって、前記AES復号化演算の前記最終ラウンドは、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを復号化して、前記AES復号化演算の最終の復号結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES復号化演算の前記最終ラウンドは、前記入力データに対して実行される換字演算であって、逆換字ボックス(S−box)を使用する換字演算と、逆行シフト演算と、排他的論理和関数が前記ラウンド鍵からのデータに使用されるラウンド鍵加算演算とを含む、システム。 - システムであって、
汎用プロセッサと、
1又は複数の相互接続を介して前記汎用プロセッサに連結されたマルチデータレートダイナミックランダムアクセスメモリを有するシステムメモリと、
前記汎用プロセッサに連結された1又は複数の格納デバイスと
を備え、
前記汎用プロセッサは、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は、前記汎用プロセッサの命令セットの第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
複数の命令を復号化する復号化ユニットと、
AES復号化演算の最終ラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES復号化演算の前記最終ラウンドによって復号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
前記AES復号化演算の前記最終ラウンドを実行するために前記汎用プロセッサの前記命令セットの前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES復号化演算の前記最終ラウンドは、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを復号化して、前記AES復号化演算の最終の復号結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES復号化演算の前記最終ラウンドは、
前記入力データに対して実行される換字演算であって、逆換字ボックス(S−box)を使用する換字演算と、
逆行シフト演算と、
排他的論理和関数が前記ラウンド鍵からのデータに使用されるラウンド鍵加算演算と
を含む、
システム。 - システムであって、
汎用プロセッサと、
1又は複数の相互接続を介して前記汎用プロセッサに連結されたマルチデータレートダイナミックランダムアクセスメモリを有するシステムメモリと、
前記汎用プロセッサに連結された1又は複数の格納デバイスと
を備え、
前記汎用プロセッサは、
複数のコアと、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は、前記汎用プロセッサの命令セットの第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
前記L1命令キャッシュからの複数の命令をフェッチする命令フェッチロジックと、
複数の命令を復号化する復号化ロジックと、
AES暗号化演算の最終ラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES暗号化演算の前記最終ラウンドによって暗号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
AES実行ロジックを含み、前記AES暗号化演算の前記最終ラウンドを実行するために前記汎用プロセッサの前記命令セットの前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES暗号化演算の前記最終ラウンドは、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを暗号化して、前記AES暗号化演算の最終の暗号結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES暗号化演算の前記最終ラウンドは、
前記入力データに対して実行される換字演算であって、換字ボックス(S−box)を使用して、換字されたデータの第1のアレイをもたらす換字演算と、
行シフト結果を生成すべく前記第1のアレイの行データを特定の量シフトする行シフト変換と、
排他的論理和関数が前記ラウンド鍵及び前記行シフト結果からのデータに使用されるラウンド鍵加算変換と
を含む、
システム。 - システムであって、
汎用プロセッサと、
1又は複数の相互接続を介して前記汎用プロセッサに連結されたマルチデータレートダイナミックランダムアクセスメモリを有するシステムメモリと、
前記汎用プロセッサに連結された1又は複数の格納デバイスと
を備え、
前記汎用プロセッサは、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は、前記汎用プロセッサの命令セットの第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
複数の命令を復号化する復号化ユニットと、
AES暗号化演算の最終ラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES暗号化演算の前記最終ラウンドによって暗号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
前記AES暗号化演算の前記最終ラウンドを実行するために前記汎用プロセッサの前記命令セットの前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES暗号化演算の前記最終ラウンドは、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを暗号化して、前記AES暗号化演算の最終の暗号結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES暗号化演算の前記最終ラウンドは、
前記入力データに対して実行される換字演算であって、換字ボックス(S−box)を使用して、換字されたデータの第1のアレイをもたらす換字演算と、
行シフト結果を生成すべく前記第1のアレイの行データを特定の量シフトする行シフト変換と、
排他的論理和関数が前記ラウンド鍵及び前記行シフト結果からのデータに使用されるラウンド鍵加算変換と
を含む、
システム。 - 前記1又は複数の格納デバイスは、少なくとも1つのSerial Attached Small Computer System Interface(SAS)を介して前記汎用プロセッサに連結される、請求項1から8のいずれか一項に記載のシステム。
- 前記1又は複数の格納デバイスは、Redundant Array of Independent Disks (RAID)として構成される、請求項1から8のいずれか一項に記載のシステム。
- 前記汎用プロセッサに連結され、複数のデータパケットを処理する少なくとも1つのネットワークインタフェースをさらに備える、請求項1から8のいずれか一項に記載のシステム。
- 前記1又は複数の格納デバイスは、少なくとも1つのSerial Attached Small Computer System Interface(SAS)を介して前記汎用プロセッサに連結され、前記1又は複数の格納デバイスは、Redundant Array of Independent Disks (RAID)として構成される、請求項1から8のいずれか一項に記載のシステム。
- 前記汎用プロセッサに連結され、複数のデータパケットを処理する少なくとも1つのネットワークインタフェースをさらに備え、
前記1又は複数の格納デバイスは、少なくとも1つのSerial Attached Small Computer System Interface(SAS)を介して前記汎用プロセッサに連結される、
請求項1から8のいずれか一項に記載のシステム。 - 前記汎用プロセッサに連結され、複数のデータパケットを処理する少なくとも1つのネットワークインタフェースをさらに備え、
前記1又は複数の格納デバイスは、Redundant Array of Independent Disks (RAID)として構成される、
請求項1から8のいずれか一項に記載のシステム。 - 前記汎用プロセッサに連結され、複数のデータパケットを処理する少なくとも1つのネットワークインタフェースをさらに備え、
前記1又は複数の格納デバイスは、少なくとも1つのSerial Attached Small Computer System Interface(SAS)を介して前記汎用プロセッサに連結され、
前記1又は複数の格納デバイスは、Redundant Array of Independent Disks (RAID)として構成される、請求項1から8のいずれか一項に記載のシステム。 - 汎用プロセッサであって、
複数のコアと、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は、前記汎用プロセッサの命令セットの第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
前記L1命令キャッシュからの複数の命令をフェッチする命令フェッチロジックと、
複数の命令を復号化する復号化ロジックと、
AES復号化演算のラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES復号化演算の前記ラウンドによって復号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
AES実行ロジックを含み、前記AES復号化演算の前記ラウンドを実行するために前記汎用プロセッサの前記命令セットの前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES復号化演算は、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを復号化して、前記AES復号化演算の前記ラウンドの結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES復号化演算の前記ラウンドは、
前記入力データに対して実行される換字演算であって、逆換字ボックス(S−box)ルックアップを含む換字演算と、
逆行シフト演算と、
逆列混合演算と、
排他的論理和関数が前記ラウンド鍵からのデータに使用されるラウンド鍵加算演算と
を含む、
汎用プロセッサ。 - 汎用プロセッサであって、
第1のコアを含む複数のコアを備え、前記第1のコアは、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は、前記汎用プロセッサの命令セットの第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
複数の命令を復号化する復号化ユニットと、
AES復号化演算のラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES復号化演算の前記ラウンドによって復号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
前記AES復号化演算の前記ラウンドを実行するために前記汎用プロセッサの前記命令セットの前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES復号化演算は、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを復号化して、前記AES復号化演算の前記ラウンドの結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES復号化演算の前記ラウンドは、
前記入力データに対して実行される換字演算であって、逆換字ボックス(S−box)ルックアップを含む換字演算と、
逆行シフト演算と、
逆列混合演算と、
排他的論理和関数が前記ラウンド鍵からのデータに使用されるラウンド鍵加算演算と
を含む、
汎用プロセッサ。 - 汎用プロセッサであって、
複数のコアと、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は、前記汎用プロセッサの命令セットの第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
前記L1命令キャッシュからの複数の命令をフェッチする命令フェッチロジックと、
複数の命令を復号化する復号化ロジックと、
AES暗号化演算のラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES暗号化演算の前記ラウンドによって暗号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
AES実行ロジックを含み、前記AES暗号化演算の前記ラウンドを実行するために前記汎用プロセッサの前記命令セットの前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES暗号化演算は、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを暗号化して、前記AES暗号化演算の前記ラウンドの結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES暗号化演算の前記ラウンドは、
前記入力データに対してバイト換字を実行するサブバイト変換であって、換字ボックス(S−box)ルックアップを含み、換字されたデータの第1のアレイをもたらすサブバイト変換と、
前記第1のアレイの行データを特定の量シフトして第2のアレイをもたらす行シフト変換と、
列混合結果を生成すべく、前記第2のアレイの複数の列がガロア体GF(28)上の多項式として扱われ、モジュロX4+1が固定多項式で乗算される列混合変換と、
排他的論理和関数が前記ラウンド鍵及び前記列混合結果からのデータに使用されるラウンド鍵加算変換と
を含む、
汎用プロセッサ。 - 汎用プロセッサであって、複数のコアを備え、
前記複数のコアの第1のコアは、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は、前記汎用プロセッサの命令セットの第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
複数の命令を復号化する復号化ユニットと、
AES暗号化演算のラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES暗号化演算の前記ラウンドによって暗号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
前記AES暗号化演算の前記ラウンドを実行するために前記汎用プロセッサの前記命令セットの前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES暗号化演算は、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを暗号化して、前記AES暗号化演算の前記ラウンドの結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES暗号化演算の前記ラウンドは、
前記入力データに対してバイト換字を実行するサブバイト変換であって、換字ボックス(S−box)ルックアップを含み、換字されたデータの第1のアレイをもたらすサブバイト変換と、
前記第1のアレイの行データを特定の量シフトして第2のアレイをもたらす行シフト変換と、
列混合結果を生成すべく、前記第2のアレイの複数の列がガロア体GF(28)上の多項式として扱われ、固定多項式としてモジュロX4+1乗算される列混合変換と、
排他的論理和関数が前記ラウンド鍵及び前記列混合結果からのデータに使用されるラウンド鍵加算演算と
を含む、
汎用プロセッサ。 - 汎用プロセッサであって、
複数のコアと、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は、前記汎用プロセッサの命令セットの第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
前記L1命令キャッシュからの複数の命令をフェッチする命令フェッチロジックと、
複数の命令を復号化する復号化ロジックと、
AES復号化演算の最終ラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES復号化演算の前記最終ラウンドによって復号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
AES実行ロジックを含み、前記AES復号化演算の前記最終ラウンドを実行するために前記汎用プロセッサの前記命令セットの前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES復号化演算の前記最終ラウンドは、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを復号化して、前記AES復号化演算の最終の復号結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES復号化演算の前記最終ラウンドは、
前記入力データに対して実行される換字演算であって、逆換字ボックス(S−box)を使用する換字演算と、
逆行シフト演算と、
排他的論理和関数が前記ラウンド鍵からのデータに使用されるラウンド鍵加算演算と
を含む、
汎用プロセッサ。 - 汎用プロセッサであって、複数のコアを備え、
前記複数のコアの第1のコアは、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は、前記汎用プロセッサの命令セットの第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
複数の命令を復号化する復号化ユニットと、
AES復号化演算の最終ラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES復号化演算の前記最終ラウンドによって復号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
前記AES復号化演算の前記最終ラウンドを実行するために前記汎用プロセッサの前記命令セットの前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES復号化演算の前記最終ラウンドは、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを復号化して、前記AES復号化演算の最終の復号結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES復号化演算の前記最終ラウンドは、
前記入力データに対して実行される換字演算であって、逆換字ボックス(S−box)を使用する換字演算と、
逆行シフト演算と、
排他的論理和関数が前記ラウンド鍵からのデータに使用されるラウンド鍵加算演算と
を含む、
汎用プロセッサ。 - 汎用プロセッサであって、
複数のコアと、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は、前記汎用プロセッサの命令セットの第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
前記L1命令キャッシュからの複数の命令をフェッチする命令フェッチロジックと、
複数の命令を復号化する復号化ロジックと、
AES暗号化演算の最終ラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES暗号化演算の前記最終ラウンドによって暗号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
AES実行ロジックを含み、前記AES暗号化演算の前記最終ラウンドを実行するために前記汎用プロセッサの前記命令セットの前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES暗号化演算の前記最終ラウンドは、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを暗号化して、前記AES暗号化演算の最終の暗号結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES暗号化演算の前記最終ラウンドは、
前記入力データに対して実行される換字演算であって、換字ボックス(S−box)を使用して、換字されたデータの第1のアレイをもたらす換字演算と、
行シフト結果を生成すべく、前記第1のアレイの行データを特定の量シフトする行シフト変換と、
排他的論理和関数が前記ラウンド鍵及び前記行シフト結果からのデータに使用されるラウンド鍵加算変換と
を含む、
汎用プロセッサ。 - 汎用プロセッサであって、複数のコアを備え、
前記複数のコアの第1のコアは、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は、前記汎用プロセッサの命令セットの第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
複数の命令を復号化する復号化ユニットと、
AES暗号化演算の最終ラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES暗号化演算の前記最終ラウンドによって暗号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
前記AES暗号化演算の前記最終ラウンドを実行するために前記汎用プロセッサの前記命令セットの前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES暗号化演算の前記最終ラウンドは、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを暗号化して、前記AES暗号化演算の最後の暗号結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES暗号化演算の前記最終ラウンドは、
前記入力データに対して実行される換字演算であって、換字ボックス(S−box)を使用して、換字されたデータの第1のアレイをもたらす換字演算と、
行シフト結果を生成すべく、前記第1のアレイの行データを特定の量シフトする行シフト変換と、
排他的論理和関数が前記ラウンド鍵及び前記行シフト結果からのデータに使用されるラウンド鍵加算変換と
を含む、
汎用プロセッサ。 - システムであって、
汎用プロセッサと、
前記汎用プロセッサをダイナミックランダムアクセスメモリ(DRAM)に連結するメモリコントローラと、
前記汎用プロセッサを1又は複数のデバイスに連結する入出力コントローラ(I/Oコントローラ)と
を備え、
前記汎用プロセッサは、
複数のコアと、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
前記L1命令キャッシュからの複数の命令をフェッチする命令フェッチロジックと、
複数の命令を復号化する復号化ロジックと、
AES復号化演算のラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES復号化演算の前記ラウンドによって復号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
AES実行ロジックを含み、前記AES復号化演算の前記ラウンドを実行するために前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES復号化演算は、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを復号化して、前記AES復号化演算の前記ラウンドの結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES復号化演算の前記ラウンドは、
前記入力データに対して実行される換字演算であって、逆換字ボックス(S−box)を使用する換字演算と、
逆行シフト演算と、
逆列混合演算と、
排他的論理和関数が前記ラウンド鍵からのデータに使用されるラウンド鍵加算演算と
を含む、
システム。 - システムであって、
汎用プロセッサと、
前記汎用プロセッサをダイナミックランダムアクセスメモリ(DRAM)に連結するメモリコントローラと、
前記汎用プロセッサを1又は複数のデバイスに連結する入出力コントローラ(I/Oコントローラ)と
を備え、
前記汎用プロセッサは、
複数のコアと、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
前記L1命令キャッシュからの複数の命令をフェッチする命令フェッチロジックと、
複数の命令を復号化する復号化ロジックと、
AES暗号化演算のラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES暗号化演算の前記ラウンドによって暗号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
AES実行ロジックを含み、前記AES暗号化演算の前記ラウンドを実行するために前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES暗号化演算は、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを暗号化して、前記AES暗号化演算の前記ラウンドの結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES暗号化演算の前記ラウンドは、
前記入力データに対してバイト換字を実行するサブバイト変換であって、換字ボックス(S−box)を使用して、換字されたデータの第1のアレイをもたらすサブバイト変換と、
前記第1のアレイの行データを特定の量シフトして第2のアレイをもたらす行シフト変換と、
列混合結果を生成すべく、前記第2のアレイの複数の列がガロア体GF(28)上の多項式として扱われ、モジュロx4+1が固定多項式で乗算される列混合変換と、
排他的論理和関数が前記ラウンド鍵及び前記列混合結果からのデータに使用されるラウンド鍵加算変換と
を含む、
システム。 - システムであって、
汎用プロセッサと、
前記汎用プロセッサをダイナミックランダムアクセスメモリ(DRAM)に連結するメモリコントローラと、
前記汎用プロセッサを1又は複数のデバイスに連結する入出力コントローラ(I/Oコントローラ)と
を備え、
前記汎用プロセッサは、
複数のコアと、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
前記L1命令キャッシュからの複数の命令をフェッチする命令フェッチロジックと、
複数の命令を復号化する復号化ロジックと、
AES復号化演算の最終ラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES復号化演算の前記最終ラウンドによって復号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
AES実行ロジックを含み、前記AES復号化演算の前記最終ラウンドを実行するために前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES復号化演算の前記最終ラウンドは、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを復号化して、前記AES復号化演算の最終の復号結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES復号化演算の前記最終ラウンドは、
前記入力データに対して実行される換字演算であって、逆換字ボックス(S−box)を使用する換字演算と、
逆行シフト演算と、
排他的論理和関数が前記ラウンド鍵からのデータに使用されるラウンド鍵加算演算と
を含む、
システム。 - システムであって、
汎用プロセッサと、
前記汎用プロセッサをダイナミックランダムアクセスメモリ(DRAM)に連結するメモリコントローラと、
前記汎用プロセッサを1又は複数のデバイスに連結する入出力コントローラ(I/Oコントローラ)と
を備え、
前記汎用プロセッサは、
複数のコアと、
複数の命令を格納するレベル1(L1)命令キャッシュであって、前記複数の命令は第1の新暗号規格命令セット(第1のAES命令セット)を含み、前記第1のAES命令セットは、AESラウンド用のラウンド鍵を生成するAESラウンド鍵命令を含み、前記AESラウンド鍵命令は、生成される前記ラウンド鍵が暗号化に用いられるか復号化に用いられるかを示すビットを含む、L1命令キャッシュと、
L1データキャッシュと、
前記L1命令キャッシュからの複数の命令をフェッチする命令フェッチロジックと、
複数の命令を復号化する復号化ロジックと、
AES暗号化演算の最終ラウンドに使用されるラウンド鍵を格納する第1ソースレジスタと、
前記AES暗号化演算の前記最終ラウンドによって暗号化される入力データを格納する第2ソースレジスタと、
前記第1のAES命令セットを実装するための複数の演算を含むマイクロコードと、
AES実行ロジックを含み、前記AES暗号化演算の前記最終ラウンドを実行するために前記第1のAES命令セットを実行するべく前記マイクロコードの前記複数の演算を実行する実行ユニットであって、前記AES暗号化演算の前記最終ラウンドは、前記第1ソースレジスタからの前記ラウンド鍵を使用して前記第2ソースレジスタからの前記入力データを暗号化して、前記AES暗号化演算の最終の暗号結果を前記第2ソースレジスタに格納する、実行ユニットと、
を有し、
前記AES暗号化演算の前記最終ラウンドは、
前記入力データに対して実行される換字演算であって、換字ボックス(S−box)を使用して、換字されたデータの第1のアレイをもたらす換字演算と、
行シフト結果を生成すべく、前記第1のアレイの行データを特定の量シフトする行シフト変換と、
排他的論理和関数が前記ラウンド鍵及び前記行シフト結果からのデータに使用されるラウンド鍵加算変換と
を含む、
システム。 - 前記メモリコントローラは、グラフィックメモリコントローラである、請求項24から27のいずれか一項に記載のシステム。
- 前記I/Oコントローラは、格納I/Oコントローラである、請求項24から27のいずれか一項に記載のシステム。
- 前記1又は複数のデバイスは、1又は複数の格納デバイスを含む、請求項24から27のいずれか一項に記載のシステム。
- 前記1又は複数の格納デバイスの少なくとも1つは、少なくとも1つのSerial Attached Small Computer System Interface(SAS)を介して前記汎用プロセッサに連結される、請求項30に記載のシステム。
- 前記1又は複数の格納デバイスは、Redundant Array of Independent Disks (RAID)として構成される、請求項30に記載のシステム。
- 前記1又は複数のデバイスは、少なくとも1つのディスクドライブを含む、請求項24から27のいずれか一項に記載のシステム。
- 前記1又は複数のデバイスは、少なくとも1つのデジタルビデオディスク(DVD)ドライブを含む、請求項24から27のいずれか一項に記載のシステム。
- 前記1又は複数のデバイスは、少なくとも1つのネットワークインタフェースを含む、請求項24から27のいずれか一項に記載のシステム。
- 前記少なくとも1つのネットワークインタフェースは、前記汎用プロセッサに連結され、複数のデータパケットを処理する、請求項35に記載のシステム。
- 前記1又は複数のデバイスは、少なくとも1つのネットワークインタフェースコントローラ(NIC)を含む、請求項24から27のいずれか一項に記載のシステム。
- 前記NICは、前記汎用プロセッサに連結され、複数のデータパケットを処理する、請求項37に記載のシステム。
- 前記1又は複数のデバイスは、1又は複数の格納デバイスと、少なくとも1つのネットワークインタフェースとを含む、請求項24から27のいずれか一項に記載のシステム。
- 前記1又は複数の格納デバイスの少なくとも1つは、少なくとも1つのSerial Attached Small Computer System Interface(SAS)を介して前記汎用プロセッサに連結される、請求項39に記載のシステム。
- 前記1又は複数の格納デバイスは、Redundant Array of Independent Disks (RAID)として構成される、請求項39に記載のシステム。
- 前記DRAMは、シンクロナスDRAM(SDRAM)である、請求項24から27のいずれか一項に記載のシステム。
- 前記DRAMは、ダブルデータレート(DDR)ランダムアクセスメモリである、請求項24から27のいずれか一項に記載のシステム。
- 前記DRAMは、ダブルデータレート2(DDR2)ランダムアクセスメモリである、請求項24から27のいずれか一項に記載のシステム。
- 前記DRAMは、ランバスDRAM(RDRAM)である、請求項24から27のいずれか一項に記載のシステム。
- 前記1又は複数のデバイスは、少なくとも1つの格納デバイスを含み、前記DRAMは、ダブルデータレート(DDR)ランダムアクセスメモリを含む、請求項24から27のいずれか一項に記載のシステム。
- リタイヤユニット
をさらに備え、
前記実行ユニットは、AES鍵スケジューリング演算のために使用される1又は複数の他の実行ポートとは異なる、前記第1のAES命令セットを実行するための実行ポートを有する、請求項1から8のいずれか一項に記載のシステム。 - リタイヤユニット
をさらに備え、
前記実行ユニットは、AES鍵スケジューリング演算のために使用される1又は複数の他の実行ポートとは異なる、前記第1のAES命令セットを実行するための実行ポートを有する、請求項16から23のいずれか一項に記載の汎用プロセッサ。 - リタイヤユニット
をさらに備え、
前記実行ユニットは、AES鍵スケジューリング演算のために使用される1又は複数の他の実行ポートとは異なる、前記第1のAES命令セットを実行するための実行ポートを有する、請求項24から27のいずれか一項に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/729,199 | 2007-03-28 | ||
US11/729,199 US8538015B2 (en) | 2007-03-28 | 2007-03-28 | Flexible architecture and instruction for advanced encryption standard (AES) |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015012125A Division JP2015096976A (ja) | 2007-03-28 | 2015-01-26 | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017083879A JP2017083879A (ja) | 2017-05-18 |
JP6592804B2 true JP6592804B2 (ja) | 2019-10-23 |
Family
ID=39794399
Family Applications (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009552935A Pending JP2010520517A (ja) | 2007-03-28 | 2008-03-25 | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 |
JP2012226077A Pending JP2013057946A (ja) | 2007-03-28 | 2012-10-11 | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 |
JP2013222466A Active JP5715218B2 (ja) | 2007-03-28 | 2013-10-25 | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 |
JP2015012125A Pending JP2015096976A (ja) | 2007-03-28 | 2015-01-26 | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 |
JP2015049638A Pending JP2015108853A (ja) | 2007-03-28 | 2015-03-12 | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 |
JP2017001149A Active JP6592804B2 (ja) | 2007-03-28 | 2017-01-06 | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 |
Family Applications Before (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009552935A Pending JP2010520517A (ja) | 2007-03-28 | 2008-03-25 | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 |
JP2012226077A Pending JP2013057946A (ja) | 2007-03-28 | 2012-10-11 | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 |
JP2013222466A Active JP5715218B2 (ja) | 2007-03-28 | 2013-10-25 | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 |
JP2015012125A Pending JP2015096976A (ja) | 2007-03-28 | 2015-01-26 | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 |
JP2015049638A Pending JP2015108853A (ja) | 2007-03-28 | 2015-03-12 | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 |
Country Status (8)
Country | Link |
---|---|
US (24) | US8538015B2 (ja) |
EP (5) | EP2132899B1 (ja) |
JP (6) | JP2010520517A (ja) |
CN (5) | CN107493163B (ja) |
ES (1) | ES2805125T3 (ja) |
SG (1) | SG146584A1 (ja) |
TW (1) | TWI369885B (ja) |
WO (1) | WO2008121614A1 (ja) |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050087271A (ko) * | 2004-02-26 | 2005-08-31 | 삼성전자주식회사 | 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치 |
US7949130B2 (en) | 2006-12-28 | 2011-05-24 | Intel Corporation | Architecture and instruction set for implementing advanced encryption standard (AES) |
US8538015B2 (en) | 2007-03-28 | 2013-09-17 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US8787565B2 (en) * | 2007-08-20 | 2014-07-22 | Intel Corporation | Method and apparatus for generating an advanced encryption standard (AES) key schedule |
US8923510B2 (en) * | 2007-12-28 | 2014-12-30 | Intel Corporation | Method and apparatus for efficiently implementing the advanced encryption standard |
GB2463031B (en) * | 2008-08-28 | 2010-12-15 | Samsung Electronics Co Ltd | Device and method for encrypting data or providing an encryption key |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
JP4687775B2 (ja) | 2008-11-20 | 2011-05-25 | ソニー株式会社 | 暗号処理装置 |
US8233620B2 (en) * | 2009-02-27 | 2012-07-31 | Inside Secure | Key recovery mechanism for cryptographic systems |
US9317286B2 (en) * | 2009-03-31 | 2016-04-19 | Oracle America, Inc. | Apparatus and method for implementing instruction support for the camellia cipher algorithm |
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 |
US20100246815A1 (en) * | 2009-03-31 | 2010-09-30 | Olson Christopher H | Apparatus and method for implementing instruction support for the kasumi cipher algorithm |
US8654970B2 (en) * | 2009-03-31 | 2014-02-18 | Oracle America, Inc. | Apparatus and method for implementing instruction support for the data encryption standard (DES) algorithm |
US8832464B2 (en) * | 2009-03-31 | 2014-09-09 | Oracle America, Inc. | Processor and method for implementing instruction support for hash algorithms |
JP5564194B2 (ja) * | 2009-04-14 | 2014-07-30 | 株式会社メガチップス | メモリコントローラ、メモリ制御装置およびメモリ装置 |
US9680637B2 (en) | 2009-05-01 | 2017-06-13 | Harris Corporation | Secure hashing device using multiple different SHA variants and related methods |
TWI407307B (zh) * | 2009-06-18 | 2013-09-01 | Univ Ishou | Identification tag and radio frequency identification system |
TWI397300B (zh) * | 2009-09-25 | 2013-05-21 | Univ Shu Te | Digital information encryption method |
US8549264B2 (en) | 2009-12-22 | 2013-10-01 | Intel Corporation | Add instructions to add three source operands |
US9990201B2 (en) | 2009-12-22 | 2018-06-05 | Intel Corporation | Multiplication instruction for which execution completes without writing a carry flag |
US9003170B2 (en) * | 2009-12-22 | 2015-04-07 | Intel Corporation | Bit range isolation instructions, methods, and apparatus |
US8751830B2 (en) | 2012-01-23 | 2014-06-10 | International Business Machines Corporation | Memory address translation-based data encryption/compression |
US8954755B2 (en) * | 2012-01-23 | 2015-02-10 | International Business Machines Corporation | Memory address translation-based data encryption with integrated encryption engine |
US9244840B2 (en) | 2012-12-12 | 2016-01-26 | International Business Machines Corporation | Cache swizzle with inline transposition |
US9135834B2 (en) * | 2013-04-30 | 2015-09-15 | The United Sates of America as represented by the Secretary of the Air Force | Apparatus and method to prevent side channel power attacks in advanced encryption standard using floating point operation |
US9160523B2 (en) * | 2013-04-30 | 2015-10-13 | The United States Of America As Represented By The Secretary Of The Air Force | Apparatus and method to prevent side channel power attacks in advanced encryption standard |
US10038550B2 (en) | 2013-08-08 | 2018-07-31 | Intel Corporation | Instruction and logic to provide a secure cipher hash round functionality |
FR3011653B1 (fr) | 2013-10-09 | 2018-01-12 | Oberthur Technologies | Procedes et dispositifs de masquage et demasquage |
US9900149B2 (en) * | 2013-12-24 | 2018-02-20 | Synopsys, Inc. | Area efficient cryptographic method and apparatus |
US9361106B2 (en) | 2013-12-27 | 2016-06-07 | Intel Corporation | SMS4 acceleration processors, methods, systems, and instructions |
CN104883256B (zh) * | 2014-02-27 | 2019-02-01 | 中国科学院数据与通信保护研究教育中心 | 一种抵抗物理攻击和系统攻击的密钥保护方法 |
US9800406B2 (en) | 2014-05-21 | 2017-10-24 | Intel Corporation | Technologies for modifying a first cryptographic cipher with operations of a second cryptographic cipher |
US9513913B2 (en) | 2014-07-22 | 2016-12-06 | Intel Corporation | SM4 acceleration processors, methods, systems, and instructions |
US9467279B2 (en) | 2014-09-26 | 2016-10-11 | Intel Corporation | Instructions and logic to provide SIMD SM4 cryptographic block cipher functionality |
US9992171B2 (en) * | 2014-11-03 | 2018-06-05 | Sony Corporation | Method and system for digital rights management of encrypted digital content |
US9503256B2 (en) * | 2014-12-24 | 2016-11-22 | Intel Corporation | SMS4 acceleration hardware |
CN106027225B (zh) * | 2015-03-23 | 2019-07-26 | 联想(北京)有限公司 | 数据的解密方法以及电子设备 |
US9773432B2 (en) | 2015-06-27 | 2017-09-26 | Intel Corporation | Lightweight cryptographic engine |
RU2598781C1 (ru) * | 2015-07-31 | 2016-09-27 | Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Способ линейного преобразования (варианты) |
US10103877B2 (en) * | 2015-09-24 | 2018-10-16 | Intel Corporation | SMS4 acceleration processors having round constant generation |
US10049057B2 (en) * | 2015-12-18 | 2018-08-14 | Intel Corporation | Instruction and logic for secure instruction execution pipeline |
CN107547195A (zh) * | 2016-06-28 | 2018-01-05 | 埃沙尔公司 | 免受侧信道分析的保护方法和设备 |
US10341085B2 (en) * | 2016-09-06 | 2019-07-02 | Nxp B.V. | Software protection against differential fault analysis |
CN108011708B (zh) * | 2016-10-28 | 2021-05-25 | 长城汽车股份有限公司 | 基于汽车总线的报文加密方法、车辆的控制器及车辆 |
CN107315964B (zh) * | 2017-06-14 | 2020-09-25 | 苏州浪潮智能科技有限公司 | 一种基于加密机实现加密卷转换的方法 |
JP6938250B2 (ja) * | 2017-07-05 | 2021-09-22 | キーサイト テクノロジーズ, インク. | 測定システムのプログラム作成方法、測定システム、及び、コンピュータ可読記憶媒体 |
CN107800530B (zh) * | 2017-11-28 | 2020-09-18 | 聚辰半导体股份有限公司 | 一种sms4的s盒掩码方法 |
CN108132834B (zh) * | 2017-12-08 | 2020-08-18 | 西安交通大学 | 多级共享高速缓冲存储器架构下的任务分配方法和系统 |
US10505521B2 (en) * | 2018-01-10 | 2019-12-10 | Ememory Technology Inc. | High voltage driver capable of preventing high voltage stress on transistors |
US11032061B2 (en) * | 2018-04-27 | 2021-06-08 | Microsoft Technology Licensing, Llc | Enabling constant plaintext space in bootstrapping in fully homomorphic encryption |
CN109005027B (zh) * | 2018-08-16 | 2021-09-14 | 成都映潮科技股份有限公司 | 一种随机数据加解密法、装置及系统 |
KR102628010B1 (ko) | 2018-10-05 | 2024-01-22 | 삼성전자주식회사 | 가상 암호화 연산을 수행하는 암호화 회로 |
US11444748B2 (en) * | 2019-03-29 | 2022-09-13 | Intel Corporation | Ultra-low latency advanced encryption standard |
WO2020222547A1 (ko) * | 2019-05-02 | 2020-11-05 | 삼성전자 주식회사 | 암호화 및 복호화를 수행하는 전자 장치 및 그 제어 방법 |
CN110336662B (zh) * | 2019-06-06 | 2022-02-18 | 平安科技(深圳)有限公司 | 数字信息加密方法、装置、计算机设备和存储介质 |
US20210091928A1 (en) * | 2019-09-23 | 2021-03-25 | Qualcomm Incorporated | Iterative cipher key-schedule cache for caching round keys used in an iterative encryption/decryption system and related methods |
CN110807202B (zh) * | 2019-10-31 | 2022-03-18 | 北京字节跳动网络技术有限公司 | 校验信息的处理方法、装置、电子设备及计算机可读介质 |
CN110908603B (zh) * | 2019-11-01 | 2024-01-19 | 惠州市德赛西威汽车电子股份有限公司 | 一种数据存储防错处理系统及方法 |
CN111865560B (zh) * | 2020-06-23 | 2021-07-27 | 华中科技大学 | 一种aes密码协处理器及终端设备 |
CN112395012B (zh) * | 2020-11-03 | 2024-02-27 | 南方电网数字电网科技(广东)有限公司 | 基于双芯智能电表的数据清空方法、装置和计算机设备 |
Family Cites Families (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US1496421A (en) | 1922-04-01 | 1924-06-03 | Koranicki Johann | Animal trap |
US1519509A (en) | 1923-09-06 | 1924-12-16 | Brown Co | System for and method of producing sulphate and sulphite pulp |
US1596530A (en) | 1925-05-09 | 1926-08-17 | Newport Co | Anthracene dye and a process of manufacture |
US1677921A (en) | 1925-07-16 | 1928-07-24 | Jules K Johnson | Vacuum cleaner |
US2447563A (en) | 1947-04-11 | 1948-08-24 | Sutherland Paper Co | Collapsible covered container or box |
US4641238A (en) | 1984-12-10 | 1987-02-03 | Itt Corporation | Multiprocessor system employing dynamically programmable processing elements controlled by a master processor |
US5781758A (en) | 1995-03-23 | 1998-07-14 | Apple Computer, Inc. | Software emulation system with reduced memory requirements |
US6112019A (en) * | 1995-06-12 | 2000-08-29 | Georgia Tech Research Corp. | Distributed instruction queue |
US6118870A (en) | 1996-10-09 | 2000-09-12 | Lsi Logic Corp. | Microprocessor having instruction set extensions for decryption and multimedia applications |
US6704871B1 (en) | 1997-09-16 | 2004-03-09 | Safenet, Inc. | Cryptographic co-processor |
US7277540B1 (en) | 1999-01-20 | 2007-10-02 | Kabushiki Kaisha Toshiba | Arithmetic method and apparatus and crypto processing apparatus for performing multiple types of cryptography |
US6324288B1 (en) | 1999-05-17 | 2001-11-27 | Intel Corporation | Cipher core in a content protection system |
US6738845B1 (en) | 1999-11-05 | 2004-05-18 | Analog Devices, Inc. | Bus architecture and shared bus arbitration method for a communication device |
US7371397B2 (en) | 2000-01-18 | 2008-05-13 | Albemarle Corporation | Methods for microbiological control in aqueous systems |
US20020108059A1 (en) | 2000-03-03 | 2002-08-08 | Canion Rodney S. | Network security accelerator |
KR100366790B1 (ko) | 2000-08-26 | 2003-01-09 | 엘지전자 주식회사 | 동기식 전송장치의 계위단위 스위치 |
KR100525389B1 (ko) | 2001-01-17 | 2005-11-02 | 엘지전자 주식회사 | 실시간 입력 스트림의 암호화/복호화 장치 |
US6937727B2 (en) | 2001-06-08 | 2005-08-30 | Corrent Corporation | Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels |
JP3851115B2 (ja) | 2001-06-28 | 2006-11-29 | 富士通株式会社 | 暗号回路 |
ATE484794T1 (de) | 2001-08-20 | 2010-10-15 | Infineon Technologies Ag | Vorrichtung und verfahren zur durchführung eines kryptographischen algorithmus |
US7203310B2 (en) | 2001-12-04 | 2007-04-10 | Microsoft Corporation | Methods and systems for cryptographically protecting secure content |
US7508937B2 (en) * | 2001-12-18 | 2009-03-24 | Analog Devices, Inc. | Programmable data encryption engine for advanced encryption standard algorithm |
US7853778B2 (en) | 2001-12-20 | 2010-12-14 | Intel Corporation | Load/move and duplicate instructions for a processor |
US7570760B1 (en) * | 2004-09-13 | 2009-08-04 | Sun Microsystems, Inc. | Apparatus and method for implementing a block cipher algorithm |
US20030196096A1 (en) | 2002-04-12 | 2003-10-16 | Sutton James A. | Microcode patch authentication |
US7221763B2 (en) * | 2002-04-24 | 2007-05-22 | Silicon Storage Technology, Inc. | High throughput AES architecture |
US7346159B2 (en) | 2002-05-01 | 2008-03-18 | Sun Microsystems, Inc. | Generic modular multiplier using partial reduction |
AU2003241594A1 (en) * | 2002-05-23 | 2003-12-12 | Atmel Corporation | Advanced encryption standard (aes) hardware cryptographic engine |
US6963991B2 (en) | 2002-05-31 | 2005-11-08 | Intel Corporation | Synchronizing and aligning differing clock domains |
GB0214620D0 (en) | 2002-06-25 | 2002-08-07 | Koninkl Philips Electronics Nv | Round key generation for AES rijndael block cipher |
KR20050032588A (ko) | 2002-08-08 | 2005-04-07 | 마츠시타 덴끼 산교 가부시키가이샤 | 암호화 복호화장치 및 방법, 암호화장치 및 방법,복호화장치 및 방법, 그리고 송수신장치 |
US7185177B2 (en) | 2002-08-26 | 2007-02-27 | Gerald George Pechanek | Methods and apparatus for meta-architecture defined programmable instruction fetch functions supporting assembled variable length instruction processors |
FR2845397B1 (fr) * | 2002-10-02 | 2005-07-29 | Allevard Rejna Autosuspensions | Installation de trempe par induction, notamment pour la fabrication d'elements de suspension |
US20040202317A1 (en) | 2002-12-20 | 2004-10-14 | Victor Demjanenko | Advanced encryption standard (AES) implementation as an instruction set extension |
KR100583635B1 (ko) | 2003-01-24 | 2006-05-26 | 삼성전자주식회사 | 다수의 동작 모드들을 지원하는 암호화 장치 |
JP3818263B2 (ja) | 2003-01-28 | 2006-09-06 | 日本電気株式会社 | Aes暗号処理装置、aes復号処理装置、aes暗号・復号処理装置、aes暗号処理方法、aes復号処理方法、および、aes暗号・復号処理方法 |
TW595183B (en) | 2003-03-14 | 2004-06-21 | Acer Labs Inc | Crypto-system with an inverse key evaluation circuit |
US7533273B2 (en) * | 2003-03-19 | 2009-05-12 | Broadcom Corporation | Method and system for controlling an encryption/decryption engine using descriptors |
FR2853425B1 (fr) * | 2003-04-07 | 2006-01-13 | Atmel Corp | Sequence de multiplication efficace pour operandes a grands nombres entiers plus larges que le materiel multiplicateur |
US7539876B2 (en) | 2003-04-18 | 2009-05-26 | Via Technologies, Inc. | Apparatus and method for generating a cryptographic key schedule in a microprocessor |
US7536560B2 (en) * | 2003-04-18 | 2009-05-19 | Via Technologies, Inc. | Microprocessor apparatus and method for providing configurable cryptographic key size |
US7321910B2 (en) * | 2003-04-18 | 2008-01-22 | Ip-First, Llc | Microprocessor apparatus and method for performing block cipher cryptographic functions |
US7532722B2 (en) | 2003-04-18 | 2009-05-12 | Ip-First, Llc | Apparatus and method for performing transparent block cipher cryptographic functions |
US7925891B2 (en) | 2003-04-18 | 2011-04-12 | Via Technologies, Inc. | Apparatus and method for employing cryptographic functions to generate a message digest |
US7502943B2 (en) | 2003-04-18 | 2009-03-10 | Via Technologies, Inc. | Microprocessor apparatus and method for providing configurable cryptographic block cipher round results |
US8060755B2 (en) | 2003-04-18 | 2011-11-15 | Via Technologies, Inc | Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine |
CN1788450A (zh) * | 2003-05-14 | 2006-06-14 | 皇家飞利浦电子股份有限公司 | 列混合函数的小型硬件实现 |
US7472285B2 (en) | 2003-06-25 | 2008-12-30 | Intel Corporation | Apparatus and method for memory encryption with reduced decryption latency |
JPWO2005006191A1 (ja) * | 2003-07-10 | 2006-08-24 | 富士通株式会社 | 複数種類の情報を登録する装置および方法 |
CN1599338A (zh) * | 2003-09-19 | 2005-03-23 | 皇家飞利浦电子股份有限公司 | 增强无线局域网安全的方法 |
US20050097315A1 (en) * | 2003-10-30 | 2005-05-05 | Tzahi Carmeli | Method and apparatus to configure transmitter and receiver to encrypt and decrypt data |
US7636858B2 (en) * | 2003-12-11 | 2009-12-22 | Intel Corporation | Management of a trusted cryptographic processor |
TWI244299B (en) | 2004-01-07 | 2005-11-21 | Admtek Inc | Method for implementing advanced encryption standards by a very long instruction word architecture processor |
KR100800468B1 (ko) | 2004-01-29 | 2008-02-01 | 삼성전자주식회사 | 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법 |
CN1677921A (zh) | 2004-03-31 | 2005-10-05 | 华为技术有限公司 | 通过可编程器件实现数据加密的方法 |
TWI268686B (en) | 2004-04-16 | 2006-12-11 | Via Tech Inc | Apparatus and method for performing transparent cipher block chaining mode cryptographic functions |
US20050251662A1 (en) | 2004-04-22 | 2005-11-10 | Samra Nicholas G | Secondary register file mechanism for virtual multithreading |
US7561689B2 (en) * | 2004-06-17 | 2009-07-14 | Agere Systems Inc. | Generating keys having one of a number of key sizes |
US7496196B2 (en) | 2004-06-30 | 2009-02-24 | Intel Corporation | Method apparatus and system of performing one or more encryption and/or decryption operations |
JP2006041118A (ja) * | 2004-07-26 | 2006-02-09 | Toshiba Corp | 半導体装置及びその製造方法 |
US20060023875A1 (en) | 2004-07-30 | 2006-02-02 | Graunke Gary L | Enhanced stream cipher combining function |
US7620821B1 (en) | 2004-09-13 | 2009-11-17 | Sun Microsystems, Inc. | Processor including general-purpose and cryptographic functionality in which cryptographic operations are visible to user-specified software |
US8005209B2 (en) | 2005-01-06 | 2011-08-23 | Polytechnic University | Invariance based concurrent error detection for the advanced encryption standard |
US20060194386A1 (en) * | 2005-02-25 | 2006-08-31 | Dell Products L.P. | Method and apparatus for supporting port aggregation of serial attached SCSI wide ports via virtual ports |
US20070083735A1 (en) | 2005-08-29 | 2007-04-12 | Glew Andrew F | Hierarchical processor |
CN1761185B (zh) * | 2005-11-18 | 2011-08-17 | 清华大学 | 乱序执行的数据流aes加密电路结构 |
US7649992B2 (en) * | 2006-01-06 | 2010-01-19 | Fujitsu Limited | Apparatuses for encoding, decoding, and authenticating data in cipher block chaining messaging authentication code |
US7610537B2 (en) | 2006-04-04 | 2009-10-27 | International Business Machines Corporation | Method and apparatus for testing multi-core microprocessors |
US8074017B2 (en) | 2006-08-11 | 2011-12-06 | Intel Corporation | On-disk caching for raid systems |
CN1921382B (zh) * | 2006-09-06 | 2010-05-12 | 华为技术有限公司 | 一种基于aes算法的加解密方法及加解密器 |
US8301905B2 (en) | 2006-09-08 | 2012-10-30 | Inside Secure | System and method for encrypting data |
US7949130B2 (en) | 2006-12-28 | 2011-05-24 | Intel Corporation | Architecture and instruction set for implementing advanced encryption standard (AES) |
US8538012B2 (en) | 2007-03-14 | 2013-09-17 | Intel Corporation | Performing AES encryption or decryption in multiple modes with a single instruction |
US8538015B2 (en) | 2007-03-28 | 2013-09-17 | Intel Corporation | Flexible architecture and instruction for advanced encryption standard (AES) |
US8781110B2 (en) | 2007-06-30 | 2014-07-15 | Intel Corporation | Unified system architecture for elliptic-curve cryptography |
US7930519B2 (en) | 2008-12-17 | 2011-04-19 | Advanced Micro Devices, Inc. | Processor with coprocessor interfacing functional unit for forwarding result from coprocessor to retirement unit |
-
2007
- 2007-03-28 US US11/729,199 patent/US8538015B2/en active Active
-
2008
- 2008-03-25 CN CN201710815596.4A patent/CN107493163B/zh active Active
- 2008-03-25 CN CN201310110523.7A patent/CN103152168B/zh active Active
- 2008-03-25 EP EP08744319.8A patent/EP2132899B1/en active Active
- 2008-03-25 CN CN202011411255.9A patent/CN112532376A/zh active Pending
- 2008-03-25 CN CN201710815893.9A patent/CN107465501B/zh active Active
- 2008-03-25 EP EP18165550.7A patent/EP3361668B1/en active Active
- 2008-03-25 JP JP2009552935A patent/JP2010520517A/ja active Pending
- 2008-03-25 EP EP16191616.8A patent/EP3145113B1/en active Active
- 2008-03-25 WO PCT/US2008/058128 patent/WO2008121614A1/en active Application Filing
- 2008-03-25 EP EP14169143.6A patent/EP2852088B1/en active Active
- 2008-03-25 CN CN2008800064951A patent/CN101622816B/zh active Active
- 2008-03-25 EP EP20176663.1A patent/EP3737031B1/en active Active
- 2008-03-25 ES ES18165550T patent/ES2805125T3/es active Active
- 2008-03-26 SG SG200802383-0A patent/SG146584A1/en unknown
- 2008-03-27 TW TW097111091A patent/TWI369885B/zh active
-
2012
- 2012-10-11 JP JP2012226077A patent/JP2013057946A/ja active Pending
-
2013
- 2013-08-29 US US14/014,091 patent/US10554386B2/en active Active
- 2013-10-25 JP JP2013222466A patent/JP5715218B2/ja active Active
-
2014
- 2014-12-16 US US14/572,607 patent/US10270589B2/en active Active
- 2014-12-16 US US14/572,545 patent/US10181945B2/en active Active
- 2014-12-16 US US14/572,578 patent/US9641319B2/en active Active
- 2014-12-16 US US14/572,584 patent/US9641320B2/en active Active
- 2014-12-16 US US14/572,602 patent/US9654282B2/en active Active
- 2014-12-16 US US14/572,620 patent/US9634830B2/en active Active
- 2014-12-16 US US14/572,540 patent/US9634828B2/en active Active
- 2014-12-16 US US14/572,565 patent/US9634829B2/en active Active
- 2014-12-16 US US14/572,423 patent/US9647831B2/en active Active
- 2014-12-16 US US14/572,593 patent/US9654281B2/en active Active
-
2015
- 2015-01-26 JP JP2015012125A patent/JP2015096976A/ja active Pending
- 2015-03-12 JP JP2015049638A patent/JP2015108853A/ja active Pending
- 2015-10-01 US US14/872,584 patent/US10291394B2/en active Active
- 2015-10-01 US US14/872,556 patent/US20160197720A1/en not_active Abandoned
- 2015-12-30 US US14/984,663 patent/US10171231B2/en active Active
- 2015-12-30 US US14/984,686 patent/US10171232B2/en active Active
- 2015-12-30 US US14/984,673 patent/US10158478B2/en active Active
- 2015-12-30 US US14/984,637 patent/US10581590B2/en active Active
- 2015-12-30 US US14/984,629 patent/US10256972B2/en active Active
- 2015-12-30 US US14/984,588 patent/US10164769B2/en active Active
- 2015-12-30 US US14/984,647 patent/US10263769B2/en active Active
- 2015-12-30 US US14/984,616 patent/US10313107B2/en not_active Expired - Fee Related
- 2015-12-30 US US14/984,601 patent/US10256971B2/en active Active
- 2015-12-30 US US14/984,656 patent/US10187201B2/en active Active
-
2017
- 2017-01-06 JP JP2017001149A patent/JP6592804B2/ja active Active
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6592804B2 (ja) | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170206 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170206 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170306 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180424 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20180723 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20180921 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181024 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190416 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190716 |
|
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: 20190730 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20190828 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190903 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6592804 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |