Abstract:
The present invention relates to a method to execute by a processing unit a sensitive computation using multiple different and independent branches (SB1, SB2) each necessitating a given number of processing unit time units to be executed, characterized in that it comprises the following steps of, at each execution of a sensitive computation: - generating at least as many identifiers as the number of branches, - associating each identifier to a unique branch, - generating (S1, S2) a random permutation of identifiers, the number of occurrences of each identifier in the permutation being at least equal to the number of central processing unit time units in the shortest of the branches, - by processing (S3) each identifier in the random permutation, determining successively the branch to execute by each successive central processing unit time units according to the identifier value, - for each identifier of the random permutation, executing (S11, S21) a central processing unit time unit for the branch determined according to the identifier value.
Abstract:
The present invention relates to a method to intrinsically protect a computer program having a driving value (DV) dedicated to handle sensitive data, said driving value (DV) comprising a plurality of N computation units (A,B) to perform computations using sensitive data and susceptible to let sensitive data leak, each unit having V possible values, said method comprising the step (S1) of unrolling k parts of P units, with P>1 and P
Abstract:
The present invention relates to a method of securing by a first processor of a securing device, a software code performing, when executed by an execution device, a sensitive operation performing accesses to a plurality of look-up tables (T 0 ,T 1 ,... T n ), wherein said software code comprises first sequences of instructions performing said accesses, said method comprising the steps of: - a) generating (S1 ) a packed table (T) gathering said look-up tables (T 0 ,T 1 ,... T n ), - b) applying (S2) a permutation (P) to said packed table (T) to obtain a permuted table (T P ), - c) replacing (S3) in the software code (SC) at least one of said first sequences of instructions, which when executed at runtime by a second processor of said execution device performs an access to a target value (X) located at a first index (i) in a first look-up table among said plurality of look-up tables by a new sequence of instructions which: o c1) determines using said permutation (P) a permuted index (i P ) of the target value (X) in the permuted table, o c2) returns the value memorized at the permuted index in said permuted table (T P ).
Abstract:
The present invention relates to a method to intrinsically protect a computer program having a driving value (DV) dedicated to handle sensitive data, said driving value (DV) comprising a plurality of N computation units (A,B) to perform computations using sensitive data and susceptible to let sensitive data leak, each unit having V possible values, said method comprising the step (S1) of unrolling k parts of P units, with P>1 and P
Abstract:
The present invention relates to a method of securing by a first processor of a securing device, a software code performing, when executed by an execution device, a sensitive operation performing accesses to a plurality of look-up tables (T 0 , T 1 , ... T n ), wherein said software code comprises first sequences of instructions performing said accesses, said method comprising the steps of: - a) generating (S1) a packed table (T) gathering said look-up tables (To ,Ti, ... T n ), - b) applying (S2) a permutation (P) to said packed table (T) to obtain a permuted table (T p ), - c) replacing (S3) in the software code (SC) at least one of said first sequences of instructions, which when executed at runtime by a second processor of said execution device performs an access to a target value (X) located at a first index (i) in a first look-up table among said plurality of look-up tables by a new sequence of instructions which: ∘ c1) determines using said permutation (P) a permuted index (i p ) of the target value (X) in the permuted table, ∘ c2) returns the value memorized at the permuted index in said permuted table (T p ).
Abstract:
The present invention relates to a method to execute by a processing unit a sensitive computation using multiple different and independent branches (SB1,SB2) each necessitating a given number of processing unit time units to be executed, characterized in that it comprises the following steps of, at each execution of a sensitive computation: - generating at least as many identifiers as the number of branches, - associating each identifier to a unique branch, - generating (S1,S2) a random permutation of identifiers, the number of occurrences of each identifier in the permutation being at least equal to the number of central processing unit time units in the shortest of the branches, - by processing (S3) each identifier in the random permutation, determining successively the branch to execute by each successive central processing unit time units according to the identifier value, - for each identifier of the random permutation, executing (S11,S21) a central processing unit time unit for the branch determined according to the identifier value.
Abstract:
The present invention relates to a method to protect a data file (DF) to be used by a white-box cryptography software application (WBCA) installed in memory (MEM) of a device (D) to prevent the malevolent use of a digital copy of the data file (DF) by a white-box cryptography software application installed in memory of another device, said method comprising the steps of extracting (S1) an unique identifier (ID) for the device (D) from the environment (ENVT) of the device (D) and modifying (S2) data in the data file (DF) according to the unique identifier (ID), the available white-box cryptography software application (WBCA) being such that it comprises a software security layer adapted to, when the WBC software application (WBCA) is executed (T1), retrieve (T3) the unique identifier (ID) from the environment (ENVT) of the device (D) in which it is installed and to use (T2) this unique identifier (ID) in combination with the stored data file (DF) in its execution (T4), the result of the execution (T4) being correct only in case where the correct unique identifier (ID) has been extracted by the executed WBC software application (WBCA).