INSTRUCTIONS AND LOGIC TO PROVIDE SIMD SM3 CRYPTOGRAPHIC HASHING FUNCTIONALITY
First Claim
1. A processor comprising:
- a decode stage to decode a first instruction for a SIMD SM3 hash round slice, the first instruction specifying a round-slice portion of the hashing algorithm, an intermediate hash value input operand, a source data operand set, and a round constant operand set; and
one or more execution units, responsive to the decoded first instruction, to;
perform an SM3 hashing round-slice set of round iterations upon the source data operand set, applying the intermediate hash value input operand and the round constant operand set; and
store a result of the first instruction in a SIMD destination register.
1 Assignment
0 Petitions
Accused Products
Abstract
Instructions and logic provide SIMD SM3 cryptographic hashing functionality. Some embodiments include a processor comprising: a decoder to decode instructions for a SIMD SM3 message expansion, specifying first and second source data operand sets, and an expansion extent. Processor execution units, responsive to the instruction, perform a number of SM3 message expansions, from the first and second source data operand sets, determined by the specified expansion extent and store the result into a SIMD destination register. Some embodiments also execute instructions for a SIMD SM3 hash round-slice portion of the hashing algorithm, from an intermediate hash value input, a source data set, and a round constant set. Processor execution units perform a set of SM3 hashing round iterations upon the source data set, applying the intermediate hash value input and the round constant set, and store a new hash value result in a SIMD destination register.
34 Citations
46 Claims
-
1. A processor comprising:
-
a decode stage to decode a first instruction for a SIMD SM3 hash round slice, the first instruction specifying a round-slice portion of the hashing algorithm, an intermediate hash value input operand, a source data operand set, and a round constant operand set; and one or more execution units, responsive to the decoded first instruction, to; perform an SM3 hashing round-slice set of round iterations upon the source data operand set, applying the intermediate hash value input operand and the round constant operand set; and store a result of the first instruction in a SIMD destination register. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A processor comprising:
-
a decode stage to decode a first instruction for a SIMD SM3 message expansion, the first instruction specifying a first source data operand set, a second source data operand set, and an expansion extent; and one or more execution units, responsive to the decoded first instruction, to; perform a number of SM3 message expansions from the first and second source data operand sets, the number of SM3 message expansions being determined by the specified expansion extent; and store a result of the first instruction in a SIMD destination register. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A method comprising:
-
storing in a first portion of a plurality of m data fields of a first vector register, an intermediate hash value input state source operand of an SM3 hash algorithm; storing in a second portion of the plurality of m data fields of a second vector register, a source data operand set; executing, in a processor, a SIMD instruction for an SM3 hash-round-slice portion of the SM3 hashing algorithm having a plurality of iterations less that a total number of round iterations of the SM3 hash algorithm; and for each iteration of the SM3 hash-round-slice, generating a result of an iteration, storing a hash value output state generated as the result of the iteration, and bypassing the hash value output state to the intermediate hash value input state for each next iteration of the plurality of iterations. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A method comprising:
-
storing in a first portion of a plurality of m data fields of a first vector register, a first source data operand set; storing in a second portion of the plurality of m data fields of a second vector register, a second source data operand set; executing, in a processor, a SIMD instruction specifying an expansion extent for an SM3 message-expansion-slice portion for the SM3 hashing algorithm having a number of SM3 message expansions from the first and second source data operand sets, the number of SM3 message expansions being determined by the specified expansion extent; and storing a result of the SIMD instruction in a SIMD destination register. - View Dependent Claims (33, 34, 35, 36)
-
-
37. A processing system comprising:
-
a memory to store a first instruction for a SIMD SM3 hashing algorithm round slice, and a second instruction for an SM3 message expansion slice for the SM3 hashing algorithm; and a processor comprising; an instruction fetch stage to fetch the first instruction; a decode stage to decode the first instruction, the first instruction specifying specifying a round-slice portion of the hashing algorithm, an intermediate hash value input operand, a round-slice source data operand set, and a round constant operand set; the decode stage to decode the second instruction, the second instruction specifying a first source data operand set, a second source data operand set, and an expansion extent; and one or more execution units, responsive to the decoded first instruction, to; perform an SM3 hashing round-slice set of round iterations upon the round-slice source data operand set, applying the intermediate hash value input operand and the round constant operand set, and storing a first result of the first instruction in a first SIMD destination register; and the one or more execution units, responsive to the decoded second instruction, to; perform a number of SM3 message expansions from the first and second source data operand sets, the number of SM3 message expansions being determined by the specified expansion extent, and storing a second result of the second instruction in a second SIMD destination register. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46)
-
Specification