IP Library Granted Patent US 8,984,040
Granted Patent B2
US 8,984,040 · App. 13/469,139 · Granted Mar 17, 2015

Modular exponentiation method and device resistant against side-channel attacks

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 8,984,040
App. No.
13/469,139
Granted
Mar 17, 2015
Kind
B2
Abstract

A method and apparatus for performing modular exponentiation using iterative modular multiplications steps and taking as input a first modulus N, a secret exponent d and a base x. During at least one modular multiplication step aiming at computing a result c from two values a, b and the first modulus N so that c=a·b mod N, a processor takes as input the two values a, b and the first modulus N from which are obtained two operands a′, b′ and a second modulus N′ using operations with at most linear complexity—at least one of the two operands a′, b′ is different from the two values a, b, and the two operands a′, b′ are different when a is equal to b—so that the modular multiplication c=a·b mod N from a side-channel viewpoint behaves like a modular squaring except for when a′ equals b′ . An intermediate result c′=a′·b′ mod N′ is computed, and the result c is derived from the intermediate result c′ using an operation with at most linear complexity; and the result c is used in the modular exponentiation.

Claims (19)

1. A method of performing in an electronic device a modular exponentiation in a cryptographic operation comprising iterative modular multiplications steps and taking as input a first modulus N, a secret exponent d and a base x, the method being performed in a processor of the electronic device and comprising the steps, during at least one modular multiplication step aiming at computing a result c from two values a, b and the first modulus N so that c=a·b mod N, of:

taking, by the processor, as input the two values a, b and the first modulus N;

obtaining, by the processor, from the two values a, b and the first modulus N, two operands a′, b′ and a second modulus N′ such that at least one of the two operands a′, b′ is different from the two values a, b, and that the two operands a′, b′ are different when a is equal to b, so that the modular multiplication c=a·b mod N from a side-channel viewpoint behaves like a modular squaring except for when a′ equals b′; wherein the operand a′ is obtained from the value a, the operand b′ is obtained from the value b, and the second modulus N′ is obtained from the first modulus N using operations with at most linear complexity;

computing, by the processor, an intermediate result c′=a′·b′ mod N′;

deriving, by the processor, the result c from the intermediate result c′, wherein c is obtained from c′ using an operation with at most linear complexity; and

using, by the processor, the result c in the modular exponentiation of the cryptographic operation.

2. The method of claim 1 , wherein a′= 2 a, b′=b+N and N′= 2 N, and wherein c′=c/2.

3. The method of claim 1 , wherein a′=N−a, b′=b and N′=N, and wherein c′=N−c.

4. The method of claim 3 , wherein the first modulus N is odd.

5. A non-transitory computer readable medium having stored thereon instructions that, when executed by a processor, perform the method of any one of claims 1 to 4 .

6. A processor in an electronic device for performing a modular exponentiation in a cryptographic operation comprising iterative modular multiplications steps and taking as input a first modulus N, a secret exponent d and a base x, the processor being configured to, during at least one modular multiplication aiming at computing a result c from two values a, b and the first modulus N so that c=a·b mod N:

take as input the two values a, b and the first modulus N;

obtain, from the two values a, b and the first modulus N, two operands a′, b′ and a second modulus N′ such that at least one of the two operands a′, b′ is different from the two values a, b, and that the two operands a′, b′ are different when a is equal to b, so that the modular multiplication c=a·b mod N from a side-channel viewpoint behaves like a modular squaring except for when a′ equals b′; wherein the operand a′ is obtained from the value a, the operand b′ is obtained from the value b, and the second modulus N′ is obtained from the first modulus N using operations with at most linear complexity;

compute an intermediate result c′=a′·b′ mod N′; and

derive the result c from the intermediate result c′, wherein c is obtained from c′ using an operation with at most linear complexity;

wherein the processor further is configured to use the result c in the modular exponentiation of the cryptographic operation.

7. The processor of claim 6 , wherein a′= 2 a, b′=b+N and N′= 2 N, and wherein c′=c/2.

8. The processor of claim 6 , wherein a′=N+a, b′=b and N′=N, and wherein c′=N−c.

9. The processor of claim 8 , wherein the first modulus N is odd.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2020
From: THOMSON LICENSING S.A.S.
To: MAGNOLIA LICENSING LLC
Reel/Frame 053570/0237 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2012
From: JOYE, MARC
To: THOMSON LICENSING
Reel/Frame 028199/0531 →