IP Library Patent Application 18131086
Patent Application
App. No. 18/131,086

MULTIPLICATIVE MASKING FOR CRYPTOGRAPHIC OPERATIONS

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 None
App. No.
18/131,086
Abstract

A value corresponding to an input for a cryptographic operation may be received. The value may be masked by multiplying the value with a first number modulo a prime number. The cryptographic operation may subsequently be performed on the masked value.

Claims (66)

1 - 29 . (canceled)

30 . A method to perform a cryptographic operation, the method comprising:

identifying, using a processing device, an input into a Boolean operation, wherein the input comprises a first masked input number and a second masked input number;

modifying, using a masking value, the first masked input number to obtain a first modified masked input number;

modifying, using the masking value; the second masked input number to obtain a second modified masked input number;

computing, using the processing device, a first intermediate value comprising a multiplication product of the first modified masked input number with the second modified masked input number; and

computing, using the processing device, an output of the Boolean operation using the first intermediate value.

31 . The method of claim 30 , wherein the Boolean operation comprises an AND operation.

32 . The method of claim 30 , wherein the output of the Boolean operation comprises one of:

the masking value, or

a negative of the masking value.

33 . The method of claim 30 , wherein the first masked input number represents a first input number and the second masked input number represents a second input number, and wherein each of the first masked input number and the second masked input number comprises:

the masking value taken with a first sign, provided that a corresponding input number has value 0, and

the masking value taken with a second sign, provided that the corresponding input number has value 1.

34 . The method of claim 30 , wherein the masking value is randomly generated modulo a modulus number.

35 . The method of claim 34 , wherein the modulus number is a prime number.

36 . The method of claim 30 , wherein computing the output of the Boolean operation comprises:

computing a second intermediate value comprising a multiplication product of the first intermediate value with (i) the masking value and (ii) an inverse of two modulo a modulus number.

37 . The method of claim 36 , wherein computing the output of the Boolean operation further comprises modifying the second intermediate value using one of:

adding the masking value to the second intermediate value, or

subtracting the masking value from the second intermediate value.

38 . The method of claim 30 , further comprising:

computing an output of the cryptographic operation using the output of the Boolean operation.

39 . The method of claim 38 , wherein the cryptographic operation comprises one or more of:

a digital signature algorithm,

a symmetric key cryptographic operation, or

a public-private key cryptographic operation.

40 . A processing device, comprising:

one or more registers to store:

a first masked input number representing a first input number into a Boolean operation, and

a second masked input number representing a second input number into a Boolean operation, and

one or more processing units to:

modify, using a masking value, the first masked input number to obtain a first modified masked input number;

modify, using the masking value, the second masked input number to obtain a second modified masked input number;

compute a first intermediate value comprising a multiplication product of the first modified masked input number with the second modified masked input number; and

compute an output of the Boolean operation using the first intermediate value.

41 . The processing device of claim 40 , wherein the Boolean operation comprises an AND operation.

42 . The processing device of claim 40 , wherein the output of the Boolean operation comprises one of:

the masking value, or

a negative of the masking value.

43 . The processing device of claim 40 , wherein each of the first masked input number and the second masked input number comprises:

the masking value taken with a first sign, provided that a corresponding input number has value 0, and

the masking value taken with a second sign, provided that the corresponding input number has value 1.

44 . The processing device of claim 40 , wherein the masking value is randomly generated modulo a modulus number, and wherein the modulus number is a prime number.

45 . The processing device of claim 40 , wherein to compute the output of the Boolean operation, the one or more processing units are to:

compute a second intermediate value comprising a multiplication product of the first intermediate value with (i) the masking value and (ii) an inverse of two modulo a modulus number.

46 . The processing device of claim 45 , wherein to compute the output of the Boolean operation, the one or more processing units are further to:

add the masking value to the second intermediate value, or

subtract the masking value from the second intermediate value.

47 . A system comprising:

a processing device, and

a memory operatively coupled to the processing device and storing instructions that cause the processing device to perform a cryptographic operation, including:

identifying, using a processing device, an input into a Boolean operation, wherein the input comprises a first masked input number and a second masked input number;

modifying, using a masking value, the first masked input number to obtain a first modified masked input number;

modifying, using the masking value, the second masked input number to obtain a second modified masked input number;

computing a first intermediate value comprising a multiplication product of the first modified masked input number with the second modified masked input number;

computing, using the first intermediate value, an output of the Boolean operation; and

computing an output of the cryptographic operation using the output of the Boolean operation.

48 . The system of claim 47 , wherein the Boolean operation comprises an AND operation, and wherein the output of the Boolean operation comprises one of:

the masking value, or

a negative of the masking value.

49 . The system of claim 47 , wherein computing the output of the Boolean operation comprises:

computing a second intermediate value comprising a multiplication product of the first intermediate value with (i) the masking value and (ii) an inverse of two modulo a modulus number; and

modifying the second intermediate value using one of:

adding the masking value to the second intermediate value; or

subtracting the masking value from the second intermediate value.