The invention generally relates to data securing in computing systems, and in particular to methods, systems, and computer program products for protecting a cryptographic operation.
There exist different types of cryptographic algorithms which are used for encrypting and decrypting data, for authentication or signing. Cryptographic algorithms use secret keys and are based on a succession of several operations that are applied on different states of data blocks that are to be encrypted and provide an encrypted data lock.
However, encryption algorithms may be subject to “attacks” intended to access to the secret keys.
In particular, fault attacks on embedded systems have become a real threat. Fault attacks cause an abnormal condition or defect at a level of the target system, thereby resulting in a failure of the target system. If fault attacks cannot lead to a full control of the attacker over the target system, they may change the operation of the target system. For example, fault attacks may be implemented by an attacker to disturb the target system by using a laser, by varying the supply voltage, by varying the external clock or other methods. The possibly erroneous result can reveal information of the targeted secret data, e.g. a cryptographic key.
There exist fault attacks aiming at violating the confidentiality of the secret keys of a cryptographic algorithm, such as RSA (Rivest, Shamir, & Adleman). A cryptographic algorithm provides an encryption algorithm and a corresponding decryption algorithm. An encryption algorithm (similarly a decryption algorithm) comprises a succession of linear and/or nonlinear operations, each operation applying to a state of a block of the original data (e.g. message).
There exist countermeasures against such fault attacks against RSA, such as FR2884088 or U.S. Pat. No. 5,991,415 A. However this solution is specific to RSA and cannot be applied to any cryptographic algorithm such as for example the Advanced Encryption Standard (AES) which is known to be vulnerable to fault attacks as disclosed in “A Differential Fault Attack Technique against SPN Structures, with Application to the AES and KHAZAD”, CHES 2003, by Gilles Piret and Jean-Jacques Quisquater.
There is accordingly a need for improved methods, systems, computer programs capable of protecting any cryptographic algorithm against fault attacks.
There is provided a device for executing an operation of a cryptographic scheme, the operation being applied to a given state of a data block of original data, the operation being defined in a basis ring corresponding to the quotient of a starting ring by a basis ideal generated by at least one element of the starting ring. The device comprises:
The device is further configured to determine the result of the operation from at least one of the reference values and/or of the extension values depending on the verification of a condition between the reference value obtained for each reference ring and the extension values obtained for the extended rings corresponding to the reference ring.
The device may further comprise a state updating unit configured to:
In certain embodiments, the second execution unit is configured to:
The condition may be verified if each reference value matches each extension value corresponding to the reference ring, the result of the operation depending on the verification of the condition for each reference value.
The first execution unit may be configured to execute the operation in at least two reference rings, and the second execution unit may be configured to execute the operation in a unique extended ring depending on all the reference rings, the device being further configured to apply a CRT transformation to all the reference values determined by the first execution unit, which provides a reference parameter related to the set of reference rings, the condition comprising determining if the reference parameter related to a set of reference rings is equal to the element corresponding to the extension value obtained for the extended ring in an ideal represented by the product of the reference ideals of the at least two reference rings.
In certain embodiments, the first execution unit may be configured to execute the operation in at least two reference rings, while the second execution unit is configured to execute the operation in at least two extended rings, each extended ring depending on a set of reference rings, the device further comprising applying a transformation according to the Chinese Remainder Theorem to each reference value determined by the first execution unit, which provides a common reference parameter related to each the set of reference rings. For each extension value obtained as a result of the execution of the operation in an extended ring depending on a given set of reference rings, the device may be further configured to map each byte of the extension value to an element of a ring quotiented by the product of the reference ideals of each reference ring of the set of reference rings, which provides a common extension parameter, the condition comprising comparing each common reference parameter related to a given set of reference rings to the common extension parameter obtained for the extended rings depending on the set of reference rings.
In certain embodiments, the device may be further configured, in response to the verification of the condition, for at least one extension value, to map each byte of the at least one extension value to an element of the basis ring, which provides a mapped value corresponding to the at least one extension value.
Alternatively, the device may be configured to check an auxiliary condition, the auxiliary condition comprising comparing at least some of the mapped values to the reference values, the device comprising triggering a termination of the operations of the cryptographic scheme if at least one mapped value differs from a reference value.
The device may be configured to return one of the mapped values as the operation result if the auxiliary condition is verified.
The first execution unit may be configured to execute the operation in a plurality of reference rings, which provides a set of reference values, while the second execution unit is configured to execute the operation in a unique extended ring corresponding to one or more reference rings.
There is also provided a system for executing a cryptographic scheme comprising a set of successive operations on a given data block of original data using at least one secret key, the system comprising an operation execution device according to any preceding claim configured to protect at least one operation of the cryptographic scheme.
The operation execution device may be applied to each operation of the cryptographic scheme.
The cryptographic scheme may comprise a plurality of rounds, and the operation execution device may be applied to protect at least one operation of at least one round.
The cryptographic scheme may be an Advanced Encryption Standard scheme comprising a first non-linear substitution operation at each round, the non-linear substitution operation replacing each byte of a data block with another according to a lookup table, and successive operations.
The successive operations may comprise a final combination operation at each round, the combination operation combining each byte of the state of a data block with a block of the round key using a bitwise XOR operator, while the operation execution device may be only applied to the final combination operation at least one round.
There is further provided a method of executing an operation of a cryptographic scheme, the operation being applied to a given state of a data block of original data, the operation being defined in a basis ring corresponding to the quotient of a starting ring by a basis ideal generated by at least one element of the starting ring, the method comprising executing the operation from a state derived from the current state of the data block, in at least one reference ring, which provides a reference value for each reference ring, and in at least one extended ring corresponding to one or more reference rings, which provides at least one extension value for each extended ring, each reference ring being the quotient of the starting ring by a reference ideal, and each extended ring corresponding to one or more reference ring being the quotient of the starting ring by the product of the basis ideal and of the reference ideals of the one or more corresponding reference rings, the method further comprising determining the result of the operation from at least one of the reference value and/or of the extension values depending on the verification of a condition between the reference value obtained for each reference ring and the extension values obtained for the extended rings corresponding to the reference ring.
There is also provided a computer program product for executing an operation of a cryptographic scheme, the operation being applied to a given state of a data block of original data, the operation being defined in a basis ring corresponding to the quotient of a starting ring by a basis ideal generated by at least one element of the starting ring, the computer program product comprising:
Embodiments of the invention thus allow detection of a fault-attack before the fault attack results in a failure, in an improper operation or an alteration of the data.
Further advantages of the present invention will become clear to the skilled person upon examination of the drawings and detailed description. It is intended that any additional advantages be incorporated herein.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate various embodiments of the invention and, together with the general description of the invention given above, and the detailed description of the embodiments given below, serve to explain the embodiments of the invention.
Embodiments of the present invention provide an improved method and system for executing a set of cryptographic operations on data, depending on the function of the application system in which the set of cryptographic operations occur. The application system may be an embedded system such as a smartcard implementing cryptographic operations to protect the data.
As used herein, a “key” or a “secret key” refers to is a parameter used to implement a cryptographic operation. Each key may be any bit size. The cryptographic scheme comprising a set of successive operations, each executed on a current state of the data block 2 in a given starting ring. The cryptographic scheme 1 may include for example a symmetric key cryptographic function such as AES scheme (Advanced Encryption Standard), asymmetric key cryptographic functions, a hash function, etc.
The cryptographic processing unit 10 may comprise logic for performing one or more rounds of the set of successive operations on the data block 2 (for example encryption operations on plaintext and/or decryption operations on ciphertext) using the keys. The keys may be provided by a key storage unit (not shown). The result of the successive operations 4 may be loaded into a result storage unit.
To facilitate the understanding of certain embodiments of the invention, definitions of certain elements and notations are provided below:
Further, as used herein:
According to an aspect of the invention, the cryptographic system 100 further comprises an operation executing device 12 for executing at least one of the operation of the cryptographic scheme 1 in a given basis ring. The operation executing device 12 may comprise a first execution unit 120 for executing the operation on a state of the data block m′ derived from the current state of data block m in at least one reference ring and a second execution unit 122 for executing the operation in at least one extended ring and by checking a condition between:
If the condition is not verified, a fault attack is detected, and a termination unit 14 may terminate the execution of the operations by the cryptographic processing unit 10. In addition, an alarm may be triggered or the error may be notified.
If the condition is verified, the execution of the operations by the cryptographic processing unit 10 proceeds. The result of the operation executed in the reference rings and/the result of the operation executed in the extended ring.
In addition, an alarm may be triggered or the error may be notified.
The operation executing device 12 may further comprise a state updating unit 123 configured to update the current state of the data block from elements selected in the basis ideal J.
Embodiments of the invention thus allow detection of an abnormal condition or defect at a component or system level triggered by a fault-attack before the fault attack results in a failure or an improper operation or an alteration of the data.
As represented in
The conventional cryptographic processing method starts on the reception of an initial state of data block m0 (200).
In step 202, the round index i is initialized. For each round i (204), the set of successive operations are performed in a given ring (steps 206 to 210). This comprises running a first operation on the initial state of the data block m0, in the given ring, which provides a new state of the data block m0(1), in step 206. In step 208, the next operation (operation 2) is then run on the new state of the message m0(1) in the given ring, which provides an new state of the message m1(1). When the last round has been executed, the operation result is returned in step 216.
The remaining operations j are similarly executed on each state of the message mj(1), until the last operation p is run (step 210) which provides a final state of the data block for the current round mp-1(1). If the cryptographic scheme comprises several rounds of the successive operations, steps 206 to 212 are iterated for each round I based on the final state of the data block mp-1(i-1) obtained for the previous round i−1.
To overcome the vulnerability of conventional cryptographic processing method to fault attack, there is provided a method for executing at least one of the operations of the set of successive mathematical operations defined in a starting ring by the cryptographic scheme, in a way that protect the operation against fault attack (the operation executing method will be also referred to hereinafter as an “operation protection method”).
The operation protection method may be applied to only one operation, to all the operations or to a set of selected operations among the set of successive operations defined in a starting ring A by the cryptographic scheme. The number of protected operations may depend on the cryptographic scheme itself and/or the level f protection required. Further, the operation protection method may be applied to only one round or to a number of rounds, depending on the application of the invention and/or criteria related to the attacks such as the values that are identified as being targetable by an attacker. For example, in the AES, an attacker will generally introduce a fault in the last round or the before last round. The protection method may thus be applied at least for the last two rounds in this example.
The operation protection method applies to each target operation of the set of successive operations, the target operation being defined in a basis ring corresponding to the quotient of the starting ring A by a basis ideal J. The operation protection method starts with the reception of the current state of the data block (for example block of a message) in step 300. The state of the message may have undergone several changes as a result of the previous operations (whether protected or not).
In step 302, the current state m of the data block may be modified, for example by deriving a modified state m′ from the current state.
In step 304, the operation to be protected is executed in each reference ring A/Ik (303), which provides a reference value Ck corresponding to the result of the execution of the operation in the reference ring A/Ik. Each reference ring represents the quotient of the starting ring A by a reference ideal Ik.
In step 307, the operation to be protected is further executed in each extended ring (306) of a set of extended rings A/(JIk1Ik2 . . . IkN, each extended ring depending on one or more extended rings A/Ik1, A/Ik2, . . . , A/IN, which provides an intermediary extension value Cr, k1k2 . . . kN for each extended ring A/JIk1Ik2 . . . IkN (the number N is inferior or equal to the number of reference rings). Each extended ring A/JIk1Ik2 . . . . IkN corresponding to one or more reference ring A/Ik1, A/Ik2, . . . , A/IN represents the quotient of the starting ring A by the product of the basis ideal J and of the reference ideals Ik1, Ik1, . . . , IkN of the corresponding reference rings.
In step 312, it is determined if a condition between a reference parameter derived from one or more reference values Ck and an extension parameter derived from the corresponding extension values Cr, k1k2 . . . kN is satisfied.
As used herein an extended ring is referred to as “corresponding to” or “depending on” a particular reference ring if the extended ring is the quotient of the starting ring A by the product of the basis ideal and one or more reference ideals associated with reference rings including that particular reference ring.
In one embodiment, the condition step 312 may comprise, for each reference ring A/Ik (block 310), a comparison between the reference value Ck obtained as a result of the execution of the operation in this reference ring and an extension parameter derived from the intermediary extension values Cr, k1k2 . . . kN obtained as a result of the execution of the operation in extended rings depending on the considered reference ring A/Ik (one of the indexes ki is equal to k).
If the condition is not satisfied for at least one reference ring, in step 314, a fault attack on the operation is detected and the execution of the operations of the cryptographic scheme may be terminated. In addition a report may be notified to a monitoring device monitoring the operation of the system 100.
If the condition is satisfied for each reference ring, the operation value m″ may be determined from the reference values Ck and/or the intermediary extension values Cr, k1k2 . . . kN in step 318. The operation value m″ may be stored as the new current state of the data block, for use for the execution of the next operation of the cryptographic scheme or the next round of the cryptographic scheme. Otherwise, if all the operations and rounds of the cryptographic scheme have been run, the operation value may be returned to the user.
This allows for high level of assurance of the result integrity. Further, security parameters are related to the size of reference ideal Iki (typically, fault detection probability is equal to 1−1/|Iki|, the size of Iki being generally a prime).
The protection thus obtained may be complementary to other protection solutions such as physical sensors or higher level checks (verification of computation by checking the initial message if the message is encrypted and then decrypted . . . ).
Further, in such embodiment, the extension parameter is derived from each extension value C′k obtained from the execution of the operation in an extended ring depending on the reference ring A/Iki, in step 312. More specifically, for each reference ring A/Iki, in step 312, it is determined if a condition between the reference value Cki obtained as a result of the execution of the operation in the reference ring A/Iki and an extension parameter derived from the extension values C′ki obtained from the execution 307 of the operation in each extended ring depending on the reference ring A/Iki and the reduction step 308 is satisfied.
In step 600, a set of K elements of the reference ring are selected. The selection may be performed randomly.
In step 602, the current state of the data block is updated from the K elements selected in the basis ideal J, which modifies the current state of the data block.
Without a modification of the input message block, in certain cases, the operation to execute may not be complex enough. Consequently, the error might not be detected. For example, if m=0, then the data block m will be equal to 0 in every reference ring and every starting ring.
Preferably, the update of the current state may be performed randomly to add a protection against some side-channel analysis such as the DPA.
This step of updating the current state of the data block may be performed using a reduction modulo J. The K elements may be selected in the basis J according to different selection criteria. In particular, the K elements may be randomly selected in the basis J. They may be also randomly pre-computed. Alternatively they may be constant.
It should be noted that a random selection of the K elements in the basis ideal J allows to add a protection against some side-channel analysis such as the DPA.
For example, the cryptographic scheme is AES and the protection method may apply to one of the operation of the AES in the ring 2[X]/(PQ), with Q being an irreducible polynomial over 2 of degree k and P being the ideal of 2[X] representing the set of all polynomials that are multiple of P. (P) is referred to as the basis ideal of 2[X] with:
(P)={P, . . . ,XP,X2P, . . . ,(X+1)P,(X+1)2P, . . . }
In such AES exemplary application, step 500 may comprise randomly selecting K polynomial Ri to randomize the message, and step 502 may comprise adding each bit i of the current state of the data bloc mi to PRi, where PRi is a polynomial binary multiplication.
In the embodiment where extension values C′k per reference ring A/Ik are computed from the execution of the operation in an extended ring depending on the reference ring A/Ik (step 307) and the reduction step (step 308), the operation protection method may comprise checking an auxiliary condition related to the reference values and/or the extension values per reference ring C′k, if all the iterations of the condition step 312 succeed, before returning an operation value in step 318.
The steps of the flowchart of
The auxiliary condition may be checked in step 321. Step 321 may comprise determining whether the reduced extension value C″k obtained in correspondence with the reference ring are equal. If at least one reduced extension value C″k differs from the other reduced extension values, an error is detected which may be representative of a fault attack and the execution of the operations is terminated in step 322 similarly to step 314. Otherwise (i.e; all the reduced extension value C″k are equal), the operation result is returned in step 324 similarly to step 318 of
In one embodiment, the operation protection method may comprise the execution of the operation in only one extended ring in step 307 and the execution of the operation in a set of reference rings.
However, in step 810, a Chinese Remainder Theorem (CRT) transformation may be applied to the N reference values C1, . . . , Ck, . . . CN obtained as a result of the execution of the operation in each reference ring among the N reference rings A/I1, . . . , A/Ik, . . . , A/IN, which provides a unique value derived from the N reference values, referred to hereinafter as the reference parameter.
In step 812, the condition comprises a comparison between the reference parameter and the unique extension value Cr,1,2, . . . , N obtained as the result of the execution of the operation in the unique extended ring A/JI1I2 . . . IN (step 811).
A unique iteration of the condition step 812 is thus performed. In particular, the condition may comprise determining if the extension value Cr, 1,2, . . . , N is equal to the reference parameter C1, . . . , N and, if not terminating the operations of the cryptographic scheme in step 814 as described previously in relation to step 318 of
A CRT (Chinese Remainder Theorem) transformation provides that if I,J are two coprime ideals in A, then, there exists an isomorphism between the quotient ring A/(IJ) and A/I×A/J. That is for a pair (a, b) with a∈A/I and b∈A/J, there exists an unique corresponding element in A/(IJ). Reciprocally, for any element x∈A/(IJ) there exists a unique pair of elements in A/I×A/J corresponding to x. The Chinese Remainder Theorem can also be generalized to several ideals pairwise coprime.
Step 810 uses specifically the CRT transformation A/I1×A/I2× . . . ×A/IN→A/(I1 . . . IN) to determine C1, . . . , N∈A/(I1 . . . IN) from (C1, C2, . . . CN)∈A/I1×A/I2× . . . ×A/IN.
This comprises defining i1, . . . , k∈I1 . . . Ik, such that i1, . . . , k+ik+1=1 for some ik+1∈Ik+1. They can be computed using an extended Euclidean algorithm. This also comprises defining x1, . . . , k the element verifying:
x1, . . . ,k=C1 mod I1
x1, . . . ,k=Ck mod Ik
The seek value C1, . . . , N∈A/(I1 . . . IN) will be obtained as C1, . . . , N=x1, . . . , N.
x1, . . . , N may be recursively constructed according to the CRT as follows:
1. At the beginning, x1 is set as equal C1 (x1=C1).
2. x2 is then set as equal to x2=x1+(C2−x1)i1 mod I1I2.
3. x1, . . . , k,k+1 is then constructed from
x1, . . . ,k,k+1=x1, . . . ,k+(Ck+1−x1, . . . ,k,k+1)I1, . . . ,k mod I1. . . IkIk+1
C1, . . . , N is then obtained for k+1=N (C1, . . . N=x1, . . . , N-1,N).
The execution of the operation in each reference ring A/Ik (steps 904, 905) provides a reference value Ck. In step 910, a CRT is applied to a set of pairs of reference values {Cki,Ckj} obtained as a result of the execution of the operation in each reference ring A/Iki and A/Ikj, which provides a unique reference value Ckikj for the pair of reference rings {A/Iki,A/Ikj}, referred to hereinafter as a pair reference parameter.
The operation is further executed in each reference ring A/JIkiIkj (step 908) depending on a reference rings, A/Iki and A/Ikj, for each pair of reference rings {A/Iki,A/Ikj}, which provides an intermediary extension value Cr,ki,kj. In step 909, each byte of the extension value Cr,ki,kj thus obtained is reduced modulo the product IkiIkj, which provides a pair extension value C′ki,kj for each extended ring (i.e. each byte of the extension value Cr,ki,kj is mapped to an element of a ring A/IkiIkj quotiented by the product IkiIkj of the reference ideals, which provides a mapped value comprising the mapped bytes in correspondence with the bytes of the extension value, the mapped value forming the pair extension value C′ki,kj).
The condition step 912, is iterated for each pair of reference rings {A/Iki,A/Ikj}. For each pair of reference rings {A/Iki,A/Ikj}, step 912 comprises checking a condition comprising a comparison between the pair reference parameter Ckikj and the corresponding pair extension value Ckikj obtained as the result of the execution of the operation in the extended ring A/JIkiIkj (step 908) and the reduction step 909.
In particular, the condition may comprise determining if the pair extension value C′kikj is equal to the pair reference parameter Ckikj and, if not terminating the operations of the cryptographic scheme in step 914 as described previously. Otherwise, if the condition is satisfied (C′kikj=Ckikj), each byte of the extension value or the reference parameter may be reduced modulo the basis ideal J (i.e. each byte of the extension value or the reference parameter is mapped to an element of the basis ring J, which provides a mapped value formed by the mapped bytes in correspondence with the bytes of the extension value) and the reduced value (corresponding to the mapped value) may be returned as the operation result m″ in step 916 as described in relation with
The CRT operation applied in step 910 is the CRT transformation A/Iki, A/Ij→A/(IkiIkj).
According to this CRT transformation operation, if Iki and Ikj are coprime, there exists i∈Iki and j∈Ikj such that i+j=1. An element Ckikj∈A/(IkiIkj) is obtained from (Cki,Ckj)∈A/Iki×,A/Ikj. In other terms, Ckikj∈A/(IkiIkj) may be determined such that Ckikj=Cki mod Iki and Ckikj=Ckj mod Ikj.
This comprises finding the elements i, j, using for example the Extended Euclidean Algorithm. They can also be pre-computed and stored. Ckikj is then set as x=Ckij+Ckii mod IkiIkj.
Alternatively Ckikj can also be computed as Ckikj=(Cki−Ckj)j+Ckj mod IkiIkj. In that way, only j has to be computed.
While the embodiment of
According to this embodiment, the operation protection method may comprise:
The condition step (912) may then comprise a comparison between each common reference parameter related to a given set of reference rings and the common extension parameter obtained for the extended rings depending on this set of reference rings.
Even if not limited to symmetric cryptographic schemes, the invention has particular advantages to protect the cryptographic operations against fault attacks in symmetric cryptographic schemes (the same key is used for encryption and decryption as opposed to a public key cryptosystem), and in particular for a AES cryptographic scheme.
The Advanced Encryption Standard (AES) is the specification of a symmetric encryption scheme standardized in 2001.
The AES cryptographic scheme consists in performing rounds (or repetitions) of a set of successive operations on a 128-bit data block (or message). It supports three different key lengths and the number of rounds is fixed for each key length:
The AES cryptographic scheme comprises 4 different operations operating on a 128-bit block represented by a matrix of 4×4 bytes:
The AES uses a representation of the binary values included in each data blocks into ring of polynomials 2[X] (corresponding to the starting ring A) where all polynomials are representations of the binary values.
The polynomial ring [X] over a field is defined as the set of expressions, called polynomials in X of the form:
P=a0+a1X+a2X2+ . . . +an-1Xn-1+anXn
where a0, a1, . . . , an are elements of . They are called coefficients of P. If an≠0, n is called the degree of P.
The quotient ring [X]/(P) is the ring containing polynomials over [X] where two polynomials Q, R are identical on [X]/(P) if their remainder of the division by P is the same.
This means that Q and Q+RP are identical on [X]/(P) for any R in [X].
The elements of [X]/(P) are represented by a polynomial of degree smaller than n. Generally, additions and multiplications in [X]/(P) are performed modulo P thus the result is a polynomial of degree smaller than n.
One property is that if P is irreducible, [X]/(P) is a field.
If is a finite field of m element, and P is an irreducible polynomial of degree n, then [X]/(P) is a field of degree mn. It can thus be denoted m
m
can be represented by any irreducible polynomial over m of degree n.
Most operations of the AES cryptographic scheme (Subbytes, MixColumns and AddRoundKey) are defined specifically on a basis field called the Rijndael's finite field and noted 256 with the reducing polynomial P=X8+X4+X3+X+1 defined over 2[X].
256 can also be denoted 2[X]/(X8+X4+X3+X+1).
In the embodiment of
The execution of the subBytes operation (923) may be performed according to the convention method in the Rijndael's finite field.
Alternatively, the operation protection method may be applied to only some of the previous operations, during one round, all the rounds or a selected number of rounds.
In the following description Q is an irreducible polynomial over 2[X] of degree k.
In step 302, a number of random polynomials of degree k are chosen (for example 16 random polynomials). This comprising choosing random bit strings of length k. Each bit represents the coefficient of the polynomial. The use of random polynomials allows protection against side-channel attacks. For protection against fault attacks only, constant polynomials may be alternatively loaded from the ROM.
The selected polynomials Ri are used to randomize the message. Each byte of the message mi is added to PRi, using a polynomial binary multiplication, which provides the modified state of the message.
In step 304, the AES operation is run on each reference ring 2[X]/(Qk) with the polynomial Qk representing the reference ideal of the reference ring 2[X]/(Qk), which provides a reference value CQ
In step 307, the AES operation is performed in each extended ring 2[X]/(PQk
In step 308, each byte of the result C′PQk
for the considered extended ring 2[X]/(PQk
Each reduced result
is then equivalent to a result of the AES operation that would have been obtained from the execution of the AES operation over the field 2[X]/(Qk
In step 312, for reference ring 2[X]/(Qk)(block 310), it is determined if each reference value CQ
If the condition of step 312 is satisfied for each reference value CQ
Otherwise, if it is determined in step 312 that at least one reference value CQ
It should be noted that the above description of the flowchart of
While embodiments of the invention have been illustrated by a description of various examples, and while these embodiments have been described in considerable detail, it is not the intention of the applicant to restrict or in any way limit the scope of the appended claims to such detail. The invention in its broader aspects is therefore not limited to the specific details, representative methods, and illustrative examples shown and described. In particular, the operation protection method may be applied to execute one or more operations of a same cryptographic scheme (also known as a cryptographic algorithm), during one or more rounds. Further the invention may apply to any symmetric or asymmetric cryptographic scheme. Also the operation protection method may use any condition 312 between a reference parameter derived from the reference values of one or more reference rings and an extension parameter derived from the corresponding extended rings. Also the skilled person will readily understand that the step of executing the considered operation in the extended rings (306-309) may be implemented according to any order with respect to the step of executing the considered operation in the reference rings (303-305), independently of the reference numbers used to reference these steps. For example, the step of executing the considered operation in the extended rings (306-309) may be implemented simultaneously, before or after the step of executing the considered operation in the reference rings (303-305).
Number | Date | Country | Kind |
---|---|---|---|
15307160 | Dec 2015 | EP | regional |
Number | Name | Date | Kind |
---|---|---|---|
5991415 | Shamir | Nov 1999 | A |
6144740 | Laih | Nov 2000 | A |
Number | Date | Country |
---|---|---|
2884088 | Oct 2006 | FR |
Entry |
---|
Ciet et al., “Practical Fault Countermeasure for Chinese Remaindering Based RSA (Extended Abstract)”, Fault Diagnosis and Tolerance in Cryptography? FDTC?05,, Sep. 2, 2005 (Sep. 2, 2005), pp. 121-131, XP007906966. (Year: 2005). |
Gilles Piret, Jean-Jaques Quisquater, “A Differential Fault Attack Technique against SPN Structures, with Application to the AES and KHAZAD”, C.D. Walter et al. (Eds.): CHES 2003, LNCS 2779, pp. 77-88, 2003 (Year: 2003). |
European Search Report for 15307160.0 dated Jun. 30, 2016. |
Ciet et al., “Practical Fault Countermeasure for Chinese Remaindering Based RSA (Extended Abstract)”, Fault Diagnosis and Tolerance in Cryptography? FDTC?05,, Sep. 2, 2005 (Sep. 2, 2005), pp. 121-131, XP007906966. |
Schmidt et al., “Countermeasures for Symmetric Key Ciphers”, Fault Analysis in Cryptography part of the Series Information Security and Cryptography, Jun. 21, 2012 (Jun. 21, 2012), pp. 73-87. |
Rao et al., “Cyclic and Multiresidue Codes for Arithmetic Operations”, IEEE Transaction on Information Theory, IEEE Press, USA, Jan. 1, 1971, pp. 85-91. |
Gilles Piret, Jean-Jaques Quisquater, “A Differential Fault Attack Technique against SPN Structures, with Application to the AES and KHAZAD”, C.D. Walter et al. (Eds): CHES 2003, LNCS 2779, pp. 77-88, 2003. |
Number | Date | Country | |
---|---|---|---|
20170187519 A1 | Jun 2017 | US |