IP Library › Granted Patent US 10,915,667
Granted Patent B2
US 10,915,667 · App. 16/471,716 · Granted Feb 9, 2021

Protecting parallel multiplication operations from external monitoring attacks

Inventors: Guilherme Ozari de Almeida (Nootdorp, NL); Elena Trichina (Aix-en-Provence, FR); Elke De Mulder (Kirkland, WA)
Assignee: Cryptography Research, Inc.
G06F21/72G06F7/724G06F21/602H04L9/0637H04L9/0643
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,915,667
App. No.
16/471,716
Granted
Feb 9, 2021
Kind
B2
Abstract

Systems and methods for protecting from external monitoring attacks cryptographic data processing operations involving universal polynomial hash functions computation. An example method may comprise: receiving an input data block and an iteration result value; performing a first field multiplication operation to produce a new iteration result value, by iteratively processing, starting from a first bit position, bits of a combination of the input data block and the iteration result value, wherein the first bit position is represented by one of: a least-significant bit and a most-significant bit; performing a second field multiplication operation to produce a new mask correction value, by iteratively processing operand bits starting from a second bit position, wherein the second bit position is represented by one of: a least-significant bit and a most-significant bit, and wherein the second bit position is different from the first bit position; applying the new mask correction value to the new iteration result value; and producing, based on the new iteration result value, a value of a cryptographic hash function to be utilized by at least one of: an authenticated encryption operation or an authenticated decryption operation.

Claims (30)

1. A method, comprising:

receiving, by a processing device, an input data block and an iteration result value;

performing a first field multiplication operation to produce a new iteration result value, by iteratively processing, starting from a first bit position, bits of a combination of the input data block and the iteration result value, wherein the first bit position is represented by one of: a least-significant bit and a most-significant bit;

performing a second field multiplication operation to produce a new mask correction value, by iteratively processing operand bits starting from a second bit position, wherein the second bit position is represented by one of: a least-significant bit and a most-significant bit, and wherein the second bit position is different from the first bit position;

applying the new mask correction value to the new iteration result value; and

producing, based on the new iteration result value, a value of a cryptographic hash function to be utilized by at least one of: an authenticated encryption operation or an authenticated decryption operation.

2. The method of claim 1 , wherein the authenticated encryption operation utilizes the value of the cryptographic hash function to produce a ciphertext and an authentication tag based on a secret key, an initialization vector, and a plaintext.

3. The method of claim 1 , wherein the authenticated decryption, operation utilizes the value of the cryptographic hash function to produce a plaintext based on a secret key, an initialization vector, a ciphertext, and an authentication tag.

4. The method of claim 1 , wherein the receiving and multiplying operations are performed iteratively, such that the new iteration result value of a current iteration is supplied to a next iteration as the iteration result value.

5. The method of claim 1 , wherein the receiving and multiplying operations are performed iteratively, such that the new mask correction value of a current iteration is supplied to a next iteration as a mask correction value.

6. The method of claim 1 , wherein the iteration result value is represented by a masked data block.

7. The method of claim 6 , wherein performing the first field multiplication operation comprises:

multiplying a hash key by the combination of the input data block and a masked iteration result value.

8. The method of claim 6 , wherein performing the second field multiplication operation comprises:

multiplying a hash key by a mask correction value.

9. The method of claim 1 , wherein performing the first field multiplication operation comprises:

multiplying a masked hash key by the combination of the input data block and the iteration result value.

10. The method of claim 9 , wherein performing the second field multiplication operation comprises:

multiplying a mask value by the combination of the input data block and the iteration result value.

11. The method of claim 1 , wherein the multiplication operations are performed in a finite field.

12. The method of claim 1 , wherein the input data block comprises at least one of: a ciphertext block or an additional authentication data (AAD) block.

13. A system comprising:

an input interface to receive an input data block and an iteration result value;

a first multiplier circuit to produce a new iteration result value by iteratively processing, starting from a first bit position, bits of a combination of the input data block and the iteration result value, wherein the first bit position is represented by one of: a least-significant bit and a most-significant bit;

a second multiplier circuit to multiply a masked hash key by a mask correction value to produce a new mask correction value by iteratively processing operand bits starting from a second bit position, wherein the second bit position is represented by one of: a least-significant bit and a most-significant bit, and wherein the second bit position is different from the first bit position; and

an adder circuit to apply the new mask correction value to the new iteration result value.

14. The system of claim 13 , wherein the first multiplier circuit is configured to multiply a hash key by the combination of the input data block and a masked iteration result value.

15. The system of claim 13 , wherein the first multiplier circuit is configured to multiply a masked hash key by the combination of the input data block and the iteration result value.

16. The system of claim 15 , wherein the mask correction value is represented by the combination of the input data block and the iteration result value.

17. The system of claim 13 , wherein the first multiplier circuit and the second multiplier circuit perform multiplication operations in a finite field.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2019
From: ALMEIDA, GUILHERME OZARI DE; TRICHINA, ELENA; DE MULDER, ELKE
To: CRYPTOGRAPHY RESEARCH, INC.
Reel/Frame 051066/0422 →
Continuity (2)
Provisional Application 62437396 · Dec 21, 2016
Related Publication 20200026883A1 · Jan 23, 2020