FR2526560A1 - Dispositif pour la protection contre une lecture non autorisee de mots de programme a memoriser dans une memoire, et unite de memoire comportant ladite memoire - Google Patents

Dispositif pour la protection contre une lecture non autorisee de mots de programme a memoriser dans une memoire, et unite de memoire comportant ladite memoire Download PDF

Info

Publication number
FR2526560A1
FR2526560A1 FR8307446A FR8307446A FR2526560A1 FR 2526560 A1 FR2526560 A1 FR 2526560A1 FR 8307446 A FR8307446 A FR 8307446A FR 8307446 A FR8307446 A FR 8307446A FR 2526560 A1 FR2526560 A1 FR 2526560A1
Authority
FR
France
Prior art keywords
memory
unit
program
input
additional information
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.)
Granted
Application number
FR8307446A
Other languages
English (en)
Other versions
FR2526560B1 (fr
Inventor
Hendrik Vrielink
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.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
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 Philips Gloeilampenfabrieken NV filed Critical Philips Gloeilampenfabrieken NV
Publication of FR2526560A1 publication Critical patent/FR2526560A1/fr
Application granted granted Critical
Publication of FR2526560B1 publication Critical patent/FR2526560B1/fr
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

LA LECTURE NON AUTORISEE DE MOTS DE PROGRAMME STOCKES DANS UNE MEMOIRE D'UN SYSTEME DE TRAITEMENT DE DONNEES EST CONTRECARREE PAR LA FOURNITURE AU LECTEUR NON AUTORISE DE DONNEES PERTURBATRICES PROVENANT D'UNE SOURCE DE DONNEES EN LIEU ET PLACE DE MOTS DE PROGRAMME PROVENANT DE LA MEMOIRE. POUR ETABLIR SI LA MEMOIRE EST LUE PAR UN LECTEUR NON AUTORISE OU PAR L'UNITE DE TRAITEMENT DE DONNEES DU SYSTEME POUR LE TRAITEMENT DU PROGRAMME, ON UTILISE LA SUCCESSION DANS LAQUELLE L'UNITE DE TRAITEMENT DE DONNEES LIT LES MOTS DE PROGRAMME DANS LA MEMOIRE. L'ORDRE DE SUCCESSION DANS LEQUEL L'UNITE DE TRAITEMENT DE DONNEES LIT LES MOTS DE PROGRAMME DANS LA MEMOIRE DIFFERE DE CELUI DANS LEQUEL LES MOTS DE PROGRAMME SONT INSCRITS DANS LA MEMOIRE. A CHAQUE MOT DE PROGRAMME STOCKE DANS LA MEMOIRE EST AJOUTEE UNE INFORMATION SUPPLEMENTAIRE QUI COMPORTE UNE INDICATION D'UN MOT DE PROGRAMME SUIVANT A EXTRAIRE PAR L'UNITE DE TRAITEMENT DE DONNEES. SUR BASE DE CETTE INFORMATION SUPPLEMENTAIRE, ON EXAMINE A PRESENT SI LA MEMOIRE EST LUE DANS L'ORDRE DETERMINE PAR L'UNITE DE TRAITEMENT DE DONNEES, DONC POUR LE TRAITEMENT DU PROGRAMME, OU PAR UN LECTEUR NON AUTORISE QUI NE CONNAIT PAS L'ORDRE DETERMINE PAR L'UNITE DE TRAITEMENT DE DONNEES.

Description

Dispositif pour la protection contre une lecture non auto-
risée de mots de programme à mémoriser dans une mémoire.
La présente invention concerne un dispositif pour la protection contre une lecture non autorisée de
mots de programme mémorisés dans une mémoire, en particu-
lier une mémoire de programme, cette mémoire faisant partie d'une unité de mémoire, ce dispositif comportant, en outre,
une unité de traitement de données dont une sortie d'adres-
se est connectée à une entrée d'adresse de la mémoire en vue d'adresser, lors d'une opération de traitement, les mots de programme dans un ordre déterminé par l'unité de
traitement de données.
Des dispositifs qui sont commandés par une unité
de traitement de données comprennent une mémoire, par exem-
ple une mémoire ROM ou une mémoire PROM, dans laquelle sont stockés, sous forme de mots de programme, des programmes
d'ordinateurs et d'autres informations, à savoir du logi-
ciel, pour l'exécution des opérations de l'unité de traite-
ment de données La composition de ce logiciel est une
tâche qui prend du temps et surtout qui coûte de l'argent.
C'est pourquoi il est important que ce logiciel ne puisse
pas être copié librement par un lecteur non autorisé.
On connait déjà plusieurs procédés selon les-
quels le contenu de la mémoire ou le logiciel est protégé contre une lecture non autorisée Ainsi, il est connu d'utiliser des mots de code ou des "clés d'accès", ou bien des "instructions" dites de "sauvegarde " qui bloquent l'accès aux mots de programme stockés dans la mémoire Un tel procédé est eécrit, par exemple, dans l'article "Computer program protection" de E J Lengijel et D H. Olson publié dans IBM TDB, volume 14, N O 11, avril 1972,
page 3531.
Un inconvénient des procédés connus est que l'échec d'une tentative de copier le logiciel de la mémoire se remarque assez rapidement Un lecteur non autorisé astucieux trouve alors le plus souvent une manière de désactiver le procédé de protection et ainsi d'effectuer
malgré tout ses manipulations non autorisées.
L'invention a pour but de réaliser un dispositif au moyen duquel la lecture non autorisée du contenu de la mémoire donne au lecteur non autorisé une information qui est complètement inutilisable pour celui-ci et ce sans
qu'il s'en aperçoive pendant sa tentative de copiage.
Un dispositif conforme à l'invention est à cet effet caractérisé en ce que l'unité de mémoire comporte une unité de sélection, une unité de vérification et une source de données à l'extérieur de la mémoire destinée à fournir au moins un mot perturbateur qui exerce un effet de brouillage lorsqu'il est ajouté auxdits mots de programme,
l'unité de sélection comportant une première entrée connec-
tée à une première sortie de la mémoire et une deuxième entrée connectée à la sortie de la source de données, une information supplémentaire étant ajoutée à chaque mot de programme mémorisé dans la mémoire, une deuxième sortie de la mémoire etant connectée à une première entrée de l'unité
de vérification pour présenter ladite information supplé-
mentaire, une seconde entrée de l'unité de vérification étant connectée à une borne de la mémoire pour présenter l'information de programme, cette unité de vérification étant pourvue de premiers moyens qui lui permettent, lors d'une opération de lecture d'un premier mot de programme, de stocker ladite information supplémentaire provenant de la mémoire, cette information supplémentaire indiquant un mot de programme de suite au premier mot de programme qui est déterminé par ledit ordre de succession, l'unité de vérification étant pourvue de seconds moyens pour, lors d'une opération de lecture, véri'ier pour un deuxième mot de programme provenant de la mémoire et sous la commande de l'information supplémentaire stockée, si l'information de programme du deuxième mot de programme à lire correspond à l'information de programme du mot de programme de suite indiqué par l'information supplémentaire et polir, en cas de concordance à ladite vérification, produire un premier signal et en cas de non-concordance à ladite vérification,
produire un second signal, l'unité de sélection étant pour-
vue d'une entrée de commande pour la réception dudit pre-
mier et dudit second signal afin de fournir, sous la com-
mande dudit premier signal, un mot de programme provenant de la mémoire à une sortie et sous la commande dudit second
signal, bloquer la fourniture d'au moins un mot de program-
me de la mémoire et y substituer la fourniture à la sortie
d'un mot perturbateur provenant de la source de données.
Les mots de programme sont stockés dans la mémoire dans un ordre bien déterminé L'ordre de succession dans lequel les mots de programme sont extraits par l'unité de traitement
de données, pendant le traitement du programme est toute-
fois différent de l'ordre de succession bien déterminé selon lequel les mots de programme sont stockés dans la mémoire Ainsi, il est normal que sous la commande de _____ l'unité de traitement de données, on passe, par exemple, à un sous-programme Seul le programmeur et l'unité de traitement de données connaissent l'ordre dans lequel les mots de programme sont lus dans la mémoire pour l'exécution upr dugprogramme Le lecteur non autorisé ne connaît toutefoi-5
pas cet ordre de succession et extraira les mots de program-
me de la mémoire en les prenant, par exemple, un à un dans l'ordre dans lequel ils sont stockés Lorsque l'ordre de
succession tel qu'il a été déterminé par l'unité de traite-
ment de données n'est pas respecté, la première sortie de la mémoire est bloquée pour au moins un des mots de programme à extraire de la mémoire et le mot de programme à fournir
est remplacé par un motperturbateur provenant de la sour-
ce de données Ce mot perturbateur fourni par la source de données-ost entièrement inutilisable pour le traitement du programme Le lecteur non autorisé ne s'aperçoit de rien au cours de son opération de copiage car des mots de programme sont normalement fournis à la sortie du dispositif Ce n'est que lorsqu'il voudra utiliser son programme "copié" qu'il
remarquera que ce programme copié est inutilisable.
Une première forme préférentielle d'un dispositif conforme à l'invention est caractérisée en ce que ladite connexion de la mémoire comporte une entrée d'adresse de la mémoire et ladite information de programme comporte au moins une partie de l'adresse du mot de programme Ladite vérification est simple à réaliser sur base de quelques bits de l'adresse du mot de programme adressé par l'unité
de traitement de données.
Il est avantageux que lesdits premiers moyens de l'unité de vérification comportent un registre propre et une table de mémoire, le registre propre comportant une première entrée connectée à la première entrée de l'unité de vérification et une sortie de l'unité de traitement de données étant connectée à une seconde entrée du registre propre en vue de recevoir un signal de commande pour une opération de lecture, ce registre propre comportant une sortie connectée à une entrée d'adresse de la table de mémoire pour le stockage d'adresses de mots de programme, ladite information supplémentaire comportant une adresse
pour un emplacement de la table de mémoire Grâce à l'uti-
lisation d'une telle table de mémoire dans laquelle sont stockées des adresses de mots de programme, il est possible d'effectuer la vérification sur tous les bits du mot d'adresse sans occuper beaucoup d'espace de la mémoire pour
le stockage de l'information supplémentaire.
Une deuxième forme d'exécution préférée d'un dispositif conforme à l'invention est caractérisée en ce que ladite connexion de la mémoire comporte une sortie de données de la mémoire et ladite information de programme comporte au moins une partie du mot de programme A côté de la vérification effectuée sur base de mots d'adresse, il
est aussi possible de vérifier sur base des mots de pro-
gramme eux-mêmes.
Une autre forme d'exécution préférée d'un dis-
positif conforme à l'invention est caractérisée en ce que lesdits mots de programme à protéger sont divisés en deux
groupes différents, un premier groupe dans lequel une in-
formation supplémentaire exclusive est ajoutée à chaque mot
de programme et un second groupe dans lequel une informa-
tion supplémentaire non exclusive est ajoutée à chaque
mot de programme, ladite unité de vérification étant équi-
pée de moyens d'identification pour identifier de l'informa-
tion supplémentaire dudit second groupe et pour, sous la commande d'une information supplémentaire dudit second groupe, désactiver l'unité de comparaison et produire un
premier signal L'adjonction d'une information supplémen-
taire exclusive à chaque mot de prpgramme exige une grande quantité d'espace de mémoire et n'augmente que dans une faible mesure l'efficacité du dispositif en ce qui concerne
la lecture non autorisée A cet effet, il suffit de n'ajou-
ter une information supplémentaire exclusive qu'au premier groupe de mots de programme et d'ajouter une information supplémentaire non exclusive aux mots de programme qui n'appartiennent pas à ce groupe, par exemple tous les mots
de programme du second groupe ont la même information sup-
plémentaire Grâce à cette division en premier et second groupes, l'information supplémentaire n'occupe qu'une faible
quantité de l'espace de mémoire disponible.
Il est avantageux que ladite source de données
comprenne un générateur aléatoire L'utilisation d'un géné-
rateur aléatoire permet de produire des mots de programme inutilisables toujours différents lorsqu'un lecteur non
autorisé essaye de copier le contenu de la mémoire.
Des formes d'exécution de l'invention seront décrites ci-après plus-ien détail avec référence aux dessins annexés, dans lesquels: la Fig la illustre une forme d'exécution simple
d'un dispositif de protection contre une lecture non auto-
risée conforme à l'invention, dans laquelle la vérification s'effectue sur base du signal d'adresse; la Fig lb illustre un certain nombre de formes
d'onde utilisées pour expliquer le fonctionnement d'un dis-
positif conforme à l'invention; la Fig 2 illustre une autre forme d'exécution d'un dispositif conforme à l'invention, et
la Fig 3 illustre encore une autre forme d'exé-
cution d'un dispositif conforme à l'invention dans lequel la
vérification s'effectue sur base du mot de programme.
Dans un système de traitement de données, on utilise une unité de traitement de données pour traiter des données selon un programme Ce programme est mémorisé sous la forme de mots de programme comme, par exemple, des instructions, des données, etc, dans une mémoire, qualifiée aussi de mémoire de programme Cette mémoire est le plus souvent une mémoire morte, par exemple une mémoire ROM, ou
bien une mémoire PROM, une mémoire EAROM ou une autre mé-
moire à CI (circuit intégré) Les mots de programme d'un
io programme sont stockés dans la mémoire dans un ordre donné.
Lors de l'exécution du programme, l'unité de traitement de données lit les mots de programme dans la mémoire dans un ordre qui est déterminé par le contenu et par la nature du programme ainsi que par les données à traiter Cet ordre de succession mentionné en dernier lieu diffère de l'ordre de succession du stockage des mots de programme dans la mémoire Ceci implique que sous la commande de l'unité de traitement de données l'on effectue des sauts, dits "jumps",
dans le programme tel que stocké dans la mémoire Un lec-
teur non autorisé ne connaît pas l'ordre dans lequel les mots de données doivent être extraits de la mémoire par l'unité de traitement de données lors de l'exécution du programme Lorsqu'un lecteur non autorisé souhaite lire le programme de la mémoire, il extraira à cet effet les mots de programme dans un ordre qui est différent de celui de
l'unité de traitement de données.
L'invention tire profit du fait que le lecteur non autorisé ne respecte pas l'ordre de succession indiqué par
l'unité de traitement de données pour perturber ses mani-
pulations non autorisées.
L'invention sera décrite pour plusieurs formes d'exécution dans lesquelles une instruction (mot) est chaque fois choisie comme mot de programme Il est clair que l'invention fonctionne de manière analogue pour des
mots de données ou pour tout autre type de mot de programme.
La Fig la illustre une forme d'exécution simple d'un dispositif pour la protection contre une lecture non autorisée conformément à l'invention Le dispositif à
2526560.
mémoire 20 comporte une mémoire 1, par exemple une mémoire ROM, dont une entrée d'adresse, par exemple de 11 bits de
largeur, est connectée à un bus d'adresses 2 du système.
Une première sortie de données de la mémoire 1 est connectée par l'intermédiaire du premier bus de données 9, par exem-
ple de 8 bits, à une première entrée d'une unité de sélec-
tion 7 Une deuxième sortie de données de la mémoire 1 est connectée par l'intermédiaire d'un deuxième bus de données
13 à une première entrée d'une unité de vérification 21.
Une deuxième entrée de l'unité de vérification 21 est con-
nectée à un certain nombre de lignes, par exemple quatre, du bus d'adresses 2 Une deuxième entrée de l'unité de sélection 7 est connectée à une sortie d'une source de données 8 L'unité de sélection comporte, en outre, une entrée de commande S qui est connectée à une sortie de l'unité de vérification 21 Une ligne 11 porte le signal CS (Chip Select) qui est présenté à une entrée CS de la mémoire 1, ainsi qu'à une troisième entrée de l'unité de vérification 21 Cette unité de vérification comporte une unité de comparaison 3 dont une première, une deuxième et une troisième entrée sont connectées respectivement à la première, la deuxième et la troisième entrée de l'unité de vérification La première entrée de l'unité de vérification
est connectée, en outre, à une première entrée d'un disposi-
tif OU logique 4 L'unité de vérifcation 21 comporte en
outre, une porte ET logique 5 dont une sortie est connec-
tée à une entrée d'horloge d'une bascule 6 Le signal OS à la troisième entrée de l'unité de vérification 21 est en outre présenté, inversé par l'intermédiaire de l'inverseur 3010, à une première entr 6 e de la porte ET logique 5 Une deuxième entrée de la porte ET logique 5 est connectée par l'intermédiaire d'une ligne 12 à ine sortie de l'unité de
comparaison 3 et une troisième entrée de la porte ET logi-
que 5 est connectée à une sortie du dispositif OU logique 354 Une sortie de la bascule 6 est connectée à l'entrée de
l'unité de vérification.
De l'espace 14, par exemple de 4 bits, est à présent prévu dans la mémoire 1 pour le stockage, en
annexe de chaque instruction, d'une information supplé-
mentaire qui se rapporte à une instruction suivante qui doit être extraite pendant le déroulement du programme par
une unité de traitement de données 15 connectée.
Dans la forme d'exécution choisie, dans le cas d'une série d'instructions, les bits les plus significatifs de l'adresse d'une des instructions suivantes à extraire par l'unité de traitement de données sont chaque fois inscrits comme information supplémentaire dans cet espace 14 Il est aussi possible d'utiliser comme information supplémentaire pour chaque instruction chaque fois les bits d'adresse les plus significatifs de l'instruction suivante à extraire au moyen de l'unité de traitement de données, mais ceci exige beaucoup d'espace de mémoire et n'améliore que peu l'efficacité du dispositif pour la protection contre une lecture non autorisée, comme cela sera expliqué plus
loin dans cette description.
Au lieu des bits les plus significatifs, on peut
évidemment aussi choisir, à titre d'information supplémen-
taire, les bits les moins significatifs ou une autre combi-
naison de bits provenant de l'adresse de l'instruction suivante Pour les autres instructions qui n'appartiennent
pas à ladite série, l'information supplémentaire a une va-
leur fixe, par exemple tous les bits pour l'information supplémentaire ont la valeur zéro, chaque instruction fonctionne alors comme instruction de poursuite On peut donc pour ainsi dire diviser les mots de programme en deux
groupes, un premier groupe dans lequel charue mot de pro-
gramme possède une information supplémentaire exclusive, et
un deuxième groupe dans lequel cela n'est pas le cas.
Il n'est pas absolument nécessaire que l'infor-
mation supplémentaire se rapporte à ladite instruction
suivante L'information supplémentaire peut aussi se rappor-
ter à une autre instruction à extraire par l'unité de traitement de données, mais dans ce cas, un plus grand nombre d'éléments est nécessaire pour le dispositif, comme par exemple un compteur, ce qui rend le dispositif plus
coûteux et plus compliqué.
Lorsqu'une première instruction est à présent adressée par l'unité de traitement de données 15 dans la mémoire 1, l'information supplémentaire appartenant à cette instruction est adressée en même temps Pendant l'adressage de la mémoire 1, le signal OS se trouve à un bas niveau, comme indiqué sur la Fig lb Par le fait que la mémoire est adressée par l'unité de traitement de données 15, la première instruction extraite ainsi que l'information
supplémentaire qui y est associée sont présentées respec-
tivement à la première et à la seconde sortie de données
de la mémoire 1 (signal de données (DAT) haut Fig lb).
L'information supplémentaire appartenant à cette première instruction est transmise par l'intermédiaire du deuxième bus de données 13 à l'unité de comparaison 3 et y est stockée, par exemple dans un registre propre de l'unité de comparaison Etant donné que le registre propre réagit au flanc montant du signal US, ce stockage a lieu lors de
la transition du signal OS du bas niveau vers le haut ni-
veau Lorsque l'unité de traitement de données extrait à
présent une seconde instruction de la mémoire 1, une opéra-
tion de comparaison est effectuée par l'unité de comparaison
3 Cette opération de comparaison s'effectue sous la com-
mande du flanc descendant du signal CS et compare dans cette forme d'exécution les bits d'adresse les plus significatifs de l'adresse de la deuxième instruction telle qu'elle est présentée à la deuxième entrée de l'unité de comparaison et l'information supplémentaire stockée dans le registre propre
de cette unité.
Le résultat de l'opération de comparaison est
positif lorsque la mémoire 1 est adressée dans l'ordre cor-
rect déterminé par le programme de l'unité de traitement de
données, donc lorsque l'adresse de ladite deuxième instruc-
tion est égale, pour ce qui concerne les bits les plus significatifs, aux bits les plus significatifs de l'adresse de ladite instruction suivante qui sont encore présents
dans le registre propre.
Le résultat de l'opération de comparaison est négatif lorsque la mémoire 1 est adressée dans un ordre b incorrect, par exemple lorsque le contenu de la mémoire est copié et que les instructions ne sont pas extraites dans l'ordre déterminé par le programme de l'unité de traitement de données Dans ce cas, l'adresse de ladite deuxième instruction diffère en effet de l'adresse de la-
dite instruction suivante.
Le iésultat de l'opération de comparaison ap-
parait inversé à une sortie EQ de l'unité de comparaison 3 et est présenté par l'intermédiaire de la ligne 12 à ladite deuxième entrée de la porte ET logique 5 Le signal CS est présenté à la première entrée de la porte ET logique 5 en vue de réaliser une synchronisation avec l'extraction
d'instructions de la mémoire.
Le dispositif OU ldgique 4 remplit une fonction
particulière qui sera expliquée plus en détail ci-après.
Comme déjà mentionné dans la description, toutes les in-
structions ne sont pas pourvues d'une information suppié-
mentaire exclusive, mais dans cette forme d'exécution, la mémoire 1 contient des instructions pour lesquelles tous les bits pour l'information supplémentaire ont la valeur zéro (deuxième groupe) Lorsque l'information supplémentaire pour une instruction est formée entièrement de zeros, l'opération de vérification prend une autre forme Ces zéros
seront toutefois toujours présentés à l'unité de comparai-
son 3 lorsqu'une instruction comportant des zéros à titre d'information supplémentaire est extraite par l'unité de traitement Il est clair que le résultat de l'opération de
comparaison peut être négatif lorsque des zéros sont pré-
sentés Le dispositif OU logique 4 sert à présent à suppri-
mer ce résultat négatif Ce dispositif OU logique effectue une opération OU logique sur les bits de l'information supplémentaire Cela signifie que le résultat prendra la valeur logique " 1 " à une sortie du dispositif OU logique 4 lorsqu'au moins un des bits de l'information supplémentaire sest différent de zéro et que la valeur logique "O" sera présentée à la sortie du dispositif OU logique lorsque tous
les bits de l'information supplémentaire ont la valeur zéro -
Etant donné que le résultat à la sortie du dispositif OU 1 1
logique 4 n'a de l'importance que pour l'instruction sui-
vante (opération de comparaison dans l'unité de comparaison 3), il ne doit être fourni que lors de l'extraction de
l'instruction suivante Le résultat de l'opération OU lo-
gique est à cet effet conserv A dans le dispositif OU lo-
gique 4, par exemple par le positionnement d'une bascule.
On peut à présent distinguer trois cas: 1 le résultat de l'opération de comparaison est positif; 2 le résultat de l'opération de comparaison est négatif
et l'information supplémentaire ne comporte pas uni-
quement des zéros; 3 le résultat de l'opération de comparaison n'a pas
d'importance par suite du fait que l'information sup-
plémentaire ne comporte que des zéros.
Ces trois cas seront à présent décrits séparément.
1 Le résultat de l'opération de comparaison est positif Dans ce cas, la valeur EQ "O" apparaît sur la ligne 12 à la deuxième entrée de la porte ET logique 5, la
valeur OR = " 1 " apparaît à la sortie du dispositif OU lo-
gique 4 et est présentée à une troisième entrée de la porte ET logique 5 La valeur CS = " 1 " est présentée à lapremière entrée de la porte ET logique 5 lors de l'extraction d'une
instruction de la mémoire 1.
Etant donné que EQ = "O", OR = " 1 " et CS = " 1 ", une valeur logique "O" apparaît à une sortie de la porte ET logique 5 et est présentée à une entrée d'horloge de la bascule 6 Ce "O" logique ne fait pas commuter la bascule 6, par exemple la bascule de type D (la bascule est agencée de telle sorte qu'après l'enclenchement de l'alimentation, elle soit repositionnée, c'est-à-dire que Q = 0), de sorte qu'une valeur "O" logique apparaît aussi à une sortie Q de la bascule 6 et est présentée à une entrée S de l'unité de
sélection 7 Cette unité de sélection 7 fournit à une sor-
tie P un signal de la valeur F = A S+B S Ceci implique que lorsque la valeur logique "O" (S = "O") est présentée à l'entrée S (donc S = " 1 "), l'unité de sélection fournit l'instruction extraite de la mémoire 1 (F = A 1) Cette instruction est présentée par l'intermédiaire du premier
bus de données 9 à son entrée A de l'unité de sélection 7.
Par conséquent, dans le cas d'un résultat positif de l'opé-
ration de correction, l'instruction correcte est fournie à une entrée de données de l'unité de traitement de données 15 ou à un autre utilisateur. 2 Le résultat de l'opération de comparaison est négatif et l'information supplémentaire ne comporte pas uniquement des zéros Ceci signifie que EQ = " 1 ", OR = " 1 " et que CS = " 1 " est présenté aux entrées de la porte ET logique 5 Une valeur logique " 1 " apparaît dès lors à une sortie de cette porte ET logique 5 Cette valeur logique " 1 " provoque à présent la commutation de la bascule 6, de sorte que la valeur Q = " 1 " apparaît à la sortie Q de la bascule 6 et est présentée à l'entrée S de l'unité de sélection 7 Cette unité de sélection fournit à présent à
la sortie F le signal F = B 1 Cela signifie qu'une infor-
mation provenant de la source de données 8 est fournie à un utilisateur en lieu et place de l'instruction demandée provenant de la mémoire 1 De cette façon, le lecteur non autorisé recevra de l'information inutilisable de la source
de données 8.
-3 Le résultat de l'opération de comparaison est sans
importance par suite du fait que l'information supplémen-.
taire ne comporte que des zéros Cela signifie que EQ = " 1 ", OR = "O" et que CS = " 1 " est présenté aux entrées de la porte ET logique 5 Une valeur logique " 10 " apparaît ainsi à une sortie de la porte ET logique 5, à la suite de quoi la situation qui se présente est à nouveau la même que celle décrite dans le premier cas Grâce à cela, il n'est pas
nécessaire d'ajouter une information supplémentaire ex-
clusive à chaque instruction et l'espace occupé par l'in-
formation supplémentaire peut rester assez limité.
Diverses formes d'exécution sont possibles pour
la source de données 8, par exemple un registre, un géné-
rateur aléatoire, une mémoire (bien entendu différente de la mémoire 1) ou simplement une connexion à la terre Cette source de données donne à la deuxième entrée de l'unité
de sélection 7 des données perturbatrices qui ne con-
2526560.
viennent pas pour l'exécution du programme Le remplacement
des instructions de la mémoire 1 par des données perturba-
trices provenant de la source de données 8 assure que le
"programme copié" devient inutilisable La source de don-
nées 8 ne fournit de préférence pas un même mot perturba- teur fixe à l'entrée B de l'unité de sélection Ce mot serait en effet rapidement identifiable par un lecteur non
autorisé éventuel Par suite du fait que les mots perturba-
teurs présents à la sortie F de l'unité de sélection 7, dans le cas o l'entrée B est sélectionnée sont chaque fois différents, il est difficile de vérifier si l'information
fournie provient de la mémoire 1 ou de la source de don-
nées 8.
Le fonctionnement d'un dispositif conforme à
la Fig la sera illustré par l'exemple donné ci-dessous.
Le tableau I qui suit donne un exemple d'une partie du
contenu de la mémoire 1.
252 '6560
* 14
TABLEAU I
adress extra
infor-
mation ( 14) - l
010000
0 o 61
010101 000
instruction/ data word set a, b, c, d, e O a = a+ 1 goto 001000 read p display p enter b, store b goto 000001 c = c + 1 goto 001010 if a greaterthan 1 goto 000011 display b b = b 1 goto 010001 if b less than 5 goto 001010 d= a +b e = a + c On suppose à présent que lé programme est copié par lecture séquentielle des instructions successives (par
exemple par incrémentation d'un compteur) Aucune difficul-
té ne se présente à la lecture de la première et de la 3 O deuxième instruction (adresses 000000 et 000001) parce que le copiste non autorisé suit la séquence déterminée par l'unité de traitement de données Lorsque la troisième instruction (adresse 000010) est adressée, l'information supplémentaire 001 (stockée dans la partie 14 de la mémoire 351) formée par les bits d'adresse les plus significatifs est extraite et est stockée dans le registre de l'unité
de comparaison 3 Etant donné que l'information supplémen-
taire contient un bit de valeur 1, la valeur 1 est mémori-
sée à la sortie de la porte OU 4.
En extrayant la quatrième instruction (adresse oooo 11) l'unité de comparaison compare les bits les plus significatifs de l'adresse présentée à la mémoire, c'est-
à-dire 000, avec l'information supplémentaire, c'est-à-
dire 001, stockée dans son registre Le résultat de cette comparaison est négatif (O) Ce résultat de comparaison est
inversé (O (inversé) = 1) à la sortie de l'unité de compa-
raison 3 A l'entrée de la porte ET 5 sont alors présen-
tées les valeurs 1, 1, 1 (unités de comparaison 3, porte OU 4, Cs (deux fois inversé)) La sortie de la porte ET 5 a à présent une valeur 1 qui commute la bascule 6, ce qui a à son tour pour effet de provoquer la sélection de l'entrée B du sélecteur 7, c'est-à-dire de l'information provenant de la source de données 8 et non pas de l'information
"lire p I' de la mémoire 1 Le copiste non autorisé ne re-
marque pas ce changement parce qu'une information sort Lors de l'extraction de la cinquième instruction (adresse 000100), la comparaison entre l'information supplémentaire (ooo) ajoutée à la quatrième instruction et les bits les plus significatifs de l'adresse présentée (ooo) donne un résultat
positif, c'est-à-dire sortie inversée de l'unité de com-
paraison = 0, sortie de porte OU 4 = O (opération OU sur 000), et CS (deux fois inversé = 1) La sortie de la porte ET 5 a la valeur 0, repositionnant la bascule 6, de sorte
que l'entrée A du sélecteur est à nouveau sélectionnée.
Une mauvaise instruction a donc été introduite
entre deux instructions correctes du programme.
Si cette opération d'extraction était exécutée par l'unité de traitement de données pendant une exécution normale du programme, la troisième instruction (goto 001000) aurait été exécutée Dans ce cas, l'adresse présentée à l'entrée d'adresse de la mémoire par l'instruction suivante après cette instruction goto aurait été 001000, avec les bits les plus significatifs 001, qui dans ce cas sont égaux à l'information supplémentaire ( 001) ajoutée à la troisième instruction, ce qui donne un résultat positif à l'unité de comparaison 3 (sortie 0) La sortie de la porte OU 4 pour une information supplémentaire 001 est égale à 1 Les signaux présentés à l'entrée de la porte ET 5 sont donc 0, 1, 1, donnant une sortie égale à 0, et sélectionnant ainsi l'entrée A du sélecteur 7. On considérera à présent l'instruction stockée à l'adresse 001000 (goto 001010 si a est plus grand que 1) en supposant que le programme est copié Par l'extraction de cette instruction, l'information supplémentaire 001 est stockée dans le registre de l'unité de comparaison 3 Lors de l'extraction de l'instruction stockée à l'adresse suivante ( 001001), la comparaison donne un résultat positif ( 001 information supplémentaire = 001 bits d'adresse les plus significatifs), même dans le cas o le programme est
* copié Ceci est nécessaire parce que sinon l'exécution nor-
male du programme par l'unité de traitement de données se-
rait perturbée en cas de non-satisfaction de la condition goto. On considérera à présent l'instruction stockée à l'adresse 001001 (goto 000011) et en supposant à nouveau que le programme est copié A la lecture de l'instruction stockée à l'adresse 001010, le résultat de la comparaison est négatif (O (inversé)= 1) parce que que 001 n'est pas égal à 000 A la sortie de la porte OU 4, un signal d'une valeur O est présenté (l'information supplémentaire est 000) Les signaux présentés à l'entrée de la porte ET 5 sont donc 1, 0, 1, un signal de sortie de valeur O étant
donné et des données correctes sont donc fournies à la sor-
tie du sélecteur 7 Cette difficulté est évitée par le dis-
positif de la Fig 2 dans lequel une comparaison est basée sur la totalité de l'adresse plûtot que sur les bits les plus significatifs Dans le cas o des instructions de saut
sont stockées sur des adresses dont les bits les plus sig-
nificatifs sont différents de 000, l'opération de copiage est efficacement perturbée par un dispositif tel que représenté sur la Fig la Ceci est illustré pour les
instructions stockées aux adresses 001111 et 010000.
La Fig 2 montre une autre forme d'exécution
d'un dispositif conforme à l'invention Les éléments cor-
respondants à ceux de la Fig la portent le même chiffre de référence Etant donné que cette forme d'exécution est très ressemblante à celle de la Fig la, on ne décrira que les points de différence Dans l'unité de vérification 21, la première entrée est connectée à une entrée d'un premier
registre 16 Une sortie de ce premier registre 16 est con-
nectée à une entrée d'une table de mémoire 17 dont une sor-
tie est connectée à une première entrée de l'unité de
comparaison 3 ' Par le fait que cette forme d'exécution com-
porte un premier registre et une table de mémoire, l'unité de comparaison 3 ' ne comporte pas de registre propre comme
dans la forme d'exécution de la Fig la A la deuxième en-
trée de l'unité de comparaison 3 ' sont présentés tous les
bits d'adresse du signal d'adresse qui est présenté à l'en-
trée d'adresse de la mémoire 1.
Lors de l'extraction d'une première instruction de la mémoire 1 par l'unité de traitement de données 15,
l'information supplémentaire associée à cette première in-
struction est transmise vers le premier registre 16 et y est stockée (flanc montant du signal o S) Cette information supplémentaire comporte, dans cette forme d'exécution, une adresse d'un emplacement de mémoire de la table de mémoire 17. Lors de l'extraction d'une deuxième instruction de la mémoire 1, la table de mémoire 17 est adressée, sous la commande du flanc descendant du signal OS sur la ligne
11, avec l'information supplémentaire associée à la pre-
mière instruction et mémorisée dans le premier registre 16.
A l'emplacement de mémoire adressé dans la table de mémoire 17 est stockée l'adresse de l'instruction suivante qui suit ladite première instruction dans l'ordre d'extraction par l'unité de traitement de données lors du traitement de son programme L'adresse stockée à l'emplacement d'adresse adressé dans la table de mémoire 17 est alors présentée à l'unité de comparaison 3 ' pour y être comparée à l'adresse
de la deuxième instruction Le fonctionnement du disposi-
tif de mémoire représenté sur la Fig 2 est pour le reste
entièrement semblable à celui décrit pour la Fig la -
L'avantage de l'utilisation d'un premier registre
et d'une table de mémoire se situe dans le fait qu'à pré-
sent l'opération de comparaison peut être effectuée sur la totalité de l'adresse et non sur une partie de celle-ci, sans qu'on ait besoin de beaucoup d'espace dans la mémoire 1 pour le stockage de l'information supplémentaire En effet, lorsque pour chaque mot d'instruction, 4 bits, par exemple, sont réservés dans la mémoire 1 pour le stockage de l'information supplémentaire, il est possible d'effectuer une opération de comparaison effective (c'est-à-dire une
opération de comparaison dans laquelle l'information supplé-
mentaire n'a pas la valeur zéro pour chacun de ses bits)
sur 15 adresses complètes ( 24-1 = 16-1 = 15, 0000 non inclus).
Si l'on inscrivait l'adresse complète à titre d'information
supplémentaire dans la mémoire, on aurait besoin, pour l'ob-
tention d'un même résultat, par exemple de 11 bits, tandis
qu'avec cette forme d'exécution, 4 bits suffisent Une opé-
ration de comparaison sur la totalité de l'adresse est en outre plus fiable qu'une même opération effectuée sur une partie seulement de l'adresse, car tous les bits sont alors vérifiés. La Fig 3 illustre une forme d'exécution d'un dispositif conforme à l'invention selon laquelle l'opération de vérification est effectuée sur le mot d'instruction Les éléments correspondant à ceux de la Fig la portent à nouveau les mêmes chiffres de référence et on n'examinera que les
points de différence.
La première sortie de données de la mémoire 1 est connectée par l'intermédiaire du premier bus de données 9 d'une part, à la première entrée (A) de l'unité de sélection
7 et d'autre part, à la deuxième entrée de l'unité de véri-
fication 21.
Dans cette forme d'exécution, l'information sup-
p 1 émentaire comprend quelques bits, par exemple les plus significatifs, du mot d'instruction suivant à extraire par l'unité de traitement de données Lors d'une opération de
comparaison, cette information supplémentaire est à pré-
sent comparée dans l'unité de comparaison 3 à un deuxième
mot d'instruction extrait Trois cas peuvent alors à nou-
veau se présenter pour le résultat de l'opération de com-
paraison, comme décrit à propos de la Fig la.
Il est clair qu'une forme d'exécution telle que
décrite sur la Fig 2, dans laquelle l'unité de vérifica-
tion comporte encore un premier registre et une table de mémoire, peut aussi être utilisée pour un dispositif de mémoire conforme à l'invention dans lequel l'opération de
vérification s'effectue sur le mot d'instruction.
Des parties de la mémoire qui doivent être accessibles de manière aléatoire, comme par exemple les tables d'index ou des mots de données déterminés, peuvent être protégées, par exemple à l'intervention du critère de validité suivant: adresse initiale de table d'index c première adresse suivante dernière adresse de la table d'index Mais la
protection de ces parties peut éventuellement être négli-
gée Un lecteur non autorisé ne connaît en effet-pas les parties de la mémoire qui sont protégées par le fait, entre autres, que la différence entre l'information correcte et l'information de la source de données 8 ne peut pas
être perçue.
L'ensemble du dispositif de mémoire 20 peut être intégré Une version intégrée est avantageuse par rapport à une version comportant des composants discrets parce que, dans cette deuxième version, il est possible qu'un lecteur non autorisé, mais astucieux, parvienne à
bloquer l'unité de sélection 7 sur un état F = A 1.
Un dispositif de protection contre une lecture non autorisée de mots de programme à mémoriser dans une
mémoire, tel que décrit plus haut, est utilisé en particu-
lier dans des systèmes de traitement de données qui sont vendus à une échelle relativement grande A titre d'exemple,
on peut citer les jeux vidéo.
-20-

Claims (13)

REVENDICATIONS
1 Dispositif pour la protection contre une lecture non auto-
risée de mots de programme mémorisés dans une mémoires(l en particu-
lier une mémoire de programme, cette mémoire faisant partie d'une
unité de mémoire( 20),ce dispositif comportant, en outre, une uni-
té de traitement de données( 15)dont une sortie d'adresse est con-
nectée à une entrée d'adresse de la mémoire en vue d'adresser, lors d'une opération de traitement, les mots de programme dans un ordre déterminé par l'unité de traitement de données, caractérisé en ce que l'unité de mémoire comporte une unité de sélection( 7) une unité de vérification( 2 f et une source de données( 8)à l'extérieur de la mémoire destinée à fournir au moins un mot perturbateur qui exerce
un effet de brouillage lorsqu'il est ajouté auxdits mots de pro-
gramme, l'unité de sélection comportant une première entrée (A) connectée à une première sortie de la mémoire et une deuxième entrée (B) connectée à la sortie de la source de données, une information supplémentaire ( 4) étant ajoutée à chaque mot de programme mémorisé dans la mémoire, une deuxième sortie de la mémoire étant connectée à une première entrée de l'unité de vérification pour présenter ladite
information supplémentaire, une seconde entrée de l'unité de vérifi-
cation étant connectée à une borne de la mémoire pour présenter
l'information de programme, cette unité de vérification étant pour-
vue de premiers moyens qui lui permettent, lors d'une opération de lecture d'un premier mot de programme, de stocker ladite information
supplémentaire provenant de la mémoire, cette information supplé-
mentaire indiquant un mot de programme de suite au premier mot de programme qui est déterminé par ledit ordre de succession, l'unité de vérification étant pourvue de seconds moyens pour, lors d'une
opération de lecture, vérifier pour un deuxième mot de programme pro-
venant de la mémoire et sous la commande de l'information supplémen-
taire stockée, si l'information de programme du deuxième mot de programme à lire correspond à l'information de programme du mot de programme de suite indiqué par l'information supplémentaire et pour, en cas de concordance de ladite vérification, produire un premier signal et en cas de non concordance de ladite vérification, produire un second signal, l'unité de sélection étant pourvue d'une entrée de -21- commande (S) pour la réception dudit premier et dudit second signal afin de fournir, sous la commande dudit premier signal, un mot de programme provenant de la mémoire à une sortie et sous la commande dudit second signal, bloquer la fourniture d'au moins un mot de programme de la mémoire et y substituer la fourniture à la sortie
d'un mot perturbateur provenant de la source de données.
2 Dispositif suivant la revendication 1, caractérisé en ce que ladite connexion de la mémoire comporte une entrée d'adresse de la mémoire et ladite information de programme comporte au moins une
1 O partie de l'adresse du mot de programme.
3 Dispositif suivant la revendication 2, caractérisé en ce que lesdits premiers mayens de l'unité de vérification comportent
un registre propre ( 6)et une table de mémoire ( 17) le registre pro-
pre comportant une première entrée connectée à la première entrée de l'unité de vérification( 2) et une sortie de l'unité de traitement de données étant connectée à une seconde entrée du registre propre en vue de recevoir un signal de commande pour une opération de lecture, ce registre propre comportant une sortie connectée à une
entrée d'adresse de la table de mémoire pour le stockage d'adres-
ses de mots de programme, ladite information supplémentaire compor-
tant une adresse pour un emplacement dans la table de mémoire.
4 Dispositif suivant la revendication 1, caractérisé en ce que ladite connexion de la mémoire comporte une sortie de données de la mémoire et ladite information de programme comporte au moins
une partie du mot de programme.
Dispositif suivant la revendication 4, caractérisé en ce que lesdits premiers moyens de l'unité de vérification comportent un registre propre et une table de mémoire, le registre propre comportant une première entrée connectée à la première entrée de l'unité de vérification et une sortie de l'unité de traitement de données étant connectée à une deuxième entrée du registre propre
en vue de recevoir un signal de commande pour une opération de lec-
ture, ce registre propre comportant une sortie connectée à une entrée d'adresse de la table de mémoire pour le stockage de mots de programme, ladite information supplémentaire comportant une
adresse pour un emplacement dans la table de mémoire.
-22-
6 Dispositif suivant l'une quelconque des revendications
précédentes, caractérisé en ce que lesdits seconds moyens de l'u-
nité de vérification comportent une unité de comparaison ( 3,3 ').
7 Dispositif suivant la revendication 6, caractérisé en ce que lesdits mots de programme à protéger sont divisés en deux groupes différents, un premier groupe dans lequel une information supplémentaire exclusive est ajoutée à chaque mot de programme et un second groupe, dans lequel une information supplémentaire non exclusive est ajoutée à chaque mot de programme, ladite unité de
vérification étant équipée de moyens d'identification( 4)pour iden-
tifier de l'information supplémentaire dudit second groupe et pour, sous la commande d'une information supplémentaire dudit second groupe, désactiver l'unité de comparaison et produire un
dit premier signal.
8 Dispositif suivant l'une quelconque des revendications
précédentes, caractérisé en ce que ladite source de données ()
comporte un générateur aléatoire.
9 Dispositif suivant l'une quelconque des revendications 1
à 6 incluse, caractérisé en ce que ladite source de données( 8)
comporte un registre.
Unité de mémoire à utiliser dans un dispositif suivant
l'une quelconque des revendications précédentes, caractérisée
en ce qu'elle comprend une mémoire(ll une unité de sélection( 71 une unité de vérification ( 2 " et une source de données( 8) extérieure à la mémoire, une première et une seconde sortie de la mémoire étant connectéesrespectivement à une première entrée de
l'unité de sélection et une première entrée de l'unité de véri-
fication, une sortie de l'unité de vérification étant connectée à une entrée de commande de l'unité de sélection et une deuxième entrée de l'unité de sélection étant connectée à une sortie de
la source de données.
11 Unité de mémoire suivant la revendication 10, caractérisé
en ce que l'unité de vérification est pourvue d'une unité de com-
paraison, cette unité de comparaison comportant une entrée qui
est connectée à la première entrée de l'unité de vérification.
-23- 12 Unité de mémoire suivant la revendication 10 ou 11,
caractérisée en ce que la mémoire est une mémoire morte.
13 Unité de mémoire suivant la revendication 10, 11 ou 12, caractérisée en ce qu'elle est réalisée selon la technique des
circuits intégrés.
14 Unité de mémoire suivant l'une quelconque des revendica-
tions 10, 11, 12 ou 13, caractérisée en ce que l'unité de mémoire
est utilisable comme cassette-mémoire dans un jeu video.
Unité de mémoire suivant l'une quelconque des revendica-
tions 10, 11, 12 ou 13, caractérisée en ce que l'unité de mémoire ( 20) est utilisable comme mémoire dans un système de traitement
de données.
16 Unité de mémoire suivant l'une quelconque des revendica-
tions 10, 11, 12 ou 13 caractérisée en ce que l'unité de mémoire
( 20) fait partie d'un système de traitement de données.
FR8307446A 1982-05-06 1983-05-04 Dispositif pour la protection contre une lecture non autorisee de mots de programme a memoriser dans une memoire, et unite de memoire comportant ladite memoire Expired FR2526560B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
NL8201847A NL8201847A (nl) 1982-05-06 1982-05-06 Inrichting voor het beschermen tegen onbevoegd uitlezen van in een geheugen te memoriseren programmawoorden.

Publications (2)

Publication Number Publication Date
FR2526560A1 true FR2526560A1 (fr) 1983-11-10
FR2526560B1 FR2526560B1 (fr) 1987-07-31

Family

ID=19839688

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8307446A Expired FR2526560B1 (fr) 1982-05-06 1983-05-04 Dispositif pour la protection contre une lecture non autorisee de mots de programme a memoriser dans une memoire, et unite de memoire comportant ladite memoire

Country Status (10)

Country Link
US (1) US4584665A (fr)
JP (1) JPS58208849A (fr)
AT (1) AT389772B (fr)
CA (1) CA1201813A (fr)
DE (1) DE3315992A1 (fr)
FR (1) FR2526560B1 (fr)
GB (1) GB2119978B (fr)
IT (1) IT1170134B (fr)
NL (1) NL8201847A (fr)
SE (1) SE461689B (fr)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3415209A1 (de) * 1983-04-29 1984-10-31 N.V. Philips' Gloeilampenfabrieken, Eindhoven Speichereinheit mit einem speicher und einer schutzeinheit
JPS6068441A (ja) * 1983-09-22 1985-04-19 Fujitsu Ltd ワンチツプ・マイクロ・コンピユ−タ
US4646234A (en) * 1984-02-29 1987-02-24 Brigham Young University Anti-piracy system using separate storage and alternate execution of selected proprietary and public portions of computer programs
GB2163577B (en) * 1984-08-23 1988-01-13 Nat Res Dev Software protection device
DE3526130A1 (de) * 1985-07-22 1987-01-29 Lang Klaus Dipl Ing Digitaler programmschutzbaustein
FR2599525B1 (fr) * 1986-06-02 1988-07-29 Dassault Electronique Unite a clavier de securite, en particulier pour la composition d'un code confidentiel
JPH01129328A (ja) * 1987-11-13 1989-05-22 Toshiba Corp コピー防止装置
US4975878A (en) * 1988-01-28 1990-12-04 National Semiconductor Programmable memory data protection scheme
JPH01116847U (fr) * 1988-01-30 1989-08-07
US5014191A (en) * 1988-05-02 1991-05-07 Padgaonkar Ajay J Security for digital signal processor program memory
JPH01296361A (ja) * 1988-05-25 1989-11-29 Mitsubishi Electric Corp メモリカード
JP2820938B2 (ja) * 1988-07-21 1998-11-05 任天堂株式会社 外部メモリとそれを用いる情報処理装置
JPH02202642A (ja) * 1989-02-01 1990-08-10 Toshiba Corp プログラム動作監視装置
US5099516A (en) * 1989-06-12 1992-03-24 Dell Corporate Services Corporation Digital computer code word identification system
GB8919301D0 (en) * 1989-08-24 1989-10-11 Jonas Wayne A "electronic memory"
US5263158A (en) * 1990-02-15 1993-11-16 International Business Machines Corporation Method and system for variable authority level user access control in a distributed data processing system having multiple resource manager
JPH03276337A (ja) * 1990-03-27 1991-12-06 Toshiba Corp マイクロコントローラ
DE4103173C5 (de) * 1991-02-02 2017-07-20 SIA Soft Activation Vorrichtung zum Schutz gegen unautorisierte Benutzung von Software
DE4115152C2 (de) * 1991-05-08 2003-04-24 Gao Ges Automation Org Kartenförmiger Datenträger mit einer datenschützenden Mikroprozessorschaltung
US5860099A (en) * 1993-05-12 1999-01-12 Usar Systems, Inc. Stored program system with protected memory and secure signature extraction
US5463748A (en) * 1993-06-30 1995-10-31 Intel Corporation Instruction buffer for aligning instruction sets using boundary detection
IL110181A (en) * 1994-06-30 1998-02-08 Softchip Israel Ltd Install microprocessor and peripherals
US5682474A (en) * 1996-04-09 1997-10-28 United Microelectronics Corp. Method of dynamic protection and its apparatus
WO1998022879A1 (fr) * 1996-11-15 1998-05-28 Philips Electronics N.V. Procede de protection contre les intrusions dans des memoires eeprom dans un dispositif de communication mobile comportant un processeur, et dispositif comportant ce mecanisme de protection
EP1118924B1 (fr) 2000-01-19 2016-07-20 Infineon Technologies AG Procédé de fonctionnement et système à microprocesseur
FR2815738B1 (fr) * 2000-10-25 2003-03-21 Dolphin Integration Sa Controle d'acces a une memoire integree avec un microprocesseur
JP3977592B2 (ja) 2000-12-28 2007-09-19 株式会社東芝 データ処理装置
US8181255B2 (en) 2004-06-22 2012-05-15 Nds Limited Digital rights management system
WO2005125072A2 (fr) * 2004-06-22 2005-12-29 Nds Limited Systeme de gestion des droits numeriques
US8161353B2 (en) * 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
WO2008070191A2 (fr) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Appareil, système, et procédé pour un contrôleur de gestion de carte de base reconfigurable

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2471004A1 (fr) * 1979-11-30 1981-06-12 Dassault Electronique Installation et dispositif de controle de l'acces a une memoire electronique

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1414126A (en) * 1971-11-22 1975-11-19 Key Tronic Ltd Secutity for computer systems
US3996449A (en) * 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
GB1561482A (en) * 1976-11-18 1980-02-20 Ibm Protection of data processing system against unauthorised programmes
FR2392447A1 (fr) * 1977-05-26 1978-12-22 Cii Honeywell Bull Systeme de traitement d'informations protegeant le secret d'informations confidentielles
US4446519A (en) * 1981-05-26 1984-05-01 Corban International, Ltd. Method and apparatus for providing security for computer software

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2471004A1 (fr) * 1979-11-30 1981-06-12 Dassault Electronique Installation et dispositif de controle de l'acces a une memoire electronique

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 14, no. 11, avril 1972, page 3531, New York, US; E.J. LENGYEL et al.: "Computer program protection" *

Also Published As

Publication number Publication date
SE8302511D0 (sv) 1983-05-03
GB2119978B (en) 1986-01-22
GB8311764D0 (en) 1983-06-02
CA1201813A (fr) 1986-03-11
JPS58208849A (ja) 1983-12-05
IT1170134B (it) 1987-06-03
DE3315992A1 (de) 1983-11-10
SE461689B (sv) 1990-03-12
NL8201847A (nl) 1983-12-01
FR2526560B1 (fr) 1987-07-31
AT389772B (de) 1990-01-25
IT8320918A0 (it) 1983-05-03
ATA165583A (de) 1989-06-15
US4584665A (en) 1986-04-22
GB2119978A (en) 1983-11-23
JPH0317133B2 (fr) 1991-03-07
SE8302511L (sv) 1983-11-07

Similar Documents

Publication Publication Date Title
FR2526560A1 (fr) Dispositif pour la protection contre une lecture non autorisee de mots de programme a memoriser dans une memoire, et unite de memoire comportant ladite memoire
EP0402210B1 (fr) Procédé pour vérifier l'intégrité d'un logiciel ou de données, et système pour la mise en oeuvre de ce procédé
FR2583540A1 (fr) Gestion de memoire pour systeme a microprocesseur.
EP0543712B1 (fr) Mémoire intégrée, son procédé de gestion et système informatique en résultant
FR2606903A1 (fr) Procede et dispositif de gestion de points d'arret dans un moniteur de logiciel
FR2539528A1 (fr) Systeme a microprocesseur comportant deux processeurs
FR2664719A1 (fr) Dispositif de controle pour une memoire tampon a partitionnement reconfigurable.
FR2639461A1 (fr) Arrangement bidimensionnel de points memoire et structure de reseaux de neurones utilisant un tel arrangement
EP0063972A1 (fr) Procédé et dispositif d'allocation d'une ressource dans un système comportant des unités de traitement de données autonomes
FR2594996A1 (fr) Procede et dispositif pour l'enregistrement et la lecture d'information codee numerique au choix protegee ou non protegee par un code de correction d'erreurs
BE897587A (fr) Circuit parallele de controle de redondance cyclique
EP0683454A1 (fr) Procédé pour tester le déroulement d'un programme d'instructions
EP0012664A1 (fr) Dispositif de détection automatique de la capacité de mémoire d'un système de traitement ou de transmission de l'information
FR2658022A1 (fr) Procede et systeme de marquage et d'identification d'information numerisee.
FR2632092A1 (fr) Circuit de conditionnement d'ecriture d'antememoire retarde pour un systeme de microcalculateur a bus double comprenant une unite 80386 et une unite 82385
EP0228329B1 (fr) Dispositif électronique formant mémoire stable rapide perfectionnée
EP0120731B1 (fr) Récepteur de télétexte à moyens de décision d'acquisition anticipée
FR2595474A1 (fr) Dispositif de controle et de verification du fonctionnement de blocs internes a un circuit integre
FR2560412A1 (fr) Appareil de traitement de donnees
FR2533736A1 (fr) Unite de gestion de memoire pour un ordinateur numerique
EP0393050B1 (fr) Dispositif de protection des zones memoire d'un systeme electronique a microprocesseur
FR2538928A1 (fr) Unite de traitement de donnees pourvue d'une section de commande qui comporte un generateur d'adresses destine a produire des adresses composees de parties d'adresses caracteristiques
FR2545244A1 (fr) Unite de memoire comprenant une memoire et un dispositif de protection
EP0635789A1 (fr) Circuit intégré du type microcontroleur à mémoire morte contenant un programme générique, notamment de test, station de test et procédé de fabrication correspondants
CH631018A5 (en) Data processing installation

Legal Events

Date Code Title Description
ST Notification of lapse