IP Library Granted Patent US 10,686,591
Granted Patent B2
US 10,686,591 · App. 16/208,542 · Granted Jun 16, 2020

Instruction and logic to provide SIMD secure hashing round slice functionality

Inventors: Gilbert M. Wolrich (Framingham, MA); Vinodh Gopal (Westborough, MA); Kirk S. Yap (Westborough, MA)
Assignee: Intel Corporation
H04L9/0643G06F9/30007G06F9/30036G06F9/30145G06F9/3887G06F15/8007G06F21/602G06F21/64
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 10,686,591
App. No.
16/208,542
Granted
Jun 16, 2020
Kind
B2
Abstract

Instructions and logic provide SIMD secure hashing round slice functionality. Some embodiments include a processor comprising: a decode stage to decode an instruction for a SIMD secure hashing algorithm round slice, the instruction specifying a source data operand set, a message-plus-constant operand set, a round-slice portion of the secure hashing algorithm round, and a rotator set portion of rotate settings. Processor execution units, are responsive to the decoded instruction, to perform a secure hashing round-slice set of round iterations upon the source data operand set, applying the message-plus-constant operand set and the rotator set, and store a result of the instruction in a SIMD destination register. One embodiment of the instruction specifies a hash round type as one of four MD5 round types. Other embodiments may specify a hash round type by an immediate operand as one of three SHA-1 round types or as a SHA-2 round type.

Claims (50)

1. A processor comprising:

a plurality of Single Instruction, Multiple Data (SIMD) registers;

a decode stage to decode an instruction for a secure hash algorithm, the instruction to indicate a first source operand, a second source operand, and a given round of the secure hash algorithm, the first source operand to have at least four state data elements A, B, C, and D, the second source operand to have one or more data elements that are each to represent a combination of a corresponding message and a corresponding constant;

an execution unit coupled with the decode stage, and coupled with the plurality of SIMD registers, the execution unit, responsive to the decode of the instruction, to perform the instruction to:

perform one or more iterations of the given round of the secure hash algorithm using the first and second source operands and a corresponding rotation amount for each of the one or more iterations, wherein each of the one or more iterations is to use a different corresponding one of the one or more data elements of the second source operand; and

store a result of the instruction in a SIMD destination register of the plurality of SIMD registers.

2. The processor of claim 1 , wherein the one or more iterations are a single iteration.

3. The processor of claim 1 , wherein the one or more iterations are two iterations.

4. The processor of claim 1 , wherein the one or more iterations are four iterations.

5. The processor of claim 1 , wherein the one or more iterations are five iterations.

6. The processor of claim 1 , wherein the secure hash algorithm is a Message-Digest Algorithm 5 (MD5) algorithm.

7. The processor of claim 6 , wherein the one or more iterations are a single iteration, wherein the instruction is to indicate a single rotation amount that is to be used for the single iterations, and wherein the plurality of SIMD registers are 128-bit registers.

8. The processor of claim 6 , wherein the one or more iterations are two iterations, wherein the instruction is to indicate two rotation amounts that are each to be used for one of the two iterations, and wherein the plurality of SIMD registers are 128-bit registers.

9. The processor of claim 1 , wherein the secure hash algorithm is a Secure Hash Algorithm 1 (SHA-1) algorithm.

10. The processor of claim 1 , wherein the secure hash algorithm is a Secure Hash Algorithm 2 (SHA-2) algorithm.

11. The processor of claim 1 , wherein the instruction has an immediate to indicate the given round.

12. The processor of claim 1 , wherein the plurality of SIMD registers are 128-bit registers.

13. A processor comprising:

a plurality of Single Instruction, Multiple Data (SIMD) registers;

a decode unit including hardware to decode an instruction for a Message-Digest Algorithm 5 (MD5) algorithm, the instruction to indicate a first source operand, a second source operand, and a given round of the MD5 algorithm, the first source operand to have four state data elements A, B, C, and D, the second source operand to have four data elements that are each to represent a combination of a corresponding message and a corresponding constant;

an execution unit coupled with the decode unit, and coupled with the plurality of SIMD registers, the execution unit, responsive to the decode of the instruction, to perform the instruction to:

perform four iterations of the given round of the MD5 algorithm using the first and second source operands and a corresponding rotation amount for each of the four iterations, wherein each of the four iterations is to use a different corresponding one of the four data elements of the second source operand; and

store a result of the instruction in a SIMD destination register of the plurality of SIMD registers.

14. The processor of claim 13 , wherein the instruction has an immediate to indicate the given round.

15. The processor of claim 13 , wherein the plurality of SIMD registers are 128-bit registers.

16. A processor comprising:

a plurality of Single Instruction, Multiple Data (SIMD) registers;

a decode stage to decode an instruction for a Message-Digest Algorithm 5 (MD5) algorithm, the instruction to indicate a first source operand, a second source operand, and a given round of the MD5 algorithm, the first source operand to have four state data elements A, B, C, and D, the second source operand to have at least two data elements that are each to represent a combination of a corresponding message and a corresponding constant;

an execution unit coupled with the decode stage, and coupled with the plurality of SIMD registers, the execution unit, responsive to the decode of the instruction, to perform the instruction to:

perform two iterations of the given round of the MD5 algorithm using the first and second source operands and a corresponding rotation amount for each of the two iterations, wherein each of the two iterations is to use a different corresponding one of the two data elements of the second source operand; and

store a result of the instruction in a SIMD destination register of the plurality of SIMD registers.

17. The processor of claim 16 , wherein the instruction has an immediate to indicate the given round.

18. The processor of claim 16 , wherein the instruction has an immediate to indicate the two rotation amounts.

19. The processor of claim 16 , wherein the plurality of SIMD registers are 128-bit registers.

20. A processor comprising:

a plurality of Single Instruction, Multiple Data (SIMD) registers;

a decode circuit to decode an instruction for a Secure Hash Algorithm 1 (SHA-1) algorithm, the instruction to indicate a first source operand, and a second source operand, the first source operand to have at least five state data elements A, B, C, D, and E, the second source operand to have at least five data elements that are each to represent a combination of a corresponding message and a corresponding constant;

an execution unit coupled with the decode circuit, and coupled with the plurality of SIMD registers, the execution unit, responsive to the decode of the instruction, to perform the instruction to:

perform five iterations of the SHA-1 algorithm using the first and second source operands, wherein each of the five iterations is to use a different corresponding one of the at least five data elements of the second source operand; and

store a result of the instruction in a SIMD destination register of the plurality of SIMD registers.

21. The processor of claim 20 , wherein the instruction has an immediate to indicate a given round.

22. The processor of claim 20 , wherein the instruction has an immediate to indicate a set of rotate amounts.

23. The processor of claim 20 , wherein the plurality of SIMD registers are 256-bit registers.

24. A processor comprising:

a plurality of Single Instruction, Multiple Data (SIMD) registers;

a decode unit including hardware to decode an instruction for a Secure Hash Algorithm 2 (SHA-2) algorithm, the instruction to indicate a first source operand, and a second source operand, the first source operand to have state data elements A, B, C, D, E, F, G, and H, the second source operand to have at least four data elements that are each to represent a combination of a corresponding message and a corresponding constant;

an execution unit coupled with the decode unit, and coupled with the plurality of SIMD registers, the execution unit, responsive to the decode of the instruction, to perform the instruction to:

perform four iterations of the SHA-2 algorithm using the first and second source operands, wherein each of the four iterations is to use a different corresponding one of the four data elements of the second source operand; and

store a result of the instruction in a SIMD destination register of the plurality of SIMD registers.

25. The processor of claim 24 , wherein the plurality of SIMD registers are 256-bit registers.

Continuity (3)
Continuation 14568101 · Dec 11, 2014
Continuation 13731004 · Dec 29, 2012
Related Publication 20190182032A1 · Jun 13, 2019
Cited By (2)
US 12,399,718 US 12,405,803