FR2529000A1 - Procede et dispositif pour la protection de logiciels d'ordinateurs - Google Patents

Procede et dispositif pour la protection de logiciels d'ordinateurs Download PDF

Info

Publication number
FR2529000A1
FR2529000A1 FR8309866A FR8309866A FR2529000A1 FR 2529000 A1 FR2529000 A1 FR 2529000A1 FR 8309866 A FR8309866 A FR 8309866A FR 8309866 A FR8309866 A FR 8309866A FR 2529000 A1 FR2529000 A1 FR 2529000A1
Authority
FR
France
Prior art keywords
program
decryption
memory
key
encrypted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR8309866A
Other languages
English (en)
Inventor
David B Everett
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OPEN COMPUTER SERVICES Ltd
Original Assignee
OPEN COMPUTER SERVICES Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by OPEN COMPUTER SERVICES Ltd filed Critical OPEN COMPUTER SERVICES Ltd
Publication of FR2529000A1 publication Critical patent/FR2529000A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/605Copy protection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

L'INVENTION CONCERNE UN PROCEDE ET DISPOSITIF POUR LA PROTECTION DE LOGICIELS D'ORDINATEURS. SELON L'INVENTION, L'APPAREIL DE TRAITEMENT DE DONNEES POUR ORDINATEUR COMPRENANT UNE MEMOIRE 4 ET UNE UNITE DE TRAITEMENT CENTRALE 2 POUR EXECUTER UN PROGRAMME CHIFFRE STOCKE DANS LA MEMOIRE, SE CARACTERISE EN CE QUE L'UNITE DE TRAITEMENT 2 EST CONNECTEE A DES MOYENS DE DECRYPTAGE 3, LES MOYENS DE DECRYPTAGE ET AU MOINS UNE PARTIE DE L'UNITE DE TRAITEMENT COMPRENANT UN MODULE ANTI-FRAUDE 1. L'INVENTION S'APPLIQUE NOTAMMENT A LA MICROINFORMATIQUE.

Description

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.

Claims (19)

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.
FR8309866A 1982-06-16 1983-06-15 Procede et dispositif pour la protection de logiciels d'ordinateurs Withdrawn FR2529000A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB08217456A GB2122777A (en) 1982-06-16 1982-06-16 Software protection apparatus and method

Publications (1)

Publication Number Publication Date
FR2529000A1 true FR2529000A1 (fr) 1983-12-23

Family

ID=10531086

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8309866A Withdrawn FR2529000A1 (fr) 1982-06-16 1983-06-15 Procede et dispositif pour la protection de logiciels d'ordinateurs

Country Status (4)

Country Link
JP (1) JPS5947646A (fr)
DE (1) DE3321910A1 (fr)
FR (1) FR2529000A1 (fr)
GB (1) GB2122777A (fr)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0121853A2 (fr) * 1983-04-04 1984-10-17 BURROUGHS CORPORATION (a Delaware corporation) Système de traitement de données à clé de chiffrement publique et à clé de déchiffrement privée
EP0171456A1 (fr) * 1984-08-17 1986-02-19 Thomas O. Westheimer Système de protection de logiciel d'ordinateur
EP0184023A1 (fr) * 1984-11-13 1986-06-11 Software Protect Ltd. Procédé et appareil de protection contre l'exécution non autorisée de programmes protégés dans un micro-ordinateur
FR2644261A1 (fr) * 1989-03-09 1990-09-14 Vernois Goulven Dispositif de transfert decodage codage de fichiers informatiques
WO1990010908A1 (fr) * 1989-03-09 1990-09-20 Vernois Goulven Dispositif informatique assurant la securite des droits d'auteur
FR2666160A2 (fr) * 1990-08-21 1992-02-28 Vernois Goulven Dispositif d'anticipation des besoins d'un module de decodage et organisation des fichiers et programmes en vue de cette anticipation.

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4550350A (en) * 1983-07-19 1985-10-29 Software Distribution Newtork, Inc. Secure copy method and device for stored programs
GB2149944A (en) * 1983-11-14 1985-06-19 Softnet Inc Software distribution
GB2158622A (en) * 1983-12-21 1985-11-13 Goran Anders Henrik Hemdal Computer controlled systems
DE3432721A1 (de) * 1984-09-06 1986-03-06 Ruediger Hahn Datenschuetzender standard-mikroprozessor
GB2165377A (en) * 1984-09-19 1986-04-09 Itt Ind Ltd A computer element
AT390148B (de) * 1985-08-22 1990-03-26 Novomatic Automatenindustrie U Anordnung zum entschluesseln von befehlen
GB2204970A (en) * 1987-05-19 1988-11-23 Gen Electric Co Plc Data storage system
GB2205667B (en) * 1987-06-12 1991-11-06 Ncr Co Method of controlling the operation of security modules
JP4153653B2 (ja) 2000-10-31 2008-09-24 株式会社東芝 マイクロプロセッサおよびデータ保護方法
TWI222609B (en) * 2001-07-25 2004-10-21 Matsushita Electric Ind Co Ltd A method of producing a decrypting apparatus having a cryptographic device and cryptographic information, a system for providing such device and information, and the decrypting apparatus produced by the production method
US9177145B2 (en) * 2009-03-24 2015-11-03 Sophos Limited Modified file tracking on virtual machines
US10642970B2 (en) * 2017-12-12 2020-05-05 John Almeida Virus immune computer system and method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4262329A (en) * 1978-03-27 1981-04-14 Computation Planning, Inc. Security system for data processing
CA1147823A (fr) * 1978-07-24 1983-06-07 Robert M. Best Crypto-microprocesseur d'execution de programmes chiffres
US4306289A (en) * 1980-02-04 1981-12-15 Western Electric Company, Inc. Digital computer having code conversion apparatus for an encrypted program

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0121853A2 (fr) * 1983-04-04 1984-10-17 BURROUGHS CORPORATION (a Delaware corporation) Système de traitement de données à clé de chiffrement publique et à clé de déchiffrement privée
EP0121853A3 (fr) * 1983-04-04 1988-01-13 BURROUGHS CORPORATION (a Delaware corporation) Système de traitement de données à clé de chiffrement publique et à clé de déchiffrement privée
EP0171456A1 (fr) * 1984-08-17 1986-02-19 Thomas O. Westheimer Système de protection de logiciel d'ordinateur
EP0184023A1 (fr) * 1984-11-13 1986-06-11 Software Protect Ltd. Procédé et appareil de protection contre l'exécution non autorisée de programmes protégés dans un micro-ordinateur
FR2644261A1 (fr) * 1989-03-09 1990-09-14 Vernois Goulven Dispositif de transfert decodage codage de fichiers informatiques
WO1990010908A1 (fr) * 1989-03-09 1990-09-20 Vernois Goulven Dispositif informatique assurant la securite des droits d'auteur
FR2666160A2 (fr) * 1990-08-21 1992-02-28 Vernois Goulven Dispositif d'anticipation des besoins d'un module de decodage et organisation des fichiers et programmes en vue de cette anticipation.

Also Published As

Publication number Publication date
DE3321910A1 (de) 1984-03-01
GB2122777A (en) 1984-01-18
JPS5947646A (ja) 1984-03-17

Similar Documents

Publication Publication Date Title
FR2529000A1 (fr) Procede et dispositif pour la protection de logiciels d'ordinateurs
CA2121410C (fr) Dispositif de protection des cles d'une carte a puce
EP1161725B1 (fr) Procede de surveillance du deroulement d'un programme
CN108345806B (zh) 一种硬件加密卡和加密方法
TWI406150B (zh) 安全系統晶片
FR2477344A1 (fr) Procede et systeme de transmission d'informations confidentielles
FR2670036A1 (fr) Ensemble de communication de donnees.
FR2995707A1 (fr) Systemes et procedes de gestion de cles de chiffrement dans un microcontroleur securise
EP2318976A1 (fr) Procede et systeme permettant de securiser un logiciel
EP1324175B1 (fr) Module de securisation de donnees par chiffrement/dechiffrement et/ou signature/verification de signature
WO2017006058A1 (fr) Systeme et procede d'authentification et de licence ip de modules hardware
CN114221762A (zh) 一种私钥存储方法、读取方法、管理装置、设备及介质
FR2829266A1 (fr) Circuit integre a semiconducteurs ayant une fonction de crypteur/decrypteur pour proteger des donnees d'entree/ sortie transmises sur un bus interne
CN110915163B (zh) 用于传输个人数据的方法和设备
EP1524795A1 (fr) Chiffrement de données dans un appareil électronique à plusieurs processeurs symétriques
EP2284748B1 (fr) Procédé de contremesure pour protéger des données mémorisées
EP1355446B1 (fr) Chiffrement du contenu d'une mémoire externe à un processeur
CN109325322A (zh) 用于嵌入式平台的软件知识产权保护系统和方法
EP1538508A1 (fr) Procédé et dispositif de chiffrement et dechiffrement à la volée
EP2336931B1 (fr) Procédé de vérification de signature
EP1279141B1 (fr) Procede de contre mesure dans un microcircuit et carte a puce comportant ledit microcircuit
WO2008007009A1 (fr) Protection d'un programme interprete par une machine virtuelle
WO2015000967A1 (fr) Dispositif, système et procédé de sécurisation de transfert de données entre un dispositif de stockage de données portable source et un système informatique destinataire
CN110932853A (zh) 一种基于可信模块的密钥管理装置和密钥管理方法
EP1548601A1 (fr) Contrôle d'accès mémoire dans un appareil électronique

Legal Events

Date Code Title Description
CD Change of name or company name
ST Notification of lapse