Brevet FR2793049A1 — publié le 20001103

i 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 l'utilisation d'un logiciel à 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 l'utilisation d'un logiciel à 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 l'utilisation d'un logiciel à partir d'au moins une unité de traitement et de mémorisation d'au moins un secret, le logiciel fonctionnant sur un système de traitement de données. Conformément à l'objet de l'invention, le procédé consiste: dans une phase de génération de données modifiées: - à établir, à partir du logiciel, des données, dites originales, associées audit logiciel, - à choisir au moins un paramètre d'entrée de génération constitué par au moins une partie des données originales, - à transférer le paramètre d'entrée de génération du système de traitement de données de génération à l'unité de traitement et de mémorisation de génération, - à assurer la détermination par l'unité de génération, d'au moins un paramètre de sortie de génération à partir du secret de génération et du paramètre d'entrée de génération, - à transférer le paramètre de sortie de génération de l'unité de génération au système de génération, - à mettre en oeuvre au moins une fonction de génération utilisant au moins en partie, le paramètre de sortie de génération, en vue d'obtenir des données modifiées, et dans une phase d'utilisation du logiciel avec les données modifiées associées: - à permettre à une première catégorie d'utilisateurs possédant le secret d'utilisation, de modifier de façon inverse, les données modifiées pour revenir aux données originales, et à une deuxième catégorie d'utilisateurs ne possédant pas le secret d'utilisation, d'au mieux utiliser les données modifiées. Le procédé selon l'invention permet ainsi de sécuriser l'utilisation d'un logiciel par la mise en oeuvre d'une unité de traitement et de mémorisation d'un secret, 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 l'unité de traitement et de mémorisation correspondante, est incapable de générer ou de se servir des données produites par le logiciel original dans la mesure o le secret contenu dans l'unité de traitement et de mémorisation est hors d'atteinte. L'utilisation d'un tel secret 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. L'objet de l'invention trouve une application particulièrement avantageuse, notamment dans les cas de logiciels permettant l'échange de données, comme par exemple, des logiciels d'édition ou d'archivage. 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. Les fig. 2A et 2B sont des schémas de principe respectivement de génération et d'utilisation de données modifiées associées à un logiciel, selon une première variante de réalisation. Les fig. 3A et 3B sont des schémas de principe respectivement de génération et d'utilisation de données modifiées, selon une deuxième variante de réalisation. La fig. 1 illustre un exemple de réalisation d'un dispositif 1 pour sécuriser l'utilisation d'un logiciel 2 au sens général. Le dispositif de sécurisation 1 comporte un système de traitement de données 3 de tous types connus en soi. Dans l'exemple considéré, le système de traitement de données 3 constitue un ordinateur mais il doit être considéré qu'un tel système de traitement de données 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 de traitement de données 3 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 7. Classiquement, les divers composants du système de traitement de données 3 sont reliés entre-eux par l'intermédiaire d'un bus de communication 8. Le circuit interface 7 est relié à un lecteur 10 d'une unité 11 de traitement et de mémorisation d'au moins un secret. Dans l'exemple illustré, l'unité de traitement et de mémorisation est une carte à puce destinée à être lue par le lecteur 10, mais il doit être considéré qu'une telle unité de traitement et de mémorisation 11 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é de traitement et de mémorisation 11 comporte au moins un secret ou un dispositif de mémorisation d'une information codée S, des moyens algorithmiques de traitement de données, et un système d'échange de données entre l'unité 11 et le système de traitement de données 3. Classiquement, l'unité de traitement et de mémorisation 11 est réalisée par une carte à puce. Le dispositif 1 décrit ci-dessus permet la mise en oeuvre d'un procédé pour sécuriser rutilisation d'un logiciel 2. A cet effet, le procédé consiste, dans une première étape ou phase, à permettre la création ou la génération de données modifiées, correspondant à des données originales devant être protégées et associées au logiciel, et dans une deuxième étape ou phase, à permettre l'utilisation du logiciel avec les données modifiées. Ainsi, lorsque le dispositif 1 est utilisé dans la phase de génération, un indice g est rajouté aux références des éléments constitutifs d'un tel dispositif 1. De même, dans la phase d'utilisation, un indice u est rajouté aux références des éléments constitutifs de ce dispositif 1. I est à noter que les systèmes de traitement des données 3g et 3, peuvent être identiques ou différents et que les unités de traitement et de mémorisation 11g et 11u peuvent être identiques ou différentes. Les fig. 2A et 2B illustrent un premier exemple de réalisation d'un procédé de traduction ou de codage de données associées à un logiciel déterminé. Plus précisément, la fig. 2A illustre la phase de création de données modifiées D', tandis que la fig. 2B décrit la phase d'utilisation du logiciel avec les données modifiées D'. Dans cette première phase de traitement de données, dit de génération, il est établi en relation du logiciel 2, des données dites originales D associées au logiciel 2 (fig. 2A). Ces données originales D constituent des données devant être protégées compte tenu de leur intérêt économique. l doit être considéré que ces données originales D sont des données d'échange avec le logiciel, mais ne constituent pas nécessairement des données indispensables au fonctionnement du logiciel. Ces données originales D peuvent constituer, par exemple, un fichier d'échange de données d'un traitement de texte ou de données d'un éditeur graphique. Les données modifiées D' sont obtenues à partir d'un module de génération. Dans une deuxième phase dite d'utilisation, ces données D' modifiées sont retraduites pour permettre de retrouver les données originales D, à partir d'un module d'utilisation. Le logiciel 2 comporte, dans la plupart des cas, le module de génération et le module d'utilisation. Conformément à l'invention, il est choisi un paramètre d'entrée de génération Peg pour l'unité de traitement et de mémorisation dite de génération 11g, désignée par unité de génération 11g dans la description qui suit. Dans l'exemple de réalisation illustré à la fig. 2A, le paramètre d'entrée de génération Peg est constitué par au moins une partie ou la totalité des données originales D. Bien entendu, le paramètre d'entrée de génération Peg pourrait comporter, en association avec les données originales D, d'autres données non associées au logiciel d'utilisation. Le paramètre d'entrée de génération Peg est transféré du système de traitement de données dit de génération 3g, désigné par système de génération 3g dans la suite de la description, à l'unité de génération 11". Cette unité de génération 11g est adaptée pour assurer la détermination d'au moins un paramètre de sortie de génération Psg à partir d'au moins un secret de génération Sg et du paramètre d'entrée de génération Peg. L'unité de génération 11g comporte, de façon habituelle, au moins un secret de génération Sg. f est à noter que le secret de génération Sg peut être constitué soit par au moins une fonction secrète, qui à partir du paramètre d'entrée de génération Peg, génère le paramètre de sortie de génération Psg, soit par au moins une information secrète Isg et au moins une fonction de conversion connue ou non Fcg, permettant de générer à partir du paramètre d'entrée de génération Peg et de l'information secrète Isg, le paramètre de sortie de génération Psg. Dans les exemples qui suivent, le secret de génération Sg est constitué par une information secrète Isg et une fonction de conversion Fcg. La mise en oeuvre de l'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 du paramètre de sortie de génération Psg, à partir du paramètre d'entrée de génération Peg. Le paramètre de sortie de génération Psg est transféré de l'unité de génération 1 lg au système de génération 3g. Le système de génération 3g est adapté pour mettre en oeuvre au moins une fonction de génération Fg utilisant, au moins en partie, le paramètre de sortie de génération Psg, en vue d'obtenir des données modifiées D'. Dans l'exemple de réalisation illustré à la fig. 2A, la fonction de génération Fg délivre les données modifiées D' à partir du paramètre de sortie de génération Psg En d'autres termes, les données modifiées D' correspondent au paramètre de sortie de génération Psg. l est à noter que lors d'une phase de génération de données modifiées, il apparaît deux catégories d'utilisateurs. Ainsi, il est permis à une première catégorie d'utilisateurs possédant le secret de génération Sg, de traduire les données originales D pour obtenir des données modifiées D', tandis qu'une deuxième catégorie d'utilisateurs ne possédant pas le secret de génération Sg peut au mieux générer les données originales D sans pouvoir les traduire pour obtenir des données modifiées D'. La fig. 2B illustre le procédé permettant de traduire de façon inverse, les données D' modifiées selon le principe décrit en relation de la fig. 2A, afin de retrouver les données originales D. Ainsi, dans une phase d'utilisation du logiciel 2 avec les données modifiées D', le procédé selon l'invention est mis en oeuvre à l'aide d'un système de traitement de données dit d'utilisation 3u identique ou différent du système de génération 3g. Le système de traitement de données d'utilisation 3u est désigné par système d'utilisation 3, dans la suite de la description. Le procédé consiste à choisir un paramètre d'entrée d'utilisation Peu constitué par au moins une partie des données modifiées D'. Dans l'exemple de réalisation illustré à la fig. 2B, le paramètre d'entrée d'utilisation Peu comporte au moins la totalité des données modifiées D'. Le paramètre d'entrée d'utilisation Peu est transféré du système d'utilisation 3a à une unité de traitement et de mémorisation, dite d'utilisation 11u désigné par unité d'utilisation 11, dans la suite de la description. Cette unité d'utilisation 11u comporte au moins un secret d'utilisation Su qui est identique ou différent du secret de génération Sg, mais qui est adapté pour permettre de retrouver les données originales D à partir des données modifiées D'. Dans l'exemple illustré, le secret d'utilisation Su est constitué par une information secrète Isa et une fonction connue ou non de conversion FCU. L'unité d'utilisation 11u détermine au moins un paramètre de sortie d'utilisation Psu à partir du secret d'utilisation Su et du paramètre d'entrée d'utilisation Peu. L'unité d'utilisation 11u transfère ensuite le paramètre de sortie d'utilisation Psu au système d'utilisation 3u. Le système d'utilisation 3u met en oeuvre au moins une fonction d'utilisation Fu utilisant, au moins en partie, le paramètre de sortie d'utilisation Psu, en vue d'obtenir les données originales D. Dans l'exemple de réalisation illustré à la fig. 2B, la fonction d'utilisation Fu délivre les données originales D à partir du paramètre de sortie d'utilisation Psu. En d'autres termes, selon un exemple préféré de cette variante, les données originales D correspondent au paramètre de sortie d'utilisation Psu. Dans l'exemple de réalisation préféré illustré aux fig. 2A et 2B, les données originales D sont donc transférées à l'unité de génération 11g qui délivre les données modifiées D'. De même, dans la phase d'utilisation, les données modifiées D' sont transférées à l'unité d'utilisation 11, qui délivre les données originales D. De la description qui précède, il ressort qu'il peut apparaître deux catégories d'utilisateurs lors de cette phase d'utilisation. Ainsi, le détenteur d'une unité d'utilisation l-U, affectée à un logiciel déterminé peut regénérer et utiliser les données originales associées audit logiciel. Par contre, un utilisateur ne possédant pas l'unité d'utilisation 11u correspondante, peut utiliser le logiciel sans les données originales et au mieux avec les données modifiées. L'efficacité du procédé selon l'invention est réelle, même si les fonctions de conversions Fcg, Fcu sont connues et si les fonctions de génération Fg et d'utilisation Fu et les paramètres d'entrée de génération Peg et d'utilisation Peu et les paramètres de sortie de génération Psg et d'utilisation Ps, sont observables et modifiables par une personne mal intentionnée en considérant, bien entendu, que les secrets de génération Sg et d'utilisation Su sont conservés. En effet, une telle personne est incapable de retrouver la modification des données D en D' et la modification inverse des données D' en D. Il est clair qu'une personne mal intentionnée peut modifier le logiciel 2, de manière à ne plus avoir besoin de l'unité de traitement et de mémorisation. Dans ce cas, les données générées par un tel logiciel piraté peuvent être utilisées par ce logiciel piraté. Néanmoins, il est impossible à ce logiciel piraté de créer des données utilisables par le logiciel original 2 ou d'utiliser des données générées par le logiciel original 2. Les utilisateurs possédant l'unité de génération 11g et l'unité d'utilisation 11u et le logiciel 2 peuvent s'échanger librement des données. Les utilisateurs possédant le logiciel piraté peuvent aussi s'échanger entre-eux librement des données, mais les échanges de données entre ces deux catégories d'utilisateurs sont difficiles, voire impossibles. Dans l'exemple de réalisation illustré aux fig. 2A-2B, les données originales D sont transférées totalement à une unité de traitement et de mémorisation. Pour améliorer la vitesse du dispositif, les fig. 3A-3B décrivent une variante préférée de réalisation du procédé de sécurisation conforme à l'invention. Bien entendu, les éléments communs à l'exemple précédemment décrit conservent des références identiques et ne sont pas explicités de nouveau. Selon cet exemple de réalisation illustré à la fig. 3A, il doit être considéré que les données originales D sont décomposées en au moins une première partie Di et une deuxième partie D2. Dans l'exemple de réalisation illustré à la fig. 3A, le paramètre de génération Peg est constitué par la première partie D1 des données originales D. Bien entendu, la décomposition des données originales D en au moins deux parties est totalement arbitraire. Le paramètre d'entrée de génération Peg, à savoir dans l'exemple illustré, la première partie Di des données originales, est ainsi transféré du système de génération 3g à l'unité de génération 11g. L'unité de génération 11g détermine le paramètre de sortie de génération Psg à partir du secret de génération Sg et de la première partie Dl des données. Le paramètre de sortie de génération Psg est transféré de l'unité de génération 11g au système de génération 3g. Les données originales D sont ensuite modifiées, en vue d'obtenir des données modifiées D', par au moins une fonction de génération Fg comportant une fonction de traduction T permettant de traduire uniquement la deuxième partie D2 des données originales, en vue d'obtenir une deuxième partie modifiée D'2 des données. La fonction de traduction T qui peut être constituée, par exemple, par une fonction inversible, utilise le paramètre de sortie de génération Psg pour son opération de traduction. Tel que cela ressort de la fig. 3A, la fonction de génération Fg est adaptée pour faire en sorte que les données modifiées D' comportent aussi la première partie D1 des données originales. Ainsi, les données modifiées D' sont composées par la première partie D1 des données originales et la deuxième partie modifiée D'2 des données. Les données modifiées D' comportent ainsi, d'une part, une partie non modifiée D1 ayant été utilisée pour permettre la détermination du paramètre de sortie de génération Psg à partir d'un secret de génération Sg et, d'autre part, une seconde partie D'2 codée à partir du paramètre de sortie de génération Psg. La fig. 3B illustre le procédé permettant de traduire de façon inverse, les données D' modifiées selon le principe décrit en relation de la fig. 3A. Le procédé décompose les données modifiées D' en une première partie et en une deuxième partie. Selon l'exemple de réalisation illustré aux fig. 3A et 3B, il est choisi comme première et deuxième parties des données modifiées D', respectivement la première partie Di des données originales et la deuxième partie modifiée D'2 des données. La première partie des données modifiées D', à savoir DI, est transférée du système d'utilisation 3u à l'unité d'utilisation 11U. L'unité d'utilisation 11u assure ensuite la détermination d'au moins un paramètre de sortie d'utilisation Psu à partir d'un secret d'utilisation Su et de la première partie des données modifiées, à savoir Di. L'unité d'utilisation 11u, assure ensuite le transfert du paramètre de sortie d'utilisation Psu de l'unité d'utilisation 11u, au système d'utilisation 3u. Le système d'utilisation 3u assure, par une fonction d'utilisation Fu, la modification des données modifiées D', en vue de revenir aux données originales D. La fonction d'utilisation Fu comporte une fonction de traduction inverse Ti qui permet de traduire la deuxième partie des données modifiées en utilisant le paramètre de sortie d'utilisation Psu, en vue de revenir aux données originales D. Par exemple, la fonction de traduction inverse Ti peut être constituée par la fonction inverse de la fonction de traduction T ou par une combinaison de fonctions élémentaires équivalentes. Dans l'exemple de réalisation illustré aux fig. 3A et 3B, la fonction de traduction inverse Ti utilise le paramètre de sortie d'utilisation Psu pour traduire la deuxième partie modifiée D'2 des données, en vue de retrouver la deuxième partie D2 des données originales. De plus, la fonction d'utilisation Fu est adaptée pour incorporer la première partie Di des données, aux données originales D. Ainsi, les données originales D sont reconstituées par la première partie Dl des données originales et la deuxième partie D2 des données originales. Selon une caractéristique préférée de réalisation attachée à l'exemple décrit aux fig. 3A et 3B, la première partie Di des données originales, destinée à être transférée à l'unité de traitement et de mémorisation, est traitée pour faciliter les opérations de traitement exécutées par ladite unité. La première partie Di des données originales est ainsi fournie en entrée à au moins une fonction de traduction intermédiaire de génération Hg, 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 de génération Peig. Ce paramètre d'entrée intermédiaire de génération Peig déterminé par le système de génération 3g, est transféré par ce dernier à l'unité de génération 11g, de manière que cette dernière puisse assurer la détermination du paramètre de sortie Psg à partir du secret de génération Sg et du paramètre d'entrée constitué par le paramètre d'entrée intermédiaire de génération Peig. Bien entendu, lors de la traduction des données modifiées D' pour revenir aux données originales D (fig. 3B), le système d'utilisation 3u définit le paramètre d'entrée intermédiaire d'utilisation Peiu à partir de la première partie Di des données originales et en utilisant une fonction de traduction intermédiaire d'utilisation H,, telle qu'une fonction non inversible, par exemple du type "one way hash". Ce paramètre d'entrée intermédiaire d'utilisation Peiu est transféré à l'unité d'utilisation 11u pour permettre la détermination du paramètre de sortie d'utilisation Psu. Selon une caractéristique préférée de mise en oeuvre de l'invention, les données modifiées D' 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 D' 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 utilisé en vue d'un stockage ou d'une transmission de ces données. Dans les exemples décrits ci-dessus, il ressort que dans la phase de génération, les données modifiées sont obtenues au cours d'une étape de traitement mettant en oeuvre un paramètre de sortie de génération Psg et un secret de génération Sg. Bien entendu, il peut être prévu de recommencer n fois cette étape de traitement pour augmenter la complexité du codage des données. Ainsi, les opérations suivantes peuvent être recommencées autant de fois que nécessaire, à 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 de génération à partir d'une fonction d'un ou de plusieurs secrets différents ou identiques de celui ou de ceux précédemment utilisés, et d'une partie des données, - modifier l'autre partie des données par une fonction de traduction identique ou différente de celle précédemment utilisée, - et constituer des données modifiées après chaque phase de modification des données. Selon cet exemple de réalisation, lors de la phase d'utilisation du logiciel, les opérations de traduction des données modifiées pour revenir aux données originales, sont recommencées dans l'ordre inverse, un nombre de fois n identique au nombre d'étapes effectuées lors de la phase de génération des données modifiées. Selon une variante préférée de réalisation selon les fig. 3A et 3B, la décomposition des données originales D est effectuée en deux parties D1, D2, de tailles sensiblement équivalentes. Après une première étape de traitement, il est obtenu des données modifiées D' constituées par la première partie Dl 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 Di et D'2 est inversé. Ainsi, la deuxième partie modifiée D'2 des données est utilisée comme paramètre d'entrée de l'unité de génération 11g tandis que la première partie Dl des données originales est modifiée par une fonction de traduction. 1l s'ensuit que l'ensemble des données originales D est modifié. Bien entendu, lors de la phase d'utilisation, des opérations inverses sont effectuées afin de retrouver les données originales D. Le procédé selon l'invention décrit ci-dessus peut être mis en oeuvre avec différentes fonctions de traduction T selon les objectifs souhaités par l'éditeur du logiciel protégé. Par exemple, la fonction de traduction T peut être une fonction de cryptage. Dans ce cas, les données traduites sont manifestement incompréhensibles. Selon un autre exemple, la fonction de traduction T 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é peut utiliser les données générées par la version originale du logiciel, mais celles-ci sont erronées. De même, un utilisateur d'un logiciel original peut utiliser les données générées par le logiciel piraté, et celles-ci sont aussi erronées. 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 l'utilisation d'un logiciel (2) à partir d'au moins une unité (11) de traitement et de mémorisation d'au moins un secret (S), le logiciel fonctionnant sur un système de traitement de données (3), caractérisé en ce qu'il consiste: - dans une phase de génération de données modifiées, * à établir, à partir du logiciel (2), des données, dites originales (D), associées audit logiciel, * à choisir au moins un paramètre d'entrée de génération (Peg) constitué par au moins une partie des données originales (D), * à transférer le paramètre d'entrée de génération (Peg) du système de traitement de données de génération (3g) à l'unité de traitement et de mémorisation de génération (llg), * à assurer la détermination par l'unité de génération (11g), d'au moins un paramètre de sortie de génération (Psg) à partir du secret de génération (Sg) et du paramètre d'entrée de génération (Peg), * à transférer le paramètre de sortie de génération (Psg) de l'unité de génération (11g) au système de génération (3g), * à mettre en oeuvre au moins une fonction de génération (Fg) utilisant au moins en partie, le paramètre de sortie de génération (Psg), en vue d'obtenir des données modifiées (D'), - et dans une phase d'utilisation du logiciel avec les données modifiées (D') associées: * à permettre à une première catégorie d'utilisateurs possédant le secret d'utilisation (Su), de modifier de façon inverse, les données modifiées (D') pour revenir aux données originales (D), et à une deuxième catégorie d'utilisateurs ne possédant pas le secret d'utilisation (Su), d'au mieux utiliser les données modifiées (D'). 2 - Procédé selon la revendication 1, caractérisé en ce qu'il consiste: à choisir un paramètre d'entrée de génération (Peg) comportant au moins la totalité des données originales (D), - et à mettre en oeuvre une fonction de génération (Fg) qui délivre les données modifiées (D') à partir du paramètre de sortie de génération (Psg). 3 - Procédé selon la revendication 1, caractérisé en ce qu'il consiste: - à décomposer les données originales (D) en au moins une première partie (DI) et une deuxième partie (D2), - à assurer la détermination du paramètre de sortie de génération (Psg) à partir du secret de génération (Sg) et du paramètre d'entrée de génération (Peg) constitué, au moins en partie, par la première partie (DI) des données originales, - à modifier par une fonction de traduction (T) faisant partie de la fonction de génération (Fg), uniquement la deuxième partie (D2) des données originales et en utilisant le paramètre de sortie de génération (Psg), en vue d'obtenir une deuxième partie modifiée (D'2) des données, - et à constituer les données modifiées (D') composées par la première partie (DI) des données originales et la deuxième partie modifiée (D'2) des données. 4 - Procédé selon la revendication 1, caractérisé en ce qu'il consiste, dans une phase d'utilisation du logiciel avec les données modifiées (D') associées et en présence de l'unité de traitement et de mémorisation d'utilisation (11u), à modifier de façon inverse, les données modifiées (D') pour revenir aux données originales (D): - en choisissant un paramètre d'entrée d'utilisation (Peu) constitué par au moins une partie des données modifiées (D'), - en transférant le paramètre d'entrée d'utilisation (Peu) du système de traitement de données d'utilisation (3u) à l'unité d'utilisation (11u), - en assurant la détermination par l'unité d'utilisation (11u), d'au moins un paramètre de sortie d'utilisation (Psu) à partir du secret d'utilisation (Su) et du paramètre d'entrée d'utilisation (Peu), - en transférant le paramètre de sortie d'utilisation (Psu) de l'unité d'utilisation (1 lu) au système d'utilisation (3u), - et en mettant en oeuvre au moins une fonction d'utilisation (Fu) utilisant au moins en partie, le paramètre de sortie d'utilisation (Psu), en vue d'obtenir des données originales (D). - Procédé selon la revendication 4, caractérisé en ce qu'il consiste: - à choisir un paramètre d'entrée d'utilisation (Peu) comportant au moins en partie les données modifiées (D'), - et à mettre en oeuvre, une fonction d'utilisation (Fu) qui délivre les données originales (D) à partir du paramètre de sortie d'utilisation (Psu). 6 - Procédé selon les revendications 3 et 4, caractérisé en ce qu'il consiste: - à décomposer les données modifiées (D') en une première partie et une deuxième partie, correspondant respectivement à la première partie (Di) des données originales et à la deuxième partie modifiée (D'2) des données, - à transférer, comme paramètre d'entrée d'utilisation (Peu), la première partie des données modifiées (D') du système d'utilisation (3u) à l'unité d'utilisation (11u), - à modifier la deuxième partie modifiée (D'2) des données par une fonction de traduction inverse (Ti) faisant partie de la fonction d'utilisation (Fu) et en utilisant le paramètre de sortie d'utilisation (Psu), de manière à retrouver la deuxième partie (D2) des données originales, - et à reconstituer les données originales (D) à partir de la première partie (Dl) des données originales et de ladite deuxième partie (D2) des données originales. 7 - Procédé selon les revendications 3 et 6, caractérisé en ce qu'il consiste: - à choisir comme paramètres d'entrée de génération (Peg) et d'utilisation (Peu), des paramètres d'entrées intermédiaires respectivement de génération (Peig) et d'utilisation (Peiu) définis à partir d'une fonction de traduction intermédiaire de génération (lHg) et respectivement d'utilisation (Hu) utilisant, au moins en partie, la première partie (DI) des données originales, - et à assurer la détermination des paramètres de sortie de génération (Psg) et respectivement d'utilisation (Psu) à partir respectivement, d'une part, du secret de génération (Sg) et du paramètre d'entrée intermédiaire de génération (Peig) et, d'autre part, du secret d'utilisation (Su) et du paramètre d'entrée intermédiaire d'utilisation (Peiu). 8 - 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 permanent de données, associé au système de traitement de données (3) pour permettre l'utilisation des données modifiées (D') lors d'une phase d'utilisation du logiciel. 9 - Procédé selon la revendication 3, 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 de génération à partir d'une fonction d'un ou de plusieurs secrets de génération différents ou identiques de ceux précédemment utilisés, et d'une partie des données, - de modification de l'autre partie des données par une fonction de traduction identique ou différente de celle précédemment utilisée, - et de constitution des données modifiées après chaque phase de modification des données. - Procédé selon la revendication 9 caractérisé en ce qu'il consiste, dans la phase de génération: - dans une première étape de traitement: À à décomposer les données originales (D) en une première partie (Di) et une deuxième partie (D2), * et à constituer des données modifiées composées par 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 la deuxième partie modifiée (D'2) des données, comme paramètre d'entrée de l'unité de l'unité de génération (11g) tandis que la première partie (DI) des données originales est modifiée par une fonction de traduction de sorte que l'ensemble des données originales soit modifié. 11 - Procédé selon les revendications 4 et 9 ou 10, caractérisé en ce qu'il consiste à recommencer n fois dans l'ordre inverse (avec n _ 1), les opérations de traduction des données modifiées pour revenir aux données originales. 12 - Dispositif pour sécuriser l'utilisation d'un logiciel (2) comportant un système de traitement de données (3) auquel est associée une unité (11) de traitement et de mémorisation d'au moins un secret, caractérisé en ce qu'il comporte: - dans une phase de génération de données modifiées, * un système de traitement dit de génération de données (3g) comportant: 0 des moyens permettant d'établir à partir du logiciel (2), des données dites originales (D) associées audit logiciel, 0 des moyens pour générer au moins un paramètre d'entrée de génération (Peg) constitué par au moins une partie des données originales, 0 des moyens de transfert du paramètre d'entrée de génération (Peg) du système de génération (3g) à une unité de traitement et de mémorisation dite de génération (1 lg), * une unité de génération (1 lg) comportant: 0 des moyens assurant la détermination d'au moins un paramètre de sortie de génération (Psg) à partir du secret de génération (Sg) et du paramètre d'entrée de génération (Peg), 0 des moyens de transfert du paramètre de sortie de génération (Psg) de l'unité de génération (llg), au système de génération (3g) qui comporte au moins une fonction de génération (Fg) utilisant, au moins en partie, le paramètre de sortie de génération (Psg), en vue d'obtenir des données modifiées (D'), et dans une phase d'utilisation du logiciel avec les données modifiées (D'): un système de traitement dit d'utilisation (3u) de données qui en présence d'une unité de traitement et de mémorisation dite d'utilisation (11u) comportant au moins un secret d'utilisation (Su) des données modifiées (D'), permet de revenir aux données originales (D) à partir des données modifiées (D'). 13 - Dispositif selon la revendication 12, caractérisé en ce qu'il comporte, dans la phase d'utilisation du logiciel avec les données modifiées: - un système d'utilisation (3u) comportant: * des moyens pour déterminer un paramètre d'entrée d'utilisation (Peu) constitué par au moins une partie des données modifiées (D'), * des moyens de transfert du paramètre d'entrée d'utilisation (Peu) du système d'utilisation (3u) à l'unité d'utilisation (1 lu), - une unité d'utilisation (llu) comportant: * des moyens assurant la détermination d'au moins un paramètre de sortie d'utilisation (Psu) à partir du secret d'utilisation (Su) et du paramètre d'entrée d'utilisation (Peu), * des moyens de transfert du paramètre de sortie d'utilisation (Psu) de l'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 d'utilisation (Ps,), en vue d'obtenir les données originales (D).