Brevet FR2793050A1 — publié le 20001103

La présente invention concerne le domaine technique des systèmes de traitement de données au sens général et elle vise, plus précisément, les moyens pour sécuriser l'utilisation d'un logiciel fonctionnant sur lesdits systèmes de traitement de données. L'objet de l'invention vise, plus particulièrement, les moyens pour sécuriser un logiciel d'utilisation à partir d'une unité de traitement et de mémorisation d'un secret, désignée communément par carte à puce. Dans le domaine technique ci-dessus, le principal inconvénient concerne l'emploi non autorisé de logiciels par des utilisateurs n'ayant pas acquitté des droits de licence. Cette utilisation illicite de logiciels cause un préjudice manifeste pour les éditeurs et les distributeurs de logiciels. Pour éviter de telles copies illicites, il a été proposé dans l'état de la technique diverses solutions pour protéger des logiciels. Ainsi, il est connu une solution de sécurisation consistant à mettre en oeuvre un système matériel de protection, tel qu'un élément physique appelé clé de protection ou "dongle" en terminologie anglo-saxonne. Une telle clé de protection devrait garantir à l'éditeur du logiciel l'exécution du logiciel uniquement en présence de la clé. Or, il doit être constaté qu'une telle solution est inefficace car elle présente l'inconvénient d'être facilement contournable. Une personne mal intentionnée ou pirate peut, à l'aide d'outils spécialisés, tels que des désassembleurs, supprimer les instructions de contrôle. Il devient alors possible de réaliser des copies illicites correspondant à des versions modifiées des logiciels n'ayant plus aucune protection. De plus, cette solution ne peut pas être généralisée à tous les logiciels, dans la mesure o il est difficile de connecter plus de deux clés de protection sur une même machine. L'objet de l'invention vise justement à remédier aux inconvénients énoncés ci- dessus en proposant un procédé pour sécuriser un logiciel d'utilisation à partir d'une unité de traitement et de mémorisation d'un secret, dans la mesure o la présence d'une telle unité est indispensable au fonctionnement correct du logiciel. Pour atteindre un tel objectif, le procédé selon l'invention vise à sécuriser un logiciel d'utilisation à partir d'au moins une unité de traitement et de mémorisation d'au moins un secret d'utilisation, le logiciel fonctionnant sur un système de traitement de données d'utilisation. Conformément à l'objet de l'invention, le procédé consiste: * à mettre à disposition d'un utilisateur, un logiciel d'utilisation et des données modifiées obtenues à partir d'un secret de génération et d'au moins une partie de données originales associées au logiciel d'utilisation, * et dans une phase de mise en oeuvre du logiciel d'utilisation avec les données modifiées associées: - à choisir un paramètre d'entrée constitué par au moins une partie des données modifiées, - à transférer le paramètre d'entrée du système d'utilisation à l'unité d'utilisation, - à assurer la détermination par ladite unité d'utilisation, d'au moins un paramètre de sortie à partir du secret d'utilisation et du paramètre d'entrée, - à transférer le paramètre de sortie de l'unité d'utilisation au système d'utilisation, - et à mettre en oeuvre au moins une fonction d'utilisation utilisant au moins en partie, le paramètre de sortie, en vue d'obtenir les données originales. Le procédé selon l'invention permet ainsi de sécuriser un logiciel d'utilisation par la mise en oeuvre d'une unité de traitement et de mémorisation d'un secret d'utilisation, qui présente la particularité de conserver l'information confidentielle même après plusieurs utilisations du secret. Il apparaît ainsi que toute version dérivée du logiciel tentant de fonctionner sans ladite unité "ad hoc", est incapable de se servir des données produites par un logiciel de génération, dans la mesure o le secret contenu dans l'unité de traitement et de mémorisation est hors d'atteinte. L'utilisation d'un secret de génération permet de modifier de manière non prédictible le format de stockage des données, de sorte que l'utilisation des données modifiées ne permet pas d'obtenir un fonctionnement correct du logiciel si l'utilisateur ne possède pas le secret d'utilisation. L'objet de l'invention trouve une application particulièrement avantageuse, notamment dans le cas de logiciels associés à la distribution fréquente de bibliothèques au sens général, dont le contenu constitue des données présentant un intérêt à être protégées, comme par exemple les encyclopédies ou les jeux. Diverses autres caractéristiques ressortent de la description faite cidessous en référence aux dessins annexés qui montrent, à titre d'exemples non limitatifs, des formes de réalisation et de mise en oeuvre de l'objet de l'invention. La fig. 1 est un schéma illustrant un exemple de réalisation matérielle permettant la mise en oeuvre de l'objet de l'invention pendant une première phase, à savoir de génération de données modifiées. La fig. 2 est un schéma illustrant un exemple de réalisation matérielle permettant la mise en oeuvre de l'objet de l'invention pendant une deuxième phase, à savoir de mise en oeuvre du logiciel d'utilisation avec ses données modifiées. Les fig. 3 à 6 sont des schémas de principe d'utilisation de données modifiées associées à un logiciel, selon diverses variantes de réalisation. Conformément à l'objet de l'invention, le procédé selon l'invention comporte une première étape ou phase pendant laquelle des données modifiées sont générées à partir de données originales devant être protégées et associées à un logiciel d'utilisation. Le procédé selon l'invention comporte une deuxième étape ou phase au cours de laquelle est mis en oeuvre le logiciel d'utilisation avec les données modifiées. La fig. 1 illustre un dispositif général lg permettant de mettre en oeuvre la première phase du procédé conforme à l'invention. Ce dispositif de génération lg est adapté pour mettre en oeuvre un logiciel de génération 2g de données modifiées dont la fonction apparaîtra plus clairement dans la suite de la description. Dans l'exemple de réalisation illustré, le dispositif de génération 1g comporte un système de traitement de données, dit de génération 3g de tous types connus en soi, appelé système de génération 3g dans la suite de la description. Dans l'exemple considéré, le système de génération 3g constitue un ordinateur mais il doit être considéré qu'un tel système de génération 3g peut faire partie intégrante de divers dispositifs, au sens général. Dans l'exemple considéré, le système de génération 3g comporte au moins un processeur 4g, au moins une mémoire de travail 5g, au moins un support de mémorisation de données 6g et au moins un circuit interface d'entrées-sorties 7g. Classiquement, les divers composants du système de génération 3g sont reliés entre-eux par l'intermédiaire d'un bus de communication 8g. Selon une première variante de réalisation, le circuit interface 7g est relié à un lecteur 10g d'une unité 11g de traitement et de mémorisation, dite de génération, comportant au moins un secret de génération Sg. Selon cet exemple, cette unité de génération 11g est destinée à être lue par le lecteur 10g, mais il doit être considéré qu'une telle unité de génération 11g peut se présenter sous la forme d'une clé matérielle de tous types, connectée sur un circuit d'entrée/sortie, directement sur le bus de communication 8g, ou par tout autre moyen de communication, tel qu'une liaison radio, par exemple. D'une manière générale, l'unité de génération 11g comporte au moins un secret de génération Sg ou un dispositif de mémorisation d'une information codée, des moyens algorithmiques de traitement de données, et un système d'échange de données entre l'unité de génération 11g et le système génération 3g. Classiquement, l'unité de génération 11g est réalisée par une carte à puce. Selon une deuxième variante de réalisation, le secret de génération Sg est un paramètre du logiciel de génération 2g. Un tel dispositif de génération lg permet d'exécuter la phase de création de données modifiées. Lors de cette phase, il est établi en relation du logiciel d'utilisation 2, des données dites originales D associées. Ces données originales D, qui sont destinées à être associées au logiciel d'utilisation 2,, lors de la mise en oeuvre de ce dernier, constituent des données devant être protégées compte tenu de leur intérêt économique. Ces données originales D peuvent constituer, par exemple, une bibliothèque associée à un logiciel d'encyclopédie ou des scènes de jeux associées à un logiciel de jeu. A partir d'au moins une partie de ces données originales D, le procédé assure la détermination de données modifiées D' en mettant en oeuvre un secret de génération Sg. Ces données originales D et les données modifiées D' sont obtenues à partir d'un logiciel de génération 2g au sens général. Selon la première variante de réalisation, le secret de génération Sg peut être inclus dans une unité de traitement et de mémorisation, dite de génération 11g. La mise en oeuvre de cette unité de génération 11g permet, lorsque le secret de génération Sg n'est pas connu, de rendre difficile, voire impossible, la déduction des données modifiées D' à partir des données originales D, même pour la personne ayant généré les données modifiées associées au logiciel. Selon la deuxième variante de réalisation, le secret de génération Sg peut être directement associé au logiciel de génération 2g, de sorte que son caractère secret existe à l'exclusion du ou des développeurs du logiciel. Après cette phase de codage ou de génération de données modifiées, les données modifiées D' sont fournies aux utilisateurs en association avec le logiciel d'utilisation 2,. Ainsi, au terme d'une phase de codage, il est mis à disposition d'au moins un utilisateur, le logiciel d'utilisation 2, et des données modifiées D' obtenues à partir d'un secret de génération Sg et d'au moins une partie des données originales associées au logiciel d'utilisation 2u. Un tel logiciel d'utilisation avec ses données modifiées D', peut alors être mis en oeuvre par au moins un utilisateur pendant une phase d'utilisation. Au cours de cette phase d'utilisation, chaque utilisateur pourvu d'un secret d'utilisation associé audit logiciel 2., est en mesure de modifier de façon inverse ou décoder les données modifiées D', afin de retrouver et d'utiliser les données originales D. Il doit être compris que les données modifiées D' sont retraduites par le logiciel d'utilisation 2u pour permettre de retrouver les données originales D, en présence du secret d'utilisation S.. La fig. 2 illustre un dispositif d'utilisation lu permettant de mettre en oeuvre la deuxième phase du procédé conforme à l'invention. Dans l'exemple de réalisation illustré, le dispositif d'utilisation 1, comporte un système de traitement de données, dit d'utilisation 3. de tous types connus en soi, désigné par système d'utilisation 3u dans la suite de la description. Dans l'exemple considéré, le système d'utilisation 3. constitue un ordinateur mais il doit être noté qu'un tel système d'utilisation 3. peut faire partie intégrante de diverses machines, dispositifs ou véhicules au sens général. Dans l'exemple considéré, le système d'utilisation 3u comporte au moins un processeur 4., au moins une mémoire de travail 5, au moins un support de mémorisation de données 6. et au moins un circuit interface d'entrées-sorties 7u. Classiquement, les divers composants du système d'utilisation 3u sont reliés entre-eux par l'intermédiaire d'un bus de communication 8.. Le circuit interface 7u est relié à un lecteur 10u d'une unité de traitement et de mémorisation, dite d'utilisation 11u, comportant au moins un secret d'utilisation S,,. Dans l'exemple illustré, cette unité 11., dite d'utilisation dans la suite de la description, est destinée à être lue par le lecteur 10., mais il doit être considéré qu'une telle unité d'utilisation 11u peut se présenter sous la forme d'une clé matérielle de tous types, connectée sur un circuit d'entrée/sortie, directement sur le bus de communication 8., ou par tout autre moyen de communication, tel qu'une liaison radio, par exemple. D'une manière générale, l'unité d'utilisation 1lu comporte au moins un secret d'utilisation Su ou un dispositif de mémorisation d'une information codée, des moyens algorithmiques de traitement de données, et un système d'échange de données entre l'unité d'utilisation 11.u et le système d'utilisation 3u. Classiquement, l'unité d'utilisation 11. est réalisée par une carte à puce. La fig. 3 illustre une première variante de réalisation du procédé conforme à l'invention permettant de traduire de façon inverse, les données modifiées D', afin de retrouver les données originales D, en mettant en oeuvre le dispositif d'utilisation 1,. Le procédé consiste à choisir au moins un paramètre d'entrée Pe pour l'unité d'utilisation 1lU. Ce paramètre d'entrée Pe est constitué par au moins une partie des données modifiées D'. Le paramètre d'entrée Pe est transféré du système d'utilisation 3. à l'unité d'utilisation Il,. Cette unité d'utilisation 11, assure la détermination d'au moins un paramètre de sortie P. à partir d'au moins un secret d'utilisation S,, et du paramètre d'entrée Pe. Il est à noter que le secret d'utilisation S. peut être constitué soit par au moins une fonction secrète qui, à partir du paramètre d'entrée Pe, génère le paramètre de sortie P, soit par au moins une information secrète et au moins une fonction de conversion connue ou non, permettant de délivrer à partir du paramètre d'entrée P, et de l'information secrète, le paramètre de sortie P,. La mise en oeuvre de l'unité d'utilisation 11u permet, lorsque le secret d'utilisation n'est pas connu, de rendre difficile, voire impossible, la déduction du paramètre de sortie P,, à partir du paramètre d'entrée Pe. L'unité d'utilisation 11. assure ensuite le transfert du paramètre de sortie P, au système d'utilisation 3.. Un tel système d'utilisation 3. assure la mise en oeuvre d'au moins une fonction d'utilisation F,, qui en utilisant au moins en partie le paramètre de sortie P, permet d'obtenir les données originales D. Dans un exemple préféré de la variante de réalisation illustrée à la fig. 3, le paramètre d'entrée Pe est égal aux données modifiées D', tandis que le paramètre de sortie P, est égal aux données originales D recréées. Lors de la phase de génération des données, le secret de génération Sg assure une fonction de transformation inverse du secret d'utilisation S., c'est-à-dire que son paramètre d'entrée est égal aux données originales D, tandis que le paramètre de sortie de l'unité de génération est égal aux données modifiées D'W. Il apparaît ainsi que le détenteur d'une unité d'utilisation 11. affectée à un logiciel d'utilisation 2. déterminé peut retrouver et utiliser les données originales D associées audit logiciel. En effet, la mise en oeuvre du logiciel d'utilisation 2. permet, en présence de l'unité d'utilisation Il,, "ad hoc", de traduire les données modifiées D' associées audit logiciel 2u, en vue d'obtenir les données originales D. Par contre, un utilisateur ne possédant pas l'unité d'utilisation 1lu correspondante au logiciel d'utilisation 2u peut utiliser ce dernier à l'exception des données originales D et au mieux avec les données modifiées. De plus, l'efficacité du procédé selon l'invention est réelle, même si la fonction d'utilisation Fu est connue et si les paramètres d'entrée Pc et de sortie P. sont observables et modifiables par une personne mal intentionnée en considérant, bien entendu, que le secret d'utilisation Su est conservé. En effet, une telle personne est incapable de retrouver la modification des données D' en D. Une personne mal intentionnée peut tenter de modifier le logiciel d'utilisation 2., de manière à ne plus avoir besoin de l'unité d'utilisation 11. correspondante. Pour ce faire, il convient de disposer, tout d'abord, de l'unité d'utilisation 11 "ad hoc". Ensuite, il est nécessaire que cette personne énumère l'ensemble des données modifiées D' pour soit établir une table de correspondance entre tous les paramètres d'entrée P. et les paramètres de sortie Ps, en vue de générer un pseudo-simulateur de l'unité d'utilisation 11,, soit recréer l'ensemble des données originales D et établir un nouvelle distribution du logiciel d'utilisation 2'u incluant ces données originales recréées à la place des données modifiées, et permettant de s'affranchir de la phase de décodage ou de traduction en sens inverse des données modifiées. Cependant, une telle tâche est difficile en raison du grand nombre de données originales. Dans l'exemple de réalisation illustré à la fig. 3, les données modifiées D' sont transférées totalement à l'unité d'utilisation il,,. Pour améliorer la vitesse d'un tel dispositif, les fig. 4 à 6 décrivent diverses variantes préférées de réalisation du procédé de sécurisation conforme à l'invention. La fig. 4 illustre une deuxième variante de réalisation pour la phase de mise en oeuvre du logiciel d'utilisation 2u avec les données modifiées. Selon cet exemple, les données modifiées D' sont décomposées en au moins une première partie D'1 et une deuxième partie D'2. Au moins la première partie D', des données modifiées est choisie comme paramètre d'entrée Pe. Ce paramètre d'entrée Pe est transféré à l'unité d'utilisation l1u qui, à l'aide du secret d'utilisation S, détermine un paramètre de sortie Ps. L'unité d'utilisation Ilu transfère le paramètre de sortie P. au système d'utilisation 3.. Le système d'utilisation 3, met en oeuvre une fonction d'utilisation F,, qui comporte une fonction de traduction inverse Ti qui en utilisant au moins en partie le paramètre de sortie P. et la deuxième partie D'2 des données modifiées D', permet de retrouver les données originales D. Selon un exemple préféré de réalisation de la variante illustrée à la fig. 4, il est choisi comme première partie et deuxième partie des données modifiées D', respectivement un nombre pseudo-aléatoire qui a été choisi lors de la phase de génération, et des données originales qui ont été modifiées lors de la phase de génération et appelées données originales modifiées D'2. Ce nombre pseudo-aléatoire est utilisé comme paramètre d'entrée Pe et transformé par le secret d'utilisation Su pour obtenir le paramètre de sortie Ps. La fonction de traduction inverse Ti permet, à partir du paramètre de sortie Ps et des données originales modifiées D'2, d'obtenir les données originales D. Dans la phase de génération correspondant à cet exemple préféré de réalisation, il est choisi un nombre pseudo-aléatoire comme paramètre d'entrée du secret de génération Sg qui délivre un paramètre de sortie de génération. Un tel paramètre de sortie est utilisé pour modifier par une fonction de traduction T, les données originales D, en vue d'obtenir les données originales modifiées. Ces données originales modifiées forment en association avec le nombre pseudo-aléatoire, les données modifiées D'. Bien entendu, la fonction de traduction inverse Ti est constituée par la fonction inverse de la fonction de traduction T ou par une combinaison de fonctions élémentaires équivalentes. Selon la variante illustrée à la fig. 4, la modification des données originales D est totalement indépendante de celles-ci. La fig. 5 illustre une troisième variante de réalisation pour la phase de mise en oeuvre du logiciel d'utilisation 2u avec les données modifiées D'. Selon cette variante de réalisation, les données modifiées D' sont formées d'une première partie Di et d'une deuxième partie D'2. Au moins une partie de cette première partie Di, qui correspond au paramètre d'entrée Pe, est transférée à l'unité d'utilisation 11, qui détermine un paramètre de sortie Ps à l'aide du secret d'utilisation S.. Le paramètre de sortie P. est transféré au système d'utilisation 3, qui met en oeuvre une fonction d'utilisation F, comportant une fonction de traduction inverse Ti qui en utilisant au moins en partie, le paramètre de sortie P. et la deuxième partie D'2 des données, permet de retrouver la deuxième partie originale D2 des données. La fonction d'utilisation Fu délivre également la première partie D1 des données originales qui associée à la deuxième partie D2, forment les données originales D. Selon un exemple préféré de réalisation de la variante illustrée à la fig. 5, la première partie Di correspond à une partie des données originales, tandis que la deuxième partie D'2 correspond à l'autre partie des données originales qui ont été modifiées lors de la phase de génération et qui est appelée deuxième partie modifiée D'2 des données. La première partie Di des données originales est transformée par le secret d'utilisation S. pour obtenir le paramètre de sortie Ps. Par ailleurs, la fonction d'utilisation Fu comporte une fonction de traduction inverse Ti qui, à partir du paramètre de sortie P, et de la deuxième partie modifiée 1D'2 des données, permet de retrouver la deuxième partie D2 des données originales. De plus, la fonction d'utilisation F. est adaptée pour délivrer aussi la première partie Di des données originales qui, en combinaison avec la deuxième partie D2 des données originales, forment les données originales D. Dans la phase de génération correspondant à cet exemple préféré de réalisation, les données originales D sont décomposées en une première partie Di et une deuxième partie 1D2. Au moins une partie de la première partie Di est utilisée comme paramètre d'entrée du secret de génération Sg qui délivre un paramètre de sortie de génération. Au moins une partie du paramètre de sortie de génération est utilisée par une fonction de traduction faisant partie d'une fonction de génération pour traduire la deuxième partie D2 des données originales, en vue d'obtenir une deuxième partie modifiée D'2 des données. A la première partie Di des données originales est associée cette deuxième partie modifiée D'2 des données, en vue de constituer les données modifiées D'. Selon cette variante de réalisation, la modification des données originales D dépend uniquement de celles-ci. La fig. 6 illustre une quatrième variante de réalisation pour la phase de mise en oeuvre du logiciel d'utilisation 2. avec les données modifiées 1D'. Selon cet exemple, les données modifiées D' sont décomposées en une première partie D1, une deuxième partie D'2 et une troisième partie D3. Le paramètre d'entrée Pe est constitué par au moins une partie de la première partie Dl et de la troisième partie D3. Le paramètre d'entrée P, est transféré à l'unité d'utilisation 11u, qui détermine un paramètre de sortie Ps à l'aide d'un secret d'utilisation S. . Le paramètre de sortie Ps est transféré au système d'utilisation 3u qui met en oeuvre une fonction d'utilisation F, comportant une fonction de traduction inverse Ti qui en utilisant au moins en partie le paramètre de sortie P. et la deuxième partie D'2 des données, permet de retrouver la deuxième partie originales D2 des données. La fonction d'utilisation F. délivre également la première partie Dl des données originales qui, associée à la deuxième partie originale D2 des données, forme les données originales D. Selon un exemple préféré de réalisation de la variante illustrée à la fig. 6, la troisième partie D3 correspond à un nombre pseudo-aléatoire qui a été choisi lors de la phase de génération, tandis que la première partie D1 correspond à une partie des données originales D, alors que la deuxième partie D'2 correspond à l'autre partie des données originales qui a été modifiée lors de la phase de génération et qui est appelée deuxième partie modifiée D'2 des données. Au moins une partie de la première partie Di des données originales et au moins une partie du nombre pseudo-aléatoire forment le paramètre d'entrée Pe qui est transformé par le secret d'utilisation S. pour obtenir le paramètre de sortie Ps. Par ailleurs, la fonction d'utilisation F, comporte une fonction de traduction inverse Ti qui, à partir du paramètre de sortie Ps et de la deuxième partie modifiée D'2 des données, permet de retrouver la deuxième partie D2 des données originales. De plus, la fonction d'utilisation F,, est adaptée pour délivrer aussi la première partie Di des données qui, en combinaison avec la deuxième partie D2 des données originales, forme les données originales D. Dans la phase de génération correspondant à cet exemple préféré de réalisation, les données originales D sont décomposées en une première partie Dl et une deuxième partie D2, tandis qu'un nombre pseudo-aléatoire est choisi comme troisième partie D3. Au moins une partie de la première partie Dides données et au moins une partie du nombre pseudo-aléatoire sont utilisées comme paramètres d'entrée du secret de génération Sg qui délivre un paramètre de sortie de génération. Au moins une partie du paramètre de sortie de génération est utilisée par une fonction de génération pour traduire la deuxième partie D2 des données originales, en vue d'obtenir une deuxième partie modifiée D'2 des données. Le nombre pseudo-aléatoire D3 et la première partie Dl des données originales sont associés à cette deuxième partie modifiée D'2, afin de constituer les données modifiées D'. Selon cette variante de réalisation, la modification des données originales D dépend simultanément de celles-ci et d'un nombre pseudo-aléatoire. Selon une caractéristique préférée de réalisation attachée aux exemples décrits aux fig. 5 et 6, la première partie Dl des données destinées à être transférées à l'unité d'utilisation 11., est traitée pour faciliter les opérations de traitement exécutées par l'unité d'utilisation l,. Cette partie Di des données est ainsi fournie en entrée à au moins une fonction de traduction d'utilisation intermédiaire Hl, telle qu'une fonction non inversible, par exemple du type "one way hash", de manière à obtenir au moins un paramètre d'entrée intermédiaire Pd. Ce paramètre d'entrée intermédiaire P, déterminé par le système d'utilisation 3, est éventuellement combiné avec la troisième partie D3 pour former le paramètre d'entrée Pe. Ce paramètre d'entrée Pe est transféré à l'unité d'utilisation 11,, de manière que cette dernière puisse assurer la détermination du paramètre de sortie Ps à partir du secret d'utilisation S. et du paramètre d'entrée intermédiaire Pei, et éventuellement de la troisième partie D3. Bien entendu, lors de la phase de génération des données modifiées D', le système de génération met en oeuvre au moins une fonction de traduction intermédiaire de génération, de manière à obtenir au moins un paramètre d'entrée intermédiaire de génération. Dans les exemples des fig. 5 et 6, il ressort que dans la phase d'utilisation, les données originales D sont obtenues au cours d'une étape de traitement mettant en oeuvre l'unitéd'utilisation I1,,. Bien entendu, il peut être prévu de recommencer n fois cette étape de traitement pour augmenter la complexité du décodage des données. Ainsi, les opérations suivantes peuvent être recommencées autant de fois que nécessaires, à savoir: - décomposer les données modifiées précédemment obtenues en au moins une première et une deuxième parties, déterminer au moins un paramètre de sortie à partir d'une fonction d'un ou de plusieurs secrets d'utilisation différents ou identiques de celui ou de ceux précédemment utilisés, et d'une partie des données, - modifier au moins l'une des autres parties des données par une fonction de traduction identique ou différente de celle précédemment utilisée, - et reconstituer des données après chaque phase de modification des données. Selon cet exemple de réalisation, lors de la phase de génération des données modifiées, les opérations de génération des données sont conduites dans l'ordre inverse, un nombre de fois n identique au nombre d'étapes effectuées lors de la phase d'utilisation. Selon une variante préférée de réalisation selon les fig. 5 et 6, les données modifiées D' sont composées d'au moins deux parties D'i, D'2, par exemple de tailles sensiblement équivalentes. Dans une première étape de traitement, la deuxième partie D'2 est utilisée comme paramètre d'entrée de l'unité d'utilisation 11,l en vue de retrouver la première partie Di des données originales. Après une première étape de traitement, il est obtenu des données intermédiaires constituées par au moins la première partie Di des données originales et la deuxième partie modifiée D'2 des données. Dans une deuxième étape de traitement, le rôle des parties Dl et D'2 est inversé. Ainsi, au moins la première partie Dl des données est utilisée comme paramètre d'entrée de l'unité d'utilisation 11u tandis que la deuxième partie modifiée D'2 des données originales est modifiée par une fonction de traduction, en vue de retrouver la deuxième partie D2 des données originales. I s'ensuit que l'ensemble des données originales 1D sont obtenues après un décodage de la totalité des données originales. Bien entendu, lors de la phase de génération, des opérations inverses sont effectuées afin de coder l'ensemble des données originales D. Selon une caractéristique préférée de mise en oeuvre de l'invention, les données modifiées 1D' sont écrites ou enregistrées sur le support 6. de mémorisation de données, associé au système de traitement de données 3, pour permettre l'utilisation des données modifiées 1D' lors de la phase d'utilisation du logiciel 2.. Bien entendu, le support 6, de mémorisation de données peut être constitué de toute manière connue, telle que par exemple un disque dur, une bande magnétique, un CD ROM, ou tout autre dispositif de mémorisation utilisé en vue du stockage ou d'une transmission de ces données. Le procédé selon l'invention décrit ci-dessus peut être mis en oeuvre avec différentes fonctions d'utilisation F. selon les objectifs souhaités par l'éditeur du logiciel protégé. Par exemple, la fonction d'utilisation F, peut comporter une fonction de cryptage. Dans ce cas, les données traduites sont manifestement incompréhensibles. Selon un autre exemple de réalisation, la fonction d'utilisation F, peut être une fonction de modification mineure pseudo-aléatoire des chiffres contenus dans les données originales. De cette manière, l'utilisateur d'un logiciel piraté 2', peut utiliser les données générées par la version originale du logiciel, mais celles-ci aboutissent à un fonctionnement erroné du logiciel d'utilisation 2'u. L'invention n'est pas limitée aux exemples décrits et représentés, car diverses modifications peuvent y être apportées sans sortir de son cadre. REVENDICATIONS: 1 - Procédé pour sécuriser un logiciel d'utilisation (2.) à partir d'une unité de traitement et de mémorisation d'utilisation (11.) comportant au moins un secret d'utilisation (S.), ledit logiciel fonctionnant sur un système de traitement de données d'utilisation (3.), caractérisé en ce qu'il consiste: - à mettre à disposition d'un utilisateur, un logiciel d'utilisation (2.) et des données modifiées (D') obtenues à partir d'un secret de génération (Sg) et d'au moins une partie de données originales (D) associées au logiciel d'utilisation (2u), - et dans une phase de mise en oeuvre du logiciel d'utilisation (2. ) avec les données modifiées (D') associées: 0 à choisir un paramètre d'entrée (Pe) constitué par au moins une partie des données modifiées (D'), 0 à transférer le paramètre d'entrée (Pe) du système d'utilisation (3.) à l'unité d'utilisation (11.), 0 à assurer la détermination par ladite unité d'utilisation (11.), d'au moins un paramètre de sortie (Ps) à partir du secret d'utilisation (S.) et du paramètre d'entrée (Pe), 0 à transférer le paramètre de sortie (Ps) de l'unité d'utilisation (11u) au système d'utilisation (3u), 0 et à mettre en oeuvre au moins une fonction d'utilisation (Fu) utilisant au moins en partie, le paramètre de sortie (Ps), en vue d'obtenir les données originales (D). 2 - Procédé selon la revendication 1, caractérisé en ce qu'il consiste, dans une phase de génération de données modifiées (D') précédant la mise à disposition du logiciel d'utilisation (2u): - à établir, à partir d'un logiciel de génération, des données dites originales (D) associées au logiciel d'utilisation (2.), - à assurer la détermination de données modifiées (D') à partir d'un secret de génération (Sg) et d'au moins une partie des données originales (D). 3 - Procédé selon la revendication 1, caractérisé en ce qu'il consiste: à choisir comme paramètre d'entrée (Pe), au moins en partie les données modifiées (D'), - et à mettre en oeuvre une fonction d'utilisation (F.) qui délivre les données originales (D) à partir du paramètre de sortie (Ps). 4 - Procédé selon la revendication 1, caractérisé en ce qu'il consiste: à décomposer les données modifiées (D') en au moins une première partie (D'y) et une deuxième partie (D'2), - à choisir comme paramètre d'entrée (Pe), la première partie (D') des données modifiées, - et à mettre en oeuvre une fonction d'utilisation (F0) qui délivre les données originales (D) en utilisant le paramètre de sortie (Ps) et la deuxième partie (D'2) des données modifiées. - Procédé selon la revendication 1, caractérisé en ce qu'il consiste: - à décomposer les données modifiées (D') en au moins une première partie (Di) et une deuxième partie (D'2), - à choisir comme paramètre d'entrée (Pe), la première partie (DI) des données modifiées, - et à mettre en oeuvre une fonction d'utilisation (Fu) qui délivre les données originales en utilisant le paramètre de sortie (Ps), la première partie (Di) et la deuxième partie (D'2) des données modifiées. 6 - Procédé selon la revendication 1, caractérisé en ce qu'il consiste: à décomposer les données modifiées (D') en au moins une première partie (D), une deuxième partie (D'2) et une troisième partie (D3), - à déterminer le paramètre d'entrée (Pe) à partir d'au moins la première partie (DI) et d'au moins la troisième partie (D3), - et à mettre en oeuvre une fonction d'utilisation (Fu) qui délivre les données originales (D) en utilisant le paramètre de sortie (Ps), la première partie (Di) et la deuxième partie (D'2) des données modifiées. 7 - Procédé selon la revendication 5 ou 6, caractérisé en ce qu'il consiste: - à choisir comme paramètre d'entrée (Pe), un paramètre d'entrée intermédiaire (Pei) défini par le système de traitement de données, à partir d'une fonction de traduction intermédiaire (H.) utilisant une partie des données modifiées, - et à assurer la détermination du paramètre de sortie à partir du secret d'utilisation (S.) et du paramètre d'entrée (Pe), constitué du paramètre d'entrée intermédiaire (Pei) et éventuellement de la troisième partie des données (D3). 8 - Procédé selon la revendication 1 ou 2, caractérisé en ce qu'il consiste à assurer détermination de données modifiées (D') à partir d'un secret de génération (Sg) contenu dans une unité de traitement et de mémorisation de génération (11g). 9 - Procédé selon la revendication 1, caractérisé en ce qu'il consiste à assurer la détermination de données modifiées (D') à partir d'un secret de génération (Sg) associé au logiciel de génération (2g). - Procédé selon la revendication 5 ou 6, caractérisé en ce qu'il consiste à recommencer n fois (avec n > 1), les opérations: - de décomposition des données modifiées précédemment obtenues en au moins une première et deuxième parties, - de détermination d'au moins un paramètre de sortie à partir d'une fonction d'un ou de plusieurs secrets d'utilisation différents ou identiques de ceux précédemment utilisés, et d'une partie des données, - de modification d'au moins l'une des autres parties des données par une fonction de traduction identique ou différente de celle précédemment utilisée, - et de reconstitution des données après chaque phase de modification des données. 11 - Procédé selon la revendication 10, caractérisé en ce qu'il consiste, dans la phase d'utilisation - dans une première étape de traitement: à décomposer les données modifiées (D') en au moins une première partie (D') et une deuxième partie (D'2), * à utiliser au moins en partie, la deuxième partie (D'2) comme paramètre d'entrée de l'unité de d'utilisation (11,.), en vue de retrouver la première partie (DI) des données originales, À et à constituer des données intermédiaires composées par au moins la première partie (Di) des données originales et la deuxième partie modifiée (D'2) des données, - et dans une deuxième étape de traitement: * à utiliser, au moins en partie, la première partie (Di) des données, comme paramètre d'entrée de l'unité d'utilisation (11u), en vue de retrouver la deuxième partie (D2) des données originales, * et à reconstituer les données originales (D) par la première partie (Di) et la deuxième partie (D2) des données. 12 - Procédé selon la revendication 10 ou 11, caractérisé en ce qu'il consiste à conduire n fois dans l'ordre inverse (avec n > 1), les opérations de traduction des données originales (D) pour obtenir les données modifiées (D'). 13 - Procédé selon la revendication 1, caractérisé en ce qu'il consiste à écrire les données modifiées (D') sur un support (6) de mémorisation de données, associé au système d'utilisation (3.) pour permettre l'utilisation des données modifiées (D') lors d'une phase d'utilisation du logiciel (2.). 14 - Dispositif pour sécuriser un logiciel d'utilisation (2.) à partir d'une unité de traitement et de mémorisation d'utilisation (11u) comportant au moins un secret d'utilisation (S.), ledit logiciel fonctionnant sur un système de traitement de données dit d'utilisation (3.), caractérisé en ce qu'il comporte: - un logiciel d'utilisation (2.) et des données modifiées (D') obtenues à partir d'un secret de génération (Sg) et d'au moins une partie des données originales (D), - et dans une phase de mise en oeuvre du logiciel d'utilisation (2.) avec les données modifiées (D'): 0 un système de traitement de données, dit d'utilisation (3.) comportant: 30. des moyens permettant de déterminer un paramètre d'entrée (Pe) constitué par au moins une partie des données modifiées (D'), * des moyens de transfert du paramètre d'entrée (Pe) du système d'utilisation (3u) à l'unité d'utilisation (11u), 0 et une unité d'utilisation (11u) comportant: * des moyens assurant la détermination d'au moins un paramètre de sortie (Ps) à partir du secret d'utilisation (Su) et du paramètre d'entrée (Pe), des moyens de transfert du paramètre de sortie (Ps) de ladite unité d'utilisation (11.) au système d'utilisation (3u) qui met en oeuvre au moins une fonction d'utilisation (Fu) utilisant au moins en partie, le paramètre de sortie (Ps), en vue d'obtenir les données originales. - Dispositif selon la revendication 14, caractérisé en ce qu'il comporte, dans la phase de génération de données modifiées, une unité de génération (11g) contenant un secret de génération permettant d'assurer la détermination de données modifiées (D').