Brevet FR2805421A1 — publié le 20010824

Domaine technique Art antérieur L'invention concerne le domaine du traitement de données, par exemple signaux audio ou vidéo, et de leur transmission sous une forme sécurisée. Elle concerne également un procédé pour générer des données décryptage. Une transmission de ces données peut ensuite être réalisee, vers un utilisateur qui dispose de données cryptees. Elle peut s'appliquer aussi bien à des signaux numériques qu'à des signaux analogiques. exemple d'application concerne le domaine la diffusion de la musique par un réseau, par exemple par l'internet. II existe actuellement des techniques de téléchargement de morceaux musique, dans lesquels une source, exemple un serveur, envoie des morceaux de musique, sous forme numérisée, à des utilisateurs, chaque utlisateur étant équipé d'un modem analogique. Cependant on ne peut actuellement réaliser une opération de téléchargement de musique, dans des délais raisonnables (de l'ordre de quelques minutes), avec les modems analogiques classiques qui équipent la plupart usagers. De plus, afin de rétribuer ce service, une partie au moins de chacun des morceaux transmis est cryptée, le décryptage n'étant fourni que contre paiement ou télépaiement. cryptage est cependant réalisé de manière personnalisée, ce qui conduit à un nombre important d'étapes de marquage et de cryptage. techniques actuelles de marquage personnalisé des données à crypter mettent en oeuvre - une étape de compression des données - une étape de marquage des données, - une étape de cryptage des données. Eventuellement, le marquage peut précéder la compression, mais le cryptage est toujours réalisé après ces deux étapes de compression et de marquage. Le marquage des données est donc réalisé à la demande et le cryptage est de ce fait, lui-même personnalisé, c'est ' dire qu'il est fonction de l'utilisateur. Le décryptage est donc, lui aussi, personnalisé. Cette technique, bien que satisfaisante à certains égards, nécessite cependant la mise en oeuvre d'un nombre d'étapes de cryptage trop important. Si un ensemble de données (par exemple morceau de musique) doit être diffusé à 100 utilisateurs, ce sont étapes de marquage sont à réaliser, puis 100 étapes de cryptage corres pondantes. Le même problème se pose quelle que soi nature des données transmises ou diffusées. II pose donc le problème de trouver un procédé permettant de diffuser des données cryptées ou marquées, mais mettant en oeuvre un nombre réduit d'étapes. II pose également le problème de trouver un procédé permettant de diffuser des données cryptées qui puissent être téléchargées par un utilisateur dans des délais assez brefs de l'ordre de quelques minutes au plus. Certaines autres solutions existantes, qui permettent d'ailleurs pas plus un téléchargement dans des délais brefs, ne mettent pas de marquage dans le fichier compressé et crypté. Cependant, le cryptage reste bien personnalisé. Le marquage, dans ce , est réalisé dans le logiciel utilisateur. Ce système pose un problème car il est possible de pirater le logiciel afin de court-circuiter l'étape marquage. Exposé de l'invention L'invention vise à résoudre ce problème, en proposant un procédé et un dispositif de traitement des données, qui permettent de crypter celles-ci de manière indépendante de l'identité de l'utilisateur ou du destinataire des données cryptées. L'invention a tout d'abord pour objet un procédé de transmission, à partir de moyens informatiques et vers au moins deux dispositifs informatiques distants qui sont reliés par réseaux aux moyens informatiques, de données de décryptage de données cryptées, caractérisé en ce que les données cryptées sont identiques pour tous les dispositifs distants, et comportent des données (brutes ou de base) et des données de cryptage d'au moins une partie de ces données brutes ou de base, on forme, pour chaque appareil distant, une table ou une suite pseudo-aléatoire d'index, propre à chaque appareil distant, - on transmet, à au moins un des appareils distants, ensemble d'index identifiant des données de décryptage dans la table ou dans la suite pseudo-aléatoire propre audit appareil distant. Les données cryptées étant, après cryptage, identiques pour tous destinataires ou utilisateurs, ceux-ci peuvent en disposer, avant tout envoi des index identifiant les données de décryptage dans la table personnalisée de chaque utilisateur. En particulier, ces données cryptées n'ont besoin d'être transmises par réseau et peuvent tout simplement être remises aux utilisateurs sous la forme d'un support matériel, par exemple un CD audio dans le cas de données représentant morceau de musique, ou un CD ROM pour des données numériques compressées. Ou bien ces données peuvent avoir été préalablement mémorisées dans le dispositif informatique de chaque utilisateur, par exemple lorsque les données cryptées sont des données d'application ou de programme informatique. Les seules données transmises par réseau à chaque utilisateur sont la table pseudo-aléatoire propre à l'utilisateur, et l'ensemble d'index identifiant les données de décryptage dans cette table. La quantité d'informations, notamment binaires, à envoyer par réseau, est donc bien moins importante que dans le cas où l'ensemble de données lui-même (par exemple, un morceau de musique) à envoyer par réseau. La table pseudo-aléatoire propre à chaque utilisateur peut être obtenue par combinaison d'une pluralité de fonctions pseudo-aléatoires. L'envoi de cette table à un utilisateur consiste de préférence à envoyer la table elle-même. Selon un autre mode de realisation, on envoie une partie des fonctions permettant d'obtenir cette table. Dans ce dernier cas, le calcul de la table est réalisé au plus en partie par la machine ou le dispositif informatique de l'utilisateur, qui programmé pour réaliser ce calcul. Ceci permet d'optimiser l'utilisation de la ligne reliant le réseau l'utilisateur ou à son dispositif informatique distant, en envoyant, à celui- soit la table ou la suite pseudo-aléatoire elle-même lorsque cette ligne présente un débit suffisant, soit les fonctions pour la calculer lorsque le débit de la ligne est insuffisant ou réduit. De préférence, l'ensemble d'index transmis à chaque appareil distant pour le décryptage est fonction de cet appareil. Autrement dit, les données de décryptage peuvent être personnalisées et ceci bien que les données cryptées soient identiques pour tous les utilisateurs. Ceci signifie que le marquage n'est effectué qu'au moment d'une opération de décryptage, et de toute manière après une éventuelle opération de compression des données et après cryptage (unique pour tous les utlisateurs) de celles-ci. Il n'est donc pas possible de court-circuiter une étape marquage lors du décryptage. Le procédé selon l'invention permet en outre de ne réali qu'une unique opération de cryptage des données, éventuellement compressées, et ceci quel que soit le nombre d'utilisateurs. L'invention concerne également un dispositif pour transmettre des données de décryptage de données cryptées vers au moins deux appareils informatiques distants, caractérisé en ce qu'il comporte moyens informatiques, reliés par réseaux aux appareils informatiques distants et programmés pour: - déterminer, pour chaque appareil, une table pseudo aléatoire d'index ou des données pour former une table pseudo-aléatoire d'index, propre à chaque appareil distant, - déterminer, pour chaque appareil distant, un ensemble d'index identifiant des données de décryptage dans la table pseudo- aléatoire propre audit appareil distant, - envoyer, à chaque appareil distant, la table pseudo-aléatoire d'index ou les données pour former cette table pseudo-aléatoire d'index ainsi que des données d'ensemble d'index identifiant les données décryptage dans la table pseudo-aléatoire propre à chaque appareil distant. Les moyens informatiques peuvent être en outre programmés pour envoyer à chaque appareil distant des données pour former une table pseudo-aléatoire d'index selon un format fonction du débi de la ligne qui ie chaque appareil distant au(x) réseau(x). L'invention concerne également un procédé d'échange de données entre un opérateur et des utilisateurs distants reliés à l'operateur par réseau(x), comportant: l'identification de chaque utilisateur dans une base de données ou des moyens de mémorisation d'un système informatique de l'opérateur, l'attribution, c'est-à-dire la détermination ou le calcul à ou pour chaque utilisateur, d'une table ou d'une suite pseudo-aléatoire de données d'index, personnalisée ou propre à chaque utilisateur. Lorsqu'un utilisateur formule une requête d'attribution de données décryptage pour un ensemble de données cryptées, un ensemble d'index identifiant des données de décryptage dans la table ou dans la suite pseudo-aléatoire propre audit utilisateur ou à son appareil distant lui est envoyé par réseau. Le décryptage a lieu dans l'appareil de l'utilisateur par lecture de la table personnalisée dont il dispose, cette lecture étant faite dans l'ordre déterminé par l'ensemble d'index lui a été envoyé. Brève description des figures La description de l'invention fait référence aux figures suivantes, données à titre uniquement illustratif et non limitatif la figure 1 représente schématiquement la mémorisation de données dans des zones mémoires d'un serveur et d'un inateur personnel ; - la figure 2 est un exemple simplifié de cryptage de données ; - la figure 3 représente un système pour la mise en oeuvre de l'invention ; - la figure 4 est une représentation schématique de divers composants d'un ordinateur personnel ; - la figure 5 représente des étapes d'un procédé de compression et de cryptage de données ; - la figure 6 représente des étapes d'une transaction électro nique entre un distributeur de données et un utilisateur. Description détaillée de modes de réalisation de l'invention Un premier mode de réalisation de l'invention va être décrit, pour lequel on prendra l'exemple d'un signal audio se présentant sous forme numérique. Des exemples de réalisation tables ou de suites pseudo- aléatoires vont d'abord d'être donnés. On appelle ordre pseudo-aléatoire tout ordre défini par une séquence de nombres qui peut être complètement prévue ou déterminée par un algorithme prédéfini et une ou des valeur(s) initiale(s). Un tel ordre pseudo-aléatoire est défini pour les nombres choisis entre 0 et 2b-', b étant le nombre bits sur lequel le codage des données, ici des données audio, est realisé. Par exemple, b = 28 ou encore b = 16. Cet ordre pseudo-aléatoire constitue une suite Un, avec 0 En d'autres termes, on a defini une fonction génératrice f, f(n) = Un, de l'ensemble des nombres cers compris entre 0 et 2b-' sur lui-même. Le résultat de cette fonction, est-à-dire la suite Un elle-même, est aussi appelée table génératrice T. Cette table génératrice T peut ensuite être différenciée en vue de chaque utilisateur. Cette différenciation s'effectue par application, pour chaque utilisateur, d'une fonction, qui est inversible pour la personne qui émet les données, mais qui est tenue secrète cachée au destinataire des données. Pour ce dernier, cette fonction n'est donc pas inversible, tandis qu'elle l'est pour le distributeur des données. Selon un exemple, une telle fonction dépendante de deux paramètres p et i : un paramètre de position p, compris entre 0 et 264-1, et un incrément i, compris entre 0 et 2z8-1. Les valeurs données pour les plages dans lesquelles ces valeurs peuvent être choisies le sont à titre indicatif, d'autres valeurs pouvant être choisies. Les nombres p et i sont des données caractéristiques affectées à chacun des destinataires ou utilisateurs des données à transmettre. La table suivante est alors calculée (ci +i)mod22g,(cl +i)mod228,...,(cl +i)mod22g (I) p mod 2z" (1+p) mod 22" (2"-1+p) mod 2'2' Cette table est personnalisée en fonction de l'utilisateur par les paramètres p et i. Autrement dit, la fonction génératrice f définie ' dessus est combinée avec une fonction fp,; qui est propre à chaque utilisateur ou destinataire des données, et qui est maintenue attachée à dernier. II en résulte une table T. personnalisée en fonction de l'utilisateur, client ou du destinataire Tic = fp,; o f (2) Le symbole "o" désigne la loi de combinaison fonctions (avec cette notation: f o g (x) = f[g(x)]). La table personnalisée Tic peut aussi être obtenue par combinaison des fonctions f et fp,; dans l'ordre inverse. Selon une variante, la table génératrice T peut aussi être obtenue, non plus par la donnée d'une seule fonction pseudo-aléatoire mais par combinaison d'une pluralité de fonctions pseudo-aléatoires g1,...gn, et de f (n > 1). Autrement dit, on peut obtenir une table génératrice à partir de la composition suivante Tic = gn o gn_1 o......092 091 0 f (3) On expliquera ci-dessous l'intérêt d'utiliser une telle construction. Selon un exemple, la fonction f est définie par les deux égalités suivantes: f(n) = x, I 2k et par : xn+, = [axn mod (2k2P)] (4) la valeur de xo étant choisie première avec la base utilisée pour réaliser le codage. Pour une base 2, on prendra donc une valeur impaire. Dans cette fonction, la division par 2k (avec k>0) permet de prendre que les p bits de poids forts. La fonction g, peut être par exemple définie par les deux égalités suivantes: g,(n) = x,, I 2k et par x, (n+,) = [a', x, n mod (2k2"0] (5) avec les mêmes conditions sur k et x,o. Pour l'application de ces formules, les coefficients xo,x,osont, de préférence, choisis de manière à conférer aux fonctions f g, un caractère cyclique. Si, par exemple, p = 10 et p', = 10, chacune des fonctions f et g, définit alors une application, et même une bijection, de l'ensemble des nombres entiers naturels compris entre 0 et 2'o sur lui-même. Selon un exemple : a = a'1 = 997 et xo = x,o = 5284163. Le résultat de la composition de g, avec f fournit alors fonction génératrice, bijective, de l'ensemble des entiers naturels compris entre 0 et 106 sur lui-même. Plus généralement, on pourra prendre également des valeurs de p et de p' telles que p soit différent de p'. Dans l'exemple des fonctions f g, ci-dessus, des valeurs typiques de p et p' peuvent être par exemple =18ou19,p'=6ou7. Dans l'exemple donné ci-dessus, la fonction g, réalise concaténation des résultats obtenus respectivement avec f et g, separément. On peut aussi, au lieu d'une simple concaténation, réaliser une combinaison binaire qui ne soit pas simplement une concaténation, par exemple, il est possible de mélanger entre eux les bits des résultats respectifs de f et de g,. On peut aussi utiliser, pour g, - une étape d'application de l'opérateur XOR, appliqué aux resultats de f, - une génération de nombres pseudo-aléatoires, par exemple du type indiqué ci-dessus avec la formule (5), - une combinaison binaire, autre qu'une concaténation. Le résultat de la combinaison de g, et de f est une bijection d'un ensemble de N valeurs d'index sur lui-même. Le résultat ci-dessus se généralise au cas d'une combinaison de f avec n fonction g;, chaque fonction g; étant par exemple définie par les deux égalités suivantes: g;(n ) = X;,, / 2k et par x;(,+,) = [a'; x;n mod (2'2p')] (6) où a'; et x;o définis de manière à ce que g; soit cyclique (par exemple: a';.= 997 et x;o = 5284163.) La combinaison de la fonction gk (respectivement : g,) avec la fonction gk_, (respectivement : f) peut être par exemple une concaténation du résultat de ces deux fonctions, ou bien encore le résultat de l'application opérateur XOR et d'une combinaison binaire des résultats de chacune des fonctions gk et gk_, (respectivement g, et f). Comme expliqué ci-dessus, une étape de personnalisation de la table géneratrice, pour former la table du client, intervient lors de l'application d'une fonction fp,;. a alors T2, = Tofp,; ou Tz, = fp,; o T (7) Il est possible, en outre, de personnaliser chacune des fonctions g; dans le cas d'une combinaison du type de la formule (3) indiquée ci-dessus, mais le choix des fonctions g; est alors fait en sorte que le résultat de la combinaison des différentes fonctions pseudo- aléatoires entre elles, et avant application de la fonction de personnalisation fp,; soit le même quelque soit le client ou l'utilisateur. Autrement dit, si pour un premier client, on effectue choix de fonctions g'; (i = 1,..., n) et pour un deuxième client un choix de fonctions (i = 1,..., n), ce choix est fait de telle manière que dans les deux cas, on genère une table génératrice T unique définie par T = g'n o g'n_1 0...........09'z o 9110f (8) T z z = g # o g n_l o ........... ogz z o gzlof (9) Selon une autre variante, on peut utiliser, pour chaque fonction génératrice g;, le résultat de la combinaison suivante G;_, = g;_, o g;_2 ..........of (10) pour indexer g;. Par exemple, il est possible de concaténer le résultat de G;_ (x;) avec une première fonction génératrice g;_ 1 , puis le résultat de g;_, (x;) avec deuxième fonction génératrice g;.2. Cette technique de combinaison rajoute encore un aléa dans le resultat. Dans tous les cas, la table personnalisée T,c est obtenue par combinaison de T et fP,;. Comme illustré sur la figure 1, la table génératrice T, unique quelque soit le destinataire des données, est stockée dans une zone mémoire 2 d'un système informatique (par exemple un serveur) du distributeur des données. Elle est maintenue secrète, c'est-à-dire elle n'est pas transmise aus utilisateurs. La table personnalisée Tlc d'un client donné c est transmise à client et est stockée dans une zone mémoire 4 d'un systeme informatique de ce client ou de ce destinataire, ce système pouvant être exemple un ordinateur de type PC usuel. Chacun des fichiers ainsi constitués est indépendant des données qui doivent être transmises par le distributeur au client ou au destinataire. La table Tl. est donc fournie au client au début de sa relation avec le fournisseur de données. Par ailleurs, les données à transmettre doivent être cryptées. La figure 2 represente schématiquement l'évolution temporelle d'un signal audio, après compression. La courbe en traits interrompus représente le résultat du cryptage de ces données. Toute méthode cryptage peut être utilisée. De préférence, on regroupe les données en intervalles, tels que les intervalles I, II, III, IV représentés sur la figure 2, et on effectue un cryptage unique de l'ensemble des données comprises dans chacun de ces intervalles. Selon l'exemple de la figure 2, le cryptage des données de l'intervalle I est obtenu par addition d'une valeur vi aux données brutes compressées initiales, et il en va de même pour les autres intervalles II (addition de v2), 111 (addition de v3), IV (addition de v4). Dans l'exemple donné, le regroupement des données en bloc est un découpage régulier linéaire en intervalles I, II, ... Cependant, on peut choisir d'autres méthodes de regroupement qui peuvent par exemple conduire à une superposition des intervalles de cryptage, auquel cas, certaines données, communes à ces intervalles, subissent un double cryptage. Selon une variante, il est également possible de superposer plusieurs niveaux de cryptage ; en particulier, chaque niveau de cryptage peut dépendre du niveau de cryptage précédent. L'intérêt du regroupement des données en vue du cryptage sera expliqué ci-dessous. Le résultat du cryptage, c'est-à-dire les données cryptées, sont remises au client ou au destinataire des données, ce dernier demandant ensuite une clé de décryptage au distributeur des données. En fait, les données cryptées peuvent être contenues dans un support de données tel qu'un CDROM que l'utilisateur peut lire avec son propre matériel (lecteur de CDROM et micro-ordinateur équipé d'une carte son). Les données nécessaires au décryptage sont en fait déjà contenues dans la table personnalisée T, que possède le client. Cependant, ce dernier ignore l'adresse ou la position de ces données de cryptage dans la table dont il dispose. Dans l'exemple de la figure 1, les données VI, V2, V3, V4, .... sont contenues dans la table T, mais le client ignore leur position dans cette table. Par contre, le distributeur, qui dispose de la table T, et qui a lui- même realisé le cryptage, connaît exactement les données de cryptage et leur position, à la fois dans sa propre table T et dans la table Tc de chaque client. Par exemple, comme illustré sur la figure 1, chacune des valeurs V2, V3, V4 possède un index il, i2, i3, i4 dans table T et un index i'l, i'2, i'3, i'4 dans la table Tc. Le distributeur va donc indiquer à chaque client ou utilisateur, sur requête de ce dernier, les index i'k des valeurs ainsi que, éventuellement, le cryptage utilisé pour chacun des intervalles 1, II, III, IV, Selon une variante, on fournit aux clients non pas adresses des valeurs V;, mais les adresses de données Wi qui sont de tailles plus importantes que les données Vi. Ces dernières se déduisent de W; par une opération de condensation, qui consiste à enlever Wi un certain nombre de bits. Par exemple, si chacun des W; est codé sur bits et si les V; sont codés sur 16 bits, l'opération de condensation consistera à enlever les 8 premiers bits de chacune des informations Wi. Cette technique permet de multiplier les clés de décryptage possibles. Elle permet également d'éviter que des personnes, ayant acheté un certain nombre de fois les mêmes données cryptées, comparent ces données entre elles et en déduisent les valeurs des V; ainsi que, pour chaque intervalle de données, le cryptage utilisé. La fonction de condensation peut être n'importe quelle application surjective mais non injective, par exemple de 2" vers 2" avec N>n. En particulier, on peut utiliser une fonction de hachage, ou encore un code à redondance cyclique (CRC). La fonction de condensation peut être identique pour tous les clients, ou différenciée d'un client à l'autre. Selon un autre aspect, il est possible de réaliser un décryptage imparfait, la clé de décryptage ne donnant pas exactement la position des valeurs Vi dans la table Tc du client, mais la position de valeurs V; + si. ci est choisi pour que la restitution des données, après décryptage (imparfait) ne soit pas sensible au client ou à l'utilisateur. Par exemple, pour des données qui représentent un morceau de musique, E; est choisi pour que, lors de l'audition, l'auditeur ne puisse, l'oreille, identifier que décryptage a été réalisé de manière imparfaite. Selon encore un exemple, l'erreur F; affecte les 4 ou 5 bits de poi les plus faibles, ce qui peut conduire à une erreur d'environ 12dB, inaudible lors de la restitution morceau à partir d'un CD. En outre, l'ensemble des valeurs s;, affecté aux données V;, dépend de l'utilisateur ou du client. Autrement dit, le distributeur des données choisit d'attribuer à chaque utilisateur ou client un ensemble de valeurs de décryptage imparfait qui lui est propre. Un autre utilisateur ou client se verra attribuer un autre ensemble de valeurs ou de données de décryptage. Bien que la différence de son soit inaudible, c' -à-dire que l'utilisateur ne perçoive pas l'altération du signal analogique final, une analyse numérique de ce signal analogique permet de retrouver l'ensemble des valeurs E;,,#, et donc l'utilisateur ou le client c correspondant. Ainsi, si un utilisateur ou un client, auquel une clé de décryptage a été fournie, enregistre un signal analogique produit lors de la restitution des données, après décryptage imparfait, ce signal analogique portera la marque de l'utilisateur, notamment si celui-ci essaye, partir du signal analogique, de refaire ou de réimprimer des supports tels que des CD. En d'autres termes, un CD "pirate" portera nécessairement marque de la personne à laquelle une clé de décryptage a été attribuée, et qui a, soit elle-même, soit en transmettant les données décryptées à une autre personne, contribué à cette reproduction non autorisée. En d'autres termes, l'inversion imparfaite du cryptage ou de l'opération de chiffrement permet de marquer chaque morceau en fonction de l'utilisateur ou du client, et donc de conférer au procédé et dispositif de distribution selon l'invention une grande sécurité. La valeur de E;,c peut être positive ou négative : dans un cas, l'opération de décryptage conduira à soustraire une valeur V; + s;,': supérieure à V;, et dans l'autre cas, à soustraire une valeur inférieure. Selon une variante, il est possible d'introduire un erroné de poids faible dans la valeur résulatnt de l'application de l'opérateur XOR dans le cas du chiffrement par masque XOR. Au lieu de réaliser un XOR avec la même valeur, la valeur utilisée peut différer au niveau 4 ou 5 bits de poids faible. Le résultat est alors encore une distortion au niveau de 4 ou bits de poids faibles, ce qui résulte en un bruit de moins de 12 dB. Par conséquent, selon l'invention, le marquage peut être réalisé à l'aide décryptage, imparfait et unique pour chaque utilisateur ou client, cryptage qui est, lui, identique pour tous les utilisateurs ou clients. Autrement dit, les données cryptées et fournies au client (par exemple données de la figure 2) sont les mêmes quel que soit le client, mais la clé fournie à chaque client dépend de ce client (du fait de la construction de la table Tc pour chaque client) ; le marquage depend ou provient du décryptage lorsque ce dernier est réalisé de manière imparfaite et dépendante du client. Le procédé de cryptographie réalisé peut être qualifié d'asymétrique - le chiffrement ou le cryptage des données est transmis, de manière identique, à tous les clients, - le déchiffrement, ou le décryptage, est personnalisé en fonction du client ou de l'utilisateur, car la clé de décryptage qui est fournie à ce dernier est appliquée à une table personnalisée fonction de celui-ci. Le marquage réalisé ne se trouve donc pas, dès le début, dans les données cryptées, mais ce marquage est "créé" au moment où l'opération de décryptage a lieu, lorsque ce décryptage est imparfait et variable en fonction de l'identité du client. II en résulte que l'opération de cryptage est unique pour un morceau donné, et pour l'ensemble des clients. En d'autres termes, un cryptage est réalisé pour chaque morceau, quel que soit le nombre de clients. Par conséquent, pour 100 clients ou utilisateurs et pour un ensemble de 200 morceaux, on réalisera 100 tables T, (chaque table étant indépendante des morceaux sélectionnés), on réalisera 200 cryptages (1 cryptage par morceau, quelque soit le client), et on aura donc au total réalisé 300 opérations. Les techniques classiques de marquage, consistant à appliquer une marque à des données compressées, puis à réaliser une cryptographie, nécessitent de réaliser beaucoup plus d'opérations. Si on reprend l'exemple de 100 clients et de 200 morceaux, le marquage personnalisé de chaque morceau en fonction de chaque client conduira, avec ces techniques classiques, à réaliser 2.104 opérations de cryptage. Un ensemble de moyens pour mettre en oeuvre la présente invention va être décrit en liaison avec les figures 3 et 4. Sur la figure 3, la référence 17 désigne un serveur auquel les différents utilisateurs, possédant chacun un micro-ordinateur de type PC 40, 42, 44, 46, ... peuvent avoir accès via un réseau 20, par exemple l'Internet. Chacun des utilisateurs accède au réseau par sa propre connexion 41, 43, 45, 47,... et possède sa propre adresse. Dans l'exemple d'une diffusion de données audio, on suppose en outre que le matériel de chacun des utilisateurs est équipé d'une carte son et d'enceintes 50, 51 de restitution du signal analogique, après décryptage. Le serveur mémorise dans des moyens de mémorisation 12 les données constitutives de l'ensemble de la table T (unique pour l'ensemble des utilisateurs et des morceaux). II mémorise également, dans des moyens 14, la fonction de personnalisation fp,;. Enfin, un fichier d'utilisateurs ou de clients, établissant le lien entre chaque utilisateur ou client et les paramètres P,i de personnalisation, est stocké dans moyens de mémorisation 16. Ce serveur est programmé ou spécialement programmé pour effectuer toute transaction avec un ou plusieurs utlisateurs, l'appareil informatique distant de chacun d'eux étant relié au réseau 20. Le serveur est donc programmé ou spécialement programme pour fournir chaque utilisateur qui le souhaite une table Tc, calculée ou obtenue à partir d'une table T. Cette table T est gardée secrète par le gestionnaire du serveur 10. De même les fonctions de personnalisation fp,i ne sont pas communiquées à l'utilisateur et sont tenues secrètes le gestionnaire du serveur 10. Le serveur est programmé pour déterminer, pour chaque appareil distant, et pour chaque ensemble de données cryptées, un ensemble d'index identifiant des données de décryptage dans la table pseudo-aléatoire propre audit appareil distant. II comporte en outre des moyens (son ou ses microprocesseurs) pour envoyer, à chaque appareil distant, la table pseudo-aléatoire d'index ou les données pour former cette table pseudo- aléatoire d'index, ainsi que des données d'ensemble d'index identifiant les données décryptage dans la table pseudo-aléatoire propre à chaque appareil distant. figure 4 représente schématiquement, en bloc, les diverses composantes de chacun des micro-ordinateurs 42, ... Un microprocesseur 60 est relié, par un bus 62, à un ensemble de mémoires RAM 64 pour stocker des données, et à une mémoire ROM 66 dans laquelle instructions de programme peuvent être mémorisées. Ce système comporte en outre un dispositif de visualisation ou écran et des moyens périphériques 70 (clavier) ou 72 (souris). moyens de mémorisation 64 mémorisent table T, créée pour un client particulier, ainsi que les valeurs i'k d'adresses dans cette table, fournies au client, en vue du décryptage, après celui-ci en ait formulé la requête auprès du serveur 10. moyens de mémorisation 66 comportent en outre les instructions nécessaires à la mise en oeuvre du programme de décryptage c'est-à-dire du programme qui va pouvoir décrypter les données à partir de la table T,, et des adresses i'k. la figure 4, les références 74 et 76 désignent en outre la carte son l'utilisateur et des moyens d'interface avec le réseau, de type modem. serveur a, globalement, une structure du même type, avec processeur(s), zones de stockage de données (d'ailleurs désignées sue la figure 3 par références 12,14,16) et connexion au réseau. Une transaction entre le gestionnaire du serveur 10, qui distribue les informations, et notamment les clés de décryptage, et un utilisateur, peut être décrite de la manière suivante. Dans une première étape, il y a enregistrement du client ou de l'utilisateur auprès du distributeur ou du serveur 10. Par exemple, l'utilisateur du micro-ordinateur 40 se connecte via la ligne 41 et le réseau 20, et entre alors ses données d'identification (nom, prénom, adresse, ...). II requiert, auprès du serveur 10, l'attribution d'un mot de passe. En réponse, le serveur attribue un mot de passe et, éventuellement, d'autres données permettant de sécuriser les transactions (par exemple pour mettre en oeuvre un système de clé publique/clé privée). D'autres étapes de sécurisation telles qu'une vérification de la carte réseau de l'utilisateur, ou un contrôle de carte à puce de ce dernier (après introduction de cette carte dans un lecteur du micro-ordinateur) peuvent être mises en oeuvre. Une table aléatoire Tc peut ensuite être générée, à ir de la table T contenue dans les moyens de mémorisation 12 du serveur 10 et de la fonction fp; de personnalisation contenue dans les moyens de mémorisation 14 du serveur. Cette table Tc est fournie au client qui la mémorise sous forme de fichier dans les moyens de mémorisation 64 de son propre appareil. Lorsque l'utilisateur est intéressé par le décryptage certaines données il l'indique à l'aide d'un curseur qu'il déplace sur son écran et de la souris 72 en cliquant sur un bouton. Le serveur 10 identifie alors la personne qui a formulé la requête, et procède à la transaction, est-à-dire à l'envoi, à l'utilisateur concerné, des index i'k des données de décryptage dans la table Tc du client ou de l'utilisateur. Eventuellement cet envoi n'est réalisé qu'après encaissement, par le gestionnaire du serveur 10, d'un certain montant, ou après enregistrement de données, par ce même gestionnaire en vue d'un tel encaissement. L'utilisateur 20 mémorise les données i'k dans une zone mémoire 64 de son propre appareil et, lorsqu'il le souhaitera, pourra mettre oeuvre le programme L, stocké initialement dans zone mémoire 66 de son appareil, pour décrypter les données selon un procède conforme à l'invention. Ce programme L lit chacune des données de décryptage dans la table Tc du client, et ajoute ou soustrait les valeurs nécessaires aux valeurs cryptées pour effectuer une opération de décryptage. Ce programme L est donc le programme qui permet de réaliser les opérations de décryptage. II se construit à partir du cryptage réalisé. Dans le cas où les données sont des données audio, la carte son 74 les enceintes 50, 51, permettent de restituer à l'utilisateur un signal sonore analogique. II a été expliqué ci-dessus que, conformément à l'invention, une méthode construction de la table Tc du client peut consister à combiner un certain nombre de fonctions pseudo-aléatoires, par exemple selon l'une des formules (3), (8) ou (9) déjà indiquées ci-dessus. II est donc possible de calculer, dans le serveur 10 lui même, l'ensemble résultant de la combinaison de la fonction f, des fonctions g; et la fonction de personnalisation fp,;, c'est-à-dire l'ensemble de chaque table T,,, puis d'envoyer cette table pour stockage chez l'utilisateur. Selon une variante, il est également possible de ne réaliser, dans le serveur 10, que le calcul d'une partie de l'ensemble de la combinaison, par exemple gn-k O gn-k-1 ..........o92 O 91 O f O fp,; (k > o), (11) puis de transmettre ensuite les données relatives à chacune des fonctions gn-k+1, gn-k+2, .... , gn à l'utilisateur qui pourra stocker ces données dans les moyens de mémorisation 64 et calculer ensuite lui-même chacune de ces fonctions gn-k+1, gn-k+2, ...., g. Cette manière de procéder présente l'avantage suivant : la ligne (par exemple la ligne 41 pour le micro inateur 42 de la figure 3), qui relie l'utilisateur au réseau, peut avoir un débit plus ou moins important. Aujourd'hui, avec les modem actuellement utilisés, il est possible de considérer qu'un débit inférieur à 100 k octetsls est un débit réduit, tandis qu'une ligne à débit supérieur à 100 kOls peut être qualifiée de ligne à haut débit. En fonction du débit de la ligne du client ou de l'utilisateur, on pourra transférer, en un temps donné, une plus ou moins grande quantité d'informations. Alors il peut être souhaitable, à la fois pour des raisons techniques et pour des raisons commerciales, de transférer les données de la table T. en un temps donné, par exemple en moins de 15 min, du serveur 10 à l'utilisateur 40. En fonction du débit de la ligne du client, le serveur 10 pourra donc ne réaliser le calcul de la combinaison de fonctions pseudo-aléatoires que jusqu'à l'ordre ,_k. Puis il transférera les données relatives aux fonctions gn- k+1, gn-k+2,..... au client, ce transfert des fonctions g; d'indice ; supérieur ou égal a n-k+1 étant économe en terme de quantité d'informations, et étant donc compatible avec un débit limité de la ligne du client et de l'utilisateur. Par conséquent, pour un client ou un utilisateur possédant une ligne rapide, l'ensemble du calcul de la table Tc sera réalisé dans le serveur 10, puis le résultat du calcul sera intégralement transféré chez l'utilisateur. Pour un client ou un utilisateur ayant une ligne à débit faible, une partie seulement du calcul sera réalisée par le serveur 10, et reste du calcul sera effectué par le micro-ordinateur 40 de l'utilisateur, par exemple à l'aide du logiciel L mémorisé par celui-ci. Lors de la connexion d'un utilisateur au serveur 10, ce dernier peut éventuellement tester la vitesse de la ligne l'utilisateur, par exemple en envoyant un signal ou une information déterminé, appelant une réponse de la part de l'appareil de l'utilisateur, en déterminant l'instant retour de cette réponse. On peut aussi commencer par envoyer les valeurs résultant de l'appli ion de f o fpj, puis celles obtenues par application de g,, puis celles obtenues par application de 92. Pour l'application g; , un certain temps limite prédéterminé sera écoulé, et le serveur fait alors calculer le resten de la combinaison par l'appareil de l'utilisateur. De cette manière, il est possible de varier la quantité d'informations transmises du serveur à l'utilisateur. Typiquement, la table Tc du client a une taille d'environ quelques dizaines de mégaoctets, par exemple 50 Moctets, tandis que le résultat de la fonction f (celle des formules (8), (9) (10) ci-dessus) a une taille l'ordre de quelques dizaines ou quelques centaines de k0, par exemple 16k0. rapport entre ces deux tailles est donc typiquement d'au moins ou 103. Le rapport de la taille des données transmises à la taille du résultat la fonction f pourra donc varier en fonction du débit de la ligne utilisateur, comme expliqué ci-dessus. Le système de cryptage et de diffusion données selon l'invention peut concerner aussi bien des données audio, comme déjà mentionné ci-dessus, que des données vidéo. Dans tous les cas, il est préférable de séparer l'ensemble des données en deux familles - un premier ensemble de données, non-crypté, et dont la restitution permet d'avoir une information de qualité réduite, - un deuxième ensemble de données, crypté, qui permet, en combinaison avec le premier ensemble, une restitution de qualité améliorée. Dans le cas de données audio, on pourra séparer données bandes passantes - le premier ensemble de données correspondant aux fréquences comprises entre 0 et 4 000 Hertz. - le second ensemble de données pour des fréquences supérieures à 4 000 Hertz. Le premier ensemble permet alors une écoute qualité reduite, par exemple comparable à la qualité offerte par ligne téléphonique courante, le second ensemble de données contenant les informations complémentaires permettant la restitution d'un son qualité CD. II est ainsi possible de disposer de données, et de percevoir ou de visualiser un signal analogique correspondant en qualité reduite, de manière libre, et d'avoir accès à la meilleure qualité après avoir passé une transaction avec le gestionnaire du serveur 10, qui fournit clé de décryptage contre paiement. Dans le cas d'une image, par exemple fournie sous forme de données correspondant à 200 x 200 pixels, il est possible de separer les données en un premier ensemble, constitutif d'une image de base, et en un deuxième ensemble conférant une certaine finesse à l'image de base, ce deuxième ensemble de données étant crypté. L'invention s'applique également à la diffusion de fichiers vidéo associant des données audio et des données d'image, et plus généralement à la diffusion de données cryptées d'un signal physique ou correspondant à un signal physique. Elle s'applique également à la diffusion de fichiers littéraires, est-à-dire formés ou essentiellement formés de caractères littéraires. Dans de tels fichiers, on ne laisse en clair que quelques extraits du texte complet, ainsi que des résumés de certaines parties. Ces éléments peuvent être lus sans décryptage. Les parties originales manquantes, données uniquement sous forme de résumés, sont disponibles uniquement sous forme chiffrée ou cryptée. Dans ce cas, le déchiffrement imparfait peut être effectué en jouant sur l'écartement des mots ou des lettres lors de la mise en forme du texte en vue de l'impression. L'ensemble du procédé déjà décrit ci-dessus s'applique, en considérant lettres de chaque texte comme des caractères ASCII. Là encore, l'utilisateur dispose préalablement d'un fichier de données cryptées, par exemple sur CD ROM, ainsi que d'un logiciel décryptage, ces deux éléments étant les mêmes pour tous les utilisateurs ou pour un groupe d'utilisateurs. Une transaction avec le serveur permet à chacun des utilisateurs de recevoir l'information sur la position, dans sa table personnalisée, des données de décryptage Un autre exemple d'application concerne la diffusion de logiciels partiellement cryptés. Ces logiciels peuvent préalablement être la disposition de tout utilisateur. Par exemple, l'utilisateur dispose d'une disquette sur laquelle le logiciel est copié. Ou bien encore, le logiciel fait partie d'options livrées avec un système d'exploitation, et qui sont cryptées, l'utilisateur devant passer une transaction avec le distributeur avant recevoir les données de décryptage. Dans ce cas les index transmis à l'utilisateur lui permettent lire données de décryptage d'un logiciel Dans tous les cas, après déchiffrement de la partie complémentaire, le fichier de données est pleinement reconstitué et remis sous une forme exploitable pour l'utilisateur. La figure 3 ci-dessus a été décrite dans le cas d'une connexion à l'Internet des différents utilisateurs. II est également possible de passer par un numéro spécial téléphonique dédié, et facturé à l'utilisation, par exemple en fonction du temps de la communication téléphonique, au cas où l'utilisateur ne disposerait pas de services Internet. L'utilisateur reçoit alors les données dans son micro-ordinateur par l'intermédiaire de sa ligne téléphonique et d'un modem. La figure 5 représente diverses étapes d'un procédé production de CD audio cryptés conformément à l'invention. Dans une première étape S20, un signal audio original sélectionné, et éventuellement numérisé. On procède ensuite à une discrimination acoustique (étape S22) permettant de séparer le fichier de données numériques initiales en un fichier de données 80 indispensables, et donc non crypté, et un fichier 82 de données complémentaires, destiné à être crypté. On procède ensuite à une éventuelle compression. Une étape S24 de cryptage permet de produire une table 86 de données cryptées à partir des données de l'ensemble 82, et une table 84 de données non cryptées, équivalente à l'ensemble 80 de données décrit précédemment. données peuvent être enregistrées sur un support physique. Dans le cas de données audio, on pourra ainsi produire des CD 88-94 qui peuvent être distribués à chacun des utilisateurs 40, 42, 44, lecture de ces supports, sans décryptage, donne première indication, à chacun des utilisateurs, des données audio concernées. Lorsqu'un utilisateur décide de percevoir les données avec une quali améliorée, il réalise avec le gestionnaire du serveur 10 transaction et le logiciel L mémorisé dans son micro-ordinateur permet de décrypter données. Ainsi, l'invention permet de transmettre les mêmes données cryptées à divers utilisateurs, par exemple sur un support physique. procédé peut s'appliquer également à la réalisation de tout support physique de données cryptées. II peut s'agir par exemple d'un CD ROM sur lequel sont enregistrées des données d'un texte littéraire ou bien d'une disquette sur laquelle des données d'une application ou d'un programme informatique partiellement crypté sont enregistrées. II n' donc pas nécessaire de transmettre ces données par le réseau 20, celles ci étant prealablement transmises à l'utilisateur. Seules la table de chaque utilisateur et les index des données de décryptage dans cette table sont transmises par voie électronique par réseau(x) à chaque utilisateur. figure 6 représente schématiquement les étapes d'une transaction entre un utilisateur et le gestionnaire du serveur 10. Dans première étape S40, un utilisateur, que l'on suppose enregistré auprès du serveur 1 formule urne requête pour l'acquisition d'une licence, c'est-à- dire pour l'acquisition de données lui permettant de décrypter la partie cryptée des données dont il dispose. L'étape S42 est une étape de transaction commerciale, le serveur 10 identifiant l'utilisateur qui a formé la requête dans l'étape précédente, ainsi que les données nécessaires au paiement du service constitué par la fourniture d'une clé de décryptage. Dans une étape suivante (S44) le serveur 10 envoie à l'utilisateur clé de décryptage constituée par les données d'index i'k. Ces données sont stockées dans une zone mémoire 64 (voir figure 4) du micro-ordinateur de l'utilisateur. cours d'une étape suivante (S46) l'utilisateur peut mettre en oeuvre le logiciel L qui est chargé dans une zone memoire 66 de son appareil et, à l'aide de la clé de décryptage qui lui a été fournie, décrypter les données. Dans le cas de données audio, il procède alors à l'audition de morceaux de musique sélectionnés. Dans le cas données vidéo, son appareil est par exemple équipé d'une carte vidéo. Les données fournies au client, par exemple sur un support tel que le CD sont de préférence comprimées. Dans le cas de données vidéo, on pourra utiliser une compression de type MPEG. Dans le cas de données audio, on pourra utiliser un codage de type codage de HUFFMAN, permet de coder les données les plus fréquentes sur moins de bits et les données les moins fréquentes sur un nombre plus important de bits. Le résultat de l'échantillonnage de l'information initiale peut être remplacé par un indice dans une table contenant un nombre plus réduit de valeurs possibles. L'indice étant plus petit que la donnée, la taille prise pour le codage de l'indice est plus petite que celle de la donnée initiale, permettant ainsi une réduction de la taille binaire de la donnée originale, au prix d'une perte de qualité. Cette compression est d'ailleurs utilisée par la compression MPEG de données vidéo. La description ci-dessus concerne également des signaux analogiques, qui sont cryptés par tout procédé analogique modulant le signal original. Par exemple les crêtes de tension ou des fréquences du signal sont modifiées. Selon un autre exemple, on met en ceuvre des filtres dont les paramètres dépendent du temps selon une cryptographie définie. REVENDICATIONS 1. Procédé de transmission, à partir de moyens informatiques (10) vers au moins deux dispositifs informatiques distants (40,42,44,46) qui sont reliés par réseaux (20,41,43,45,47) aux moyens informatiques, de données de décryptage de données cryptées, caractérisé en ce que: - les données cryptées sont identiques pour tous dispositifs distants, et comportent des données et des données de cryptage d'au moins une partie de ces données, on forme, pour chaque appareil distant, une table pseudo- aléatoire index (Tc), propre à chaque appareil distant, on transmet, à au moins un des appareils distants, un ensemble index identifiant des données de décryptage, ou données à partir desquelles des données de décryptage peuvent être calculées, dans la table pseudo-aléatoire propre audit appareil distant. Procédé selon la revendication 1, les données cryptées étant des données analogiques ou numériques. Procédé selon la revendication 1 ou 2, chaque table pseudo- aléatoire étant obtenue par combinaison d'une table pseudo-aleatoire (T) de référence et d'une fonction (fp,i) propre à chaque appareil distant. Procédé selon la revendication 3, la table de référence (T) étant obtenue par combinaison d'au moins deux fonctions pseudo- aléatoires (f,g1,.... gn). Procédé selon l'une des revendications 1 à 4, dans lequel la table pseudo-aléatoire d'index correspondant à un des appareils distants est calculée par les moyens informatiques (10) et est transmise par les moyens informatiques à chaque terminal distant. Procédé selon l'une des revendications 1 à 4, dans lequel les moyens informatiques transmettent à un ou plusieurs terminaux distants données pour calculer la ou les table(s) pseudo aléatoire(s) d'index correspondante(s), cette ou ces table(s) étant calculée(s) par les appareils distants correspondants. 7. Procédé selon la revendication 6, la quantité de données transmises à un appareil distant pour le calcul de sa table pseudo- aléatoire étant déterminée en fonction du débit de la ligne de transmission (41 45,47) qui relie ledit appareil distant aux moyens informatiques. 8. Procédé selon l'une des revendications 1 à 7, l'ensemble d'index transmis à chaque appareil distant pour identifier les données de décryptage dans sa propre table pseudo-aléatoire étant fonction de chaque appareil distant. 9. Procédé selon l'une des revendications précédentes, les données de décryptage étant obtenues par condensation à partir donnees identifiées par l'ensemble d'index transmis. 10. Procédé selon l'une des revendications précédentes, données cryptées étant regroupées en intervalles de cryptage (1,11,111,1V). 11. Procédé selon l'une des revendications précédentes, données cryptées étant cryptées avec au moins deux niveaux de cryptage, chaque niveau de cryptage à partir du deuxième dépendant du précédent. 12. Procédé selon l'une des revendications précédentes, les données cryptées étant des données audio ou vidéo. 13. Procédé selon l'une des revendications 1 à 11, les données cryptees étant des données correspondant à un texte littéraire. 14. Procédé selon l'une des revendications 1 à 11, les données cryptées étant des données d'un logiciel ou d'une application informatique. 15. Procédé selon l'une des revendications précédentes, les données étant séparées en un premier ensemble de données non cryptées et un deuxième ensemble de données cryptées. 16. Procédé selon l'une des revendications précédentes, le ou les réseaux reliant au moins un dispositif informati distant (40,42,44,46) aux moyens informatiques (20) étant le réseau Internet. 17. Procédé selon l'une des revendications 1 à ou les réseaux reliant au moins un dispositif informatique distant (40,42,44,46) aux moyens informatiques (10) étant le réseau téléphonique. Procédé d'échange de données entre des moyens informatiques (10) et des dispositifs informatiques distants (40,42,44,46) qui sont reliés aux moyens informatiques par réseau(x) (20,41,43 47) , comportant: l'identification de chaque utilisateur dans une base de données ou des moyens de mémorisation (16) des moyens informatiques (10), - l'attribution, à ou pour chaque dispositif informatique distant, d'une table ou d'une suite pseudo-aléatoire de données ou d'index, personnalisée ou propre à chaque dispositif informatique distant. 19. Dispositif (10) pour transmettre des données décryptage de données cryptées vers au moins deux appareils informatiques distants, caractérisé en ce qu'il comporte des moyens informatiques (1 reliés par réseaux (20) aux appareils informatiques distants (40,42,44,46) et programmés pour déterminer, pour chaque appareil, une table pseudo-aléatoire d'index (Tc) ou des données pour former une table pseudo-aléatoire d'index, propre à chaque appareil distant, déterminer, pour chaque appareil distant, un ensemble d'index identifiant des données de décryptage dans la table pseudo- aléatoire propre audit appareil distant, envoyer, à chaque appareil distant, la table pseudo-aléatoire d'index ou les données cour former cette table Dseudo-aléatoire d'index. ainsi que données d'ensemble d'index identifiant données de décryptage dans la table pseudo-aléatoire propre à chaque appareil distant. Dispositif selon la revendication 1 les moyens informatiques (10) étant en outre programmés pour envoyer à chaque appareil distant des données pour former une table pseudo-aléatoire d'index selon un format fonction du débit de la ligne qui relie chaque appareil distant au(x) réseau(x).