Patent classifications
G06F2207/7242
Exponent splitting for cryptographic operations
A first share value and a second share value may be received. A combination of the first share value and the second share value may correspond to an exponent value. The value of a first register is updated using a first equation that is based on the first and second share values and the value of a second register is updated using a second equation that is based on the second share value. One of the value of the first register or the value of the second register is selected based on a bit value of the second share value.
COMPUTING A SECURE ELLIPTIC CURVE SCALAR MULTIPLICATION USING AN UNSECURED AND SECURE ENVIRONMENT
A system for securely computing an elliptic curve scalar multiplication in an unsecured environment, including: a secure processor including secure memory, the secure processor configured to: split a secure scalar K into m.sub.2 random values k.sub.i, where i is an integer index; randomly select m.sub.1−m.sub.2 values k.sub.i for the indices m.sub.2<i≦m.sub.1; select m.sub.1 mask values δ.sub.i; compute m.sub.1 residues c.sub.i based upon random residues a.sub.i, δ.sub.π(i).sup.−1, and k.sub.π(i), wherein π(i) is a random permutation; compute m.sub.1 elliptic curve points G.sub.i based upon random residues a.sub.i and an elliptic point to be multiplied; receive m.sub.1 elliptic curve points; and compute the elliptic curve scalar multiplication by combining a portion of the received elliptic curve points and removing the mask values δ.sub.i from the portion of the received elliptic curve points; a memory device; and a processor in communication with the memory device, the processor being configured to: receive m.sub.1 residues c.sub.i and elliptic curve points G.sub.i; compute m.sub.1 elliptic curve points P.sub.i based upon the m.sub.1 residues c.sub.i and elliptic curve points G.sub.i; send the m.sub.1 elliptic curve points P.sub.i to the secure processor.
EXPONENT SPLITTING FOR CRYPTOGRAPHIC OPERATIONS
A first share value and a second share value may be received. A combination of the first share value and the second share value may correspond to an exponent value. The value of a first register is updated using a first equation that is based on the first and second share values and the value of a second register is updated using a second equation that is based on the second share value. One of the value of the first register or the value of the second register is selected based on a bit value of the second share value.
EXPONENT SPLITTING FOR CRYPTOGRAPHIC OPERATIONS
A first share value and a second share value may be received. A combination of the first share value and the second share value may correspond to an exponent value. The value of a first register is updated using a first equation that is based on the first and second share values and the value of a second register is updated using a second equation that is based on the second share value. One of the value of the first register or the value of the second register is selected based on a bit value of the second share value.
Exponent splitting for cryptographic operations
A first share value and a second share value may be received. A combination of the first share value and the second share value may correspond to an exponent value. The value of a first register is updated using a first equation that is based on the first and second share values and the value of a second register is updated using a second equation that is based on the second share value. One of the value of the first register or the value of the second register is selected based on a bit value of the second share value.
Encryption/description method protected against side-channel attacks
The present invention relates to a method for encryption or decryption of a data block from a secret key, wherein the method comprises: generating a first round key k.sub.r dependent on the secret key, selecting each of a first mask (b.sub.r) and a second mask (b.sub.r+1) in a set consisting of a mask of bits all at one and a mask of all zero bits, calculating a first masked key k.sub.r from the first round key k.sub.r and the first mask (b.sub.r) as follows:
k.sub.r=k.sub.r(b.sub.r)
wherein is an exclusive disjunction, executing a first encryption round applied to two first data dependent on the data block, by means of the first masked round key k.sub.r so as to produce two second data, after producing the first masked key k.sub.r, generating a second round key k.sub.r+1 dependent on the secret key, calculating a second masked key k.sub.r+1 from the second round key k.sub.r+1 and the second mask (b.sub.r+1) as follows: k.sub.r+1=k.sub.r+1(b.sub.r+1), calculating two third data L.sub.r.sup.b.sup.
R.sub.r.sup.b.sup.
L.sub.r.sup.b.sup.
and executing a second encryption round following the first encryption round, wherein the second encryption round is applied to the two third data L.sub.r.sup.b.sup.
EXPONENT SPLITTING FOR CRYPTOGRAPHIC OPERATIONS
A first share value and a second share value may be received. A combination of the first share value and the second share value may correspond to an exponent value. The value of a first register is updated using a first equation that is based on the first and second share values and the value of a second register is updated using a second equation that is based on the second share value. One of the value of the first register or the value of the second register is selected based on a bit value of the second share value.
Exponent splitting for cryptographic operations
A first share value and a second share value may be received. A combination of the first share value and the second share value may correspond to an exponent value. The value of a first register is updated using a first equation that is based on the first and second share values and the value of a second register is updated using a second equation that is based on the second share value. One of the value of the first register or the value of the second register is selected based on a bit value of the second share value.
MINIMIZING INFORMATION LEAKAGE DURING MODULAR EXPONENTIATION AND ELLIPTIC CURVE POINT MULTIPLICATION
Minimizing information leakage during modular exponentiation using random masks is disclosed Minimizing information leakage during elliptic curve point multiplication is disclosed with windowing by using point randomization is disclosed. Elliptic curve point multiplication with windowing calculates and stores multiple points based on the point being multiplied and then processes multiple bits of the multiplier at a time is also disclosed.
Protection of a modular calculation
A method of protecting a modular calculation on a first number and a second number, executed by an electronic circuit, including the steps of: combining the second number with a third number to obtain a fourth number; executing the modular calculation on the first and fourth numbers, the result being contained in a first register or memory location; initializing a second register or memory location to the value of the first register or to one; and successively, for each bit at state 1 of the third number: if the corresponding bit of the fourth number is at state 1, multiplying the content of the second register or memory location by the inverse of the first number and placing the result in the first register or memory location, if the corresponding bit of the fourth number is at state 0, multiplying the content of the second register or memory location by the first number and placing the result in the first register or memory location.