IP Library Granted Patent US 9,230,120
Granted Patent B2
US 9,230,120 · App. 14/100,970 · Granted Jan 5, 2016

Architecture and instruction set for implementing advanced encryption standard (AES)

Inventors: Shay Gueron (Haifa, IL); Wajdi K. Feghali (Boston, MA); Vinodh Gopal (Westboro, OR)
Assignee: Intel Corporation
G06F21/602H04L9/0631
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,230,120
App. No.
14/100,970
Granted
Jan 5, 2016
Kind
B2
Abstract

A flexible aes instruction for a general purpose processor is provided that performs aes encryption or decryption using n rounds, where n includes the standard aes set of rounds {10, 12, 14}. A parameter is provided to allow the type of aes round to be selected, that is, whether it is a “last round”. In addition to standard aes, the flexible aes instruction allows an AES-like cipher with 20 rounds to be specified or a “one round” pass.

Claims (41)

1. A non-transitory machine-readable medium storing at least one instruction to be decoded and executed by an execution unit of a processor, the at least one instruction, when decoded and executed by the processor, resulting in performance of operations comprising:

identifying a first parameter, indicating a value for independently selecting from an independently selectable key size, a programmable number of rounds of a non-standard Advanced Encryption Standard (AES) algorithm executed by the processor,

permitting, by the at least one instruction, a selected value of the first parameter to be different from each of the following values: 10, 12, and 14,

performing of a particular number of non-standard AES algorithm rounds using the selected value of the first parameter to produce a non-standard AES algorithm encryption/decryption result,

the particular number of non-standard AES algorithm rounds being a non-standard number of AES algorithm rounds as defined by a standard AES algorithm,

the execution unit including at least one register to store at least one portion of at least one key prior to the execution unit performing an XOR operation involving the at least one portion;

the selected value being permitted to be of unity value configured to:

(1) select a single round to be executed by the processor independent of the key size, and

(2) result in a round key to be loaded into a register file of the processor prior to issuance of each of the rounds;

wherein the instruction further comprises a second parameter of the key size to be used in the programmable number of non-standard AES algorithm rounds; and

the instruction permits the first parameter and the second parameter to be selectable independently of each other such that the instruction implements a number of rounds/key schedules other than those defined in the standard AES algorithm.

2. The medium of claim 1 , wherein the operations further comprise:

identifying a second parameter specifying the key size, the key size to be used in the programmable number of non-standard AES algorithm rounds;

and

identifying a third parameter indicating whether the programmable number of non-standard AES algorithm rounds is to be used to one of encrypt and decrypt; and

also wherein the first parameter and the second parameter are mutually distinct from each other.

3. The medium of claim 1 , wherein:

the processor is a general purpose processor; and

the at least one instruction is comprised in an instruction set extension for the general purpose processor, the extension permitting performance by the general purpose processor of non-standard AES algorithm encryption and decryption.

4. The medium of claim 1 , wherein: the second parameter also is to indicate whether a final one of the programmable number of non-standard AES algorithm rounds is to implement a non-standard AES inverse mix column transform.

5. An apparatus comprising:

a processor comprising an instruction fetch and decode unit and an execution unit, the execution unit to execute an instruction, resulting in performance of operations comprising:

identifying a first parameter, indicating a value for independently selecting from an independently selectable key size, a programmable number of rounds of a non-standard Advanced Encryption Standard (AES) algorithm executed by the processor,

permitting, by the at least one instruction, a selected value of the first parameter to be different from each of the following values: 10, 12, and 14,

performing of a particular number of non-standard AES algorithm rounds using the selected value of the first parameter to produce a non-standard AES algorithm encryption/decryption result,

the particular number of non-standard AES algorithm rounds being a non-standard number of AES algorithm rounds as defined by a standard AES algorithm,

the execution unit including at least one register to store at least one portion of at least one key prior to the execution unit performing an XOR operation involving the at least one portion;

the selected value being permitted to be of unity value configured to:

(1) select a single round to be executed by the processor independent of the key size, and

(2) result in a round key to be loaded into a register file of the processor prior to issuance of each of the rounds;

wherein the instruction further comprises a second parameter of the key size to be used in the programmable number of non-standard AES algorithm rounds; and

the instruction permits the first parameter and the second parameter to be selectable independently of each other such that the instruction implements a number of rounds/key schedules other than those defined in the standard AES algorithm.

6. The apparatus of claim 5 , wherein:

the instruction further comprises:

a second parameter specifying the key size, the key size to be used in the programmable number of non-standard AES algorithm rounds;

the first parameter and the second parameter are mutually distinct from each other; and

a third parameter of whether the programmable number of non-standard AES algorithm rounds is to be used to one of encrypt and decrypt.

7. The apparatus of claim 5 , wherein:

the processor is a general purpose processor; and

the instruction is comprised in an instruction set extension for the general purpose processor, the extension permitting performance by the general purpose processor of non-standard AES algorithm encryption and decryption.

8. The apparatus of claim 5 , wherein: the second parameter also is to indicate whether a final one of the programmable number of non-standard AES algorithm rounds is to implement a non-standard AES inverse mix column transform.

Continuity (3)
Continuation 13088088 · Apr 15, 2011
Continuation 11648434 · Dec 28, 2006
Related Publication 20140101460A1 · Apr 10, 2014