WO2009053605A2 - Systeme traçable de chiffrement/dechiffrement de donnees numeriques diffusees - Google Patents

Systeme traçable de chiffrement/dechiffrement de donnees numeriques diffusees Download PDF

Info

Publication number
WO2009053605A2
WO2009053605A2 PCT/FR2008/051811 FR2008051811W WO2009053605A2 WO 2009053605 A2 WO2009053605 A2 WO 2009053605A2 FR 2008051811 W FR2008051811 W FR 2008051811W WO 2009053605 A2 WO2009053605 A2 WO 2009053605A2
Authority
WO
WIPO (PCT)
Prior art keywords
function
entity
obtaining
derived value
blocks
Prior art date
Application number
PCT/FR2008/051811
Other languages
English (en)
Other versions
WO2009053605A3 (fr
Inventor
Olivier Billet
Duong Hieu Phan
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 WO2009053605A2 publication Critical patent/WO2009053605A2/fr
Publication of WO2009053605A3 publication Critical patent/WO2009053605A3/fr

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/60Digital content management, e.g. content distribution
    • H04L2209/606Traitor tracing

Definitions

  • the invention relates to a method and system for encryption / decryption of digital data broadcast. This method and system are traceable, and resistant to white box attacks.
  • the tracing methods of traitors ensure that, if such fraud occurs, the identity of at least one of the legitimate consumers who are at the root of the fraud (so-called "traitors") can be reconstituted by the provider of content, or more generally by an authority, from data redistributed to illicit consumers.
  • the encryption / decryption systems in which a tracing method can be implemented are said to be "traceable”.
  • Each encrypted message includes:
  • header (s) containing certain encrypted information according to said identifiers.
  • the data broadcast in this system also clearly include the current value of said parameter r.
  • the methods of tracing traitors of a combinatorial nature have the disadvantage that it is necessary to broadcast a considerable volume of headers. More specifically, the number of headers to be broadcast is proportional to the log of the number of legitimate consumers, as well as to other parameters such as the maximum size K of the coalitions of traitors against which one seeks to protect oneself (one understands here, by "coalition", a group of K traitors who combine to combine their personal identifiers so as to try to create a new identifier that can be used to decrypt the encrypted content, without the analysis of this new identifier does not disclose the identity of any of the members of the coalition).
  • all the decoders implement at least the same second secret cryptographic function inverse of said first function, each decoder for this purpose calling upon a mathematical description of said second function stored in a memory.
  • a first drawback is that its effectiveness depends on the total number of consumers and the maximum size K of the coalitions of traitors against which one seeks to protect themselves, insofar as the complexity of the calculations required by the encryption and the deciphering of the content must be increased when increasing one or the other of these quantities (number of consumers, and K).
  • the encryption method provides a succession of stages whose number depends on these two quantities, each stage being constituted by an asymmetric encryption algorithm (moreover, in general, significantly slower than a symmetric encryption algorithm ).
  • a second drawback is that traitor tracing according to this method requires a software analysis of the pirate decoder. Now, as he is well known, reverse engineering in software is difficult and expensive. It would be much more convenient, instead, to be able to determine the personal identifier of the pirate decoder simply by observing how this decoder processes (that is, decrypts, or fails to decrypt) some encrypted messages which would have been provided for that purpose.
  • the present invention relates, in the first place, to a method for obtaining, by a first entity U, a derived value K 1 . from an input parameter r and encrypted information ⁇ .
  • This process comprises the following steps:
  • first entity may for example be a consumer of digital content provided to it by a "second entity", itself constituted by a digital content provider.
  • second entity may designate, without distinction, the designer of an encryption / decryption system according to the invention, or a distributor of encrypted messages, or else a control authority. able to trace traitors among the "first entities” attached (eg subscribed) to the system.
  • a feature of the invention is that none of the m master values S is stored in the software provided to the first entity; moreover, if the first entity can obviously obtain the derived values K 1 . to which it is entitled, it can not deduce the master values S on which depends its table T. Indeed, in the first place, the first entity can deduce from the knowledge of its table T and its personal identifier / only a strict subset of the blocks T ⁇ ; and secondly, even if a coalition of traitors managed to reconstruct the set of T ⁇ blocks for a certain value of k, this coalition could not go back to the corresponding master value S because of the fact that the construction function G ( i) is selected from the pseudo-random functions.
  • the security problem addressed here is that of the protection of decryption software, not only against hackers outside the platform, but also and above all against the legitimate user of the computing platform. hosting this software. Indeed, for an unscrupulous user, another way to behave "traitor" that by redistributing his decoding software is to analyze the main steps implemented in this software, to then be able to manufacture a counterfeit software that is: - essentially equivalent to the copied software as to its decryption capabilities, but
  • counterfeit software will be easier to distribute by the traitor than the copied software if the counterfeit software is smaller than the copied software.
  • a second advantage of the invention is that it requires computational complexity that is independent of both the total number of consumers and the maximum size K of the coalitions of traitors against which one seeks to protect themselves.
  • it advantageously makes it possible to use any conventional reliable and fast symmetric encryption algorithm, such as AES
  • a third advantage of the invention is that it allows tracing traitors in black box, that is to say that one can (as explained in detail below) determine the personal identifier / a decoder suspected of counterfeiting simply by observing how this decoder handles certain encrypted messages that were provided for this purpose.
  • the personal identifiers / are chosen from the words of an "anti-collusion” code of the type described in the article by D. Boneh and J. Shaw entitled “Collusion-Secure Fingerprinting for Digital Data” (IEEE). Trans., Theory, Vol 44, No. 5, Sep. 1998).
  • K For such a code, it is known, for any given coalition size K, to calculate the minimum length of the code required so that it is impossible to find, from the personal identifiers of the members of the coalition, another personal identifier. belonging to the same code.
  • said selection of a w-tuple of indices ( ⁇ i 2 , ..., i w ) is performed by the second entity, and the w-tuple of indices (Z 1 , i 2 , ..., i w ) resulting from this selection is inserted into said input parameter r.
  • said selection of an index w-tuple ( ⁇ i 2 , ..., i w ) is performed by the first entity from a value contained in a predetermined field of said input parameter r, by means of a predetermined index selection function E (r).
  • the first of these two variants has the advantage of reducing the complexity of the decryption of messages encrypted by the first entity (content consumer); the second of these two variants has the advantage of reducing the length of the parameter r and thus of the digital data broadcast.
  • the invention relates to a device for obtaining by a first entity U a derived value K r from an input parameter r and encrypted information ⁇ .
  • This device comprises:
  • G (i) called "construction function", parametrized by a master value o Cl (k), said master values ⁇ V Cl (k) not being disclosed to said first entity.
  • This device for obtaining a derived value may take the form of an electronic circuit, in particular within a decoder.
  • This device for obtaining a derived value may also take the form of a software platform executed by a computer system.
  • This computer system which conventionally comprises a central processing unit controlling signals by a memory, as well as an input unit and an output unit, can be used to execute a computer program comprising instructions for implementation of the process for obtaining a derived value according to the invention.
  • the invention therefore also relates to a computer program downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor.
  • This computer program is notable in that it includes instructions for performing the steps of any of the methods of deriving a derived value succinctly set forth above, when executed on a computer .
  • the advantages offered by this computer program are essentially the same as those offered by said methods.
  • the present invention finds particular application in the context of the distribution of digital content pay.
  • the invention also relates to a decryption method.
  • This method is remarkable in that it uses as a decryption key a derived value K r obtained by means of the method of obtaining of a value derived according to the invention, for decrypting a cryptogram C r (M) received in conjunction with said input parameter r, where M is a plaintext and C r a predetermined encryption algorithm using an encryption key associated with the decryption key K 1 ..
  • the invention also relates to a computer program downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor, said program being remarkable in that it includes instructions for execution steps of a decryption method as briefly described above when executed on a computer.
  • the invention also relates to a computer-readable information carrier, and comprising instructions of a computer program such as those described briefly above.
  • FIG. 1 is a block diagram illustrating an embodiment of a step for the construction of a table T by the second entity
  • FIG. 2 is a block diagram illustrating the general operation of the method according to the invention of FIG. point of view of the first entity, according to one embodiment.
  • indices are created for indexing the blocks of the table T.
  • Each of these indices may example conveniently be constituted by a binary word of length /;
  • the first entity U is assigned a personal identifier /
  • each of said blocks T i is generated by the second entity, as a function of this personal identifier /, by combining at least ib games, locs T 1- (O) i, ⁇ 1> (l) i, ..., ⁇ 1 ⁇ ( m ⁇ l) l
  • each of these blocks can be conveniently given a length n identical to that of the blocks T i.
  • the personal identifier / may for example conveniently be constituted by a binary word of length 2.
  • each block T ⁇ is constructed by the second entity by means of a pseudo-random function G (i), which we will call “first construction function”, which is parameterized by a first master value S kept secret by the second entity; in the same way, each block T ⁇ is constructed by the second entity by means of a pseudo-random function G (i), which we will call “second function of construction", which is parameterized by a second master value S kept secret by the second entity.
  • the master values S and S may conveniently be each constituted by a binary word of the same length n as the blocks T i and T i.
  • the implementation of the construction function G (/) comprises / successive stages, the step n p, where 1 ⁇ p ⁇ /, including the selection as a result of the step, as a function of the value of the p-th bit of the index i, or the result of a first pseudo-random permutation (g ') of n bits, or the result of a second pseudo-random permutation ( g ") of n bits, said permutations being applied:
  • the implementation of the construction function G (/) comprises / successive steps, the step n p, where 1 ⁇ p ⁇ /, including the selection as a result of the step , depending on the value of the p-th bit of the index i, either of the first n bits or of the last n bits of a binary train of length (2n) produced by a pseudo-random generator (g) taking as seed: the result of the previous step during steps n ° 2 to n °, and
  • G Q is a predetermined n-bit / (where appropriate, k-dependent) encryption function using a secret key Q.
  • Figure 2 illustrates the general operation of the method according to the invention from the point of view of the first entity, according to one embodiment.
  • the first entity To access this digital data, the first entity must generate one or more keys K 1 . , which are called “derived values" in the context of the invention.
  • the steps of this embodiment are as follows.
  • step P1 the computing platform of the first entity receives, on a broadcast channel, an input parameter r and certain encrypted information ⁇ (contained for example in the header of an encrypted message).
  • step P2 the platform uses a predetermined pseudo-random generator to determine, as a function of the input parameter r, a w-tuplet of indices ( ⁇ i 2 , ..., i w ), where W is a predetermined integer at least equal to 1.
  • W is a predetermined integer at least equal to 1.
  • this pseudo-random generator uses a predetermined set of bits of the input parameter r either as seed or as initialization vector (it is recalled that an "initialization vector" is a parameter allowing to use the same seed several times to generate several distinct sequences of pseudo-random numbers); said W indices may then correspond to W successive bit sequences of the same length equal to / bits, where / is a predetermined integer at least equal to 1, at the output of the pseudo-random generator.
  • the index w-tuple ( ⁇ i 2 , ..., i w ) is explicitly inserted in the input parameter r (for example during the preparation of the encrypted information ⁇ ).
  • the decoder selection means such as a pseudo-random generator, in accordance with an index selection function.
  • selection means should be included within the second entity; in addition, the input parameter r diffused will generally be much longer than the length of the input parameter r in the previous variant.
  • step P3 the table T specific to the first entity is consulted. Following this consultation, carried out with reference to the index w-tuplet (Z 1 , i 2 , ..., i w ), we obtain a set of W blocks (T " I 1 , T i 2 , .. ., T ⁇ w ) selected in the table
  • step P4 a predetermined pseudo-random function is applied
  • This derivation function F depends on the personal identifier /, on the blocks (T " J 1 5 Z " i 2 , ..., T i w ) and, if necessary, on additional data contained in the input parameter. r.
  • the value taken by this function is none other than the derived value K ,. sought.
  • the encrypted information ⁇ broadcast is in the form of the following W pairs:
  • a 1 , A 2 , ..., A ⁇ are decrypted information necessary to obtain the derived value K r
  • TQ and TQ denote predetermined encryption functions whose decryption requires the use of a secret key Q.
  • the first entity finds that the eighth bit of / is equal to 0, then it is instructed to decrypt the first element A 1 of this first pair of encrypted information using the block TI 1 (which happens to be equal to T ⁇ ⁇ ) of its table T.
  • the first entity finds that Z 1 -th bit of / is equal to 1, then it is instructed to decrypt the second element A 1 of the first pair of information encrypted using the TI block 1 (which find exactly equal to T i v ) of his table T.
  • the first entity thus obtains information A 1 in the clear.
  • the first entity finds that the i 2 -th bit of / is equal to 1, then it is instructed to decrypt the second element ⁇ 2 of this second pair of encrypted information using the block T ⁇ 2 (which happens to be equal to T t 2 ) of its table T.
  • the first entity thus obtains information A 2 in the clear.
  • 2w encrypted information (grouped in pairs) is broadcast, and each first entity uses a number W of this encrypted information (one element of each pair).
  • a 2 h (a II T (0) h ) ⁇ ⁇ ( ⁇ II r (1) , - 2 ),
  • the first entity finds that Z 1 -th bit of / is equal to 0, then it is instructed to calculate h (a ⁇ T i v) using the block T i v (which is precisely equal to TJ 1 ) of his table T.
  • the first entity finds that Z 1 -th bit of / is equal to 1, then it is instructed to calculate h ((X II T ⁇ ⁇ ) using the TI block 1 (which is precisely equal to T ⁇ ) of its table T, and to add bit by bit this quantity h (a ⁇ TJ 1 ) to said first piece of encrypted information.
  • binary sum Jl (a WT ⁇ l ⁇ i ) ⁇ Jl (a WT ⁇ l ⁇ i ) 0, the result of this addition is h ((X ⁇ T i ⁇ ).
  • the first entity can neither find the value of T ⁇ , or even, due to the presence of the hazard Oi, the value of chopped Jl (T ⁇ ⁇ ).
  • the magnitude Jl (cc WTJ 1 ) constitutes a first information in clear A 1 .
  • the first entity finds that the 2 i -th bit of / is equal to 0, then it is instructed to calculate h (cc ⁇ T t 2) using the block T t 2 (which is precisely equal to T ⁇ 2 ) of its table T.
  • the first entity finds that the 2 i -th bit of / is equal to 1, then it is instructed to calculate h (cc ⁇ T i 2) using the block
  • the invention makes it possible (as stated above) to arrange the encrypted information ⁇ and the derivation function form F so that all the first entities result in the same derived value K r (for a given encrypted message), while assigning each first entity a personal identifier / and a table T that are unique to it.
  • a certain digital content M and a w-tuple of indices containing said value / • are then chosen, and the pairs of encrypted information conforming to said first variant are submitted to the decoder, except that the value of the second element of the pair has been deliberately altered
  • the decoder will obtain a false value for the decrypted information A •, and will finally provide, at the output, a digital content different from the content M.
  • the invention also relates to a downloadable computer program from a communication network comprising instructions for performing the steps of any of the methods according to the invention when it is executed on a computer .
  • This program can use any programming language, and be in the form of source code, object code, or intermediate code between code source and object code, such as partially compiled code, or any other desirable form.
  • the information carrier may be any entity or device capable of storing the program.
  • the medium may comprise storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium, for example a floppy disk ("floppy dise"). ) or a hard disk.
  • the information medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means.
  • the program according to the invention can be downloaded in particular on an Internet type network.
  • the information carrier may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of any of the methods according to the invention.

Landscapes

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

Abstract

L'invention concerne un procédé d'obtention par une première entité U d'une valeur dérivée Kr à partir d'un paramètre d'entrée r et d'informations chiffrées ?. Ce procédé comprend les étapes suivantes : la sélection d'un W- uplet d'indices (i1,i2,....,iw), ou W = 1, dans un ensemble prédéterminé d'indices; et l'obtention de ladite valeur dérivée Kr en appliquant une fonction pseudo-aléatoire prédéterminée FU, dite "fonction de dérivation", auxdites informations chiffrées ?, ladite fonction de dérivation FU dépendant au moins d'un identifiant personnel / de ladite première entité, et de blocs ( TUi1, TUi2,..., TU iw) lus dans une table prédéterminée TU de blocs TUi associée à la première entité. Chacun desdits blocs TUi a été respectivement engendré par une seconde entité en combinant, en fonction dudit identifiant personnel I U, m blocs respectifs T(0)i, T(1)i,...,,..., T(m-1)i, où m = 2, chacun desdits blocs T (k)i (où k = 0,1,..., m - 1 ) étant construit au moyen d'une fonction pseudo-aléatoire G (k)(i), dite "fonction de construction", paramétrée par une valeur maîtresse S(k), lesdites valeurs maîtresses S(k) n'étant pas divulguées à ladite première entité. Application au chiffrement de contenus numériques payants.

Description

Système traçable de chiffrement/déchiffrement de données numériques diffusées
L'invention concerne un procédé et un système de chiffrement/déchiffrement de données numériques diffusées. Ce procédé et ce système sont traçables, et résistants aux attaques en boîte blanche.
Dans le contexte du déploiement des réseaux de communications et des services audiovisuels, la distribution de contenus numériques devient problématique sur le plan des droits de propriété intellectuelle. En effet, la recopie de données numériques en très grand nombre, ainsi que leur redistribution à grande échelle, est devenue à la fois facile et peu coûteuse pour les particuliers. Par exemple, les industries dont les bénéfices reposent sur la fourniture de données numériques (comme la musique, la vidéo, les livres électroniques, les logiciels de jeux, et ainsi de suite) souhaitent protéger ces données numériques contre une utilisation sortant du cadre défini par un contrat commercial entre fournisseur et consommateur de contenu numérique ; c'est l'objet de la gestion des droits numériques (en anglais, "Digital Rights Management" ou DRM). Pour une présentation générale des problèmes liés à la protection des logiciels, on pourra consulter l'article de P.C. van Oorschot intitulé "Revisiting Software Protection" (Actes de la 6eme Conférence Internationale "Information Security", pages 1 à 13, Springer-Verlag, 2003).
Pour lutter contre la redistribution frauduleuse, par un ou plusieurs consommateurs de contenu légitimes, des identifiants secrets, ou des logiciels de décodage eux-mêmes, contenus dans leur équipement de décodage ("décodeur", ou "set-top box" en anglais) — cette redistribution permettant à des consommateurs illicites (appelés "pirates") d'accéder aux contenus en clair — on met en œuvre des procédés dits de "traçage des traîtres". Le concept, et certaines techniques, de traçage des traîtres ont été proposés par B. Chor, A. Fiat et M. Naor dans leur article intitulé "Tracing Traitors" (Advances in Cryptology - Crypto'94, Lecture Notes in Computer Science, vol. 839, pages 257 à 270, Springer-Verlag, 1994).
Les procédés de traçage des traîtres garantissent que, si une telle fraude se produit, l'identité de l'un au moins des consommateurs légitimes qui sont à l'origine de la fraude (dits "traîtres") peut être reconstituée par le fournisseur de contenus, ou plus généralement par une autorité, à partir des données redistribuées aux consommateurs illicites. Les systèmes de chiffrement/déchiffrement dans lesquels un procédé de traçage des traîtres peut être mis en œuvre sont dits "traçables".
Ces techniques sont habituellement de nature combinatoire, c'est-à-dire que chaque consommateur de contenu légitime se voit attribuer un identifiant secret personnel faisant partie d'un ensemble (généralement assez grand) d'identifiants secrets. Les données diffusées dans ce système comprennent des messages chiffrés. Chaque message chiffré comprend :
- un cryptogramme C1. (M ) formé à partir d'un contenu M chiffré à l'aide d'une clé de chiffrement de contenu dépendant d'un paramètre r dont on fait périodiquement varier la valeur afin de faire varier ladite clé de chiffrement, et
- un ou plusieurs en-tête(s) contenant certaines informations chiffrées en fonction desdits identifiants.
Les données diffusées dans ce système comprennent également, en clair, la valeur courante dudit paramètre r .
Lorsqu'un consommateur de contenu reçoit l'un de ces messages, il déchiffre à l'aide de son identifiant personnel et du paramètre r lesdites informations chiffrées. Il combine alors les informations ainsi déchiffrées pour obtenir la clé K1. de déchiffrement du contenu, puis il utilise cette clé K1. de déchiffrement du contenu pour déchiffrer ledit cryptogramme C (M) . La clé K1. de déchiffrement du contenu est habituellement appelée "mot de contrôle" dans les systèmes de consommation payante d'un contenu audiovisuel diffusé.
Dans un système de chiffrement/déchiffrement "traçable", si l'un des consommateurs de contenu légitimes communique son identifiant personnel à un consommateur illicite, il est possible de retrouver l'identité du traître à partir de l'identifiant personnel mis en œuvre par le consommateur illicite.
Toutefois, les procédés de traçage des traîtres de nature combinatoire présentent l'inconvénient qu'il est nécessaire de diffuser un volume considérable d'en-têtes. Plus précisément, le nombre d'en-têtes à diffuser est proportionnel au logarithme du nombre de consommateurs légitimes, ainsi qu'à d'autres paramètres tels que la taille maximale K des coalitions de traîtres contre lesquelles on cherche à se protéger (on entend ici, par "coalition", un groupe de K traîtres qui s'associent pour combiner leurs identifiants personnels de manière à essayer de créer un nouvel identifiant apte à être utilisé pour déchiffrer le contenu chiffré, sans pour autant que l'analyse de ce nouvel identifiant ne divulgue l'identité de l'un des membres de la coalition).
On connaît, d'après la demande européenne n° 1 634 405, un procédé de procédé de chiffrement/déchiffrement de données numériques diffusées ne nécessitant pas la diffusion d'un nombre important d'en-têtes. Selon ce procédé : - lors du chiffrement du contenu à diffuser, l'émetteur met en œuvre au moins une première fonction cryptographique secrète, et
- lors du déchiffrement du contenu, tous les décodeurs mettent en œuvre au moins une même seconde fonction cryptographique secrète inverse de ladite première fonction, chaque décodeur faisant appel à cet effet à une description mathématique de ladite seconde fonction enregistrée dans une mémoire.
Lors de la mise en œuvre de la seconde fonction, la description mathématique de cette seconde fonction à laquelle chaque décodeur fait appel est différente d'un décodeur à l'autre, de manière à ce que la description mathématique à laquelle il est fait appel identifie de façon unique chaque décodeur particulier parmi l'ensemble des décodeurs.
Dans le procédé ci-dessus, il est possible de retrouver un traître qui aurait communiqué la description mathématique de sa seconde fonction secrète à un consommateur illicite, à partir de l'analyse de la description mathématique de cette seconde fonction mise en œuvre par le consommateur illicite pour déchiffrer les données transmises. En effet, par construction de chaque description mathématique du système, celle-ci est représentative de l'identité du traître. De plus, dans le procédé ci-dessus, grâce au fait que l'identification d'un traître repose non plus sur la mise en œuvre d'identifiants personnels, mais sur la mise en œuvre de descriptions différentes d'une même fonction cryptographique, le nombre d'en-têtes nécessaires pour diffuser un message chiffré est inférieur au nombre d'en-têtes nécessaires pour diffuser le même message chiffré à l'aide d'un procédé combinatoire classique.
Le procédé décrit succinctement ci-dessus présente toutefois certains inconvénients.
Un premier inconvénient est que son efficacité dépend du nombre total de consommateurs et de la taille maximale K des coalitions de traîtres contre lesquelles on cherche à se protéger, dans la mesure où la complexité des calculs requis par le chiffrement et le déchiffrement du contenu doit être augmentée lorsque l'on augmente l'une ou l'autre de ces quantités (nombre de consommateurs, et K ). En effet, le procédé de chiffrement prévoit une succession d'étages dont le nombre dépend de ces deux quantités, chaque étage étant constitué par un algorithme de chiffrement asymétrique (d'ailleurs, en général, nettement plus lent qu'un algorithme de chiffrement symétrique).
Un second inconvénient est que le traçage de traîtres selon ce procédé requiert une analyse logicielle du décodeur pirate. Or, comme il est bien connu, l'ingénierie inverse en matière de logiciels est difficile et coûteuse. Il serait beaucoup plus commode, à la place, de pouvoir déterminer l'identifiant personnel du décodeur pirate simplement en observant la façon dont ce décodeur traite (c'est-à-dire, déchiffre, ou ne parvient pas à déchiffrer) certains messages chiffrés qui lui auraient été fournis à cet effet.
La présente invention concerne, en premier lieu, un procédé d'obtention par une première entité U d'une valeur dérivée K1. à partir d'un paramètre d'entrée r et d'informations chiffrées Λ . Ce procédé comprend les étapes suivantes :
- la sélection d'un w-uplet d'indices (^i2, ..., iw), où w ≥ l , dans un ensemble prédéterminé d'indices, et
- l'obtention de ladite valeur dérivée K1. en appliquant une fonction pseudoaléatoire prédéterminée F , dite "fonction de dérivation", auxdites informations chiffrées Λ , ladite fonction de dérivation F dépendant au moins d'un identifiant personnel / de ladite première entité, et de blocs (7" J1 5 Z" i2 ,..., T iw ) lus dans une table prédéterminée T de blocs T i associée à la première entité,
où chacun desdits blocs T i a été respectivement engendré par une seconde entité en combinant, en fonction dudit identifiant personnel / , m blocs respectifs T{0\ , Ta\ , ..., T(m~l)i , où m > 2 , chacun desdits blocs T{k\ (où k = 0,1,..., m — 1 ) étant construit au moyen d'une fonction pseudo-aléatoire
G (i) , dite "fonction de construction", paramétrée par une valeur maîtresse
S , lesdites valeurs maîtresses S n'étant pas divulguées à ladite première entité. Cette "première entité" peut par exemple être un consommateur de contenus numériques qui lui sont fournis par une "seconde entité", elle-même constituée par un fournisseur de contenus numériques. On notera que, dans le cadre de la présente invention, l'expression "seconde entité" pourra désigner indifféremment le concepteur d'un système de chiffrement/déchiffrement selon l'invention, ou un diffuseur de messages chiffrés, ou encore une autorité de contrôle apte à tracer les traîtres parmi les "premières entités" attachées (par exemple abonnées) au système.
Comme on le verra ci-dessous sur la base d'exemples de réalisation détaillés, il est possible d'agencer lesdites informations chiffrées Λ et la forme de la fonction de dérivation F de manière à ce que toutes les premières entités aboutissent à la même valeur dérivée Kr (pour un message chiffré donné).
Une caractéristique de l'invention est qu'aucune des m valeurs maîtresses S n'est mémorisée dans le logiciel fourni à la première entité ; de plus, si la première entité peut évidemment obtenir les valeurs dérivées K1. auxquelles elle a droit, elle ne peut en déduire les valeurs maîtresses S dont dépend sa table T . En effet, en premier lieu, la première entité ne peut déduire de la connaissance de sa table T et de son identifiant personnel / qu'un strict sous-ensemble des blocs T \ ; et en second lieu, même si une coalition de traîtres parvenait à reconstituer l'ensemble des blocs T \ pour une certaine valeur de k , cette coalition ne pourrait remonter à la valeur maîtresse S correspondante en raison du fait que la fonction de construction G (i) est choisie parmi les fonctions pseudo-aléatoires.
Le problème de sécurité visé ici est celui de la protection d'un logiciel de déchiffrement, non seulement contre des pirates extérieurs à la plateforme, mais également et surtout contre l'utilisateur légitime de la plateforme informatique hébergeant ce logiciel. En effet, pour un utilisateur indélicat, une autre façon de se comporter en "traître" qu'en redistribuant son logiciel de décodage consiste à analyser les étapes principales mises en œuvre dans ce logiciel, pour pouvoir ensuite fabriquer un logiciel contrefaisant qui soit : - essentiellement équivalent au logiciel copié quant à ses capacités de déchiffrement, mais
- suffisamment différent du logiciel copié pour que cette contrefaçon soit difficile à détecter par le fournisseur de contenus (ou une autorité habilitée).
En outre, le logiciel contrefaisant sera plus facile à distribuer par le traître que le logiciel copié si le logiciel contrefaisant est de taille plus réduite que le logiciel copié.
Ce contexte de piratage est appelé "contexte d'attaque en boîte-blanche", d'après l'article de S. Chow, P. Eisen, H. Johnson et P.C. van Oorschot intitulé "White-Box Cryptography and an AES Implementation" (Actes du "International Workshop on Selected Areas in Cryptography", Springer, pages 250 à 270, 2003), et à l'article des mêmes auteurs intitulé "A White-Box DES Implementation for DRM Applications" (Actes du "Second ACM Workshop on Digital Rights Management" , Springer, pages 1 à 15, 2003). Cette dénomination souligne la différence de ce contexte avec celui, bien connu, de la "boîte-noire", dans lequel un pirate cherchant à attaquer un logiciel ne peut observer que des couples (données d'entrée )/(données de sortie) associés à ce logiciel, sans avoir accès aux étapes de traitement intermédiaires mises en œuvre par le logiciel ; dans le contexte d'une attaque en boîte -blanche au contraire, l'attaquant peut observer pas à pas l'exécution dynamique d'un logiciel, et même modifier des instructions de ce logiciel pour pouvoir étudier les conséquences de ces modifications sur le traitement effectué par le logiciel.
Grâce à la présente invention, ni un traître ni une coalition de traîtres ne peuvent fabriquer un logiciel contrefaisant qui ne ferait pas appel à une table telle que T (et serait donc d'apparence différente des logiciels autorisés), mais qui serait apte néanmoins à calculer les valeurs dérivées K1. au moyen des fonctions de construction G (/) •
Un deuxième avantage de l'invention est qu'elle requiert une complexité de calcul qui est indépendante aussi bien du nombre total de consommateurs que de la taille maximale K des coalitions de traîtres contre lesquelles on cherche à se protéger. En outre, elle permet avantageusement d'utiliser n'importe quel algorithme classique de chiffrement symétrique fiable et rapide, tel que l'AES
(initiales des mots anglais "Advanced Encryption Standard" signifiant "Norme de Chiffrement Avancé").
Un troisième avantage de l'invention est qu'elle permet le traçage des traîtres en boîte noire, c'est-à-dire que l'on peut (comme expliqué en détail ci- dessous) déterminer l'identifiant personnel / d'un décodeur soupçonné de contrefaçon simplement en observant la façon dont ce décodeur traite certains messages chiffrés qui lui ont été fournis à cet effet.
Selon des caractéristiques particulières, les identifiants personnels / sont choisis parmi les mots d'un code "anti-collusions" du type décrit dans l'article de D. Boneh et J. Shaw intitulé " Collusion-Secure Fingerprinting for Digital Data" (IEEE Trans. Inf. Theory, vol. 44, n° 5, Sep. 1998). On pourra alors commodément choisir la longueur de ce code en fonction de la taille K maximale des éventuelles coalitions de traîtres dont on cherche à se protéger. En effet, pour un tel code, on sait, pour toute taille K de coalition donnée, calculer la longueur minimale du code requise pour qu'il soit impossible de trouver, à partir des identifiants personnels des membres de la coalition, un autre identifiant personnel appartenant au même code.
Selon des caractéristiques particulières, ladite sélection d'un w-uplet d'indices (^i2, ...,iw ) est effectuée par la seconde entité, et le w-uplet d'indices ( Z1, i2,...,iw ) résultant de cette sélection est inséré dans ledit paramètre d'entrée r . En variante, ladite sélection d'un w-uplet d'indices (^i2,..., iw ) est effectuée par la première entité à partir d'une valeur contenue dans un champ prédéterminé dudit paramètre d'entrée r , au moyen d'une fonction de sélection d'indices prédéterminée E(r) . La première de ces deux variantes a l'avantage de réduire la complexité du déchiffrement des messages chiffrés par la première entité (consommateur de contenu) ; la seconde de ces deux variantes a l'avantage de réduire la longueur du paramètre r et donc des données numériques diffusées.
Corrélativement, l'invention concerne un dispositif d'obtention par une première entité U d'une valeur dérivée Kr à partir d'un paramètre d'entrée r et d'informations chiffrées Λ . Ce dispositif comprend :
- des moyens pour sélectionner un w-uplet d'indices ( Z15Z2'- -O '> ou W ≥ 1 , dans un ensemble prédéterminé d'indices, et
- des moyens pour obtenir ladite valeur dérivée Kr en appliquant une fonction pseudo-aléatoire prédéterminée F , dite "fonction de dérivation", auxdites informations chiffrées Λ , ladite fonction de dérivation F dépendant au moins d'un identifiant personnel / de ladite première entité, et de blocs (7" J1 5 Z" i2 ,..., T ιw ) lus dans une table prédéterminée T de blocs T i associée à la première entité,
où chacun desdits blocs T i a été respectivement engendré par une seconde entité en combinant, en fonction dudit identifiant personnel / , m blocs respectifs T i , T i , ..., T t , où m ≥ 2 , chacun desdits blocs T \ (où k = 0,1,..., m — 1 ) étant construit au moyen d'une fonction pseudo-aléatoire
G (i) , dite "fonction de construction", paramétrée par une valeur maîtresse o Cl (k ) , lesdites valeurs maîtresses <V Cl (k ) n'étant pas divulguées à ladite première entité.
Les avantages offerts par ce dispositif sont essentiellement les mêmes que ceux offerts par le procédé corrélatif succinctement exposé ci-dessus. Ce dispositif d'obtention d'une valeur dérivée pourra prendre la forme d'un circuit électronique, notamment au sein d'un décodeur.
Ce dispositif d'obtention d'une valeur dérivée pourra également prendre la forme d'une plateforme logicielle exécutée par un système informatique. Ce système informatique, qui comporte de manière classique une unité centrale de traitement commandant par des signaux une mémoire, ainsi qu'une unité d'entrée et une unité de sortie, peut être utilisé pour exécuter un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé d'obtention d'une valeur dérivée selon l'invention.
L'invention vise donc également un programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur. Ce programme d'ordinateur est remarquable en ce qu'il comprend des instructions pour l'exécution des étapes de l'un quelconque des procédés d'obtention d'une valeur dérivée succinctement exposés ci-dessus, lorsqu'il est exécuté sur un ordinateur. Les avantages offerts par ce programme d'ordinateur sont essentiellement les mêmes que ceux offerts par lesdits procédés.
Comme expliqué ci-dessus, la présente invention trouve notamment son application dans le cadre de la distribution de contenus numériques payants.
C'est pourquoi l'invention concerne également un procédé de déchiffrement. Ce procédé est remarquable en ce qu'il utilise comme clé de déchiffrement une valeur dérivée Kr obtenue au moyen du procédé d'obtention d'une valeur dérivée selon l'invention, pour déchiffrer un cryptogramme Cr(M) reçu conjointement audit paramètre d'entrée r , où M est un contenu en clair et Cr un algorithme de chiffrement prédéterminé utilisant une clé de chiffrement associée à la clé de déchiffrement K1..
L'invention vise aussi un programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, ledit programme étant remarquable en ce qu'il comprend des instructions pour l'exécution des étapes d'un procédé de déchiffrement tel que décrit succinctement ci-dessus lorsqu'il est exécuté sur un ordinateur.
L'invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que ceux décrits succinctement ci-dessus.
D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée de modes de réalisation particuliers, donnés ci-dessous à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels :
- la figure 1 est un schéma synoptique illustrant un mode de réalisation d'une étape pour la construction d'une table T par la seconde entité, et - la figure 2 est un schéma synoptique illustrant le fonctionnement général du procédé selon l'invention du point de vue de la première entité, selon un mode de réalisation.
On va décrire à présent des modes de réalisation pour la construction, par une seconde entité, d'une table T destinée à une première entité U . Conformément à l'invention, on constitue un ensemble d'indices permettant d'indexer les blocs de la table T . Chacun de ces indices pourra par exemple commodément être constitué par un mot binaire de longueur / ; la table
T comprend alors 2 blocs T i , où i = l,...,2 . On peut commodément donner à tous ces blocs une même longueur égale à n bits, où n est un entier prédéterminé au moins égal à 1.
Par ailleurs, conformément à l'invention, on attribue à la première entité U un identifiant personnel / , et chacun desdits blocs T i est engendré par la seconde entité, en fonction de cet identifiant personnel / , en combinant au moins d Jeux i b,locs T 1-(O) i , τ 1>(l) i , ..., τ 1τ(m~l) l
Dans le cadre du présent mode de réalisation, on prendra m = 2 , c'est-à- dire qu'on se limitera à la combinaison d'exactement deux blocs, soit T \ et T i pour i = 1,...,2 . On peut en outre commodément donner à chacun de ces blocs une longueur n identique à celle des blocs T i .
On peut d'ailleurs considérer que l'ensemble des blocs T t constitue une première table T , et que l'ensemble des blocs T i constitue une deuxième table T .
L'identifiant personnel / pourra par exemple commodément être constitué par un mot binaire de longueur 2 . La seconde entité peut alors par exemple constituer la table T en prenant, pour i = 1,...,2 , le bloc T i égal à
T i si le / -ième bit de / est égal à 0, et à T i si le / -ième bit de / est égal à 1 ; autrement dit, dans ce mode de réalisation, la "combinaison" entre T i et T i se réduit trivialement, pour chaque valeur de / , à la sélection soit de l'un, soit de l'autre de ces deux blocs. Chaque bloc T \ est construit par la seconde entité au moyen d'une fonction pseudo-aléatoire G (i) , que nous appelerons "première fonction de construction", qui est paramétrée par une première valeur maîtresse S tenue secrète par la seconde entité ; de même, chaque bloc T \ est construit par la seconde entité au moyen d'une fonction pseudo-aléatoire G (i) , que nous appelerons "deuxième fonction de construction", qui est paramétrée par une deuxième valeur maîtresse S tenue secrète par la seconde entité. Les valeurs maîtresses S et S pourront commodément être chacune constituée par un mot binaire de même longueur n que les blocs T i et T \ . Selon une première variante, représentée sur la figure 1, la mise en œuvre de la fonction de construction G (/) comprend / étapes successives, l'étape n° p , où 1 ≤ p ≤ / , comprenant la sélection comme résultat de l'étape, en fonction de la valeur du p -ième bit de l'indice i , soit du résultat d'une première permutation pseudo-aléatoire ( g' ) de n bits, soit du résultat d'une seconde permutation pseudo-aléatoire ( g" ) de n bits, lesdites permutations étant appliquées :
- au résultat de l'étape précédente lors des étapes n° 2 à n° / , et
- à la valeur maîtresse S lors de l'étape n° 1.
Selon une deuxième variante (non représentée), la mise en œuvre de la fonction de construction G (/) comprend / étapes successives, l'étape n° p , où 1 ≤ p ≤ / , comprenant la sélection comme résultat de l'étape, en fonction de la valeur du p -ième bit de l'indice i , soit des n premiers bits, soit des n derniers bits d'un train binaire de longueur ( 2n ) produit par un générateur pseudoaléatoire ( g ) prenant pour graine : - le résultat de l'étape précédente lors des étapes n° 2 à n° / , et
- ladite valeur maîtresse S lors de l'étape n° 1.
Selon une troisième variante (non représentée),
Figure imgf000016_0001
où le symbole "II" représente la concaténation et H est une fonction de hachage prédéterminée (le cas échéant, dépendant de k ).
Selon une quatrième variante (non représentée), (* )
Figure imgf000016_0002
où GQ est une fonction de chiffrement de / bits vers n bits prédéterminée (le cas échéant, dépendant de k ) utilisant une clé secrète Q .
D'autres variantes pour les fonctions de construction G (/) sont naturellement possibles. L'homme du métier veillera simplement à ce que les fonctions de construction choisies soient pseudo-aléatoires, pour les raisons indiquées ci-dessus. La figure 2 illustre le fonctionnement général du procédé selon l'invention du point de vue de la première entité, selon un mode de réalisation.
Pour pouvoir accéder à ces données numériques, la première entité doit engendrer une ou plusieurs clés K1. , qui sont appelées "valeurs dérivées" dans le cadre de l'invention. Les étapes du présent mode de réalisation sont les suivantes.
A l'étape Pl, la plateforme informatique de la première entité reçoit, sur un canal de diffusion, un paramètre d'entrée r et certaines informations chiffrées Λ (contenues par exemple dans l'en-tête d'un message chiffré). A l'étape P2, la plateforme utilise un générateur pseudo-aléatoire prédéterminé pour déterminer, en fonction du paramètre d'entrée r , un w-uplet d'indices (^i2,..., iw ), où W est un entier prédéterminé au moins égal à 1. La sélection de ce w-uplet dans l'ensemble d'indices peut donc être vue comme la sortie d'un dispositif mettant en œuvre une certaine fonction E(r) . En pratique, on pourra avantageusement utiliser pour ce faire un générateur pseudo-aléatoire prédéterminé ; dans ce cas, on pourra en outre prévoir que ce générateur pseudoaléatoire utilise un ensemble de bits prédéterminé du paramètre d'entrée r soit comme graine, soit comme vecteur d'initialisation (on rappelle qu'un "vecteur d'initialisation" est un paramètre permettant d'utiliser plusieurs fois la même graine pour engendrer plusieurs suites de nombres pseudo-aléatoires distinctes) ; lesdits W indices pourront alors correspondre à W séquences binaires successives de même longueur égale à / bits, où / est un entier prédéterminé au moins égal à 1, en sortie du générateur pseudo-aléatoire.
En variante, on peut prévoir que le w-uplet d'indices (^i2,..., iw ) est explicitement inséré dans le paramètre d'entrée r (par exemple lors de la préparation des informations chiffrées Λ ). Si l'on met en œuvre cette variante, on n'aura avantageusement pas à inclure dans le décodeur de moyens de sélection, tels qu'un générateur pseudo-aléatoire, conformes à une fonction de sélection d'indices. En revanche, on devra inclure de tels moyens de sélection au sein de la seconde entité ; en outre, le paramètre d'entrée r diffusé sera généralement de longueur nettement supérieure à la longueur du paramètre d'entrée r dans la variante précédente.
A l'étape P3, on consulte la table T propre à la première entité. Suite à cette consultation, effectuée en se référant au w-uplet d'indices (Z1, i2,...,iw ), on obtient un ensemble de W blocs (T" I1 , T ι2 ,..., T ιw ) sélectionnés dans la table
J,U A l'étape P4, on applique une fonction pseudo-aléatoire prédéterminée
F ,u , dite "fonction de dérivation", aux informations chiffrées Λ . Cette fonction de dérivation F dépend de l'identifiant personnel / , des blocs (T" J1 5 Z" i2 ,..., T iw ) et, le cas échéant, de données supplémentaires contenues dans le paramètre d'entrée r . La valeur prise par cette fonction n'est autre que la valeur dérivée K,. cherchée.
Deux variantes de réalisation pour la fonction de dérivation F sont données ci-après à titre d'exemples.
Selon une première variante, les informations chiffrées Λ diffusées se présentent sous la forme des W paires suivantes :
Figure imgf000018_0001
avec
Figure imgf000018_0002
Figure imgf000018_0003
où A1 , A2 , ..., A^ sont des informations déchiffrées nécessaires à l'obtention de la valeur dérivée Kr , et où T Q et T Q désignent des fonctions de chiffrement prédéterminées dont le déchiffrement requiert l'utilisation d'une clé secrète Q . Après réception de ces informations chiffrées Λ , la première entité examine successivement chaque paire ci-dessus en se référant à son identifiant personnel / . Reprenons par exemple le mode de réalisation décrit ci-dessus, dans lequel la table T est telle que, pour i = 1,...,2 , le bloc T i est égal à T i si le z' -ième bit de / est égal à 0, et à T \ si le z' -ième bit de / est égal à 1.
Considérons la première paire d'informations chiffrées, à savoir
Λï» =
Figure imgf000019_0002
(A1) avec Q =
Figure imgf000019_0001
.
Si la première entité constate que le ^-ième bit de / est égal à 0, alors elle a pour instruction de déchiffrer le premier élément A1 de cette première paire d'informations chiffrées en utilisant le bloc T I1 (qui se trouve justement être égal à T \γ ) de sa table T .
Si en revanche la première entité constate que le Z1 -ième bit de / est égal à 1, alors elle a pour instruction de déchiffrer le second élément A1 de cette première paire d'informations chiffrées en utilisant le bloc T I1 (qui se trouve justement être égal à T iv ) de sa table T .
La première entité obtient ainsi l'information A1 en clair.
Considérons ensuite la deuxième paire d'informations chiffrées, à savoir
Λ( 2 O) = r%(A2) avec Q = T{0\2 , et Λ( 2 υ = r%(A2) avec Q = TWi2 . Si la première entité constate que le i2 -ième bit de / est égal à 0, alors elle a pour instruction de déchiffrer le premier élément Λ2 de cette deuxième paire d'informations chiffrées en utilisant le bloc T ι2 (qui se trouve justement être égal à T t2 ) de sa table T .
Si en revanche la première entité constate que le i2 -ième bit de / est égal à 1, alors elle a pour instruction de déchiffrer le second élément Λ2 de cette deuxième paire d'informations chiffrées en utilisant le bloc T ι2 (qui se trouve justement être égal à T t2 ) de sa table T .
La première entité obtient ainsi l'information A2 en clair.
Et ainsi de suite jusqu'à obtenir toutes les informations déchiffrées A1 ,
A2 , ..., Aw . Il ne reste plus à la première entité U qu'à combiner ces informations déchiffrées pour obtenir la valeur dérivée de manière prédéterminée, par exemple au moyen d'une addition bit à bit :
Kr = Aι ® A2 ® ... ® Aw ,
où le symbole Θ représente l'addition bit à bit (opération "ou exclusif").
Ainsi, dans cette première variante, on diffuse 2w informations chiffrées (groupées par paires), et chaque première entité utilise un nombre W de ces informations chiffrées (un élément de chaque paire).
On va maintenant présenter une deuxième variante, dans laquelle on ne diffuse, avantageusement, que W informations chiffrées (qui sont toutes utilisées par chaque première entité).
Dans cette deuxième variante, les informations chiffrées Λ diffusées ont la forme suivante : Aι = h{a \\ T (K°KJ)) h. \) i®-Ei h U f{a sv i\l\ TT1Ww k. ) ,
A2 = h(a II T{0) h ) Θ Λ(α II r(1),-2 ) ,
Figure imgf000021_0001
où le symbole "II" représente la concaténation, le symbole Θ représente l'addition bit à bit, h est une fonction de hachage prédéterminée, et a est un aléa dont la valeur courante est (quand on met en œuvre la présente variante) transmise en clair au sein du paramètre d'entrée r .
Reprenons à nouveau, à titre d'exemple, le mode de réalisation décrit ci- dessus, dans lequel la table T est telle que, pour i = 1,...,2 , le bloc T i est égal à T i si le i -ième bit de / est égal à 0, et à T \ si le i -ième bit de / est égal à 1.
Considérons la première information chiffrée, à savoir
Figure imgf000021_0002
T-L ^ l-\ Λ ) •
Si la première entité constate que le Z1 -ième bit de / est égal à 0, alors elle a pour instruction de calculer h(a \\ T iv ) en utilisant le bloc T iv (qui se trouve justement être égal à T J1 ) de sa table T .
Si en revanche la première entité constate que le Z1 -ième bit de / est égal à 1, alors elle a pour instruction de calculer h((X II T \γ ) en utilisant le bloc T I1 (qui se trouve justement être égal à T \ ) de sa table T , et d'additionner bit à bit cette quantité h(a \\ T J1 ) à ladite première information chiffrée. La somme binaire Jl(a W T{l\i ) Θ Jl(a W T{l\i ) valant O, le résultat de cette addition est h((X \\ T iγ ) . On notera que, dans ce second cas (Z1 -ième bit de / égal à 1), la première entité ne peut ni trouver la valeur de T \ , ni même, à cause de la présence de l'aléa Oi , la valeur du haché Jl(T \γ ) .
Ainsi, dans cette deuxième variante, la grandeur Jl(cc W T J1 ) constitue une première information en clair A1.
Considérons ensuite la deuxième information chiffrée, à savoir
Jι(a W T{0)i2 ) ® h(a W TWi2 ) .
Si la première entité constate que le i2 -ième bit de / est égal à 0, alors elle a pour instruction de calculer h(cc \\ T t2 ) en utilisant le bloc T t2 (qui se trouve justement être égal à T ι2 ) de sa table T .
Si en revanche la première entité constate que le i2 -ième bit de / est égal à 1, alors elle a pour instruction de calculer h(cc \\ T i2 ) en utilisant le bloc
T i2 (qui se trouve justement être égal à T \2 ) de sa table T , et d'additionner bit à bit cette quantité Jl(CC W T I2 ) à ladite deuxième information chiffrée. Le résultat de cette addition est Jl(cc W T \2 ) , qui constitue donc une deuxième information en clair A2 .
Et ainsi de suite jusqu'à obtenir une série d'informations déchiffrées A1 , A2 , ..., A^ . Il ne reste plus à la première entité U qu'à combiner ces informations déchiffrées pour obtenir la valeur dérivée de manière prédéterminée, par exemple au moyen d'une addition bit à bit : Kr = Aι Φ A2 Φ ... Φ Aw .
On voit ainsi, sur la base de ces deux variantes, que l'invention permet (comme annoncé plus haut) d'agencer les informations chiffrées Λ et la forme de fonction de dérivation F de manière à ce que toutes les premières entités aboutissent à la même valeur dérivée Kr (pour un message chiffré donné), tout en attribuant à chaque première entité un identifiant personnel / et une table T qui lui soient propres.
Pour terminer, on va montrer comment on peut avantageusement, grâce à l'invention, déterminer quel identifiant personnel / est utilisé par un décodeur particulier, selon un procédé en boîte noire.
L'exemple ci-dessous fera facilement comprendre la méthode à mettre en œuvre à cet effet.
Supposons que l'on ait, par exemple, choisi la première variante, décrite ci-dessus, pour la fonction de dérivation F , et supposons que l'on souhaite déterminer le r -ème bit, pour une certaine valeur de / • , de l'identifiant
personnel / de ce décodeur.
On choisit alors un certain contenu numérique M ainsi qu'un w-uplet d'indices contenant ladite valeur / • , et l'on soumet au décodeur les paires d'informations chiffrées conformes à ladite première variante, si ce n'est que l'on a volontairement altéré la valeur du deuxième élément de la paire
(Λ<;> = r%(Ay) avec Q = T™i} ; ^ = T%(AJ) avec
Q = τw i} ) . II est clair dans ces conditions que si le i -ième bit de / est égal à 0, cette fausse valeur dudit deuxième élément n'affecte en rien l'obtention par le décodeur de la valeur correcte de l'information déchiffrée A - (puisque seul le premier élément de la paire d'informations chiffrées est utilisé) ; le décodeur calculera ensuite la valeur correcte de la valeur dérivée Kr , puis sera en mesure de déchiffrer le cryptogramme C1. (M ) , et fournira finalement en sortie le contenu M correct.
Si en revanche le i -ième bit de / est égal à 1, le décodeur obtiendra une valeur fausse pour l'information déchiffrée A • , et fournira finalement, en sortie, un contenu numérique différent du contenu M .
On peut ainsi, évidemment, déterminer l'un après l'autre tous les bits de l'identifiant personnel / du décodeur examiné.
Si l'on constate alors que cet identifiant personnel / n'a pas été attribué à un consommateur légitime, on en déduit que le décodeur examiné est contrefait, et que par conséquent il y a eu "traîtrise". Si en outre on a pris soin de choisir les identifiants légitimes au sein d'un code anti-collusion de longueur suffisante (comme expliqué ci-dessus), on peut en déduire l'identifiant personnel, et donc l'identité légale, du traître, ou d'au moins l'un des traîtres en cas de coalition.
Comme indiqué ci-dessus, l'invention vise aussi un programme d'ordinateur téléchargeable depuis un réseau de communication comprenant des instructions pour l'exécution des étapes de l'un quelconque des procédés selon l'invention lorsqu'il est exécuté sur un ordinateur.
Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel qu'un code partiellement compilé, ou sous toute autre forme souhaitable.
Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette ("floppy dise" en anglais) ou un disque dur.
D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.
En variante, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution de l'un quelconque des procédés selon l'invention.

Claims

R E V E N D I C A T I O N S
1. Procédé d'obtention par une première entité U d'une valeur dérivée K1. à partir d'un paramètre d'entrée r et d'informations chiffrées Λ , comprenant les étapes suivantes :
- la sélection d'un w-uplet d'indices (I1J2,..., iw), où w ≥ l , dans un ensemble prédéterminé d'indices, et
- l'obtention de ladite valeur dérivée Kr en appliquant une fonction pseudoaléatoire prédéterminée F , dite "fonction de dérivation", auxdites informations chiffrées Λ , ladite fonction de dérivation F dépendant au moins d'un identifiant personnel / de ladite première entité, et de blocs
(T I1 , T i2 ,..., T ιw ) lus dans une table prédéterminée T de blocs T i associée à la première entité,
où chacun desdits blocs T i a été respectivement engendré par une seconde entité en combinant, en fonction dudit identifiant personnel / , m blocs respectifs T t , T t , ..., T i , où m ≥ 2 , chacun desdits blocs T i (où k = 0,1,..., m — 1 ) étant construit au moyen d'une fonction pseudo-aléatoire
G (i) , dite "fonction de construction", paramétrée par une valeur maîtresse
S , lesdites valeurs maîtresses S n'étant pas divulguées à ladite première entité.
2. Procédé d'obtention d'une valeur dérivée selon la revendication 1, caractérisé en ce que ladite sélection d'un w-uplet d'indices ( ^i2, ...,iw ) est effectuée par la seconde entité, et en ce que le w-uplet d'indices ( ^i2,..., iw ) résultant de cette sélection est inséré dans ledit paramètre d'entrée r .
3. Procédé d'obtention d'une valeur dérivée selon la revendication 1, caractérisé en ce que ladite sélection d'un w-uplet d'indices (Z15Z2,-.,^ ) est effectuée par la première entité à partir d'une valeur contenue dans un champ prédéterminé dudit paramètre d'entrée r , au moyen d'une fonction de sélection d'indices prédéterminée E(r) .
4. Procédé d'obtention d'une valeur dérivée selon la revendication 3, caractérisé en ce que ladite fonction de sélection d'indices E(r) est réalisée au moyen d'un générateur pseudo-aléatoire dont la sortie dépend dudit paramètre d'entrée r , et en ce que chacun desdits indices Z1, Z2,- --Jw est un mot binaire, de longueur fixe prédéterminée, extrait de la sortie dudit générateur pseudo-aléatoire.
5. Procédé d'obtention d'une valeur dérivée selon la revendication 4, caractérisé en ce que ledit générateur pseudo-aléatoire utilisé pour la détermination d'indices prend le paramètre d'entrée r pour graine.
6. Procédé d'obtention d'une valeur dérivée selon la revendication 4, caractérisé en ce que ledit générateur pseudo-aléatoire utilisé pour la détermination d'indices prend le paramètre d'entrée r pour vecteur d'initialisation.
7. Procédé d'obtention d'une valeur dérivée selon l'une quelconque des revendications 1 à 6, caractérisé en ce que la mise en œuvre de ladite fonction de construction G (/) comprend / étapes successives, l'étape n° p , où 1 ≤ p ≤ / , comprenant la sélection comme résultat de l'étape, en fonction de la valeur du p -ième bit de l'indice i , soit du résultat d'une première permutation pseudo-aléatoire ( g' ) de n bits, soit du résultat d'une seconde permutation pseudo-aléatoire ( g" ) de n bits, lesdites permutations étant appliquées :
- au résultat de l'étape précédente lors des étapes n° 2 à n° / , et
- à ladite valeur maîtresse S lors de l'étape n° 1.
8. Procédé d'obtention d'une valeur dérivée selon l'une quelconque des revendications 1 à 6, caractérisé en ce que la mise en œuvre de ladite fonction de construction G (/) comprend / étapes successives, l'étape n° p , où
1 ≤ p ≤ / , comprenant la sélection comme résultat de l'étape, en fonction de la valeur du p -ième bit de l'indice i , soit des n premiers bits, soit des n derniers bits d'un train binaire de longueur ( 2n ) produit par un générateur pseudoaléatoire ( g ) prenant pour graine :
- le résultat de l'étape précédente lors des étapes n° 2 à n° / , et
- ladite valeur maîtresse S lors de l'étape n° 1.
9. Procédé d'obtention d'une valeur dérivée selon l'une quelconque des revendications 1 à 6, caractérisé en ce que ladite fonction de construction est telle que
G{k\i) = H(S{k) \\i) ,
où le symbole "II" représente la concaténation et H est une fonction de hachage prédéterminée.
10. Procédé d'obtention d'une valeur dérivée selon l'une quelconque des revendications 1 à 6, caractérisé en ce que ladite fonction de construction
G{k\i) est telle que
σ. .Q(i)
Figure imgf000028_0001
Q=S(k)
où CTg est une fonction de chiffrement de / bits vers n bits prédéterminée utilisant une clé secrète Q .
11. Procédé d'obtention d'une valeur dérivée selon l'une quelconque des revendications 1 à 10, caractérisé en ce que m = 2 , et en ce que lesdites informations chiffrées Λ diffusées se présentent sous la forme des W paires suivantes :
(A >
Figure imgf000029_0001
= r(0) β (4) avec Q = ; Λ(/} = T^Q (A1) avec
Figure imgf000029_0002
( 2 O) = r% (A2) avec Q = T{0\2 ; Λ( 2 1} = r(1)g ( A2 ) avec
Figure imgf000029_0003
où A1 , A2 , ..., Aw sont des informations déchiffrées nécessaires à l'obtention de la valeur dérivée Kr , et où T Q et T Q désignent des fonctions de chiffrement prédéterminées dont le déchiffrement requiert l'utilisation d'une clé secrète Q .
12. Procédé d'obtention d'une valeur dérivée selon l'une quelconque des revendications 1 à 10, caractérisé en ce que m = 2 , et en ce que lesdites informations chiffrées Λ ont la forme suivante :
Figure imgf000029_0004
A2 = h(a II T{0)i2 ) ® h(a II T{1\2 ) ,
Figure imgf000029_0005
, où le symbole "II" représente la concaténation, le symbole " ® " représente l'addition bit à bit, h est une fonction de hachage prédéterminée, et a est un aléa dont la valeur courante est transmise en clair au sein du paramètre d'entrée r , et en ce que des informations déchiffrées A1 , A2 , ..., A^ nécessaires à l'obtention de la valeur dérivée K1. sont données par :
Aj
Figure imgf000030_0001
) , pour J = I,..., w .
13. Procédé d'obtention d'une valeur dérivée selon la revendication 11 ou la revendication 12, caractérisé en ce que la valeur dérivée K1. est obtenue à partir desdites informations déchiffrées A1 , A2 , ..., A^ au moyen d'une addition bit à bit :
K r = A Y1 Θ A9 Z Θ ... Θ A w, .
14. Procédé d'obtention d'une valeur dérivée selon l'une quelconque des revendications 1 à 13, caractérisé en ce que les identifiants personnels / sont choisis parmi les mots appartenant à un code anti-collusions.
15. Procédé de déchiffrement, caractérisé en ce qu'il utilise comme clé de déchiffrement une valeur dérivée K1. obtenue au moyen d'un procédé selon l'une quelconque des revendications 1 à 14, pour déchiffrer un cryptogramme Cr(M) reçu conjointement audit paramètre d'entrée r , où M est un contenu en clair et C1. un algorithme de chiffrement prédéterminé utilisant une clé de chiffrement associée à la clé de déchiffrement K1..
16. Dispositif d'obtention par une première entité U d'une valeur dérivée K1. à partir d'un paramètre d'entrée r et d'informations chiffrées Λ , comprenant : - des moyens pour sélectionner un w-uplet d'indices ( ^i2,..., iw ), où W ≥ 1 , dans un ensemble prédéterminé d'indices, et
- des moyens pour obtenir ladite valeur dérivée K1. en appliquant une fonction pseudo-aléatoire prédéterminée F , dite "fonction de dérivation", auxdites informations chiffrées Λ , ladite fonction de dérivation F dépendant au moins d'un identifiant personnel / de ladite première entité, et de blocs (7" J1 5 Z" i2 ,..., T iw ) lus dans une table prédéterminée T de blocs T i associée à la première entité,
où chacun desdits blocs T i a été respectivement engendré par une seconde entité en combinant, en fonction dudit identifiant personnel / , m blocs respectifs T i , T i , ..., T m ; , où m > 2 , chacun desdits blocs T i (où k = 0,1,..., m — 1 ) étant construit au moyen d'une fonction pseudo-aléatoire
G (i) , dite "fonction de construction", paramétrée par une valeur maîtresse
S ct(k ) , lesdites valeurs maîtresses S ct(k ) n'étant pas divulguées à ladite première entité.
17. Circuit électronique, caractérisé en ce qu'il comprend un dispositif d'obtention d'une valeur dérivée selon la revendication 16.
18. Décodeur, caractérisé en ce qu'il comprend un circuit électronique selon la revendication 17.
19. Programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions pour l'exécution des étapes du procédé d'obtention d'une valeur dérivée selon l'une quelconque des revendications 1 à 14, ou d'un procédé de déchiffrement selon la revendication 15, lorsqu'il est exécuté sur un ordinateur.
20. Support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur selon la revendication 19.
PCT/FR2008/051811 2007-10-10 2008-10-07 Systeme traçable de chiffrement/dechiffrement de donnees numeriques diffusees WO2009053605A2 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0758204A FR2922393A1 (fr) 2007-10-10 2007-10-10 Systeme tracable de chiffrement/dechiffrement de donnees numeriques diffusees
FR0758204 2007-10-10

Publications (2)

Publication Number Publication Date
WO2009053605A2 true WO2009053605A2 (fr) 2009-04-30
WO2009053605A3 WO2009053605A3 (fr) 2009-07-16

Family

ID=39523617

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2008/051811 WO2009053605A2 (fr) 2007-10-10 2008-10-07 Systeme traçable de chiffrement/dechiffrement de donnees numeriques diffusees

Country Status (2)

Country Link
FR (1) FR2922393A1 (fr)
WO (1) WO2009053605A2 (fr)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2970134B1 (fr) 2010-12-29 2013-01-11 Viaccess Sa Procede de transmission et de reception d'un contenu multimedia
US9485226B2 (en) 2014-04-28 2016-11-01 Nxp B.V. Method for including an implicit integrity or authenticity check into a white-box implementation
EP2940677A1 (fr) * 2014-04-28 2015-11-04 Nxp B.V. Procédé d'inclusion d'une vérification d'authenticité ou d'intégrité implicite dans une implémentation en boîte blanche
US10412054B2 (en) 2014-06-24 2019-09-10 Nxp B.V. Method for introducing dependence of white-box implementation on a set of strings

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2856539A1 (fr) * 2003-06-17 2004-12-24 France Telecom Procede et systeme tracables de chiffrement et/ou de dechiffrement d'informations, et supports d'enregistrement pour la mise en oeuvre du procede

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2856539A1 (fr) * 2003-06-17 2004-12-24 France Telecom Procede et systeme tracables de chiffrement et/ou de dechiffrement d'informations, et supports d'enregistrement pour la mise en oeuvre du procede

Also Published As

Publication number Publication date
FR2922393A1 (fr) 2009-04-17
WO2009053605A3 (fr) 2009-07-16

Similar Documents

Publication Publication Date Title
EP3078155B1 (fr) Procédé de mise a jour d&#39;une arborescence de fichiers mémorisée sur un serveur de stockage
EP1634405B1 (fr) Procede, systeme et supports d&#39;enregistrement de chiffrement et/ou de dechiffrement traçable
KR20100059961A (ko) 콘텐트의 암호화 프로세싱
EP2643943B1 (fr) Procédé et système d&#39;accès conditionnel à un contenu numérique, terminal et dispositif d&#39;abonné associés
FR2902547A1 (fr) Gestion d&#39;informations cryptographiques non tributaire d&#39;un dispositif
EP1712032B1 (fr) Systeme de chiffrement par blocs, utilisant des permutations pour masquer la fonction de chiffrement centrale de chaque phase de chiffrement
EP2457344B1 (fr) Procede de conversion d&#39;un premier chiffre en un deuxieme chiffre
WO2009053605A2 (fr) Systeme traçable de chiffrement/dechiffrement de donnees numeriques diffusees
EP1419640B1 (fr) Reseau numerique local, procedes d&#39;installation de nouveaux dispositifs et procedes de diffusion et de reception de donnees dans un tel reseau
EP2153575B1 (fr) Obtention de valeurs dérivées dépendant d&#39;une valeur maîtresse secrète
EP2294750B1 (fr) Procede et systeme tracables de diffusion de donnees numeriques
EP2652899B1 (fr) Procédé et système d&#39;accès conditionnel à un contenu numérique, terminal et dispositif d&#39;abonné associés
EP1723791B1 (fr) Methode de securisation d&#39;un evenement telediffuse
EP2274869B1 (fr) Protection en boîte-blanche d&#39;algorithmes cryptographiques comprenant le calcul d&#39;une forme quadratique
FR2947072A1 (fr) Systeme de gestion de droits numeriques a l&#39;aide d&#39;un processus de protection de contenu diversifie
FR3072848B1 (fr) Procede de reception et de dechiffrement, par un processeur electronique de securite, d&#39;un cryptogramme d&#39;un mot de controle
EP2204007A2 (fr) Generateur et procede de generation de fonction pseudo-aleatoire a cle secrete
FR3053497A1 (fr) Procede de renforcement de la securite d&#39;un systeme de television a peage a base de retro-communication periodique obligatoire
EP1911190A2 (fr) Procede et systeme de chiffrement a haut debit
FR3029667A1 (fr) Procede d&#39;encapsulation d&#39;une cle de session
FR2885752A1 (fr) Systeme et procede de transmission securisee, module de chiffrement et processus de synthese de cles pour ce systeme
EP2066069A1 (fr) Méthode d&#39;enregistrement et de restitution d&#39;un contenu chiffré par une unité de traitement
FR2878390A1 (fr) Systeme et procede cryptographiques pour chiffrer des donnees d&#39;entree

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: 08841169

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: 08841169

Country of ref document: EP

Kind code of ref document: A2