Brevet FR2529000A1 — publié le 19831223

L'invention concerne un procédé et un dispositif destinés à empêcher la copie non autorisée ou la falsifica- tion ou altération de logiciels et programmes pour ordina- teurs L'invention concerne essentiellement la protection des programmes destinés à des usages industriels et de travail. L'accroissement de l'usage des microordinateurs dits également microprocesseurs dans les appareillages destinés à l'industrie et le commerce entraîne des conséquences non seulement au niveau de la fabrication des appareillages(hardware) mais également la distribution et le stockage de collections de logiciels et programmes (software) Le problème de la protection des logiciels contre leur "piraterie" est particulièrement important en vue de l'augmentation de la proportion de systèmes relativement petits comprenant par exemple deux ou trois programmes et la conséquence potentielle d'un copiage non autorisé Tandis que des avantages de compatibilité des systèmes sont importants pour le fournisseur de logiciels, les actes de piraterie; soit effectués agressivement, soit par des associations plus passives limitent sérieusement les retombées que le fournisseur de logiciels aurait pu espérer. Deux méthodes principales ont été utilisées pour résoudre le problème de la protection des logiciels en vue de limiter les activités de copiage La première méthode consiste à rendre difficile l'exécution du copia- ge des données contenues dans les disques, mais cette méthode présente l'inconvénient que l'utilisateur peut ne pas être capable de prendre des copies de ces propres programmes. Selon la seconde méthode, on introduit un certain nombre de modifications dans l'appareillage de l'ordina- teur (hardware), de sorte que le logiciel ou le program- me ne peut être correctement exécuté que si une réponse appropriée est reçue de l'appareillage Dans le plus simple des cas, ceci peut être constitué par un registre qui est lu par le système de façon à confirmer quelque code unique, ou dans des cas plus complexes, ceci peut entraîner une série d'instructions qui définissent effec- tivement des séquences dans le procédé du copiage. Cependant, ces deux méthodes peuvent décourager l'utilisa- teur de bonne foi, tandis que, elles sont incapables d' empêcher le copiage avec succès d'efforts plus déterminés. Un objet de l'invention est de prévoir un disposi- tif et un procédé évitant le copiage non autorisé de 1 o programmes d'ordinateurs stockés, et cela de façon impor- tante sans empêcher un utilisateur autorisé de prendre des copies de ces programmes pour son propre usage. Selon un premier aspect de l'invention, on prévoit un appareillage de traitement de données par ordinateur comprenant une mémoire et une unité centrale de traitement pour exécuter un programme emmagasiné dans la mémoire, le dispositif étant caractérisé en ce que l'unité de traitement est connectée à des moyens de décryptage (ou déchiffrage), -lesdits moyens de décryptage et l'unité de traitement ou une partie de cette unité comprenant un module anti-fraude Pour un mode de réalisation s'appliquant à un microordinateur, le module anti-fraude comprend de préférence une unité intégrée ou scellée comprenant avec un microcalculateur (ou microprocesseur) un circuit de décryptage arrangés de façon spécifique de manière à déchiffrer ou transcrire en clair les signaux de données arrivantencryptés (ou chiffrés) d'une manière particulière Le module anti-fraude est connecté à la mémoire de la même manière qu'un microprocesseur est relié à la mémoire dans un microordinateur standard, et il peut être ainsi constitué qu'il peut être utilisé comme un bouchon à enfichage direct remplaçant le circuit intégré du microprocesseur dans le microordinateur standard lorsque le microordinateur doit être utilisé pour exécuter des programmes chiffrés. En plaçant l'unité de traitement et le circuit de décryptage ensemble dans un module anti-fraude et en fournissant à l'utilisateur un programme chiffré, le programme peut être exécuté dans le calculateur sans que le programme déchiffré apparaisse dans la mémoire ou sur des conducteurs électriques accessibles Il peut être ainsi disposé de telle sorte que le programme déchiffré existe seulement à l'intérieur du module anti-fraude à l'intérieur duquel il est inaccessible au copiage. Conformément à un second aspect de l'invention, un dispositif pour empêcher le copiage non autorisé ou - -altération ou falsification de programmes d'ordinateurs comprend un module anti-fraude destiné à remplacer l'unité de traitement central dans un calculateur dans lequel le module comprend une unité de traitement, un circuit de décryptage, un circuit de données et un circuit d'adresses pour la connexion avec une unité de mémoire extérieure dans le calculateur. Selon un troisième aspect, l'invention concerne un procédé destiné à empêcher le copiage, l'altération ou la falsification de programmes ou logiciels pour ordi- nateurs dans un ordinateur conçu de façon à exécuter de tels programmes; le procédé comprend le stockage d'un programme dans une mémoire du calculateur sous forme chiffrée et l'exécution de ce programme lorsqu'on fournit instruction par instruction à un module anti-fraude comprenant une unité centrale de traitement et un dispo- sitif de déchiffrage. Dans un mode de réalisation préféré de l'inven- tion, le module anti-fraude contient un microprocesseur sous forme d'une puce et une carte mémoire RAM (mémoire à accès aléatoire) Le logiciel protégé est fourni à l'utilisateur encrypté ou chiffré en utilisant l'algorithme DES, avec la clé de l'algorithme DES préfixée au logiciel sous forme chiffrée en'utilisant le système de clé publique RSA La clé publique est uniquement définie pour le module anti-fraude particulier contenu dans le calculateur de l'utilisateur, (pour une description de l'encryptage et du décryptage utilisant l'algorithme DES, on se reportera à la publication Federal Information Pro- cessing Standard (FIPS) 46 "Data Encryption Standard" publiée en janvier 1977 Le système de clé publique RSA est décrit dans "a Method for Obtaining Digital Signatures and Public Key Cryptosystems" par Rivest, Shamir & Adleman, Communications de l'Association pour l'appareilla- ge d'ordinateurs, Février 1978) Pour son fonctionnement, la clé DES-est chargée dans le module anti-fraude et décrypté La clé décryptée est alors utilisée dans l'algorithme DES de façon à engendrer une carte mémoire locale dans la mémoire RAM correspondant à une partie au moins d'une mémoire extérieure au module Lorsqu'un programme encrypté est fourni au module à partir de la mémoire extérieure, chaque code opératoire (op-code) est rendu OU exclusif avec le code correspondant dans la carte de mémoire de façon à décrypter le -code opératoire avant sa présentation à la puce du microprocesseur. Le module anti-fraude peut être constitué de façon à reconnaître un programme chiffré qui lui parvient, de façon à mettre en route l'opération de décryptage ci-dessus décrite, ou en variante, de façon à dériver la fonction OU exclusif, lorsque le programme arrivant n'est pas reconnu comme ayant été chiffré. L'invention apparaîtra plus clairement à l'aide de la description qui va suivre faite en référence aux des- sins annexés dans lesquels La figure 1 est un diagramme synoptique simplifié d'un appareillage construit selon un aspect de l'invention,- La figure 2 est un diagramme synoptique d'un module anti-fraude, La figure 3, est un schéma de circuit d'une partie du module anti-fraude montrant un microprocesseur, des dispositifs mémoires, un circuit combinatoire et des dispositifs de commutation de signaux, La figure 4, est un schéma de circuit d'un circuit sélecteur de mémoire dans le module anti-fraude et la figure 5, est un-schéma de circuit d'une logique de sélection de décryptage. En se reportant tout d'abord à la figure 1, un système conforme à l'invention sous forme simplifiée comprend une unité anti-fraude 1 comprenant une unité de traitement central (CPU) 2 (dans le cas d'un micro- processeur) et des moyens de décryptage ou déchiffrage 3 L'unité antifraude 1 remplace l'unité de traitement central CPU d'un calculateur classique, et de façon ana- logue à une unité de traitement central conventionnel, elle est reliée à une mémoire 4 qui transfère le programme des codes opératoires et les données vers et à partir de l'unité de traitement central Le stockage permanent des programmes et des données est prévu dans cette réali- sation par un disque de stockage 5 Lors du fonctionne- ment du système, un programme d'encryptage et desdonnées sont chargésdans la mémoire 4 à partir du disque de stocka- ge 5 puis ensuite, amenésinstruction par instruction aux moyens 3 de décryptage et à l'unité de traitement central 2 De préférence seulement les codes opératoires sont chiffrés, étant donné que cela rend le programme relative- ment sûr du point de vue de l'analyse du décryptage. Le module 1 anti-fraude est décrit plus en détail à la figure 2 Le module est connecté à un système de mémoire par un circuit de données 10 et un circuit d'adresse 12 Les signaux transmis à partir de la mémoire vers le module sur le circuit de données passent vers l'unité de traitement central du microprocesseur 2 CPU par des moyens de commutation 14 soit à travers un étage combinateur 16 OU exclusif (XOR), soit par une connexion de dérivation 18 en réponse à des signaux pro- venant du circuit logique de sélection 20 L'étage 16 XOR est également connecté à une mémoire à accès aléatoire RAM interne 22 dont l'objet apparaîtra plus loin Ainsi, les signaux arrivant sur la ligne de donnée 10 entrant à l'étage 16 XOR sont combinés dans un processus OU exclusif avec les signaux provenant de la mémoire interne 22, les signaux résultants étant alors envoyés le long du circuit de données internes 24 à l'unité de traitement central CPU Les entrées de données de la CPU peuvent également recevoir des signaux d'une troisième source via les moyens de commutation 14, la troisième source étant constituée par la mémoire interne 26 PROM qui contient un programme ou des programmes pour contrôler les opéra- tions de décryptage La mémoire PROM 26, la mémoire RAM interne 22 et la mémoire externe 4 sont connectées à l'unité de traitement central CPU 2 par -un circuit d'adresse commun 12 Le fonctionnement de ces éléments apparaîtra clairement de la description qui va suivre du processus de décryptage. Le procédé préféré d'enayptage ou chiffrage qui est appliqué par le fournisseur du logiciel aux programmes qu'il fournit à l'utilisateur est celui décrit dans le "Data Encryption Standard" (DES) mentionné en référence à l'introduction de la description Dans ce procédé, le même algorithme ("l'algorithme DE 51 ') est utilisé à la fois pour encrypter (chiffrer) et décrypter (déchiffrer) le message L'algorithme est bien connu, et la lecture en clair effective dépend de la connaissance d'une clé (la clé du DES) qui a été utilisée dans l'algorithme pour chiffrer le message Dans le présent système, les codes opératoires du programme sont chiffrés par le fournisseur du logiciel ou le distributeur en utilisant l'algorithme DES et une clé DES particulière De façon à transmettre la clé du DES en toute sécurité à l'utilisa- teur, elle est préfixée au programme dans une forme chiffrée en utilisant un second processus de chiffrage. Ce second processus de chiffrage est effectué selon le procédé RSA auquel il a également été fait référence dans l'introduction. Dans le procédé RSA, le message (dans ce cas, la clé DES) est chiffré par une opération mathématique en utilisant une clé d'encryptage publique qui est associée avec le récepteur, c'est-à-dire la clé DES est chiffrée en utilisant la clé publique de l'utilisateur Le décryptage peut seulement être effectué au moyen d'une clé de décryptage privée qui n'est pas dérivée de la clé publique La clé privée est stockée dans le module anti-fraude à l'intérieur d'une seconde mémoire RAM interne 32 qui est alimentée par une petite pile. En se référant à nouveau à la figure 2, lorsqu'un programme chiffré est fourni au module anti-fraude, la clé DES est d'abord décryptée par l'unité centrale de traitement CPU 2 travaillant selon un programme de décryptage RSA stocké dans la mémoire PROM 26 D'autre part, l'exécution du programme principal encrypté est retardée lorsque la clé DES est utilisée dans l'algorithme DES -de façon à engendrer une carte de mémoire locale dans la mémoire RAM 22 sous contrôle d'un autre programme dans la mémoire PROM 26 Cette opération étant achevée, le program- me encrypté DES est alors mis en route avec chaque code opératoire qui est soumis à une opération OU exclusif dans lequel il est combiné avec un code encarté à partir d'un endroit dans la mémoire RAM 22 correspondant à l'en- droit du code opératoire dans la mémoire 4 (figure 1). Le résultat de l'opération OU exclusif est un code opéra- toire décrypté qui passe à travers les moyens de commuta- tion 14 à l'intérieur du registre d'instructions CPU. Il y a lieu de noter qu'à aucun moment, le code opératoire décrypté n'apparatt à l'extérieur du module anti-fraude. Si l'utilisateur désire faire une copie en retour du programme, c'est le programme encrypté qui est reproduit. Dans le processus de décryptage décrit ci-dessus, le DES est utilisé dans le mode de chiffrage en retour de façon à éviter les motifs de répétition à partir de la carte mémoire En engendrant la carte mémoire avant la mise en route du programme, le décryptage est effectué en deux étapes, une première étape qui n'est pas critique au point de vue temps, et une seconde étape (les opérations OU exclusif) qui est comparativement insignifiante et qui peut être effectuée en temps réel en concordance avec la cadence d'horloge normale de l'unité de traitement central CPU. Les figures 3, 4 et 5, montrent des schémas de circuit d'un module anti-fraude conforme à l'invention. Le circuit comprend un nombre de puces formant circuit intégré individuel mais il est bien entendu qu'un circuit comportant des fonctions similaires pourrait être construit en une ou deux puces à haute densité d'intégration (LSI) de façon à réduire les coûts de fabrication pour une fabri- cation à grande échelle. Le circuit illustré est dessiné de façon à être monté dans un petit récipient scellé à l'intérieur d'un calcula- teur existant ou nouveau pour remplacer le microproces- seur Z 80 Le module est susceptible de réaménagement rétro-actif, et à cet effet, il comporte -une tête de bouchon 30 à 40 voies-permettant sa connexion avec une douille réceptrice de microprocesseur standard à 40 voies. Diverses caractéristiques secondaires du circuit qui n'apparaissent pas dans le schéma synoptique de la figure 2 comprennent la prévision d'un espace de stockage dans une seconde mémoire interne RAM 32 destinée à être utilisée pendant l'exécution des algorithmes RSA et DES, et un circuit de décodage 34 (figure 5) permettant de dériver le circuit de décryptage lorsqu'on a accès à des parties de la mémoire externe contenant les systèmes pointeurs de fonctionnement CP/M. En se référant tout d'abord à la figure 3, la partie illustrée du circuit contient virtuellement tous les circuits associés aux schémas de la figure 2 à l'exception principalement du circuit logique de sélection 20 Le bouchon connecteur 30 à 40-voies apporte au système le circuit de données 10, le circuit d'adresse 12 et les li- gnes de contrôle et d'interruption Z 80. Les signaux entrant dans le module anti-fraude sur le circuit de données externes 10 sont transmis à un cir- cuit de données interne 38 soit directement via un dispo- sitif émetteur-récepteur 40, soit via une paire de dispositifs combinateurs parallèles 42 et 44 OU exclusif et un commutateur 46 tampon à trois états La transmission via les portes OU exclusif 42 et 44 s'effectue en réponse à l'entrée D sur le tampon 46, ce dernier étant actif. Ceci se produit lorsque le signal arrivant est un code opératoire chiffré durant l'exécution du programme prin- cipal Aux autres moments, durant l'exécution du programme principal, les signaux passent librement entre le circuit de données externes et le circuit 38 de donné'es inter- nes via l'émetteur-récepteur 40 en réponse à une entrée active C. Avant de décrypter un programme principal arrivant, il est nécessaire de décrypter la clé DES arrivant et d'engendrer une carte de mémoire DES dans une première mémoire interne RAM 22 Les programmes de ces opérations sont stockés dans la mémoire PROM 26 Ainsi, initialement, l'unité de traitement central 2 exécute des programmes internes en conjonction avec la mémoire PROM 26 et la seconde mémoire RAM 32 sans qu'il y ait accès avec la mémoire externe Durant cette opération, la clé privée RSA est prise en compte dans la mémoire RAM 32 et la clé DES décryptée La DES est ainsi utilisée avec l'algorithme DES stockée dans la mémoire PROM de façon à construire la carte de mémoire DES dans la première mémoire RAM 22 via le tampon 48. Une fois que la carte de mémoire a été établie, le programme principal peut être mis en route dans l'unité de traitement central CPU 2, le contenu de la carte de mémoire étant traité en OU exclusif avec les codes opéra- toires arrivant aux portes 42 et 44 L'amenée des signaux sur les circuits de données est contrôlée par le circuit des figures 4 et 5 La figure 4, montre l'un de quatre dispositifs sélecteurs 49 pour sélectionner et contrôler les puces de mémoires 26, 32 et 22 en réponse aux lignes d'adresse A 12 et A 13 (mémoire interne RAM/mémoire morte de sélection PROM), un signal de détection de code opératoire B à partir du circuit de détection de code opératoire (figure 5), et un signal d'écriture WR provenant de l'unité centrale de traitement CPU 2. Le circuit logique de sélection de la figure 5 comprend un réseau de bascule FLIP-FLOP 50 à 56 contrôlant la génération de signaux d'interruption INTR et INTR qui sont amenés à l'unité centrale de traitement CPU 2 lorsqu'un programme d'encryptage est signalé La génération du signal d'interruption commande l'introduction à l'unité centrale de traitement 2 de la boucle de programme interne de façon à engendrer la carte de mémoire Dans cet exemple, on suppose qu'un programme encrypté sera préfixé par une instruction de redémarrage qui est détectée par une porte ET 58 Cependant, n'importe quel signal de reconnaissance peut être utilisé en conjonction avec des moyens pour détecter le signal. L'existence d'un code opératoire sur le circuit de données est signalée par l'unité de traitement CPU 2 aux portes OU 60 et 62 qui activent le signal de sortie B (connecté au dispositif sélecteur 49 à la figure 4) et le signal de sortie D 5 (connecté au tampon 46 à la figure 3) de façon à choisir l'opération de décryptage. Le signal de prépositionnement de la bascule FLIP-FLOP 56 est couplé aux sorties du microprocesseur HALT et BUSACK en tant que sécurité contre toute interfé- rence possible avec l'unité centrale de traitement CPU 2 lorsqu'on est en attente de lecture de signaux décryptés. Le circuit 34-de décodage d'adresses détecte l'ac- cession des adresses dans la mémoire associée avec le système opératoire CP/M et engendre un signal de sortie CP/M de façon à dériver le circuit de décryptage. En bref, l'invention concerne un procédé et un appa- reillage permettant d'empêcher le copiage non autorisé, l'altération ou la falsification de logiciels ou programmes pour ordinateurs en faisant usage d'un module anti-fraude 1, permettant le décryptage d'un programme encrypté dans la mémoire 4 de l'ordinateur Le module anti-fraude comprend un microprocesseur 2 et un circuit de décryptage, lesquels fonctionnent ensemble de façon à décrypter et exécuter le programme instruction par instruction en temps réel Le circuit de décryptage comprend une première mémoire 26 permettant d'emmagasiner une clé de décryptage et les algorithmes de décryptage, et une seconde mémoire 22 permettant de stocker temporairement une carte de mémoire engendrée à l'intérieur du module anti-fraude, lorsqu'une clé de décryptage, préfixée aux programmes encryptés est reçue Les éléments de la carte de mémoire correspondent à des emplacements dans la mémoire 4 de l'ordinateur et sont combinés individuellement avec les instructions respec- tives dans le programme, de sorte qu'elles sont lues à partir de la mémoire de l'ordinateur, chaque instruction étant décryptée de cette manière et ensuite exécutée dans le processeur 2 avant que l'instruction suivante ne soit traitée L'appareil est également capable de décrypter une clé, laquelle est elle-même sous forme encryptée en utili- sant par exemple un système à clé publique Les avantages de l'appareillage sont que le programme décrypté n'apparaît pas sur les conducteurs à l'extérieur du module anti-fraude, et que, une, fois que la carte de mémoire a été engendrée, le programme peut être décrypté et exécuté en temps réel à une vitesse relativement grande. REVENDICATIONS 1 Appareil de traitement de données pour ordinateur comprenant une mémoire ( 4) et une unité de traitement centrale ( 2) pour exécuter un programme chiffré stocké dans la mémoire, caractérisé en ce que l'unité de traitement ( 2) est connectée à des moyens de décryptage ( 3), les moyens de décryptage et au moins une partie de l'unité de traite- ment comprenant un module anti-fraude ( 1). 2 Appareil selon la revendication 1, caractérisé en ce que l'unité de traitement est un microprocesseur. 3 Dispositif destiné à empêcher le copiage non autorisé, l'altération ou la falsification de programmes ou logiciels d'ordinateurs, caractérisé en ce qu'il com- prend un module anti-fraude ( 1) constituant au moins une partie d'une unité de traitement ( 2), un circuit de décryp- tage ( 3), et des circuits de données et d'adresses ( 10, 12) pour la connexion avec une mémoire externe. 4 Dispositif selon la revendication 3, caractérisé en ce que le module anti-fraude ( 1) est constitué de façon à exécuter des instructions d'encryptage ou chiffrage d'un programme fourni au module ( 1) à partir du circuit de don- nées ( 10). Appareil de traitement de données pour ordinateur pour l'exécution d'un programme d'ordinateur encrypté ou chiffré, du type comprenant: une mémoire de programmation PROM ( 26) pour stocker le programme encrypté et la clé de décryptage une unité de traitement centrale ( 2) pour exécuter le programme; un circuit de décryptage ( 14, 16, 20), un circuit de données ( 10) couplant la mémoire de programmation PROM-( 26) aux circuits de décryptage; et un circuit d'adresses ( 12) couplant l'unité de traitement ( 2) à la mémoire de programmation PROM ( 26) le circuit de décryptage et au moins une partie de l'unité de traitement formant une partie d'un module anti-fraude; caractérisé en ce que le circuit dedécryptage comprend une première mémoire de décryptage pour stocker un algorithme de décryptage et une seconde mémoire de décryptage pour stocker une copie décryptée du programme. 6 Appareil selon la revendication 5, caractérisé en ce que la copie décryptée est une carte de mémoire comportant des éléments correspondant aux endroits de stockage du programme dans la mémoire de programme PROM ( 26) et en ce que l'appareil comprend des moyens combina- teurs ( 42, 44) ayant une entrée couplée respectivement aux circuits de données ( 10) et à la seconde mémoire de décryptage et une sortie couplée à l'unité de traitement CPU ( 2). 7 Appareil selon la revendication 6, caractérisé en ce que le circuit de décryptage comprend en outre un dispositif de commutation couplé à la ligne de données ( 10) pour amener les signaux provenant de la mémoire de programme PROM ( 26) à l'unité de traitement centrale ( 2), de façon à court-circuiter les moyens combinatoires. 8 Dispositif selon la revendication 7, caractérisé en ce que le dispositif de commutation présente une entrée de commande couplée à une sortie de l'unité de traitement ( 2) pour amener les signaux à travers l'unité combinatoire seulement lorsque les signaux représentent une instruction de programme. 9 Appareil selon la revendication 5, caractérisé en ce que la première mémoire de décryptage PROM ( 26) est une mémoire morte (ROM) ayant un programme de décryptage qui y est stocké pour engendrer une copie décryptée du programme encrypté en utilisant la clé de décryptage et l'algorithme de décryptage. 10 Appareil selon la revendication 6, caractérisé en ce que les moyens combinatoires ( 42, 44) sont suscepti- bles de combiner les signaux provenant du circuit de don- nées ( 10) avec des éléments de la carte de mémoire au moyen d'une opération logique réversible. 11 Appareil selon la revendication 10, caractérisé en.ce que l'opération logique réversible est une opération OU exclusif. 12 Appareil selon la revendication 5, caractérisé en ce qu'il comprend des moyens pour décrypter la clé de décryptage lorsque cette dernière est elle-même sous forme encryptée dans la mémoire de programme PROM ( 26), le circuit de décryptage comprenant des moyens pour stoc- ker une clé de décryptage auxiliaire privée, des moyens pour reconnaître une clé d'encryptage auxiliaire publique dans les-signaux arrivants, laquelle clé publique est mathématiquement reliée à la clé privée, et des moyens - pour décrypter la clé de décryptage du signal encrypté avant d'engendrer une copie du programme décrypté. 13 Appareil selon la revendication 12, caractérisé en ce que, pour décrypter le programme, on utilise le qjrème DES Data Encryption Standard, et pour décrypter le DES, on utilise le système de clé publique de décryptage RSA. 14 Appareil selon la revendication 5, caractérisé en ce que le circuit de décryptage est constitué de façon à décrypter le programme encrypté, de telle sorte que-le programme peut être effectué en temps réel, chaque instruc- tion de programme étant décryptée et amenée à l'unité centrale de traitement pour exécution. Un procédé pour empêcher le copiage, l'altéra- tion ou la falsification de programmes et logiciels d'ordinateurs, dans un ordinateur destiné à exécuter de tels programmes, caractérisé en ce qu'il comprend les étapes suivantes on stocke un programme dans une mémoire ( 4) dans le calculateur sous forme encryptée, et on exécute le programme en amenant des instructions dans le programme à un module anti- fraude ( 1) comprenant au moins une partie d'une unité de traitement ( 2) et un dispositif de décryptage ( 3). 16 Procédé pour empêcher le copiage, la falsifica- tion ou l'altération de programmes ou logiciels d'ordina- teurs, dans un ordinateur destiné à exécuter de tels programmes, caractérisé en ce qu'il comprend les étapes suivantes: on prévoit dans l'ordinateur un module ( 1) anti- fraude contenant une unité de traitement ( 2) ou au moins une partie de cette unité, et un circuit de décryptage comprenant une première mémoire de décryptage PROM ( 26); on encrypte un programme en utilisant une clé d'encryptage, on stocke le programmé encrypté et la clé dans une mémoire RAM ( 22) de l'ordinateur, laquelle mémoire est extérieure au module antifraude, on fournit la clé au programme encrypté à partir de la mémoire extérieure RAM ( 22) au module anti-fraude, et on engendre, à partir de là une copie décryptée du programme dans la première mémoire de décryptage en utilisant la clé, on fournit le programme encrypté au module anti-fraude de façon à décrypter le programme, et on exécute le programme décrypté en temps réel dans l'unité de traitement ( 2), les signaux électriques représentant le programme décrypté étant confinés à des éléments électriques logés à l'intérieur du module anti-fraude. 17 Procédé selon la revendication 16, caractérisé en ce que la copie du programme décrypté comprend une carte de mémoire de décryptage dans la première mémoire de décryptage et en ce que le programme encrypté est combiné avec la carte de mémoire, des incréments du programme encrypté étant amenés séquentiellement à des moyens de combinaison, chaque incrément individuel étant combiné et ensuite exécuté avant que l'incrément suivant ne soit combiné. 18 Procédé selon la revendication 17, caractérisé en ce que l'étape d'encryptage comprend l'encryptage seulement d'instructions ou de codes opératoires du pro- gramme, les données ou opérandes restant comme un texte unique et en ce qu'on exécute le programme notamment, on détermine quels signaux amenés au module anti-fraude sont des instructions de programme, et on active des moyens pour combiner les signaux arrivants avec la carte de mémoire seulement lorsque les signaux arrivants sont déterminés comme représentant une instruction de programme. 19 Procédé selon la revendication 16, caractérisé en ce qu'il comprend en outre les étapes d'encryptage de la clé avant le stockage du programme encrypté et de la clé, et le décryptage de la clé dans le module antifraude avant d'engendrer la copie du programme décrypté. Procédé selon la revendication 19, caractérisé en ce que l'encryptage de la clé est effectué en utilisant un système de clé publique, une clé publique auxiliaire étant stockée dans la mémoire externe, et une clé auxiliaire privée correspondant à la clé publique étant stockée dans une seconde mémoire de décryptage dans le module anti-fraude de façon à décrypter la première clé mentionnée. 21 Procédé selon la revendication 20, caractérisé en ce que le programme est encrypté en utilisant l'algorith- me DES et la clé pour engendrer la copie du programme décrypté est ellemême encryptée en utilisant le système de clé publique RSA. 22 Procédé selon la revendication 21, caractérisé en ce que l'étape d'encryptage comprend l'utilisation de l'algorithme DES dans un -mode de chiffrage en retour.