Abstract:
A device includes digital signature generation circuitry. The digital signature generation circuitry, in operation, generates a digital signature of a digital message by computing a first public curve point as a scalar product of a first secret integer key and a base point of an elliptic curve and applying a transform to data of the received digital message. The applying the transform to the data of the received digital message includes generating a second secret curve point as a scalar product of a second secret integer key and the base point of the elliptic curve, generating a modified secret integer nonce as a modular multiplication of the second secret integer and a secret integer nonce, generating a third curve point as a scalar product of the secret integer nonce and the second secret curve point and generating a signature component as a function of at least the modified secret nonce, the third curve point, and a hash value generated by applying a hash function to at least the data of the received digital message. The digital signature is generated based on the signature component.
Abstract:
One or more keys are derived from a master key by executing a plurality of encryption operations. A first encryption operation uses the master key to encrypt a plaintext input having a plurality of bytes. Multiple intermediate encryption operations are performed using a respective intermediate key generated by a previous encryption operation to encrypt respective plaintext inputs having a number of bytes. At least two bytes of a plaintext input have values based on a respective set of bits of a plurality of sets of bits of an initialization vector, wherein individual bits of the respective set of bits are introduced into respective individual bytes of the plaintext input and the respective set of bits has at least two bits and at most a number of bits equal to the number of bytes of the plaintext input.
Abstract:
A scalar multiplication operation includes an iterative procedure performing a set of operations at each iteration on a bit or on a group of consecutive bits of a secret key. The multiplication operation includes multiplying values of projective format coordinates by a random value. The random value is a product of a random number generated over a range having as end value a first value, with a second value, which is larger than said first value. The first value is a power of two of a word size multiplied by a multiplier value, minus one. The second value is equal to a power of two of a number of bits of the coordinates divided by the first value. The multiplier value is an integer greater than or equal to one and smaller than a ratio of said number of bits to the word size.
Abstract:
A polynomial representation (bi(x)) in an AES finite field ( Z 2 [ x ] ( r ( x ) ) ) of input bytes (bi) of a state matrix (B) is obtained. A plurality (1) of irreducible polynomials (fi(y)) and a moving map (ψi) are used to map each polynomial (bi(x)) of the polynomial representation into a respective field of polynomials ( Z 2 [ y ] ( f i ( y ) ) ) computed with respect to one of the irreducible polynomials (fi(y)), to obtain respective moved polynomials (αi(y)). The moved polynomials (αi(y)) are mapped into a polynomial (a(z)) of a polynomial ring ( Z 2 [ z ] ( p ( z ) ) ) , obtained by applying an isomorphism (ω) between the fields of polynomials ( Z 2 [ y ] ( f i ( y ) ) ) and the polynomial ring ( Z 2 [ z ] ( p ( z ) ) ) based upon the Chinese remainder theorem (CRT). AES encryption is applied to the polynomial (a(z)). The polynomial (a(z)) is reconverted into the AES finite field ( Z 2 [ x ] ( r ( x ) ) ) to obtain an encrypted state matrix (CB).
Abstract:
A modular reduction calculation on a first number and a second number is protected from side-channel attacks, such as timing attacks. A first intermediate modular reduction result is calculated. A value corresponding to four times the first number is added to the first intermediate modular reduction result, generating a second intermediate modular reduction result. A value corresponding to the first number multiplied by a most significant word of the second intermediate modular reduction result plus 1, is subtracted from the second intermediate modular reduction result, generating a third intermediate modular reduction result. A cryptographic operation is performed using a result of the modular reduction calculation.
Abstract:
A method performs cryptographic operations on data in a processing device. An iterative operation between a first operand formed by a given number of words and a second operand using a secret key is performed. The iterative operation includes, for each bit of the secret key, applying one of a first set operations and a second set of operations to the first operand and to the second operand depending on of the bit, and conditionally swapping words of the first and the second operand based on a control bit value obtained by applying a logic XOR function to a random bit.
Abstract:
A polynomial representation (bi(x)) in an AES finite field ( Z 2 [ x ] ( r ( x ) ) ) of input bytes (bi) of a state matrix (B) is obtained. A plurality (1) of irreducible polynomials (fi(y)) and a moving map (ψi) are used to map each polynomial (bi(x)) of the polynomial representation into a respective field of polynomials ( Z 2 [ y ] ( f i ( y ) ) ) computed with respect to one of the irreducible polynomials (fi(y)), to obtain respective moved polynomials (αi(y)). The moved polynomials (αi(y)) are mapped into a polynomial (a(z)) of a polynomial ring ( Z 2 [ z ] ( p ( z ) ) ) , obtained by applying an isomorphism (ω) between the fields of polynomials ( Z 2 [ y ] ( f i ( y ) ) ) and the polynomial ring ( Z 2 [ z ] ( p ( z ) ) ) based upon the Chinese remainder theorem (CRT). AES encryption is applied to the polynomial (a(z)). The polynomial (a(z)) is reconverted into the AES finite field ( Z 2 [ x ] ( r ( x ) ) ) to obtain an encrypted state matrix (CB).
Abstract:
An embodiment concerns a method for encrypting a message through a cryptographic algorithm including a computation of a mathematical function including the computation of one or more modular multiplications. Such a cryptographic algorithm has a respective module. The method, carried out with an electronic device, includes: providing a first parameter; generating a random number; calculating a Montgomery parameter based on said first parameter and on a integer multiple of said random number; generating a representation of the message to be encrypted in a Montgomery domain through a Montgomery conversion function applied to the message and to the Montgomery parameter; carrying out the calculation of the mathematical function on the message represented in the Montgomery domain.