Memory optimization for nested hash operations
AssigneeCryptography Research, Inc.
InventorsMichael Hutter, Matthew Pond Baker
Life of this patent
Estimating the term…
Abstract
Disclosed is a method and a system to execute the method to perform a first hashing operation to compute a first hash value, store the first hash value in a plurality of output registers, store a second message in a plurality of input registers, perform a first iteration of a second hashing operation, with an input to the second hashing operation including the second message and the first hash value, determine that a first portion of the second message, stored in a first register of the plurality of input registers, has been processed in course of the second hashing operation, and move a first portion of the first hash value stored in a first register of the plurality of output registers to the first register of the plurality of input registers.
Claims20
A method to perform a cryptographic operation using a first input value and a second input value, the method comprising:
- performing a first operation on the first input value to obtain a first intermediate value;
- storing the first intermediate value in a first memory component;
- storing the second input value in a second memory component;
- performing a second operation on the second input value to obtain a second intermediate value;
- during performance of the second operation, copying at least a part of the first intermediate value from the first memory component to the second memory component;
- and
- determining an output of the cryptographic operation based on the first intermediate value and the second intermediate value.
A system comprising:
- a memory device comprising a first memory component and a second memory component;
- and
- a processing device, operatively coupled with the memory device, the processing device to:
- perform a first operation on a first input value to obtain a first intermediate value;
- store the first intermediate value in the first memory component;
- store a second input value in the second memory component;
- perform a second operation on the second input value to obtain a second intermediate value;
- during performance of the second operation, copy at least a part of the first intermediate value from the first memory component to the second memory component;
- and
- determine an output of a cryptographic operation based on the first intermediate value and the second intermediate value.
A non-transitory computer readable medium comprising data that, when accessed by a processing device, cause the processing device to:
- perform a first operation on a first input value to obtain a first intermediate value;
- store the first intermediate value in a first memory component;
- store a second input value in a second memory component;
- perform a second operation on the second input value to obtain a second intermediate value;
- during performance of the second operation, copy at least a part of the first intermediate value from the first memory component to the second memory component;
- and
- determine an output of a cryptographic operation based on the first intermediate value and the second intermediate value.
Dependencies are inferred from the claim text.