Efficient implementation of hash algorithm on a processor
AssigneeCerticom Corp.
InventorsNevine Maurice Nassif Ebeid, Robert John Lambert
Life of this patent
Estimating the term…
Abstract
An efficient implementation of SHA-512, and similarly SHA-384, on an ARM processor. The implementation maximizes reuse of the register values between iterations so as to minimize the need to load these values from memory. This is achieved by categorizing the iterations into even and odd ones such that the sequence of computation in the even iteration is reversed in the odd iteration and the register values at the end of one iteration are consumed at the beginning of the following one.
Claims21
A method for maximizing a number of registers at an end of an iteration of a hash algorithm for use in a next iteration, the method comprising:
- categorizing and unrolling iterations of an original secure hash algorithm into even iterations and odd iterations;
- reversing a sequence of computations in the even iterations to those in the odd iterations, said reversing resulting in an average number of words that need to be loaded into the registers per iteration being reduced by at least one-half compared to the original secure hash algorithm;
- and
- combining an even iteration and an odd iteration to provide a new iteration of a loop.
A system for maximizing a number of registers at an end of an iteration of a hash algorithm for use in a next iteration, the system comprising:
- a processing circuit configured to
- categorize and unroll iterations of an original secure hash algorithm into even iterations and odd iterations;
- reverse a sequence of computations in the even iterations to those in the odd iterations, said reversing resulting in an average number of words that need to be loaded into the registers per iteration being reduced by at least one-half compared to the original secure hash algorithm;
- and
- combine an even iteration and an odd iteration to provide a new iteration of a loop.
A method for maximizing a number of registers at an end of an iteration of a hash algorithm for use in a next iteration, the method comprising:
- categorizing and unrolling secure hash algorithm iterations into even iterations and odd iterations;
- reversing, by a processing circuit, a sequence of computations in the even iterations to those in the odd iterations;
- combining an even iteration and an odd iteration to provide a new iteration of a loop;
- and in a last 64 iterations of the secure hash algorithm, keeping an offset constant between a location of a current 8 state words and a pointer to a current w word.
Dependencies are inferred from the claim text.