Nothing Special   »   [go: up one dir, main page]

WO2008119901A2 - Method for the decryption of encrypted data using a cryptographic algorithm - Google Patents

Method for the decryption of encrypted data using a cryptographic algorithm Download PDF

Info

Publication number
WO2008119901A2
WO2008119901A2 PCT/FR2008/050317 FR2008050317W WO2008119901A2 WO 2008119901 A2 WO2008119901 A2 WO 2008119901A2 FR 2008050317 W FR2008050317 W FR 2008050317W WO 2008119901 A2 WO2008119901 A2 WO 2008119901A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
decryption
useful
payload
coded
Prior art date
Application number
PCT/FR2008/050317
Other languages
French (fr)
Other versions
WO2008119901A3 (en
Inventor
Olivier Billet
Gilles Macario-Rat
Original Assignee
France Telecom
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom filed Critical France Telecom
Publication of WO2008119901A2 publication Critical patent/WO2008119901A2/en
Publication of WO2008119901A3 publication Critical patent/WO2008119901A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Definitions

  • the present invention relates to the field of protection of secret keys used in the decryption of data and in particular to the protection of these secret keys when they are used by a software ensuring the decryption of these data. More particularly, the invention makes it possible to keep secret keys secret when an attacker has access to all or part of the operation of the software ensuring the decryption of the data.
  • Software for decrypting digital data is, for example, acquired by a user subject to payment from a specific entity.
  • This software includes portions of code for performing the steps of a decryption method.
  • the decryption method comprises several partial decryption steps, each using an elementary function.
  • a partial decryption step uses several elementary functions.
  • the elementary function receives useful data input and outputs useful data at least partially decrypted.
  • some basic functions use part of a secret key.
  • a look-up table represents the set of input / output pairs of the elementary function used during a decryption part.
  • the attacker is then able to observe only the useful data received and the useful data sent at the level of the elementary function. However, by observing this useful data received and this useful data sent, the attacker is able to find the relationship between these data. The analysis of this relation then allows him to reconstitute the part of the secret key used by the elementary function.
  • a third party will eventually be able to decrypt the digital data without having to pay the payment to obtain the software that decrypts the data.
  • the present invention proposes a method of partial decryption of data comprising a decoding of a coded set of data said set comprising at least useful data, a non-determinable partial decryption of the useful data, an association of the useful data at least partially decrypted, with data additional, a coding of a data set including the at least partially decrypted payload data and associated additional data.
  • the method which is the subject of the invention has the additional characteristics taken separately or in combination, set out below:
  • the decoding of the coded data set, said coded set further comprising additional data associated with the payload makes it possible to obtain said additional data associated with the payload, said additional data making it possible to calculate the additional data associated with the payload data. less partially deciphered.
  • the additional data associated with the useful data at least partially decrypted can be used. They are exploitable to realize, once the useful data decrypted, a marking of this useful data.
  • a second object of the invention relates to a data decryption method, said data comprising a coded data set comprising useful data, characterized in that said method comprises the following steps of receiving at least a part of the coded set data, decoding of the at least part of the coded data set said at least a part of the coded set comprising at least a part of the useful data, of non-determinable partial decryption of the at least part of the useful data, of association of the at least part of the payload data at least partially decrypted with additional data, coding a set comprising the at least part of the at least partially decrypted payload data and the associated additional data, said set being a new part of the coded set of data if the at least part of the partially deciphered useful data is not fully decrypted, of transmitting the new part of the coded data set for decryption of the payload, decryption of data useful data from at least the new portion of the transmitted data encoded set.
  • the second subject of the invention has the additional characteristics taken separately or in combination, set out below:
  • At least a portion of the step of decrypting the payload is done by successive iteration of the steps of receiving at least a part of the coded data set, decoding the at least part of the coded set of non-determinable partial decryption of the at least part of the useful data, encoding the set comprising the at least part of the at least partially decrypted useful data, transmission of the new part of the coded set of data.
  • a third object of the invention relates to a computer program on a data medium and loadable in the internal memory of a computer, said program comprising portions of code for executing the steps of the method according to the second object of the invention. 'invention.
  • a fourth object of the invention relates to a device for partial decryption of data, said device comprising means for decoding a coded set of data, said set comprising at least useful data, means for non-determinable partial decryption of useful data, means for associating the useful data at least partly decrypted with additional data, coding means of a data set comprising the at least partially decrypted useful data and the associated additional data.
  • a fifth object of the invention relates to a data decryption module, said data comprising a coded data set comprising useful data, said module comprising at least one partial decryption device as described above.
  • FIG. 1 a block diagram showing the transmission of a decryption software according to the invention.
  • a decryption method according to the invention encrypted data - In Fig.3, a decryption module according to the invention of encrypted data.
  • FIG. 5 a terminal according to the invention for processing encrypted data;
  • FIG. 5 an encryption method according to the invention.
  • the invention is described below in a particular application to the protection of secret keys when used by a software or "software” ensuring the decryption of data. However, this invention also applies to secret key protection by any hardware or “hardware” ensuring the decryption of data.
  • FIG. 1 is a block diagram representing the transmission of encrypted data decryption software 1 by a terminal 10.
  • This terminal 10 is intended to generate the decryption software and to transmit it to a terminal 12 intended to process encrypted data.
  • the decryption software 1 comprises portions of code for the execution of the steps of a method for decrypting the encrypted data 5. Part of these steps use all or part of a secret key 2. This secret key is transmitted with the decryption software 1.
  • the secret key 2 and the software are transmitted independently.
  • the decryption software 1 is distributed for example via a telecommunication network. Alternatively, software 1 is distributed by any other distribution channel as a data carrier distribution channel such as CDs.
  • the encrypted data 5 is sent by a terminal 11 intended to broadcast encrypted data.
  • the encrypted data 5 is obtained from plaintext data 4.
  • the plaintext data 4 is for example audio data, alternatively this plaintext data is any other data such as video data.
  • the terminal 11 is, for example, an online music server, alternatively the terminal 11 is any other server as a video server on demand.
  • the terminal 11 sends the encrypted data on request (not shown) of the terminal 12.
  • the request is for example a request for access to particular data.
  • the request is a request for access to a data distribution service. This service is, for example, limited in time.
  • the user of the terminal 12 satisfies the conditions of the terminal 11 for access to the data in clear 4 it transmits the encrypted data 5.
  • These conditions are, for example, authentication conditions. Alternatively, these conditions are all other conditions as a proof of payment.
  • the terminal 11 Prior to the sending of the encrypted data 5, the terminal 11 sends a request (not shown) to the terminal 10. This request is intended to generate and transmit the decryption software 1 for the decryption of the encrypted data 5.
  • the software 1 is here represented as being sent on a distribution channel different from the channel for distributing the encrypted data 5.
  • these distribution channels are identical.
  • the terminal 10 for generating the decryption software 1 is shown as different from the terminal 11 for sending the encrypted data 5.
  • the terminals 10 and 11 are merged.
  • the decryption software 1 is represented as being received by the terminal 12 at a different time from the encrypted data 5.
  • the decryption software 1 is received at the same time as the encrypted data 5.
  • the software 1 is received at the same time as the encrypted data 5, it is for example received associated with these encrypted data 5.
  • the software 1, according to the invention makes it possible to limit the consequences of this type of observation.
  • This software 1 thus comprises portions of code for the execution of the steps of a method of decryption of the encrypted data 5.
  • Fig. 2 presents the steps of such a data decryption method 5.
  • These data 5 comprise a coded set ⁇ (F (x), r) of data.
  • This set comprises useful data F (x) which are the encrypted data in encrypted form.
  • the coded set also includes additional data r associated with the payload F (x).
  • the data decryption method notably includes the steps 31, 32, 33, 35, 36, 37, 38 of a partial data decryption method.
  • the data decryption method thus comprises a reception 31 of at least a part ⁇ O (FO (x), rO) of the coded data set. Only part of the encoded set is received. The The size of this part is ideally chosen to allow a compromise between the security of the decryption and the processing time of this decryption.
  • Part ⁇ O (FO (x), rO) of the coded set is for example of the order of 8 bits.
  • the entire coded set of data ⁇ (F (x), r) is received in step 31.
  • the method also comprises a decoding step 32 of the at least one part ⁇ O (FO (x), rO) of the coded data set. It will be noted that said at least part of the coded set includes at least one FO (x) portion of the payload and additional data rO.
  • the portion FO (x) of the payload is partially decrypted in step 33 to obtain a portion of the payload at least partially decrypted Fl (x).
  • This portion of at least partially decrypted useful data is then associated with step 34 with additional data ri.
  • associating the part of the useful data at least partially decrypted with additional data is meant a concatenation of the different data.
  • the additional data ri have been previously generated in step 34.
  • the additional data ri have, for example, been generated randomly.
  • the set comprising the part of the useful data at least partially decrypted F (x) and the additional data ri then takes a random value.
  • the additional data ri are calculated from the supplementary data rO. These additional data have in a particular embodiment also in addition to a random component. Note that the size of the additional data ri is identical to the size of the useful data at least partially decrypted Fl (x).
  • the size of the additional data ri is different from the size of the useful data at least partially decrypted F1 (x).
  • Step 36 makes it possible to code the set comprising the at least part of the at least partially decrypted useful data Fl (x) and the associated additional data ri. It is thus constituted a coded set ni (Fl (x), ri), this coded set ni (Fl (x), ri) constituting a new part of the set encoded ⁇ (F (x), r) if the part useful data is not completely deciphered.
  • Step 37 comprises transmitting the portion of the encoded set of data n1 (F1 (x), r1) for deciphering the payload F (x).
  • Step 38 then comprises a decryption step in order to complete the deciphering of the useful data F (x).
  • step 33 allows only partial decryption of a portion FO (x) of the payload.
  • partial decryption it is understood that the portion of the useful data FO (x) is not fully decrypted. It is necessary then that the parts of the useful data undergo several stages of partial decryption.
  • part of step 38 is done by successive iteration of steps 31, 32, 33, 35, 36, 37 on the partially decrypted portions of the payload.
  • the entire step 38 is by successive iteration of the steps 31, 32, 33, 35, 36, 37.
  • the part n1 (F1 (x), ri) of the coded data set transmitted in step 37 can be received in its entirety during the next reception step 31. Alternatively, it is only part of the ni (F1 (x), ri) portion of the encoded set that is received.
  • the part n1 (F1 (x), ri) of the coded set is combined with another part of the coded set, prior to a reception step 31.
  • the coding function used in step 36 of the first method is related to the decoding function used in step 32 of the second method. These two functions are for example the opposite of each other.
  • step 38 makes it possible to obtain decrypted useful data x or data in clear 6.
  • step 38 also makes it possible to obtain additional data rn associated with the deciphered payload x.
  • the additional data ri are determined from the additional data r0, it is possible to choose the additional data r in order to obtain additional data rn desired.
  • the final additional data can then be used, for example, as a tagging of the decrypted useful data x. Marking is in the form of data intended to provide complementary information to data in the clear such as the name of a work or its author. Marking also makes it possible to incorporate security data. As a variant, the data x is not the data in the clear 6. A transformation of the data x is then necessary to obtain these data in clear 6.
  • this transformation involves the additional data rn.
  • step 33 allows only a partial decryption of a part of the useful data because this step uses only part of the elementary functions of the algorithm used for the decryption of the data.
  • the cryptographic algorithm is, for example, the AES algorithm for Advanced Encryption Standard. Alternatively, the algorithm is any other symmetric or asymmetric cryptographic algorithm.
  • This AES algorithm thus takes, as input, blocks of encrypted data 5. These blocks are, for example, blocks of size 128 bits or 16 bytes. In a variant, these blocks are of any other size.
  • the bytes then undergo different operations. In a first step, the bytes are permuted in a previously defined manner. This operation is called byte substitution or ByteSub transformation. The bytes are then placed in a matrix of 4 * 4 elements. The lines of this matrix are then rotated to the right. The increment for the rotation varies according to the line number. This operation is called line shift or shift row transformations. A linear operation is then applied to the matrix.
  • This operation consists of a binary multiplication of each element of the matrix with polynomials coming from an auxiliary matrix. This multiplication is subject to special rules according to the Galois group or finite body. The linear operation thus guarantees better bit diffusion. This operation is called Column Mix or MixColumn transformation. Finally, an XOR between the matrix and another matrix makes it possible to obtain an intermediate matrix. This operation is called addition of floor keys or round key addition.
  • All these operations can be represented in the form of elementary functions allowing partial decryption of the at least part of the useful data.
  • deciphering of the useful data amounts to the successive application of the different elementary functions on the parts of the useful data.
  • the elementary functions are, for example, XORs or S boxes.
  • these elementary functions use partial decryptions of all or part of the decryption key 2 present in the decryption module. In a variant, some of the elementary functions do not use all or part of the key.
  • the partial decryption step that these functions perform simply makes it possible to transform the portion of the useful data into a form that can be used for another partial decryption step.
  • the coding or decoding functions are different from the elementary functions. In fact, unlike the latter, they do not represent operations of a decryption algorithm.
  • the encoding / decoding functions apply to a set of data. The basic functions apply only to the parts of the useful data.
  • these coding / decoding functions are used to prevent an attacker from can dissociate useful data at least partially decrypted additional data.
  • the partial decryption step 33 is not determinable with respect to an attacker. This step is not determinable because it is considered that it is not possible for an attacker to observe the received useful data FO (x) and the payload data Fl (x) at the level of the elementary function used during this procedure. partial decryption step.
  • it is, for example, suitably chosen the decoding function used in step 32 and the coding function used in step 36. These functions are chosen in such a way that the composition of this decoding function with the elementary function and with this coding function does not allow the observation of the data circulating between the various means 41, 42, 43, 44, 45, 46, 47.
  • the partial decryption device 40 is then seen by an attacker as a black box.
  • the partial decryption step 33 is made non-determinable with respect to an attacker in that the composition of the decoding function with the elementary function and with the coding function is represented in the form of a decoder. a correspondence table.
  • This table includes all the input / output pairs of this composition previously calculated. It will thus be noted that the correspondence table performs the equivalent of the decoding steps 32, partial decryption 33, association 35, and coding 36.
  • the partial decryption device 40 present in the form of a table is then seen by an attacker as a black box. Note also that during the preliminary creation of this correspondence table, the decoding steps 32, partial decryption 33, association 35, and coding 36 are implemented.
  • Fig. 3 presents a data decryption module 50.
  • These data comprise a coded set of data ⁇ (F (x), r) having useful data F (x) and additional data r.
  • the decryption module 50 consists of a computer system in which a computer program loadable in the internal memory of this system is executed for the implementation of the decryption method. This program comprises, in fact, portions of code for the execution of steps 31, 32, 33, 35, 36, 37, 38 of this decryption method.
  • the module includes a partial data decryption device 40 and a data decryption device 48.
  • the partial decryption device comprises means 41 for receiving at least a portion of the coded data set ⁇ O (FO (x), rO).
  • the portion of the encoded data set is from prior decryption.
  • the partial decryption device also includes decoding means 42 for the at least part of the coded data set. This at at least part of the set has a part FO (x) of the payload and additional data rO.
  • the at least one portion FO (x) of the payload is then decrypted at least in part by partial decryption means 43.
  • Association means 45 associates the at least part of the useful data at least partially decrypted Fl (x), with additional data ri. This additional data is generated previously by generation means 44.
  • Coding means 46 encode the set comprising the at least part of the at least partially decrypted useful data Fl (x) and the associated additional data ri. This coded set constitutes a part of the coded set of data ⁇ (F (x), r).
  • the partial decryption device also comprises means for the transmission 47 of the set comprising the at least part of the at least partially decrypted useful data Fl (x) and the associated additional data ri, to the data decryption device 48
  • the data decryption device 48 comprises, for its part, at least one partial decryption device comprising, in particular, reception means 41, decoding means 42, partial decryption means 43, association means 45, coding means 46.
  • the decryption device 48 comprises any other means for decrypting the data.
  • the decryption device makes it possible to obtain at the output of the decryption module the decrypted useful data x or data in clear 6.
  • the data x are not the data in clear 6.
  • a transformation of the data x is then necessary to obtain these data in clear 6.
  • the decryption module 50 is seen by an attacker as a white box in which it is possible to observe the data flowing between the partial decryption device 40 and the decryption device 48.
  • the attacker observes only the coding of a set comprising at least partially decrypted useful data associated with data. additional. It is not able to distinguish the useful data at least partly decrypted from the additional data.
  • Fig.4 shows a terminal 12 for processing encrypted data.
  • the terminal 12 thus comprises means 51 for receiving a coded set of data ⁇ (F (x), r), transmission means 52 of the coded data set to a module 50 for decrypting the data.
  • Transmission means 57 allow the transmission of the decrypted useful data x to the means of use 58 of this decrypted user data.
  • Fig. 5 presents a method of data encryption. This method comprises a step of encrypting useful data x.
  • This useful data is for example the data 4.
  • the method also includes a step of associating the encrypted user data F (x) with additional data r.
  • This additional data was previously generated.
  • a coding step 62 makes it possible to encode a data set comprising the encrypted useful data F (x) and the associated additional data r. It should be noted that the coding function is chosen in such a way that the decoding of the data set in a decryption module 50 is facilitated.
  • the encryption of the useful data comprises encryption, association, coding and useful data part steps.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

The invention relates to a method for the partial decryption of data, comprising: the decoding (32) of an encoded data set containing at least the payload, the non-determinable partial decryption (33) of the payload, the association (35) of the at least partially decrypted payload with supplementary data, and the encoding (36) of a data set containing the at least partially decrypted data and the associated supplementary data.

Description

Procédé de déchiffrement par un algorithme cryptographique de données chiffrées Method for decrypting encrypted data with a cryptographic algorithm
La présente invention se rapporte au domaine de la protection de clés secrètes utilisées dans le déchiffrement de données et notamment à la protection de ces clés secrètes lorsqu'elles sont utilisées par un logiciel assurant le déchiffrement de ces données. Plus particulièrement, l'invention permet de maintenir au secret les clés secrètes lorsqu'un attaquant à accès à tout ou partie du fonctionnement du logiciel assurant le déchiffrement des données.The present invention relates to the field of protection of secret keys used in the decryption of data and in particular to the protection of these secret keys when they are used by a software ensuring the decryption of these data. More particularly, the invention makes it possible to keep secret keys secret when an attacker has access to all or part of the operation of the software ensuring the decryption of the data.
Un logiciel assurant le déchiffrement de données numériques est, par exemple, acquis par un utilisateur sous réserve d'un paiement auprès d'une entité déterminée. Ce logiciel comprend des portions de code pour l'exécution des étapes d'un procédé de déchiffrement . Le procédé de déchiffrement comprend plusieurs étapes de déchiffrement partiel, chacune utilisant une fonction élémentaire. En variante, une étape de déchiffrement partiel utilise plusieurs fonctions élémentaires. Lors d'une étape de déchiffrement partiel, la fonction élémentaire reçoit en entrée des données utiles et fournit en sortie des données utiles au moins en partie déchiffrées. Pour cela, certaines fonctions élémentaires utilisent une partie d'une clé secrète. Afin d'améliorer la protection de la partie de la clé secrète, il a été proposé de remplacer, dans le logiciel, la fonction élémentaire utilisant cette partie de clé secrète sous forme d'une table de correspondance. Une table de correspondance représente l'ensemble des couples entrée/sortie de la fonction élémentaire utilisée lors d'un déchiffrement partiel. L'attaquant n'est alors capable d'observer que les données utiles reçues et les données utiles envoyées au niveau de la fonction élémentaire. Cependant, en observant ces données utiles reçues et ces données utiles envoyées, l'attaquant est capable de retrouver la relation entre ces données. L'analyse de cette relation lui permet alors de reconstituer la partie de la clé secrète utilisée par la fonction élémentaire. Un tiers pourra alors à terme déchiffrer les données numériques sans avoir à acquitter le paiement pour obtenir le logiciel assurant le déchiffrement de ces données.Software for decrypting digital data is, for example, acquired by a user subject to payment from a specific entity. This software includes portions of code for performing the steps of a decryption method. The decryption method comprises several partial decryption steps, each using an elementary function. In a variant, a partial decryption step uses several elementary functions. During a partial decryption step, the elementary function receives useful data input and outputs useful data at least partially decrypted. For this, some basic functions use part of a secret key. In order to improve the protection of the part of the secret key, it has been proposed to replace, in the software, the elementary function using this secret key part in the form of a correspondence table. A look-up table represents the set of input / output pairs of the elementary function used during a decryption part. The attacker is then able to observe only the useful data received and the useful data sent at the level of the elementary function. However, by observing this useful data received and this useful data sent, the attacker is able to find the relationship between these data. The analysis of this relation then allows him to reconstitute the part of the secret key used by the elementary function. A third party will eventually be able to decrypt the digital data without having to pay the payment to obtain the software that decrypts the data.
Il a été alors proposé de ne rendre observable par un attaquant que le codage des données utiles reçues en entrée de la fonction élémentaire. Ceci permet de masquer ces données utiles à un attaquant.It was then proposed to make observable by an attacker only the coding of the useful data received at the input of the elementary function. This will hide this useful data to an attacker.
Il a été également proposé, dans un même but, de ne rendre observable que le codage des données utiles au moins en partie déchiffrées envoyées en sortie de la fonction élémentaire. Malgré ce codage supplémentaire il a été démontré dans le document "Cryptanalysis of a White Box AES Implementation" , de Olivier Billet,It has also been proposed, for the same purpose, to render observable only the coding of the at least partially decrypted useful data sent at the output of the elementary function. Despite this additional coding, it has been demonstrated in the document "Cryptanalysis of a White Box AES Implementation", by Olivier Billet,
Henri Gilbert, et Charaf Ech-Chatbi, qu'un attaquant est capable de retrouver la partie de la clé secrète utilisée par la fonction élémentaire en déterminant et en analysant les relations entre les données utiles codées.Henri Gilbert, and Charaf Ech-Chatbi, that an attacker is able to find the part of the secret key used by the elementary function by determining and analyzing the relations between the coded useful data.
La présente invention propose un procédé de déchiffrement partiel de données comprenant un décodage d'un ensemble codé de données ledit ensemble comportant au moins des données utiles, un déchiffrement partiel non déterminable des données utiles, une association des données utiles au moins en partie déchiffrées, avec des données supplémentaires, un codage d'un ensemble de données comprenant les données utiles au moins en partie déchiffrées et les données supplémentaires associées.The present invention proposes a method of partial decryption of data comprising a decoding of a coded set of data said set comprising at least useful data, a non-determinable partial decryption of the useful data, an association of the useful data at least partially decrypted, with data additional, a coding of a data set including the at least partially decrypted payload data and associated additional data.
Ainsi, un attaquant n'est pas en mesure de distinguer les données utiles des données supplémentaires lorsqu'il observe un ensemble codé.Thus, an attacker is not able to distinguish useful data from additional data when observing an encoded set.
Un mécanisme supplémentaire de masquage des données utiles vis-à-vis d'un attaquant est ainsi ajouté.An additional mechanism of masking the useful data vis-à-vis an attacker is thus added.
Selon des modes de réalisation particuliers non limitatifs, le procédé objet de l'invention présente les caractéristiques supplémentaires prises isolément ou en combinaison, énoncées ci-après :According to particular non-limiting embodiments, the method which is the subject of the invention has the additional characteristics taken separately or in combination, set out below:
Le décodage de l'ensemble codé de données, ledit ensemble codé comportant en outre des données supplémentaires associées aux données utiles, permet d'obtenir lesdites données supplémentaires associées aux données utiles, lesdites données supplémentaires permettant de calculer les données supplémentaires associées aux données utiles au moins en partie déchiffrées .The decoding of the coded data set, said coded set further comprising additional data associated with the payload, makes it possible to obtain said additional data associated with the payload, said additional data making it possible to calculate the additional data associated with the payload data. less partially deciphered.
Ainsi, en étant calculable à partir de données supplémentaires, les données supplémentaires associées aux données utiles au moins en partie déchiffrées sont exploitables. Elles sont exploitables pour réaliser, une fois les données utiles déchiffrées, un marquage de ces données utiles .Thus, being calculable from additional data, the additional data associated with the useful data at least partially decrypted can be used. They are exploitable to realize, once the useful data decrypted, a marking of this useful data.
Un deuxième objet de l'invention concerne un procédé de déchiffrement de données, lesdites données comprenant un ensemble codé de données comportant des données utiles caractérisé en ce que ledit procédé comprend les étapes suivantes de réception d'au moins une partie de l'ensemble codé de données, de décodage de la au moins une partie de l'ensemble codé de données ladite au moins une partie de l'ensemble codé comportant au moins une partie des données utiles, de déchiffrement partiel non déterminable de la au moins une partie des données utiles, d'association de la au moins une partie des données utiles au moins en partie déchiffrée avec des données supplémentaires, de codage d'un ensemble comprenant la au moins une partie des données utiles au moins en partie déchiffrée et les données supplémentaires associées, ledit ensemble étant une nouvelle partie de l'ensemble codé de données si la au moins une partie des données utiles en partie déchiffrée n'est pas déchiffrée totalement, de transmission de la nouvelle partie de l'ensemble codé de données pour un déchiffrement des données utiles, de déchiffrement des données utiles à partir d'au moins la nouvelle partie de l'ensemble codé de données transmise.A second object of the invention relates to a data decryption method, said data comprising a coded data set comprising useful data, characterized in that said method comprises the following steps of receiving at least a part of the coded set data, decoding of the at least part of the coded data set said at least a part of the coded set comprising at least a part of the useful data, of non-determinable partial decryption of the at least part of the useful data, of association of the at least part of the payload data at least partially decrypted with additional data, coding a set comprising the at least part of the at least partially decrypted payload data and the associated additional data, said set being a new part of the coded set of data if the at least part of the partially deciphered useful data is not fully decrypted, of transmitting the new part of the coded data set for decryption of the payload, decryption of data useful data from at least the new portion of the transmitted data encoded set.
Selon des modes de réalisation particuliers non limitatifs, le deuxième objet de l'invention présente les caractéristiques supplémentaires prises isolément ou en combinaison, énoncées ci-après :According to particular non-limiting embodiments, the second subject of the invention has the additional characteristics taken separately or in combination, set out below:
Au moins une partie de l'étape de déchiffrement des données utiles se fait par itération successive des étapes de réception d'au moins une partie de l'ensemble codé de données, de décodage de la au moins une partie de l'ensemble codé de données, de déchiffrement partiel non déterminable de la au moins une partie des données utiles, de codage de l'ensemble comprenant la au moins une partie des données utiles au moins en partie déchiffrée, de transmission de la nouvelle partie de l'ensemble codé de données. Un troisième objet de l'invention concerne un programme d'ordinateur sur un support de données et chargeable dans la mémoire interne d'un ordinateur, ledit programme comprenant des portions de code pour l'exécution des étapes du procédé selon le deuxième objet de l'invention.At least a portion of the step of decrypting the payload is done by successive iteration of the steps of receiving at least a part of the coded data set, decoding the at least part of the coded set of non-determinable partial decryption of the at least part of the useful data, encoding the set comprising the at least part of the at least partially decrypted useful data, transmission of the new part of the coded set of data. A third object of the invention relates to a computer program on a data medium and loadable in the internal memory of a computer, said program comprising portions of code for executing the steps of the method according to the second object of the invention. 'invention.
Un quatrième objet de l'invention concerne un dispositif de déchiffrement partiel de données ledit dispositif comprenant des moyens de décodage d'un ensemble codé de données ledit ensemble comportant au moins des données utiles, des moyens de déchiffrement partiel non déterminable de données utiles, des moyens d'association des données utiles au moins en partie déchiffrées avec des données supplémentaires, des moyens de codage d'un ensemble de données comprenant les données utiles au moins en partie déchiffrées et les données supplémentaires associées.A fourth object of the invention relates to a device for partial decryption of data, said device comprising means for decoding a coded set of data, said set comprising at least useful data, means for non-determinable partial decryption of useful data, means for associating the useful data at least partly decrypted with additional data, coding means of a data set comprising the at least partially decrypted useful data and the associated additional data.
Un cinquième objet de l'invention concerne un module de déchiffrement de données, lesdites données comprenant un ensemble codé de données comportant des données utiles, ledit module comprenant au moins un dispositif de déchiffrement partiel tel que décrit ci-dessus.A fifth object of the invention relates to a data decryption module, said data comprising a coded data set comprising useful data, said module comprising at least one partial decryption device as described above.
L'invention sera mieux comprise et d'autres particularités et avantages apparaîtront à la lecture de la description, faite à titre d'exemple, cette description faisant références aux dessins annexés représentant :The invention will be better understood and other features and advantages will appear on reading the description, given by way of example, this description with reference to the appended drawings showing:
- A la Fig.l, un bloc diagramme présentant la transmission d'un logiciel de déchiffrement selon 1 ' invention; - A la Fig.2, un procédé de déchiffrement selon l'invention de données chiffrées; - A la Fig.3, un module de déchiffrement selon l'invention de données chiffrées.In FIG. 1, a block diagram showing the transmission of a decryption software according to the invention; - In Fig.2, a decryption method according to the invention encrypted data; - In Fig.3, a decryption module according to the invention of encrypted data.
- A la Fig.4, un terminal selon l'invention destiné à traiter des données chiffrées; - A la Fig.5, un procédé de chiffrement selon 1 ' invention .- In Fig.4, a terminal according to the invention for processing encrypted data; In FIG. 5, an encryption method according to the invention.
L'invention est décrite ci-après dans une application particulière à la protection de clés secrètes lorsqu'elles sont utilisées par un logiciel ou "software" assurant le déchiffrement de données. Cependant, cette invention s'applique également à la protection de clé secrètes par tout matériel ou "hardware" assurant le déchiffrement de données.The invention is described below in a particular application to the protection of secret keys when used by a software or "software" ensuring the decryption of data. However, this invention also applies to secret key protection by any hardware or "hardware" ensuring the decryption of data.
La Fig.l est un bloc diagramme représentant la transmission d'un logiciel de déchiffrement 1 de données chiffrées 5, par un terminal 10. Ce terminal 10 est destiné à générer le logiciel de déchiffrement et à le transmettre vers un terminal 12 destiné à traiter des données chiffrées.FIG. 1 is a block diagram representing the transmission of encrypted data decryption software 1 by a terminal 10. This terminal 10 is intended to generate the decryption software and to transmit it to a terminal 12 intended to process encrypted data.
Le logiciel de déchiffrement 1 comprend des portions de code pour l'exécution des étapes d'un procédé de déchiffrement des données chiffrées 5. Une partie de ces étapes utilisent tout ou partie d'une clé secrète 2. Cette clé secrète est transmise avec le logiciel de déchiffrement 1.The decryption software 1 comprises portions of code for the execution of the steps of a method for decrypting the encrypted data 5. Part of these steps use all or part of a secret key 2. This secret key is transmitted with the decryption software 1.
En variante, la clé secrète 2 et le logiciel sont transmis de manière indépendante. Le logiciel 1 de déchiffrement est distribué par exemple via un réseau de télécommunication. En variante, le logiciel 1 est distribué par tout autre canal de distribution comme un canal de distribution de support de données tels que des CDs. Les données chiffrées 5 sont envoyées par un terminal 11 destiné à diffuser des données chiffrées. Les données chiffrées 5 sont obtenues à partir de données en clair 4. Les données en clair 4 sont par exemple des données audio, en variante ces données en clair sont toutes autres données comme des données vidéo. On notera ainsi que le terminal 11 est, par exemple, un serveur de musique en ligne, en variante le terminal 11 est tout autre serveur comme un serveur de vidéo à la demande.In a variant, the secret key 2 and the software are transmitted independently. The decryption software 1 is distributed for example via a telecommunication network. Alternatively, software 1 is distributed by any other distribution channel as a data carrier distribution channel such as CDs. The encrypted data 5 is sent by a terminal 11 intended to broadcast encrypted data. The encrypted data 5 is obtained from plaintext data 4. The plaintext data 4 is for example audio data, alternatively this plaintext data is any other data such as video data. Note that the terminal 11 is, for example, an online music server, alternatively the terminal 11 is any other server as a video server on demand.
Le terminal 11 envoie les données chiffrées 5 sur requête (non représentée) du terminal 12. La requête est par exemple une demande d'accès à des données particulières. En variante, la requête est une demande d'accès à un service de distribution de données. Ce service est, par exemple, limité dans le temps.The terminal 11 sends the encrypted data on request (not shown) of the terminal 12. The request is for example a request for access to particular data. In a variant, the request is a request for access to a data distribution service. This service is, for example, limited in time.
Si l'utilisateur du terminal 12 satisfait aux conditions du terminal 11 pour l'accès aux données en clair 4 celui-ci lui transmet les données chiffrées 5. Ces conditions sont, par exemple, des conditions d ' authentification . En variante, Ces conditions sont toutes autres conditions comme une preuve de paiement .If the user of the terminal 12 satisfies the conditions of the terminal 11 for access to the data in clear 4 it transmits the encrypted data 5. These conditions are, for example, authentication conditions. Alternatively, these conditions are all other conditions as a proof of payment.
Préalablement à l'envoi des données chiffrées 5, le terminal 11 envoie une requête (non représentée) au terminal 10. Cette requête est destinée à générer et transmettre le logiciel de déchiffrement 1 pour le déchiffrement des données chiffrées 5.Prior to the sending of the encrypted data 5, the terminal 11 sends a request (not shown) to the terminal 10. This request is intended to generate and transmit the decryption software 1 for the decryption of the encrypted data 5.
Le logiciel 1 est, ici, représenté comme étant envoyé sur un canal de distribution différent du canal de distribution des données chiffrées 5. En variante, ces canaux de distribution sont identiques.The software 1 is here represented as being sent on a distribution channel different from the channel for distributing the encrypted data 5. In a variant, these distribution channels are identical.
En outre, le terminal 10 destiné à générer le logiciel de déchiffrement 1 est présenté comme étant différent du terminal 11 destiné à envoyer les données chiffrées 5. En variante, les terminaux 10 et 11 sont confondus. De plus, le logiciel de déchiffrement 1 est représenté comme étant reçu par le terminal 12 à un instant différent des données chiffrées 5. En variante, le logiciel de déchiffrement 1 est reçu en même temps que les données chiffrées 5. Lorsque le logiciel 1 est reçu en même temps que les données chiffrées 5, il est par exemple reçu associé à ces données chiffrées 5.In addition, the terminal 10 for generating the decryption software 1 is shown as different from the terminal 11 for sending the encrypted data 5. Alternatively, the terminals 10 and 11 are merged. Moreover, the decryption software 1 is represented as being received by the terminal 12 at a different time from the encrypted data 5. In a variant, the decryption software 1 is received at the same time as the encrypted data 5. When the software 1 is received at the same time as the encrypted data 5, it is for example received associated with these encrypted data 5.
On notera que les données en clair 4 sont chiffrées pour éviter, par exemple, qu'un attaquantIt should be noted that the data in clear 4 are encrypted to prevent, for example, an attacker
13 ne puisse accéder à ces données en sondant les canaux de distribution de ces données. Cependant un attaquant est capable, dans certains cas, d'accéder à tout ou partie de la clé secrète 2 en observant le fonctionnement du logiciel de déchiffrement utilisé.13 can not access this data by probing the distribution channels of this data. However, an attacker is able, in certain cases, to access all or part of the secret key 2 by observing the operation of the decryption software used.
Le logiciel 1, selon l'invention, permet de limiter les conséquences de ce type d'observation.The software 1, according to the invention, makes it possible to limit the consequences of this type of observation.
Ce logiciel 1 comporte ainsi des portions de code pour l'exécution des étapes d'un procédé de déchiffrement des données chiffrées 5.This software 1 thus comprises portions of code for the execution of the steps of a method of decryption of the encrypted data 5.
La Fig. 2 présente les étapes d'un tel procédé de déchiffrement des données 5. Ces données 5 comprennent un ensemble codé π(F(x), r) de données. Cet ensemble comporte des données utiles F(x) qui sont les données en clair 6 chiffrées. L'ensemble codé comprend également des données supplémentaires r associées aux données utiles F(x).Fig. 2 presents the steps of such a data decryption method 5. These data 5 comprise a coded set π (F (x), r) of data. This set comprises useful data F (x) which are the encrypted data in encrypted form. The coded set also includes additional data r associated with the payload F (x).
On notera que le procédé de déchiffrement de données inclut notamment les étapes 31, 32, 33, 35, 36, 37, 38 d'un procédé de déchiffrement partiel de données .It will be noted that the data decryption method notably includes the steps 31, 32, 33, 35, 36, 37, 38 of a partial data decryption method.
Le procédé de déchiffrement de données comprend ainsi une réception 31 d'au moins une partie πO (FO (x) , rO) de l'ensemble codé de données. Seulement une partie de l'ensemble codé est reçue. La taille de cette partie est idéalement choisie pour permettre un compromis entre la sécurité du déchiffrement et le temps de traitement de ce déchiffrement. La partie πO (FO (x) , rO) de l'ensemble codé est par exemple de l'ordre de 8 bits.The data decryption method thus comprises a reception 31 of at least a part πO (FO (x), rO) of the coded data set. Only part of the encoded set is received. The The size of this part is ideally chosen to allow a compromise between the security of the decryption and the processing time of this decryption. Part πO (FO (x), rO) of the coded set is for example of the order of 8 bits.
En variante, tout l'ensemble codé de données π(F(x), r) est reçu à l'étape 31.As a variant, the entire coded set of data π (F (x), r) is received in step 31.
Le procédé comporte également une étape de décodage 32 de la au moins une partie πO (FO (x) , rO) de l'ensemble codé de données. On notera que ladite au moins une partie de l'ensemble codé comporte au moins une partie FO (x) des données utiles et des données supplémentaires rO .The method also comprises a decoding step 32 of the at least one part πO (FO (x), rO) of the coded data set. It will be noted that said at least part of the coded set includes at least one FO (x) portion of the payload and additional data rO.
La partie FO (x) des données utiles est déchiffrée partiellement à l'étape 33 pour obtenir une partie des données utiles au moins en partie déchiffrée Fl (x) .The portion FO (x) of the payload is partially decrypted in step 33 to obtain a portion of the payload at least partially decrypted Fl (x).
Cette partie de données utiles au moins en partie déchiffrée est ensuite associée à l'étape 34 avec des données supplémentaires ri. Par association de la partie des données utiles au moins en partie déchiffrée avec des données supplémentaires, on entend une concaténation des différentes données.This portion of at least partially decrypted useful data is then associated with step 34 with additional data ri. By associating the part of the useful data at least partially decrypted with additional data is meant a concatenation of the different data.
Les données supplémentaires ri ont été préalablement générées à l'étape 34. Les données supplémentaires ri ont par exemple été générées de manière aléatoire. Ainsi, l'ensemble comprenant la partie des données utiles au moins en partie déchiffrée F(x) et les données supplémentaires ri prend alors une valeur aléatoire.The additional data ri have been previously generated in step 34. The additional data ri have, for example, been generated randomly. Thus, the set comprising the part of the useful data at least partially decrypted F (x) and the additional data ri then takes a random value.
En variante, les données supplémentaires ri sont calculées à partir des données supplémentaires rO . Ces données supplémentaires ri ont dans un mode de réalisation particulier également en plus une composante aléatoire. On notera que la taille des données supplémentaires ri est identique à la taille des données utiles au moins en partie déchiffrées Fl (x) .As a variant, the additional data ri are calculated from the supplementary data rO. These additional data have in a particular embodiment also in addition to a random component. Note that the size of the additional data ri is identical to the size of the useful data at least partially decrypted Fl (x).
En variante, la taille des données supplémentaires ri est différente de la taille des données utiles au moins en partie déchiffrées Fl (x) .As a variant, the size of the additional data ri is different from the size of the useful data at least partially decrypted F1 (x).
On notera également que les données supplémentaires sont indépendantes des données utiles .It should also be noted that the additional data is independent of the useful data.
L'étape 36 permet de coder l'ensemble comprenant la au moins une partie des données utiles au moins en partie déchiffrée Fl (x) et les donnés supplémentaires associées ri. Il est ainsi constitué un ensemble codé ni (Fl (x) , ri), cet ensemble codé ni (Fl (x) , ri) constituant une nouvelle partie de l'ensemble codé π(F(x), r) si la partie des données utiles n'est pas déchiffrée totalement.Step 36 makes it possible to code the set comprising the at least part of the at least partially decrypted useful data Fl (x) and the associated additional data ri. It is thus constituted a coded set ni (Fl (x), ri), this coded set ni (Fl (x), ri) constituting a new part of the set encoded π (F (x), r) if the part useful data is not completely deciphered.
L'étape 37 comprend une transmission de la partie de l'ensemble codé de données ni (Fl (x) , ri) pour un déchiffrement des données utiles F(x).Step 37 comprises transmitting the portion of the encoded set of data n1 (F1 (x), r1) for deciphering the payload F (x).
L'étape 38 comprend alors une étape de déchiffrement afin de terminer le déchiffrement des données utiles F(x) . En effet, l'étape 33 ne permet qu'un déchiffrement partiel d'une partie FO (x) des données utiles. Par déchiffrement partiel, il est compris que la partie des données utiles FO (x) n'est pas entièrement déchiffrée. Il est nécessaire alors que les parties des données utiles subissent plusieurs étapes de déchiffrement partiel. Pour cela, une partie de l'étape 38 se fait par itération successive des étapes 31, 32, 33, 35, 36, 37 sur les parties des données utiles partiellement déchiffrées.Step 38 then comprises a decryption step in order to complete the deciphering of the useful data F (x). Indeed, step 33 allows only partial decryption of a portion FO (x) of the payload. By partial decryption, it is understood that the portion of the useful data FO (x) is not fully decrypted. It is necessary then that the parts of the useful data undergo several stages of partial decryption. For this purpose, part of step 38 is done by successive iteration of steps 31, 32, 33, 35, 36, 37 on the partially decrypted portions of the payload.
En variante, toute l'étape 38 se fait par itération successive des étapes 31, 32, 33, 35, 36, 37. On notera que la partie ni (Fl (x) , ri) de l'ensemble codé de données transmis à l'étape 37 peut être reçu dans sa totalité lors de l'étape de réception 31 suivante. En variante, ce n'est qu'une partie de la partie ni (Fl (x) , ri) de l'ensemble codé qui est reçue.Alternatively, the entire step 38 is by successive iteration of the steps 31, 32, 33, 35, 36, 37. It should be noted that the part n1 (F1 (x), ri) of the coded data set transmitted in step 37 can be received in its entirety during the next reception step 31. Alternatively, it is only part of the ni (F1 (x), ri) portion of the encoded set that is received.
Dans une autre variante, la partie ni (Fl (x) , ri) de l'ensemble codé est combinée avec une autre partie de l'ensemble codé, préalablement à une étape de réception 31.In another variant, the part n1 (F1 (x), ri) of the coded set is combined with another part of the coded set, prior to a reception step 31.
On notera également que lorsque deux procédés de déchiffrement partiel de données se suivent, la fonction de codage utilisée à l'étape 36 du premier procédé est liée à la fonction de décodage utilisée à l'étape 32 du second procédé. Ces deux fonctions sont par exemple l'inverse l'une de l'autre.It will also be noted that when two partial data decryption methods follow each other, the coding function used in step 36 of the first method is related to the decoding function used in step 32 of the second method. These two functions are for example the opposite of each other.
Ainsi l'étape 38 permet d'obtenir des données utiles déchiffrées x ou données en clair 6. L'étape 38 permet également d'obtenir des données supplémentaires rn associées aux données utiles déchiffrées x.Thus, step 38 makes it possible to obtain decrypted useful data x or data in clear 6. Step 38 also makes it possible to obtain additional data rn associated with the deciphered payload x.
On notera que dans le cas où les données supplémentaires ri sont déterminées à partir des données supplémentaires rO, il est possible de choisir les données supplémentaires r afin d'obtenir des données supplémentaires rn voulues. Les données supplémentaires finales sont alors utilisables, par exemple, comme un marquage des données utiles déchiffrées x. Un marquage se présente sous la forme de données destinées à apporter des informations complémentaires aux données en clair telles que le nom d'une œuvre ou de son auteur. Un marquage permet également d'incorporer des données de sécurité. En variante, les données x ne sont pas les données en clair 6. Une transformation des données x est alors nécessaire pour obtenir ces données en clair 6.Note that in the case where the additional data ri are determined from the additional data r0, it is possible to choose the additional data r in order to obtain additional data rn desired. The final additional data can then be used, for example, as a tagging of the decrypted useful data x. Marking is in the form of data intended to provide complementary information to data in the clear such as the name of a work or its author. Marking also makes it possible to incorporate security data. As a variant, the data x is not the data in the clear 6. A transformation of the data x is then necessary to obtain these data in clear 6.
Dans un mode particulier de réalisation, cette transformation fait intervenir les données supplémentaires rn .In a particular embodiment, this transformation involves the additional data rn.
On notera que l'étape 33 ne permet qu'un déchiffrement partiel d'une partie des données utiles car cette étape n'utilise qu'une partie des fonctions élémentaires de l'algorithme utilisé pour le déchiffrement des données.It will be noted that step 33 allows only a partial decryption of a part of the useful data because this step uses only part of the elementary functions of the algorithm used for the decryption of the data.
L'algorithme cryptographique est, ici, par exemple l'algorithme AES pour Advanced Encryption Standard. En variante, l'algorithme est tout autre algorithme cryptographique symétrique ou asymétrique. Cet algorithme AES prend, ainsi, en entrée des blocs de données chiffrées 5. Ces blocs sont par exemple des blocs de taille 128 bits ou 16 octets. En variante, ces blocs sont de toute autre taille. Les octets subissent alors différentes opérations. Dans un premier temps, les octets sont permutés d'une manière définie au préalable. Cette opération est appelée substitution d'octets ou ByteSub transformation. Les octets sont ensuite placés dans une matrice de 4*4 éléments. Les lignes de cette matrice subissent alors une rotation vers la droite. L'incrément pour la rotation varie selon le numéro de ligne. Cette opération est appelée décalage de ligne ou shift Row transformations. Une opération linéaire est ensuite appliquée sur la matrice. Cette opération consiste en une multiplication binaire de chaque élément de la matrice avec des polynômes issus d'une matrice auxiliaire. Cette multiplication est soumise à des règles spéciales selon le groupe de Galois ou corps fini. L'opération linéaire garantit ainsi une meilleure diffusion des bits. Cette opération est appelée mélange de colonne ou MixColumn transformation. Finalement, un XOR entre la matrice et une autre matrice permet d'obtenir une matrice intermédiaire. Cette opération est appelée addition de clés d'étages ou Round Key addition.The cryptographic algorithm is, for example, the AES algorithm for Advanced Encryption Standard. Alternatively, the algorithm is any other symmetric or asymmetric cryptographic algorithm. This AES algorithm thus takes, as input, blocks of encrypted data 5. These blocks are, for example, blocks of size 128 bits or 16 bytes. In a variant, these blocks are of any other size. The bytes then undergo different operations. In a first step, the bytes are permuted in a previously defined manner. This operation is called byte substitution or ByteSub transformation. The bytes are then placed in a matrix of 4 * 4 elements. The lines of this matrix are then rotated to the right. The increment for the rotation varies according to the line number. This operation is called line shift or shift row transformations. A linear operation is then applied to the matrix. This operation consists of a binary multiplication of each element of the matrix with polynomials coming from an auxiliary matrix. This multiplication is subject to special rules according to the Galois group or finite body. The linear operation thus guarantees better bit diffusion. This operation is called Column Mix or MixColumn transformation. Finally, an XOR between the matrix and another matrix makes it possible to obtain an intermediate matrix. This operation is called addition of floor keys or round key addition.
Les différentes opérations sont enchaînées pour former un tour.The different operations are chained to form a turn.
Toutes ces opérations sont représentables sous forme de fonctions élémentaires permettant un déchiffrement partiel de la au moins une partie des données utiles. Ainsi le déchiffrement des données utile revient à l'application successive des différentes fonctions élémentaires sur les parties des données utiles. Les fonctions élémentaires sont par exemple, des XOR ou des boîtes S.All these operations can be represented in the form of elementary functions allowing partial decryption of the at least part of the useful data. Thus the deciphering of the useful data amounts to the successive application of the different elementary functions on the parts of the useful data. The elementary functions are, for example, XORs or S boxes.
On notera que ces fonctions élémentaires utilisent lors des déchiffrements partiels tout ou partie de la clé de déchiffrement 2 présente dans le module de déchiffrement. En variante, une partie des fonctions élémentaires n'utilisent pas tout ou partie de la clé. L'étape de déchiffrement partiel que réalisent ces fonctions permet simplement de transformer la partie des données utiles en une forme exploitable pour une autre étape de déchiffrement partiel.It will be noted that these elementary functions use partial decryptions of all or part of the decryption key 2 present in the decryption module. In a variant, some of the elementary functions do not use all or part of the key. The partial decryption step that these functions perform simply makes it possible to transform the portion of the useful data into a form that can be used for another partial decryption step.
On notera également que les fonctions de codage, respectivement de décodage sont différentes des fonctions élémentaires. En effet, contrairement à ces dernières elles ne représentent pas des opérations d'un algorithme de déchiffrement. De plus, les fonctions de codage/décodage s'appliquent à un ensemble de données. Les fonctions élémentaires s'appliquent uniquement aux parties des données utiles. En outre, ces fonctions de codage/décodage sont utilisées pour empêcher qu'un attaquant ne puisse dissocier les données utiles au moins en partie déchiffrées des données supplémentaires.It will also be noted that the coding or decoding functions are different from the elementary functions. In fact, unlike the latter, they do not represent operations of a decryption algorithm. In addition, the encoding / decoding functions apply to a set of data. The basic functions apply only to the parts of the useful data. In addition, these coding / decoding functions are used to prevent an attacker from can dissociate useful data at least partially decrypted additional data.
Comme il a été déjà mentionné plus haut, l'étape 33 de déchiffrement partiel est non déterminable vis- à-vis d'un attaquant. Cette étape est non déterminable car il est considéré qu'il n'est pas possible à un attaquant d'observer les données utiles reçues FO (x) et les données utiles envoyées Fl (x) au niveau de la fonction élémentaire utilisée lors de cette étape de déchiffrement partiel. Pour rendre l'étape 33 de déchiffrement non déterminable il est, par exemple, choisi de manière adaptée la fonction de décodage utilisée à l'étape 32 et la fonction de codage utilisée à l'étape 36. Ces fonctions sont choisies de telle manière que la composition de cette fonction de décodage avec la fonction élémentaire et avec cette fonction de codage ne permet pas l'observation des données circulant entre les différents moyens 41, 42, 43, 44, 45, 46, 47. Le dispositif de déchiffrement partiel 40 est vu alors par un attaquant comme une boîte noire.As already mentioned above, the partial decryption step 33 is not determinable with respect to an attacker. This step is not determinable because it is considered that it is not possible for an attacker to observe the received useful data FO (x) and the payload data Fl (x) at the level of the elementary function used during this procedure. partial decryption step. To make the decryption step 33 non-determinable, it is, for example, suitably chosen the decoding function used in step 32 and the coding function used in step 36. These functions are chosen in such a way that the composition of this decoding function with the elementary function and with this coding function does not allow the observation of the data circulating between the various means 41, 42, 43, 44, 45, 46, 47. The partial decryption device 40 is then seen by an attacker as a black box.
Dans une autre variante, l'étape 33 de déchiffrement partiel est rendue non déterminable vis-à-vis d'un attaquant en ce que la composition de la fonction de décodage avec la fonction élémentaire et avec la fonction de codage est représentée sous forme d'une table de correspondance. Cette table comprend l'ensemble des couples entrée/sortie de cette composition préalablement calculés. On notera ainsi que la table de correspondance effectue l'équivalent des étapes de décodage 32, de déchiffrement partiel 33, d'association 35, et de codage 36. De part l'utilisation de cette table, il n'est pas possible à un attaquant d'observer spécifiquement les données utiles reçues FO (x) et les données utiles envoyées Fl (x) au niveau de la fonction élémentaire utilisée lors de cette étape de déchiffrement partiel. Le dispositif de déchiffrement partiel 40 présent sous forme d'une table est vu alors par un attaquant comme une boîte noire. On notera également que lors de la création préalable de cette table de correspondance, les étapes de décodage 32, de déchiffrement partiel 33, d'association 35, et de codage 36 sont mises en œuvre .In another variant, the partial decryption step 33 is made non-determinable with respect to an attacker in that the composition of the decoding function with the elementary function and with the coding function is represented in the form of a decoder. a correspondence table. This table includes all the input / output pairs of this composition previously calculated. It will thus be noted that the correspondence table performs the equivalent of the decoding steps 32, partial decryption 33, association 35, and coding 36. By the use of this table, it is not possible to attacker to specifically observe the received useful data FO (x) and the payload data Fl (x) at the elementary function used during this partial decryption step. The partial decryption device 40 present in the form of a table is then seen by an attacker as a black box. Note also that during the preliminary creation of this correspondence table, the decoding steps 32, partial decryption 33, association 35, and coding 36 are implemented.
La Fig. 3 présente un module de déchiffrement 50 de données. Ces données comprennent un ensemble codé de données π(F(x), r) comportant des données utiles F(x) et des données supplémentaires r. En pratique, le module de déchiffrement 50 est constitué d'un système informatique dans lequel un programme d'ordinateur chargeable dans la mémoire interne de ce système est exécuté pour la mise en œuvre du procédé de déchiffrement. Ce programme comprend, en effet, des portions de code pour l'exécution des étapes 31, 32, 33, 35, 36, 37, 38 de ce procédé de déchiffrement.Fig. 3 presents a data decryption module 50. These data comprise a coded set of data π (F (x), r) having useful data F (x) and additional data r. In practice, the decryption module 50 consists of a computer system in which a computer program loadable in the internal memory of this system is executed for the implementation of the decryption method. This program comprises, in fact, portions of code for the execution of steps 31, 32, 33, 35, 36, 37, 38 of this decryption method.
Le module comprend un dispositif de déchiffrement partiel de données 40 et un dispositif de déchiffrement de données 48.The module includes a partial data decryption device 40 and a data decryption device 48.
Le dispositif de déchiffrement partiel comprend des moyens de réception 41 d'au moins une partie de l'ensemble codé de données πO (FO (x) , rO).The partial decryption device comprises means 41 for receiving at least a portion of the coded data set πO (FO (x), rO).
La partie de l'ensemble codé de données πO (FO (x) , rO) provient directement de l'ensemble codé de données π(F(x), r) .The part of the coded set of data πO (FO (x), rO) comes directly from the coded set of data π (F (x), r).
En variante, la partie de l'ensemble codé de données provient d'un déchiffrement antérieur.Alternatively, the portion of the encoded data set is from prior decryption.
Le dispositif de déchiffrement partiel comprend également des moyens de décodage 42 de la au moins une partie de l'ensemble codé de données. Cette au moins une partie de l'ensemble comporte une partie FO (x) des données utiles et des données supplémentaires rO .The partial decryption device also includes decoding means 42 for the at least part of the coded data set. This at at least part of the set has a part FO (x) of the payload and additional data rO.
La au moins une partie FO (x) des données utiles est ensuite déchiffrée au moins en partie par des moyens de déchiffrement partiel 43.The at least one portion FO (x) of the payload is then decrypted at least in part by partial decryption means 43.
Des moyens d'association 45 associent la au moins une partie des données utiles au moins en partie déchiffrée Fl (x) , avec des données supplémentaires ri. Ces données supplémentaires sont générées préalablement par des moyens de génération 44.Association means 45 associates the at least part of the useful data at least partially decrypted Fl (x), with additional data ri. This additional data is generated previously by generation means 44.
Des moyens de codage 46 codent l'ensemble comprenant la au moins une partie des données utiles au moins en partie déchiffrée Fl (x) et les données supplémentaires associées ri. Cet ensemble codé constitue une partie de l'ensemble codé de données π(F(x), r) .Coding means 46 encode the set comprising the at least part of the at least partially decrypted useful data Fl (x) and the associated additional data ri. This coded set constitutes a part of the coded set of data π (F (x), r).
Le dispositif de déchiffrement partiel comprend également des moyens pour la transmission 47 de l'ensemble comprenant la au moins une partie des données utiles au moins en partie déchiffrée Fl (x) et les données supplémentaires associées ri, vers le dispositif de déchiffrement de données 48. Le dispositif de déchiffrement de données 48 comprend, quant à lui, au moins un dispositif de déchiffrement partiel comprenant notamment des moyens de réception 41, des moyens de décodage 42, des moyens de déchiffrement partiel 43, des moyens d'association 45, des moyens de codage 46.The partial decryption device also comprises means for the transmission 47 of the set comprising the at least part of the at least partially decrypted useful data Fl (x) and the associated additional data ri, to the data decryption device 48 The data decryption device 48 comprises, for its part, at least one partial decryption device comprising, in particular, reception means 41, decoding means 42, partial decryption means 43, association means 45, coding means 46.
En variante, le dispositif de déchiffrement 48 comprend tout autre moyen pour le déchiffrement des données .In a variant, the decryption device 48 comprises any other means for decrypting the data.
Le dispositif de déchiffrement permet d'obtenir en sortie du module de déchiffrement les données utiles déchiffrées x ou données en clair 6. En variante, les données x ne sont pas les données en clair 6. Une transformation des données x est alors nécessaire pour obtenir ces données en clair 6. On notera que le module de déchiffrement 50 est vu par un attaquant comme une boîte blanche dans laquelle il est possible d'observer les données circulant entres le dispositif de déchiffrement partiel 40 et le dispositif de déchiffrement 48. Cependant l'attaquant n'observe que le codage d'un ensemble comprenant des données utiles au moins en partie déchiffrées associée à des données supplémentaires. Il n'est pas en mesure de distinguer les données utiles au moins en partie déchiffrée des données supplémentaires.The decryption device makes it possible to obtain at the output of the decryption module the decrypted useful data x or data in clear 6. As a variant, the data x are not the data in clear 6. A transformation of the data x is then necessary to obtain these data in clear 6. It will be noted that the decryption module 50 is seen by an attacker as a white box in which it is possible to observe the data flowing between the partial decryption device 40 and the decryption device 48. However, the attacker observes only the coding of a set comprising at least partially decrypted useful data associated with data. additional. It is not able to distinguish the useful data at least partly decrypted from the additional data.
La Fig.4 présente un terminal 12 destiné à traiter des données chiffrées. Le terminal 12 comprend ainsi des moyens de réception 51 d'un ensemble codé de données π(F(x), r) , des moyens de transmission 52 de l'ensemble codé de données vers un module 50 de déchiffrement des données.Fig.4 shows a terminal 12 for processing encrypted data. The terminal 12 thus comprises means 51 for receiving a coded set of data π (F (x), r), transmission means 52 of the coded data set to a module 50 for decrypting the data.
Des moyens de transmission 57 permettent la transmission des données utiles déchiffrées x vers des moyens d'utilisation 58 de ces données utiles déchiffrées .Transmission means 57 allow the transmission of the decrypted useful data x to the means of use 58 of this decrypted user data.
La Fig. 5 présente un procédé de chiffrement de données. Ce procédé comprend une étape de chiffrement de données utiles x. Ces données utiles sont par exemple les données 4.Fig. 5 presents a method of data encryption. This method comprises a step of encrypting useful data x. This useful data is for example the data 4.
Le procédé comprend également une étape d'association des données utiles chiffrées F(x) avec des données supplémentaires r. Ces données supplémentaires ont été préalablement générées. Une étape de codage 62 permet de coder un ensemble de données comprenant les données utiles chiffrées F(x) et les données supplémentaires associées r. On notera que la fonction de codage est choisie de telle manière que le décodage de l'ensemble de données dans un module de déchiffrement 50 est facilité.The method also includes a step of associating the encrypted user data F (x) with additional data r. This additional data was previously generated. A coding step 62 makes it possible to encode a data set comprising the encrypted useful data F (x) and the associated additional data r. It should be noted that the coding function is chosen in such a way that the decoding of the data set in a decryption module 50 is facilitated.
En variante, le chiffrement des données utiles comprend des étapes de chiffrement, d'association, de codage, de parties de données utiles. As a variant, the encryption of the useful data comprises encryption, association, coding and useful data part steps.

Claims

Revendications claims
1. Procédé de déchiffrement partiel de données, caractérisé en ce que ledit procédé comprend: un décodage (32) d'un ensemble codé de données ledit ensemble comportant au moins des données utiles; un déchiffrement partiel (33) non déterminable des données utiles; une association (35) des données utiles au moins en partie déchiffrées, avec des données supplémentaires ; un codage (36) d'un ensemble de données comprenant les données utiles au moins en partie déchiffrées et les données supplémentaires associées .A method of partial decryption of data, characterized in that said method comprises: decoding (32) a coded data set said set comprising at least useful data; partial decryption (33) of the useful data; an association (35) of the payload data at least partially decrypted with additional data; an encoding (36) of a data set comprising the at least partially decrypted payload and associated additional data.
2. Procédé de déchiffrement partiel selon la revendication 1 caractérisé en ce que le décodage2. Partial decryption method according to claim 1, characterized in that the decoding
(32) de l'ensemble codé de données, ledit ensemble codé comportant en outre des données supplémentaires associées aux données utiles, permet d'obtenir lesdites données supplémentaires associées aux données utiles, lesdites données supplémentaires permettant de calculer les données supplémentaires associées aux données utiles au moins en partie déchiffrées .(32) of the coded data set, said coded set further comprising additional data associated with the payload, provides said additional data associated with the payload, said additional data for calculating the additional data associated with the payload at least partially deciphered.
3. Procédé de déchiffrement de données, lesdites données comprenant un ensemble codé de données (π(F(x), r) ) comportant des données utiles F(x) caractérisé en ce que ledit procédé comprend les étapes suivantes: - 31) une réception d'au moins une partie (πO (FO (x) , rθ)) de l'ensemble codé de données; - 32) un décodage de la au moins une partie de l'ensemble codé de données ladite au moins une partie de l'ensemble codé comportant au moins une partie (FO (x) ) des données utiles; - 33) un déchiffrement partiel non déterminable de la au moins une partie (FO (x) ) des données utiles;3. A data decryption method, said data comprising a coded set of data (π (F (x), r)) comprising useful data F (x), characterized in that said method comprises the following steps: receiving at least a portion (πO (FO (x), rθ)) of the encoded data set; - 32) a decoding of the at least a part of the coded data set said at least a part of the coded set having at least a portion (FO (x)) of the payload; - 33) a non-determinable partial decryption of the at least one part (FO (x)) of the payload data;
- 35) une association de la au moins une partie des données utiles au moins en partie déchiffrée- 35) an association of the at least part of the useful data at least partly decrypted
(Fl (x) ) avec des données supplémentaires (ri); - 36) un codage d'un ensemble comprenant la au moins une partie des données utiles au moins en partie déchiffrée (Fl (x) ) et les données supplémentaires associées (ri), ledit ensemble étant une nouvelle partie de l'ensemble codé de données (π(F(x), r) ) si la au moins une partie des données utiles au moins en partie déchiffrée n'est pas déchiffrée totalement;(Fl (x)) with additional data (ri); - 36) a coding of a set comprising the at least part of the at least partially decrypted payload (Fl (x)) and the associated additional data (ri), said set being a new part of the coded set of data (π (F (x), r)) if the at least part of the useful data at least partially decrypted is not completely deciphered;
37) une transmission de la nouvelle partie (ni (Fl (x) , ri)) de l'ensemble codé de données pour un déchiffrement des données utiles;37) transmitting the new portion (ni (F1 (x), ri) of the encoded data set for decryption of the payload data;
- 38) un déchiffrement (38) des données utiles à partir d'au moins la nouvelle partie (ni (Fl (x) , ri)) de l'ensemble codé de données transmise.38) a decryption (38) of the useful data from at least the new part (ni (F1 (x), ri)) of the transmitted data coded set.
4. Procédé de déchiffrement selon la revendication précédente caractérisé en ce qu'au moins une partie de l'étape 38 se fait par itération successive des étapes 31, 32, 33, 35, 36, 37.4. Decryption method according to the preceding claim characterized in that at least a portion of step 38 is by successive iteration of steps 31, 32, 33, 35, 36, 37.
5. Programme d'ordinateur sur un support de données et chargeable dans la mémoire interne d'un ordinateur, ledit programme comprenant des portions de code pour l'exécution des étapes du procédé selon l'une quelconque des revendications 3 à 4. A computer program on a data carrier and loadable in the internal memory of a computer, said program comprising portions of code for performing the steps of the method according to any of claims 3 to 4.
6. Dispositif de déchiffrement partiel de données caractérisé en ce que ledit dispositif comprend:6. Device for partial decryption of data characterized in that said device comprises:
- des moyens de décodage (42) d'un ensemble codé de données ledit ensemble comportant au moins des données utiles; des moyens de déchiffrement partiel (43) non déterminable de données utiles;means for decoding (42) a coded set of data said set comprising at least useful data; means for partial decryption (43) of non-determinable useful data;
- des moyens d'association (45) des données utiles au moins en partie déchiffrées avec des données supplémentaires;means for associating (45) useful data at least partly decrypted with additional data;
- des moyens de codage (46) d'un ensemble de données comprenant les données utiles au moins en partie déchiffrées et les données supplémentaires associées.coding means (46) for a set of data comprising at least partially decrypted useful data and associated additional data.
7. Module de déchiffrement de données, lesdites données comprenant un ensemble codé de données comportant des données utiles caractérisé en ce que le module comprend au moins un dispositif de déchiffrement partiel de données selon la revendication 6. Data decryption module, said data comprising an encoded data set comprising useful data, characterized in that the module comprises at least one partial data deciphering device according to claim 6.
PCT/FR2008/050317 2007-02-28 2008-02-26 Method for the decryption of encrypted data using a cryptographic algorithm WO2008119901A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0753571 2007-02-28
FR0753571 2007-02-28

Publications (2)

Publication Number Publication Date
WO2008119901A2 true WO2008119901A2 (en) 2008-10-09
WO2008119901A3 WO2008119901A3 (en) 2009-01-22

Family

ID=38535477

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2008/050317 WO2008119901A2 (en) 2007-02-28 2008-02-26 Method for the decryption of encrypted data using a cryptographic algorithm

Country Status (1)

Country Link
WO (1) WO2008119901A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2458774A1 (en) * 2010-11-24 2012-05-30 Nagravision S.A. A method of processing a cryptographic function in obfuscated form
WO2016074776A1 (en) * 2014-11-10 2016-05-19 Giesecke & Devrient Gmbh Hardened white box implementation 1

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2856539A1 (en) * 2003-06-17 2004-12-24 France Telecom Broadcasted information encryption and/or decryption tracing method, involves implementing secret cryptographic function by multiple decoders, each including memory storing mathematical description of function
US20060045273A1 (en) * 2004-08-31 2006-03-02 Michael Mayer Method and system for transmitting signaling information over a data transport network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2856539A1 (en) * 2003-06-17 2004-12-24 France Telecom Broadcasted information encryption and/or decryption tracing method, involves implementing secret cryptographic function by multiple decoders, each including memory storing mathematical description of function
US20060045273A1 (en) * 2004-08-31 2006-03-02 Michael Mayer Method and system for transmitting signaling information over a data transport network

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BARONTI ET AL: "Wireless sensor networks: A survey on the state of the art and the 802.15.4 and ZigBee standards" COMPUTER COMMUNICATIONS, ELSEVIER SCIENCE PUBLISHERS BV, AMSTERDAM, NL, vol. 30, no. 7, 29 décembre 2006 (2006-12-29), pages 1655-1695, XP022024796 ISSN: 0140-3664 *
BILLET O ET AL: "A Traceable Block Cipher" ASIACRYPT. INTERNATIONAL CONFERENCE ON THE THEORY AND APPLICATIONOF CRYPTOLOGY AND INFORMATION SECURITY, X, XX, novembre 2003 (2003-11), pages 331-346, XP002273113 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2458774A1 (en) * 2010-11-24 2012-05-30 Nagravision S.A. A method of processing a cryptographic function in obfuscated form
WO2016074776A1 (en) * 2014-11-10 2016-05-19 Giesecke & Devrient Gmbh Hardened white box implementation 1
WO2016074775A1 (en) * 2014-11-10 2016-05-19 Giesecke & Devrient Gmbh Hardened white box implementation 2
CN107005404A (en) * 2014-11-10 2017-08-01 德国捷德有限公司 The whitepack of reinforcing realizes 1
US10249220B2 (en) 2014-11-10 2019-04-02 Giesecke+Devrient Mobile Security Gmbh Hardened white box implementation 2
US10403174B2 (en) 2014-11-10 2019-09-03 Giesecke+Devrient Mobile Security Gmbh Hardened white box implementation
US10438513B2 (en) 2014-11-10 2019-10-08 Giesecke+Devrient Mobile Security Gmbh Hardened white box implementation 1
CN107005404B (en) * 2014-11-10 2020-11-03 捷德移动安全有限责任公司 Processor apparatus implementing executable white-box mask implementations of cryptographic algorithms

Also Published As

Publication number Publication date
WO2008119901A3 (en) 2009-01-22

Similar Documents

Publication Publication Date Title
BE1003932A6 (en) Cryptographic system by bit data block.
EP2377264B1 (en) Method and module for renewing the code of a cryptographic algorithm, method and module for generating a seed, security processor and recording medium for these methods
FR2952778A1 (en) SECURE DATA TRANSMISSION METHOD AND ENCRYPTION AND ENCRYPTION SYSTEM FOR SUCH TRANSMISSION
EP2892176A2 (en) Method for converting a conditional access content and receiver for the implementation for said method
WO2008113950A2 (en) Identity based broadcast encryption
EP1634405B1 (en) Traceable method and system for encrypting and/or decrypting data, and recording media therefor
CN101488214A (en) Method for expanding anti-fake digital watermark and electronic seal information content
EP0027423B1 (en) Digital-signal ciphering and deciphering arrangement
WO2016087520A1 (en) Method of encryption with dynamic diffusion and confusion layers
EP2457344B1 (en) Method for converting a first digit into a second digit
Yahaya et al. Cryptosystem for secure data transmission using Advance Encryption Standard (AES) and Steganography
EP2643943A1 (en) Method and system for conditional access to a digital content, associated terminal and subscriber device
WO2011083232A1 (en) Encryption and decryption method
WO2008119901A2 (en) Method for the decryption of encrypted data using a cryptographic algorithm
CN112580071A (en) Data processing method and device
EP0935858A1 (en) Method for data decorrelation
Wu et al. A novel latin square image cipher
EP2652899B1 (en) Method and system for conditional access to a digital content, associated terminal and subscriber device
FR2892583A1 (en) SECURE DATA TRANSMISSION METHOD
EP1032158B1 (en) Method and apparatus for protecting a coprocessor used for encryption
FR2913153A1 (en) Identity based cryptographic method for encrypting and decrypting electronic message, involves encrypting electronic message using symmetric encryption key in transmitting entity, and diffusing cryptogram and encrypted message from entity
Jumaa Hiding of random permutated encrypted text using lsb steganography with random pixels generator
CN117979051B (en) Audio anti-counterfeiting method, equipment and medium
EP2294750B1 (en) Traceable method and system for broadcasting digital data
Kukreja et al. Random Grid Based Extended Visual Secret Sharing Scheme for Image Authentication

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08762158

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08762158

Country of ref document: EP

Kind code of ref document: A2