FR 2922393 A1 20090417 FR 0758204 A 20071010 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 6eui 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 oeuvre 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 oeuvre 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 Cr(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. II combine alors les informations ainsi déchiffrées pour obtenir la clé Kr de déchiffrement du contenu, puis il utilise cette clé K,. de déchiffrement du contenu pour déchiffrer ledit cryptogramme Cr(M). La clé K,. 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 oeuvre 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é : 10 -lors du chiffrement du contenu à diffuser, l'émetteur met en oeuvre au moins une première fonction cryptographique secrète, et - lors du déchiffrement du contenu, tous les décodeurs mettent en oeuvre 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 15 ladite seconde fonction enregistrée dans une mémoire. Lors de la mise en oeuvre 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 20 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 oeuvre par le consommateur illicite pour déchiffrer les 25 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 oeuvre d'identifiants personnels, mais sur la mise en oeuvre de descriptions différentes d'une même fonction cryptographique, le 30 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 K,. à partir d'un paramètre d'entrée r et d'informations chiffrées A . Ce procédé comprend les étapes suivantes : - la sélection d'un wûuplet d'indices (il, ), où w- 1, dans un ensemble prédéterminé d'indices, et - l'obtention de ladite valeur dérivée K,. en appliquant une fonction pseudoaléatoire prédéterminée F , dite "fonction de dérivation", auxdites infou~iations chiffrées A, ladite fonction de dérivation Fei dépendant au moins d'un identifiant r personnel I U de ladite première entité, et de blocs (T ' i, , ) us dans une table prédéterminée Tu de blocs Tu, associée à la première entité, r où chacun desdits blocs T i a été respectivement engendré par une seconde entité en combinant, en fonction dudit identifiant personnel IU , n2 blocs respectifs r '°)i , ro) T (m-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 suc), lesdites valeurs maîtresses s(k) 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 (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 A et la forme de la fonction de dérivation Fu de manière à ce que toutes les premières entités aboutissent à la même valeur dérivée K,. (pour un message chiffré donné). Une caractéristique de l'invention est qu'aucune des m valeurs maîtresses soc) 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 K,, auxquelles elle a droit, elle ne peut en déduire les valeurs maîtresses s(k) dont dépend sa table T U' . En effet, en premier lieu, la première entité ne peut déduire de la connaissance de sa table T U et de son identifiant personnel I U qu'un strict sous-ensemble des blocs T(k ; et en second lieu, même si une coalition de traîtres parvenait à reconstituer l'ensemble des blocs T1 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(')(1) 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 oeuvre 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 inteimédiaires mises en oeuvre 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 TU (et serait donc d'apparence différente des logiciels autorisés), mais qui serait apte néanmoins à calculer les valeurs dérivées K,. au moyen des fonctions de construction G(k)(i) . 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 I U 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 I U 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'indice est effectuée par la seconde entité, et le ûuplet d'indices ) résultant de cette sélection est inséré dans ledit paramètre d'entrée r . 2922393 En variante, ladite sélection d'un wûuplet d'indices (it , i2 ,..., Ç) 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 5 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 K,. à partir d'un paramètre d'entrée r et 10 d'informations chiffrées A . Ce dispositif comprend : - des moyens pour sélectionner un w uplet d'indices (il , i2 ,..., iw ), où 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 FU, dite "fonction de dérivation", auxdites 15 informations chiffrées A, ladite fonction de dérivation Fu dépendant au moins d'un identifiant personnel lu de ladite première entité, et de blocs (T U i, , fi i2 ,..., T Uiw ) lus dans une table prédéterminée Tu de blocs T vi associée à la première entité, où chacun desdits blocs T U t a été respectivement engendré par une seconde entité en r combinant, en fonction dudit identifiant personnel l , m blocs respectifs T ; , 20 T(t)1, ..., Tt -1) , ou m > 2, chacun desdits blocs T où k=ù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é. Les avantages offerts par ce dispositif sont essentiellement les mêmes que 25 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 oeuvre 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 K,. obtenue au moyen du procédé d'obtention d'une valeur dérivée selon l'invention, pour déchiffrer un cryptogramme C,.(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 Kr . 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 5 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 : 10 - la figure 1 est un schéma synoptique illustrant un mode de réalisation d'une étape pour la construction d'une table Tu 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. 15 On va décrire à présent des modes de réalisation pour la construction, par une seconde entité, d'une table T U 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 Te' . Chacun de ces indices pourra par exemple commodément être constitué par un mot binaire de longueur l ; la table Tu 20 comprend alors 21 blocs Ti' t , où i =1,...,21. 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 I , et chacun desdits blocs Tu, est engendré par la 25 seconde entité, en fonction de cet identifiant personnel , en combinant au moins deux blocs T(0) t , T{t)~ , . , T(m-r) 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(0)i et T (I )1 pour =1,...,21. On peut en outre commodément donner à chacun de ces blocs une longueur n identique à celle des blocs Tu On peut d'ailleurs considérer que l'ensemble des blocs T(0)i constitue une première table T t°~ , et que l'ensemble des blocs T (1)i constitue une deuxième table T(�. L'identifiant personnel lu pourra par exemple commodément être constitué par un mot binaire de longueur 21. La seconde entité peut alors par exemple constituer la table T U en prenant, pour i =1,...,21, le bloc T L i égal à T(0)i si le i ûième bit de I L est égal à 0, et à T(1), si le i ûième bit de lu est égal à 1 ; autrement dit, dans ce mode de réalisation, la "combinaison" entre T(0)i et T (')i se réduit trivialement, pour chaque valeur de i , à la sélection soit de l'un, soit de l'autre de ces deux blocs. Chaque bloc T(0)i 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(1)t est construit par la seconde entité au moyen d'une fonction pseudo-aléatoire G(' } (0, que nous 20 appelerons "deuxième fonction de construction", qui est paramétrée par une deuxième valeur maîtresse S(l} tenue secrète par la seconde entité. Les valeurs maîtresses S(°) et Stil pourront commodément être chacune constituée par un mot binaire de même longueur n que les blocs T 0)i et T('), . Selon une première variante, représentée sur la figure 1, la mise en oeuvre 25 de la fonction de construction G(k)(i) comprend l étapes successives, l'étape n° p , où p 1 , 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 pseudoalé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° 1 , et - à la valeur maîtresse S(k) lors de l'étape n° 1. Selon une deuxième variante (non représentée), la mise en oeuvre de la fonction de construction G(k)(o comprend 1 étapes successives, l'étape n° p, où 1 p ≤.1, 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 pseudo-aléatoire (g) prenant pour gaine : - le résultat de l'étape précédente lors des étapes n° 2 à n° 1, et - ladite valeur maîtresse S(k) lors de l'étape n° 1. Selon une troisième variante (non représentée), G(' (i) Fl(s(� Il , où le symbole "1 " 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é G(' (0 = 6Q(i) =s(k) où 0-Q est une fonction de chiffrement de 1 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 Kr, 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 A (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 (il ,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 oeuvre 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 pseudo-alé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 à 1 bits, où 1 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 (i1, 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 A ). Si l'on met en oeuvre 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 Tu propre à la première entité. Suite à cette consultation, effectuée en se référant au wùuplet d'indices (i~ 12, ,i,,,,), on obtient un ensemble de w blocs (T'11 , T U i2 ,..., T U~~U) sélectionnés dans la table TU. A l'étape P4, on applique une fonction pseudo-aléatoire prédéterminée FU, t' /~ I O dite "fonction de dérivation", aux informations iia~ïons chiffrées r~ ~ . Cette ~~~ ~~.~..~~.,. fonction de fonction dérivation Fu dépend de l'identifiant personnel IU des blocs (T U(, , T U i2 ,..., T U;,,, ) 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 Kr cherchée. 15 Deux variantes de réalisation pour la fonction de dérivation Fu sont données ci-après à titre d'exemples. Selon une première variante, les informations chiffrées A diffusées se présentent sous la forme des w paires suivantes : 20 ~o) = r(o) Q(A~) avec Q = T(°)11 ; A(I) (A(0 Q(A2) avec Q=T 12 AI) avec Q = T(l)t, ), Q(A2) avec Q = T(I) ) = T (0)Q ( v) avec Q ; =FO)Q( T), où A1, A2 , ..., Ax, sont des informations déchiffrées nécessaires à l'obtention de la valeur dérivée K,., et où r{°)Q et FtlWQ 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 A, la première entité examine r successivement chaque paire ci-dessus en se référant à son identifiant personnel l . Reprenons par exemple le mode de réalisation décrit ci-dessus, dans lequel la table Tu est telle que, pour i = 1,...,21, le bloc T ui est égal à T(°)i si le i ùième bit de lu est égal à 0, et à T(Di si le i ùième bit de lu est égal à 1. Considérons la première paire d'informations chiffrées, à savoir At°} = F °'Q(A1) avec Q = T(0)il , et A(Il) = r(�Q(A1) avec Q = T(1)i, . Si la première entité constate que le i1ùième bit de I L' est égal à 0, alors elle a pour instruction de déchiffrer le premier élément A(1°) de cette première paire d'informations chiffrées en utilisant le bloc Tu il (qui se trouve justement être égal à T°11) de sa table Tu . Si en revanche la première entité constate que le i1ùième bit de lu est égal à 1, alors elle a pour instruction de déchiffrer le second élément A(11) de cette première paire d'informations chiffrées en utilisant le bloc T11 (qui se trouve justement être égal à T(1)i, ) de sa table Tu La première entité obtient ainsi l'information Al en clair. Considérons ensuite la deuxième paire d'informations affilées, à savoir A(°? ù 2 ùQ(A2) avec Q= T iä et A( Q(A2) avec Q = T(1). 12 Si la première entité constate que le i., ùième bit de 1 est égal à 0, alors elle a pour instruction de déchiffrer le premier élément A,°) de cette deuxième paire d'informations chiffrées en utilisant le bloc T u i? (qui se trouve justement être égal à T°riz) de sa table Tu . Si en revanche la première entité constate que le i,ùième bit de lu est égal à 1, alors elle a pour instruction de déchiffrer le second élément A(z) de cette deuxième paire d'informations chiffrées en utilisant le bloc T Ui2 (qui se trouve justement être égal à T(�i2 ) de sa table Tu . La première entité obtient ainsi l'information A2 en clair. Et ainsi de suite jusqu'à obtenir toutes les informations déchiffiées AI , A2 , Aw,. II 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,$$A20+...O+k,, où le symbole O+ 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 A diffusées ont la forme suivante : il TË0 A, = h(a C+ ha T(� ) t~ A2 = h(a II T(0)i, ) e h(a II T)i2 ) = h(a T(") ,) C) h(a Il T(i) ) où le symbole " 1" représente la concaténation, le symbole e 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 oeuvre 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 Tu est telle que, pour i =1,...,21, le bloc Tu, est égal à T(0)i si le i ûième bit de 1 u est égal à 0, et à T''), si le i ûième bit de I U est égal à 1. Considérons la première information chiffrée, à savoir h(a 1 T(°)1 ) +e h(a Il T( )i, ) Si la première entité constate que le iHème bit de 1 u est égal à 0, alors elle a pour instruction de calculer h(a 1T °)),,) en utilisant le bloc Tu (qui se trouve justement être égal à ) de sa table T U . Si en revanche la première entité constate que le il ûième bit de 1" est égal à 1, alors elle a pour instruction de calculer h(a;IT'')i,) en utilisant le bloc TU (qui se trouve justement être égal à T0)i, ) de sa table T U , et d'additionner bit à bit cette quantité h (a II T { `)t,) à ladite première information chiffrée. La somme binaire h(a T°)i, ) C+e h(a I T') valant 0, le résultat de cette addition est h(a Il T(°)t, On notera que, dans ce second cas (ii ûième bit de 1" égal à 1), la première entité ne peut ni trouver la valeur de T(°)1, , ni même, à cause de la présence de l'aléa a, la valeur du haché h(T (°)I,) . Ainsi, dans cette deuxième variante, la grandeur h(a Il T°11) constitue une première information en clair A1. Considérons ensuite la deuxième information chiffrée, à savoir h(aI!T(°)12)h(aIITt'i12). Si la première entité constate que le i2 ùième bit de I U est égal à 0, alors elle a pour instruction de calculer h(a Il T ( °)I2) en utilisant le bloc Tu 1, (qui se trouve justement être égal à T(°),, ) de sa table T U . Si en revanche la première entité constate que le i2 ùième bit de lu est égal à 1, alors elle a pour instruction de calculer h(a II T(I)i, ) en utilisant le bloc T"12 (qui se trouve justement être égal à Tti2) de sa table Tu , et d'additionner bit à bit cette quantité h(a II T0),2) à ladite deuxième information chiffrée. Le résultat de cette addition est h(a II T()i12) , qui constitue donc une deuxième information en clair A2. Et ainsi de suite jusqu'à obtenir une série d'informations déchiffrées AI , A2 , . 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,0A2O...OAw . On voit ainsi, sur la base de ces deux variantes, que l'invention permet (comme annoncé plus haut) d'agencer les informations chiffrées A et la forme de fonction de dérivation Fr` de manière à ce que toutes les premières entités aboutissent à la même valeur dérivée K,, (pour un message chiffré donné), tout en attribuant à chaque première entité un identifiant personnel lu et une table Tu qui lui soient propres. Pour terminer, on va montrer comment on peut avantageusement, grâce à l'invention, déterminer quel identifiant personnel lu 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 oeuvre à cet effet. Supposons que l'on ait, par exemple, choisi la première variante, décrite ci- 1 0 dessus, pour la Îonction de dérivation Fu , et supposons que l'on souhaite déterminer le ijùème bit, pour une certaine valeur de i 1, de l'identifiant personnel I U de ce décodeur. On choisit alors un certain contenu numérique M ainsi qu'un wùuplet d'indices contenant ladite valeur ii , et l'on soumet au décodeur les paires 15 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 (A(� = I't°iQ(A1) avec Q = T(0),1 ; A( j) = F Q(Ai) avec Q = T(l)ii ) . r 11 est clair dans ces conditions que si le ij --lèpre bit de lu est égal à o, cette fausse valeur dudit deuxième élément n'affecte en rien l'obtention par le décodeur de 20 la valeur correcte de l'information déchiffrée Al (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 Cr (M) , et fournira finalement en sortie le contenu M correct. Si en revanche le i ûième bit de lu est égal à 1, le décodeur obtiendra une valeur fausse pour l'information déchiffrée Ai , 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 lu du décodeur examiné. Si l'on constate alors que cet identifiant personnel lu 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 lu 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 15 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. 20 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. 25 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. REVENDICATIONS 1. Procédé d'obtention par une première entité U d'une valeur dérivée K,. à partir d'un paramètre d'entrée r et d'informations chiffrées A , comprenant les étapes suivantes: - la sélection d'un wùuplet d'indices (il où w 1, dans un ensemble prédéterminé d'indices, et - l'obtention de ladite valeur dérivée K,. en appliquant une fonction pseudo- aléatoire prédéterminée FU, dite "fonction de dérivation", auxdites informations 10 chiffrées A , ladite fonction de dérivation Fu dépendant au moins d'un identifiant personnel I U de ladite première entité, et de blocs (T Ui, , T'7 i2 ,..., T U iW) lus dans une table prédéterminée T U de blocs T''1 associée à la première entité, où chacun desdits blocs T''1 a été respectivement engendré par une seconde entité en combinant, en fonction dudit identifiant personnel I U , m blocs respectifs T(o) i , 15 T(1)i , ., T (m_I)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é...CLMF: 2. Procédé d'obtention d'une valeur dérivée selon la revendication 1, 20 caractérisé en ce que ladite sélection d'un wùuplet d'indices (il ,i2,..., est effectuée par la seconde entité, et en ce que le wùuplet d'indices 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 (il ,i2,... , i,,;) est 25 effectuée par la première entité à partir d'une valeur contenue dans un champpré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 il ,i2,...,iw 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 10 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 15 revendications 1 à 6, caractérisé en ce que la mise en oeuvre de ladite fonction de construction G(k)(i) comprend 1 étapes successives, l'étape n° p, où 1 p 1, 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 20 n bits, lesdites permutations étant appliquées : - au résultat de l'étape précédente lors des étapes n° 2 à n° 1, et - à ladite valeur maîtresse S(0 lors de l'étape n° L 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 oeuvre de ladite fonction de 25 construction G (1' )(i) comprend 1 étapes successives, l'étape n° p, où 1 p 1, 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 trainbinaire de longueur (2n) produit par un générateur pseudo-aléatoire (g) prenant pour graine : - le résultat de l'étape précédente lors des étapes n° 2 à n° 1, 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 G(k)(i) est telle que Guk) (i) = H(S(k) Il o OÙ le symbole "II" représente ld 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 G(k)(l) =o-Q(i) Q_S(k) où aQ est une fonction de chiffrement de l 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 A diffusées se présentent sous la forme des w paires suivantes : v A,, ) avec(1) (1 v avec Q = T( [)i ) 2922393 où A1, sont des informations déchiffrées nécessaires à l'obtention de la valeur dérivée Kr, et où 1-(° Q et F(1)Q désignent des fonctions de chiffrement prédéterminées dont le déchiffrement requiert l'utilisation d'une clé secrète Q . 5 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 A ont la forme suivante : = h(a II T(°)il ) Ci h(a Il T0)ii ) , A2 = h(a Il T )i2 ) h(a II T(r)2 ), 10 = h(a T(0)iw ) e h(a II ) , 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 15 des informations déchiffrées A1, A2, ..., Al nécessaires à l'obtention de la valeur dérivée Kr sont données par : T(0)i 1) , pour j ...,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 K,. est obtenue à partir 20 desdites informations déchiffrées A1, A, , . . au moyen d'une addition bit à bit : Al ( . (D Ami, . 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 I 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 K,. obtenue au moyen d'un procédé selon l'une quelconque des revendications 1 à 14, pour déchiffrer un cryptogramme Cr( ) reçu conjointement audit paramètre d'entrée r , où M est un contenu en clair et C,. un algorithme de chiffrement prédéteitniné utilisant une clé de chiffrement associée à la clé de déchiffrement Kr . 16. Dispositif d'obtention par une première entité U d'une valeur dérivée K,. à partir d'un paramètre d'entrée r et d'informations chiffrées A , comprenant : - des moyens pour sélectionner un w -uplet d'indices (it , i2 ,..., iw ), où w 1 0 dans un ensemble prédéterminé d'indices, et - des moyens pour obtenir ladite valeur dérivée K,. en appliquant une fonction pseudo-aléatoire prédéterminée Fu, dite "fonction de dérivation", auxdites informations chiffrées A , ladite fonction de dérivation Fu dépendant au moins d'un identifiant personnel lu de ladite première entité, et de blocs (T'11 , T ui2 ,..., Tu iw ) 15 lus dans une table prédéterminée T U de blocs T ui associée à la première entité, où chacun desdits blocs T1' i a été respectivement engendré par une seconde entité en combinant, en fonction dudit identifiant personnel lu , m blocs respectifs T(0)i, T ( 1 ) T('-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 20 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é. 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 25 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.