Accelerating cryptographic hash computations
AssigneeSun Microsystems, Inc.
InventorLawrence A. Spracklen
Life of this patent
Estimating the term…
Abstract
Provided is an apparatus and method for accelerating cryptographic hash computations. For example, in a cryptographic hash computation such as SHA-1, multiple execution units in a processor can process loosely coupled data. Specifically, after preprocessing a message with a particular bit length and parsing the padded message into multiple blocks, a first execution unit can begin processing the blocks for a message schedule computation. While the first block is processed, the first execution unit produces a partial result for the computation of the compression function in the second execution unit. By simultaneously processing the blocks on multiple execution units, the cryptographic hash computation performance can improve.
Claims15
A processor for executing a secure hash algorithm (SHA) computation on a message, comprising:
- a core having a first execution unit and a second execution unit, wherein an output of the first execution unit is connected to an input of the second execution unit,
- wherein the first execution unit is defined to perform a message schedule computation on a data block of the message to generate an expanded representation of the data block from a first number of bits to a larger number of bits,
- wherein the first execution unit is defined to communicate a partial result of the expanded version of the data block through its output to the input of the second execution unit when the partial result becomes available and prior to completion of the message schedule computation on the data block,
- wherein the second execution unit is defined to perform a compression function on the partial result received from the first execution unit in parallel with the first execution unit continuing the message schedule computation on the data block, whereby the compression function is defined to iteratively consume the partial result.
A processor for cryptographic computation, comprising:
- a first execution unit defined to perform a message schedule computation on a data block and produce a partial result of the message schedule computation on the data block prior to completion of the message schedule computation on the data block, wherein the message schedule computation generates an expanded representation of the data block from a first number of bits to a larger number of bits, wherein the partial result includes a group of bits capable of being represented by a hexadecimal value, the first execution unit further defined to have an output through which the partial result is communicated;
- and
- a second execution unit defined to have an input to which the output of the first execution unit is connected, the second execution unit defined to receive the partial result from the first execution unit through the input and to perform a compression function on the partial result while the first execution unit continues performing the message schedule computation on the data block, whereby the compression function is defined to iteratively consume the partial results.
A method, comprising:
- receiving a message;
- and
- performing a cryptographic computation on the message, the cryptographic computation including a hash computation including,
- performing a message schedule computation on a block of data using a first execution unit, wherein the message schedule computation generates an expanded representation of the data block from a first number of bits to a larger number of bits, whereby a partial result of the message schedule computation is generated prior to completion of the message schedule computation,
- communicating the partial result from an output of the first execution unit to an input of a second execution unit while the message schedule computation on the block of data continues using the first execution unit, and
- performing a compression function on the partial result using the second execution unit while the message schedule computation on the block of data continues using the first execution unit, whereby the compression function is defined to iteratively consume the partial result.
A method for a one-way cryptographic hash computation, comprising:
- operating a first execution unit to perform a message schedule computation on a data block to produce a partial result of the message schedule computation on the data block, wherein the schedule computation generates an expanded representation of the data block from a first number of bits to a larger number of bits;
- sending the partial result through an output of the first execution unit to an input of a second execution unit while the first execution unit continues to operate to perform the message schedule computation on the block of data;
- and
- operating a second execution unit to perform a compression function on the partial result while the first execution unit continues performing the message schedule computation on the data block, whereby the compression function is defined to iteratively consume the partial result.
Dependencies are inferred from the claim text.