JP2013057946A - 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 - Google Patents
新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 Download PDFInfo
- Publication number
- JP2013057946A JP2013057946A JP2012226077A JP2012226077A JP2013057946A JP 2013057946 A JP2013057946 A JP 2013057946A JP 2012226077 A JP2012226077 A JP 2012226077A JP 2012226077 A JP2012226077 A JP 2012226077A JP 2013057946 A JP2013057946 A JP 2013057946A
- Authority
- JP
- Japan
- Prior art keywords
- round
- aes
- key
- aes round
- instruction
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 17
- 230000009466 transformation Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000006467 substitution reaction Methods 0.000 claims 7
- 238000012545 processing Methods 0.000 description 24
- 238000004422 calculation algorithm Methods 0.000 description 10
- 239000000203 mixture Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 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
- 230000001360 synchronised 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)
Abstract
【解決手段】AES命令セットは、AES暗号化または復号化用に「1ラウンド」パスを行う命令を含み、さらに、鍵生成を行う命令を含む。128/192/256ビット鍵用の鍵生成の鍵サイズおよびラウンド数を示すのに直近を利用してよい。柔軟なAES命令セットは、暗黙のレジスタをトラッキングする必要がないので、パイプライン能力の最大限の発揮が可能である。
【選択図】図1
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
Claims (22)
- AES命令の一連の演算を行う実行部を備える装置であって、
前記一連の演算は、プラグラム可能な数のAESラウンドを行い、
前記演算は前記実行部に、
前記AESラウンドの数が1より大きい場合、鍵を一時的鍵レジスタにロードさせ、
各AESラウンドを行う前に、前記鍵に基づいて前記AESラウンドのラウンド鍵を生成させ、
各AESラウンドにおいて、前記AESラウンドの入力および前記AESラウンドの前記ラウンド鍵に対して一連のAESラウンド演算を行わせて、次のAESラウンドの次の入力または前記AES命令の結果を提供させる、装置。 - 前記AESラウンドの数が1に等しい場合、前記一連のAESラウンド演算を行う前に、前記実行部は、前記鍵に基づいて前記AESラウンドについて予め計算されたラウンド鍵をロードする、請求項1に記載の装置。
- 前記一連のAESラウンド演算により、前記実行部は、
前記ラウンドの入力および前記AESラウンドの前記ラウンド鍵に対して排他的論理和(XOR)演算を行って、中間値を生成し、
ルックアップテーブルに格納されている値に基づいて、前記中間値の各バイトに対して置換演算を行い、
前記置換演算の結果に、前記中間値の行をシフトさせるビット線形変換を行う、請求項2に記載の装置。 - 前記AESラウンドの数−1に対して前記一連のAESラウンド演算を行うことで、前記実行部は、
前記AESラウンドの前記入力および前記AESラウンドの前記ラウンド鍵に対して排他的論理和(XOR)演算を行って、中間値を生成し、
ルックアップテーブルに格納されている値に基づいて、前記中間値の各バイトに対して置換演算を行い、
前記置換演算の結果に、前記中間値の行をシフトさせるビット線形変換を行い、
前記置換演算の結果に、前記中間値の列同士を混合させるビット線形変換を行う、請求項1に記載の装置。 - 最終ラウンドに前記一連のAESラウンド演算を行うことで、前記実行部は、
前記ラウンドの入力および前記AESラウンドの前記ラウンド鍵に対して排他的論理和(XOR)演算を行って、中間値を生成し、
ルックアップテーブルに格納されている値に基づいて、前記中間値の各バイトに対して置換演算を行い、
前記置換演算の結果に、前記中間値の行をシフトさせるビット線形変換を行う、請求項4に記載の装置。 - 前記結果は暗号化された値である、請求項1に記載の装置。
- 前記結果は復号化された値である、請求項1に記載の装置。
- 第1のAESラウンドの鍵および入力がレジスタファイルに格納されている、請求項1に記載の装置。
- 前記レジスタファイルは複数の128ビットレジスタを含む、請求項8に記載の装置。
- AES命令のプログラム可能なAESラウンドの数が1より大きい場合、鍵を一時的鍵レジスタにロードして、各AESラウンドを行う前に、前記鍵に基づいて前記AESラウンドのラウンド鍵を生成する段階と、
各AESラウンドにおいて、前記AESラウンドの入力および前記AESラウンドの前記ラウンド鍵に対して一連のAESラウンド演算を行い、次のAESラウンドの次の入力または前記AES命令の結果を提供する段階と、を備える方法。 - 前記AESラウンドの数が1に等しい場合、前記一連のAESラウンド演算を行う前に、前記鍵に基づいて前記AESラウンドについて予め計算されたラウンド鍵をロードする段階を備える、請求項10に記載の方法。
- 前記一連のAESラウンド演算を行う段階は、
前記ラウンドの入力および前記AESラウンドの前記ラウンド鍵に対して排他的論理和(XOR)演算を行って、中間値を生成する段階と、
ルックアップテーブルに格納されている値に基づいて、前記中間値の各バイトに対して置換演算を行う段階と、
前記置換演算の結果に、前記中間値の行をシフトさせるビット線形変換を行う段階と、を有する、請求項11に記載の方法。 - 前記ラウンドの数1に対して前記一連のAESラウンド演算を行う段階は、
前記AESラウンドの前記入力および前記AESラウンドの前記ラウンド鍵に対して排他的論理和(XOR)演算を行って、中間値を生成する段階と、
ルックアップテーブルに格納されている値に基づいて、前記中間値の各バイトに対して置換演算を行う段階と、
前記置換演算の結果に、前記中間値の行をシフトさせるビット線形変換を行う段階と、
前記置換演算の結果に、前記中間値の列同士を混合させるビット線形変換を行う段階と、を有する、請求項10に記載の方法。 - 最終AESラウンドに前記一連のAESラウンド演算を行う段階は、
前記ラウンドの入力および前記AESラウンドの前記ラウンド鍵に対して排他的論理和(XOR)演算を行って、中間値を生成する段階と、
ルックアップテーブルに格納されている値に基づいて、前記中間値の各バイトに対して置換演算を行う段階と、
前記置換演算の結果に、前記中間値の行をシフトさせるビット線形変換を行う段階と、を有する、請求項13に記載の方法。 - 前記結果は暗号化された値である、請求項10に記載の方法。
- 前記結果は復号化された値である、請求項10に記載の方法。
- 第1のAESラウンドの鍵および入力がレジスタファイルに格納されている、請求項10に記載の方法。
- 前記レジスタファイルは複数の128ビットレジスタを含む、請求項17に記載の方法。
- 関連情報を有する機械アクセス可能な媒体を含む物品であって、前記情報はアクセスされると機械に、
AES命令のプログラム可能なAESラウンドの数が1より大きい場合、鍵を一時的鍵レジスタにロードさせ、各AESラウンドを行う前に、前記鍵に基づいて前記AESラウンドのラウンド鍵を生成させ、
各AESラウンドにおいて、前記AESラウンドの入力および前記AESラウンドの前記ラウンド鍵に対して一連のAESラウンド演算を行わせて、次のAESラウンドの次の入力または前記AES命令の結果を提供させる、物品。 - 前記AESラウンドの数が1に等しい場合、前記一連のAESラウンド演算を行う前に、前記鍵に基づいて前記AESラウンドについて予め計算されたラウンド鍵がロードされる、請求項19に記載の物品。
- データおよび命令を格納するダイナミックランダムアクセスメモリと、
前記メモリに連結されて前記命令を実行するプロセッサと、を備えるシステムであって、
前記プロセッサは、
AES命令の一連の演算を行う実行部を備え、
前記一連の演算は、プラグラム可能な数のAESラウンドを行い、
前記演算は前記実行部に、
前記AESラウンドの数が1より大きい場合、鍵を一時的鍵レジスタにロードさせ、
各AESラウンドを行う前に、前記鍵に基づいて前記AESラウンドのラウンド鍵を生成させ、
各AESラウンドにおいて、前記AESラウンドの入力および前記AESラウンドの前記ラウンド鍵に対して一連のAESラウンド演算を行わせて、次のAESラウンドの次の入力または前記AES命令の結果を提供させる、システム。 - 前記AESラウンドの数が1に等しい場合、前記一連のAESラウンド演算を行う前に、前記実行部は、前記鍵に基づいて前記AESラウンドについて予め計算されたラウンド鍵をロードする、請求項21に記載のシステム。
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 |
---|---|---|---|
JP2009552935A Division JP2010520517A (ja) | 2007-03-28 | 2008-03-25 | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013222466A Division JP5715218B2 (ja) | 2007-03-28 | 2013-10-25 | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013057946A true JP2013057946A (ja) | 2013-03-28 |
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 (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009552935A Pending JP2010520517A (ja) | 2007-03-28 | 2008-03-25 | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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)向けの柔軟なアーキテクチャおよび命令 |
Country Status (8)
Country | Link |
---|---|
US (24) | US8538015B2 (ja) |
EP (5) | EP3737031B1 (ja) |
JP (6) | JP2010520517A (ja) |
CN (4) | CN103152168B (ja) |
ES (1) | ES2805125T3 (ja) |
SG (1) | SG146584A1 (ja) |
TW (1) | TWI369885B (ja) |
WO (1) | WO2008121614A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10038550B2 (en) | 2013-08-08 | 2018-07-31 | Intel Corporation | Instruction and logic to provide a secure cipher hash round functionality |
Families Citing this family (59)
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 |
US8832464B2 (en) * | 2009-03-31 | 2014-09-09 | Oracle America, Inc. | Processor and method for implementing instruction support for hash algorithms |
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 |
US9317286B2 (en) * | 2009-03-31 | 2016-04-19 | Oracle America, Inc. | Apparatus and method for implementing instruction support for the camellia 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 |
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 |
US9003170B2 (en) | 2009-12-22 | 2015-04-07 | Intel Corporation | Bit range isolation instructions, methods, and apparatus |
US9990201B2 (en) | 2009-12-22 | 2018-06-05 | Intel Corporation | Multiplication instruction for which execution completes without writing a carry flag |
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 |
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 |
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 |
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 |
CN107547193A (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 | 南方电网数字电网科技(广东)有限公司 | 基于双芯智能电表的数据清空方法、装置和计算机设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080159526A1 (en) * | 2006-12-28 | 2008-07-03 | Shay Gueron | Architecture and instruction set for implementing advanced encryption standard (AES) |
US20080240426A1 (en) * | 2007-03-28 | 2008-10-02 | Shay Gueron | Flexible architecture and instruction for advanced encryption standard (AES) |
Family Cites Families (70)
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 | 富士通株式会社 | 暗号回路 |
DE60143275D1 (de) | 2001-08-20 | 2010-11-25 | 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 |
US7240084B2 (en) | 2002-05-01 | 2007-07-03 | Sun Microsystems, Inc. | Generic implementations of elliptic curve cryptography using partial reduction |
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 |
US7532722B2 (en) | 2003-04-18 | 2009-05-12 | Ip-First, Llc | Apparatus and method for performing transparent block cipher cryptographic functions |
US7539876B2 (en) | 2003-04-18 | 2009-05-26 | Via Technologies, Inc. | Apparatus and method for generating a cryptographic key schedule in a microprocessor |
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 |
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 |
US7536560B2 (en) * | 2003-04-18 | 2009-05-19 | Via Technologies, Inc. | Microprocessor apparatus and method for providing configurable cryptographic key size |
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 |
WO2005006191A1 (ja) * | 2003-07-10 | 2005-01-20 | Fujitsu Limited | 複数種類の情報を登録する装置および方法 |
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 |
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 |
US8301905B2 (en) | 2006-09-08 | 2012-10-30 | Inside Secure | System and method for encrypting data |
US8538012B2 (en) | 2007-03-14 | 2013-09-17 | Intel Corporation | Performing AES encryption or decryption in multiple modes with a single instruction |
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 EP EP20176663.1A patent/EP3737031B1/en active Active
- 2008-03-25 JP JP2009552935A patent/JP2010520517A/ja active Pending
- 2008-03-25 WO PCT/US2008/058128 patent/WO2008121614A1/en active Application Filing
- 2008-03-25 EP EP18165550.7A patent/EP3361668B1/en active Active
- 2008-03-25 CN CN201310110523.7A patent/CN103152168B/zh active Active
- 2008-03-25 CN CN201710815596.4A patent/CN107493163B/zh active Active
- 2008-03-25 EP EP08744319.8A patent/EP2132899B1/en active Active
- 2008-03-25 CN CN2008800064951A patent/CN101622816B/zh active Active
- 2008-03-25 ES ES18165550T patent/ES2805125T3/es active Active
- 2008-03-25 EP EP14169143.6A patent/EP2852088B1/en active Active
- 2008-03-25 EP EP16191616.8A patent/EP3145113B1/en active Active
- 2008-03-25 CN CN201710815893.9A patent/CN107465501B/zh 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,602 patent/US9654282B2/en active Active
- 2014-12-16 US US14/572,584 patent/US9641320B2/en active Active
- 2014-12-16 US US14/572,565 patent/US9634829B2/en active Active
- 2014-12-16 US US14/572,540 patent/US9634828B2/en active Active
- 2014-12-16 US US14/572,423 patent/US9647831B2/en active Active
- 2014-12-16 US US14/572,607 patent/US10270589B2/en active Active
- 2014-12-16 US US14/572,593 patent/US9654281B2/en active Active
- 2014-12-16 US US14/572,545 patent/US10181945B2/en active Active
- 2014-12-16 US US14/572,620 patent/US9634830B2/en active Active
- 2014-12-16 US US14/572,578 patent/US9641319B2/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,556 patent/US20160197720A1/en not_active Abandoned
- 2015-10-01 US US14/872,584 patent/US10291394B2/en active Active
- 2015-12-30 US US14/984,686 patent/US10171232B2/en active Active
- 2015-12-30 US US14/984,629 patent/US10256972B2/en active Active
- 2015-12-30 US US14/984,637 patent/US10581590B2/en active Active
- 2015-12-30 US US14/984,588 patent/US10164769B2/en active Active
- 2015-12-30 US US14/984,601 patent/US10256971B2/en active Active
- 2015-12-30 US US14/984,673 patent/US10158478B2/en active Active
- 2015-12-30 US US14/984,663 patent/US10171231B2/en active Active
- 2015-12-30 US US14/984,616 patent/US10313107B2/en not_active Expired - Fee Related
- 2015-12-30 US US14/984,656 patent/US10187201B2/en active Active
- 2015-12-30 US US14/984,647 patent/US10263769B2/en active Active
-
2017
- 2017-01-06 JP JP2017001149A patent/JP6592804B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080159526A1 (en) * | 2006-12-28 | 2008-07-03 | Shay Gueron | Architecture and instruction set for implementing advanced encryption standard (AES) |
US20080240426A1 (en) * | 2007-03-28 | 2008-10-02 | Shay Gueron | Flexible architecture and instruction for advanced encryption standard (AES) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10038550B2 (en) | 2013-08-08 | 2018-07-31 | Intel Corporation | Instruction and logic to provide a secure cipher hash round functionality |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6592804B2 (ja) | 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令 | |
CN112532376B (zh) | 用于高级加密标准(aes)的灵活结构和指令 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130312 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130605 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130625 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131025 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20131028 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20131120 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20140131 |