FR2732488A1 - Protection system blocking illegal use of computer program or data - Google Patents

Protection system blocking illegal use of computer program or data Download PDF

Info

Publication number
FR2732488A1
FR2732488A1 FR9503990A FR9503990A FR2732488A1 FR 2732488 A1 FR2732488 A1 FR 2732488A1 FR 9503990 A FR9503990 A FR 9503990A FR 9503990 A FR9503990 A FR 9503990A FR 2732488 A1 FR2732488 A1 FR 2732488A1
Authority
FR
France
Prior art keywords
data
coding
software
coded
memory
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.)
Pending
Application number
FR9503990A
Other languages
French (fr)
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.)
HANAU RICHARD
Original Assignee
HANAU RICHARD
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 HANAU RICHARD filed Critical HANAU RICHARD
Priority to FR9503990A priority Critical patent/FR2732488A1/en
Publication of FR2732488A1 publication Critical patent/FR2732488A1/en
Pending 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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

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

Abstract

The protection system has a first coder that modifies the words in part at least of the program before it is recorded on the disc. The coding uses the first part of a key, and encodes the addresses of the second part of the data using the second part of the key. A coder/decoder unit is connected between the processor and the computer memory. The decoder (56) decodes the data bits when they are read from the memory by the processor, and a second coder (46) code the addresses at which are read the data bits in the memory under the second key. The buyer for the disc must first communicate a code to the vendor, who encodes the disc with this code and another code they provide to the buyer. The code is stored in EPROM in the computer.

Description

La présente invention concerne la protection des logiciels contre leur utilisation illégale et en particulier un système de protection empêchant l'utilisation d'un logiciel de façon illégale. The present invention relates to the protection of software against its illegal use and in particular a protection system preventing the use of software illegally.

Un logiciel est une oeuvre protégée par le droit d'auteur et dont le droit d'utilisation est limité à 1' acheteur. Cependant, il est bien connu qu'un logiciel acheté sous forme de disquette dans le commerce peut donner lieu à des copies effectuées avec ou sans l'aoeord du titulaire du droit d'utilisation grace à la mise en oeuvre de techniques de violation des systèmes de protection. Software is a work protected by copyright and whose right of use is limited to the purchaser. However, it is well known that software purchased commercially in the form of a floppy disk can give rise to copies made with or without the agreement of the holder of the right of use, thanks to the use of techniques of system violation. protection.

Un système utilisé couramment consiste à limiter le nombre de copies ou d'installations que peut réaliser l'acheteur de la disquette gracie à l'insertion d'un compteur dans les données enregistrées, compteur qui se décrémente à chaque copie ou installation de manière à interdire toute copie lorsque le compteur est à zéro. Ce type de protection fait l'objet de violations soit par l'introduction d'une valeur de compteur bien plus importante que celle enregistrée par le concepteur (par exemple 5), soit par l'utilisation d'un programme de copie capable d'éviter la décrémentation du compteur au moment de la copie illégale. A commonly used system consists in limiting the number of copies or installations that the purchaser of the floppy disk can make by inserting a counter in the recorded data, a counter which decrements with each copy or installation so as to prohibit any copying when the counter is at zero. This type of protection is violated either by the introduction of a much higher counter value than that recorded by the designer (for example 5), or by the use of a copy program capable of avoid decrementing the counter at the time of illegal copying.

Un autre système consiste à introduire dans les données enregistrées sur la disquette, un mot de passe que seul l'acheteur connaît et qui doit être entré dans l'ordinateur au commencement de l'appel du logiciel pour pouvoir avoir accès audit logiciel. Malheureusement, des experts en langage machine sont capables de retrouver le mot de passe et donc de pouvoir utiliser ou permettre l'utilisation du logiciel de façon illégale. Another system consists in introducing into the data recorded on the floppy disk, a password which only the purchaser knows and which must be entered in the computer at the beginning of the call of the software to be able to have access to said software. Unfortunately, machine language experts are able to recover the password and therefore be able to use or allow the use of the software illegally.

C'est pourquoi le but de l'invention est de réaliser un système de protection contre l'utilisation illégale d'un logiciel qui fasse appel aussi bien au logiciel qu'au matériel dans lequel le logiciel est mis en oeuvre. This is why the object of the invention is to provide a system for protection against the illegal use of software which uses both the software and the hardware in which the software is implemented.

L'objet principal de l'invention est donc un système de protection empêchant l'utilisation illégale d'un logiciel dans un ordinateur comprenant une unité de traitement et une mémoire contenant les données du logiciel qui ont été emmagasinées dans la mémoire à partir d'une source de données telle qu'une disquette.Ce système est composé d'un premier codeur pour coder, préalablement à l'enregistrement dans la source de données, les bits de données du logiciel selon une première partie d'une clé de codage et coder les adresses de ces données selon une deuxième partie de la clé de codage, et une unité de codage/décodage interconnectée entre l'unité de traitement et la mémoire de l'ordinateur comprenant un décodeur pour décoder les bits de données lorsqu'ils sont lus à partir de la mémoire par l'unité de traitement et un second codeur pour coder les adresses auxquelles sont lus les bits de données dans la mémoire selon une deuxième partie de la clé de codage. The main object of the invention is therefore a protection system preventing the illegal use of software in a computer comprising a processing unit and a memory containing the software data which have been stored in the memory from a data source such as a floppy disk. This system is composed of a first coder for coding, before recording in the data source, the data bits of the software according to a first part of a coding key and coding the addresses of these data according to a second part of the coding key, and a coding / decoding unit interconnected between the processing unit and the memory of the computer comprising a decoder for decoding the data bits when they are read from the memory by the processing unit and a second coder for coding the addresses from which the data bits are read in the memory according to a second part of the key of c odor.

Les buts et objets de l'invention ressortiront mieux à la lecture de la description suivante faite en référence aux dessins dans lesquels
la figure l est une représentation synoptique du système utilisé pour le codage d'un logiciel empêchant son utilisation dans tout ordinateur autre que l'ordinateur contenant le décodeur approprié, et
la figure 2 est une représentation synoptique d'un mode de réalisation préféré du système utilisé pour le décodage d'un logiciel codé en utilisant le système selon la présente invention.
The objects and objects of the invention will emerge more clearly on reading the following description made with reference to the drawings in which
FIG. 1 is a block diagram of the system used for coding software preventing its use in any computer other than the computer containing the appropriate decoder, and
Figure 2 is a block diagram of a preferred embodiment of the system used for decoding coded software using the system according to the present invention.

La caractéristique essentielle de l'invention est de prévoir un système de protection contre l'utilisation illégale d'un logiciel, faisant appel à un codage du logiciel dont la clé est incorporée dans l'ordinateur seul habilité à utiliser le logiciel. The essential characteristic of the invention is to provide a system of protection against the illegal use of software, using coding of the software, the key of which is incorporated in the computer alone authorized to use the software.

Pour le codage, un logiciel dont la source 10 est généralement une disquette, mais pourrait être une ligne de transmission de données provenant d'un réseau (par exemple
Internet), est lu par un microprocesseur 12. Si le logiciel est sur une disquette, cette entrée est le lecteur A. Les bits d'information provenant du logiciel sont transmis en mémoire 14 à l'aide du bus de données 16 après avoir été codés par le codeur 18 selon une clé de codage prédéterminée. De préférence, le codage consiste à inverser ou non les bits d'information de chaque mot de données en utilisant un circuit OU-Exclusif par bit, la deuxième entrée de chaque circuit étant un bit correspondant de la clé de codage. C'est à dire, si le bit correspondant de la clé est un bit 1, le bit de données est inversé alors qu'il reste inchangé si le bit de la clé est un bit O.Ainsi, avec des mots de données d'une largeur de 8 bits, la clé de codage des données est un mot de 8 bits ce qui fournit 255 possibilités de codage.
For coding, software whose source 10 is generally a floppy disk, but could be a line for transmitting data from a network (for example
Internet), is read by a microprocessor 12. If the software is on a floppy disk, this entry is the reader A. The bits of information coming from the software are transmitted in memory 14 using the data bus 16 after being coded by the coder 18 according to a predetermined coding key. Preferably, the coding consists in inverting or not the information bits of each data word by using an OR-Exclusive circuit per bit, the second input of each circuit being a corresponding bit of the coding key. That is, if the corresponding bit of the key is a bit 1, the data bit is inverted while it remains unchanged if the bit of the key is an O bit. Thus, with data words of 8 bits wide, the data coding key is an 8-bit word, which provides 255 coding possibilities.

La clé de codage contient en plus des 8 bits destinés à coder les données, 10 autres bits qui sont utilisés pour coder une partie des bits d'adresse fournis par le microprocesseur 12 sur le bus d'adressage 20. Les 10 bits à coder sont donc fournis sur la portion de bus 20-1 au codeur 18 oO ils sont codés de la même façon que précédemment, c'est à dire en les combinant selon des circuits OU-Exclusif avec les 10 bits correspondants de la clé de codage. Les autres bits non codés sont fournis sur la portion de bus 20-2 qui est recombinée à la portion 20-1 à la sortie du codeur pour constituer l'adresse dans la mémoire 14 à laquelle chaque mot de données est emmagasiné après codage dans le codeur 18. The coding key contains, in addition to the 8 bits intended for coding the data, 10 other bits which are used to codify part of the address bits supplied by the microprocessor 12 on the address bus 20. The 10 bits to be coded are therefore supplied on the bus portion 20-1 to the coder 18 oO they are coded in the same way as above, that is to say by combining them according to OR-Exclusive circuits with the 10 corresponding bits of the coding key. The other non-coded bits are supplied on the bus portion 20-2 which is recombined with the portion 20-1 at the output of the coder to constitute the address in the memory 14 to which each data word is stored after coding in the encoder 18.

Lorsque toutes les données du logiciel fournies par la source 10 ont été emmagasinées après codage dans la mémoire 14, on procède au transfert de ces données dans une unité de réception 22, généralement une disquette dans le lecteur B, sous la commande du microprocesseur 12 commandant la lecture de la mémoire sur la ligne R/W 24 et l'écriture des données par la ligne de commande d'écriture, les données étant transférées de la mémoire 14 à l'unité 22 sur le bus de transport 28. When all the software data supplied by the source 10 has been stored after coding in the memory 14, this data is transferred to a reception unit 22, generally a floppy disk in the reader B, under the control of the microprocessor 12 commanding reading the memory on the R / W line 24 and writing the data by the write command line, the data being transferred from the memory 14 to the unit 22 on the transport bus 28.

En même temps que le fichier contenant les données codées du logiciel qui a été enregistré (par exemple sur une disquette dans le lecteur B), le microprocesseur 12 enregistre un fichier qui contient les adresses de début et de fin de la partie codée parmi les données sur la disquette fichier qui sera utilisée à la lecture en tant qu'interruption logiciel. At the same time as the file containing the coded data of the software which has been recorded (for example on a floppy disk in the drive B), the microprocessor 12 saves a file which contains the start and end addresses of the coded part among the data on the file diskette which will be used for reading as a software interrupt.

On doit noter que, bien que le mode de réalisation décrit ci-dessus utilise des mots de données de 8 bits, il est évident que la largeur des mots de données et de la clé pourrait être différente, par exemple de 16 ou 32 bits. De même, on peut concevoir que la portion d'adresse codée soit plus importante que 10 bits, ce qui est possible dans la mesure où les mémoires actuelles ont des capacités de plusieurs méga-octets, et donc nécessitent des adresses dépassant largement 10 bits. Toutefois avec une clé de codage de 18 bits, le nombre de possibilités de codage st déjà de 262.144. It should be noted that, although the embodiment described above uses 8-bit data words, it is obvious that the width of the data words and the key could be different, for example 16 or 32 bits. Likewise, it is conceivable that the coded address portion is greater than 10 bits, which is possible insofar as the current memories have capacities of several megabytes, and therefore require addresses largely exceeding 10 bits. However, with an 18-bit coding key, the number of coding possibilities is already 262,144.

De façon à pouvoir lire une disquette sur laquelle a été enregistré le logiciel codé, un ordinateur doit donc être pourvu d'un décodeur capable de décoder les données selon la clé de codage utilisée à l'enregistrement du logiciel. C'est ce qui est illustré sur la figure 2. In order to be able to read a floppy disk on which the coded software has been recorded, a computer must therefore be provided with a decoder capable of decoding the data according to the coding key used when the software was recorded. This is illustrated in Figure 2.

Une fois que le logiciel codé a été emmagasiné dans la mémoire 40 d'un tel ordinateur, le microprocesseur 42 a aeeès au logiciel de la façon suivante. La partie d'adresse formée des 10 premiers bits de l'adresse est transmise sur la portion 44-1 du bus d'adressage 44 alors que le reste de l'adresse est transmise sur la portion de bus 44-2. Cette partie d'adresse de 10 bits est fournie au codeur d'adresse 46 dans lequel chacun des 10 bits est combiné par un circuit OU-Exclusif à un des 10 bits de la partie d'adresse de la clé de codage de 18 bits identique à la clé de codage qui a été utilisée au moment du codage. Ainsi, les bits d'adresse fournis à la sortie du codeur d'adresse 46 sont les mêmes que ceux qui ont été utilisés au moment du codage.La partie de 10 bits de la clé de décodage est enregistrée de façon permanente dans une mémoire ROM 48 et est fournie au codeur d'adresse 46 par l'intermédiaire de la porte 50. Once the coded software has been stored in the memory 40 of such a computer, the microprocessor 42 has access to the software in the following manner. The address part formed by the first 10 bits of the address is transmitted on the portion 44-1 of the address bus 44 while the rest of the address is transmitted on the bus portion 44-2. This 10-bit address part is supplied to the address coder 46 in which each of the 10 bits is combined by an OR-Exclusive circuit with one of the 10 bits of the address part of the identical 18-bit coding key. the coding key that was used at the time of coding. Thus, the address bits supplied at the output of the address coder 46 are the same as those which were used at the time of the coding. The 10-bit part of the decoding key is permanently saved in a ROM memory. 48 and is supplied to the address coder 46 via the door 50.

La partie d'adresse codée fournie sur le bus d'adressage 52 à la sortie du codeur d'adresse est ensuite juxtaposée à la partie d'adresse non codée de la portion de bus 44-2 pour adresser la mémoire 40. Le mot de données adressé (codé), supposé être ici de 8 bits, est alors transmis par le bus 54 au décodeur 56 où chacun des 8 bits du mot de données est combiné par un circuit OU-Exclusif à un bit de la deuxième partie de 8 bits de la clé de codage de 18 bits, qui a été utilisée au moment du codage. Cette partie de 8 bits de la clé de codage est enregistrée de façon permanente dans une mémoire ROM 58 et est fournie au décodeur 54 par l'intermédiaire de la porte 60. Le mot de données décodé est ensuite fourni au microprocesseur 42 au moyen du bus de données 61. The coded address part supplied on the address bus 52 at the output of the address coder is then juxtaposed with the non-coded address part of the bus portion 44-2 to address the memory 40. The word addressed (coded) data, assumed here to be 8 bits, is then transmitted by bus 54 to decoder 56 where each of the 8 bits of the data word is combined by an OR-Exclusive circuit with one bit of the second part of 8 bits the 18-bit coding key, which was used at the time of coding. This 8-bit part of the coding key is permanently stored in a ROM memory 58 and is supplied to the decoder 54 via the door 60. The decoded data word is then supplied to the microprocessor 42 by means of the bus. 61.

Comme il a été mentionné précédemment, puisque toutes les données qui ont été emmagasinées dans le fichier lu dans la mémoire 40 ne sont pas forcément toutes codées, un fichier a été enregistré pour fournir au système d'exploitation de l'ordinateur les adresses de début et de fin des parties codées. La lecture de ce fichier permet, au moyen d'un interruption, d'écrire l'adresse de début de la partie codée dans un registre 62 et l'adresse de fin de la partie codée dans un registre 64. Lorsque le microprocesseur 42 désire lire des données, l'adresse fournie sur le bus d'adressage 44-1 est également fournie aux comparateurs 66 et 68 dont les sorties sont connectées en entrée du circuit ET 70 de manière à comparer l'adresse demandée aux adresses de début et de fin des données codées.Si l'adresse demandée se trouve en dehors de l'étendue délimitée par les adresses de début et de fin, l'un des deux comparateurs 66 et 68 fournit une sortie O et l'autre une sortie 1, ce qui résulte en un bit O sur la sortie 72 du circuit ET 70. Par conséquent, dans ce cas, les deux portes 50 et 60 sont bloquées et exclusivement des bits 0 sont fournis en entrée du codeur 46 et du décodeur 56, ce qui a pour résultat de fournir une adresse non codée sur le bus 52 et un mot de données non codé sur le bus 61. As mentioned previously, since not all of the data that has been stored in the file read from memory 40 is encoded, a file has been saved to provide the computer's operating system with the starting addresses. and end of the coded parts. Reading this file makes it possible, by means of an interrupt, to write the start address of the part coded in a register 62 and the end address of the part coded in a register 64. When the microprocessor 42 wishes read data, the address provided on the addressing bus 44-1 is also provided to the comparators 66 and 68 whose outputs are connected to the input of the AND circuit 70 so as to compare the requested address with the start and start addresses. If the requested address is outside the range delimited by the start and end addresses, one of the two comparators 66 and 68 provides an output O and the other an output 1, this which results in a bit O on the output 72 of the AND circuit 70. Consequently, in this case, the two gates 50 and 60 are blocked and exclusively bits 0 are supplied at the input of the encoder 46 and the decoder 56, which has results in providing an unencrypted address on bus 52 and a donation word not coded on bus 61.

Par contre, Si l'adresse demandée se trouve dans la plage codée comprise entre l'adresse de début emmagasinée dans le registre 62 et l'adresse de fin emmagasinée dans le registre 64, les sorties respectives des comparateurs 66 et 68 sont à 1. Par conséquent la sortie 72 du circuit ET 70 est également à 1 et les portes 50 et 60 sont passantes, ce qui a pour résultat que l'adresse fournie sur le bus 44-1 est codée à l'aide de la partie (10 bits) de la clé de codage se trouvant dans la mémoire ROM 48 et le mot de données fourni sur le bus 54 est codé par la partie (8 bits) de la clé de codage se trouvant dans la mémoire ROM 58. On the other hand, if the requested address is in the coded range between the start address stored in register 62 and the end address stored in register 64, the respective outputs of comparators 66 and 68 are at 1. Consequently, the output 72 of the AND circuit 70 is also at 1 and the gates 50 and 60 are on, which results in that the address supplied on the bus 44-1 is coded using the part (10 bits ) of the coding key located in the ROM memory 48 and the data word supplied on the bus 54 is coded by the part (8 bits) of the coding key located in the ROM memory 58.

On doit noter que la disquette utilisée pourrait être une simple disquette du commerce ne comportant aucune partie codée. Dans ce cas, les adresses enregistrées dans les registres 62 et 64 sont les mêmes et le circuit ET 70 fournit toujours une entrée à O empêchant le codage des données de la disquette. Note that the disk used could be a simple commercial disk with no coded part. In this case, the addresses recorded in registers 62 and 64 are the same and the AND circuit 70 always supplies an input to O preventing the coding of the data of the floppy disk.

Le système qui vient d'être décrit peut être mis en oeuvre très simplement. Soit le propriétaire d'un ordinateur fait modifier son ordinateur en remplaçant la puce du microprocesseur existante par une puce comportant, outre le microprocesseur, le dispositif de codage/décodage illustré sur la figure 2, soit l'ordinateur est déjà pourvu d'un tel dispositif. Dans les deux cas, un nombre d'identification représentant une clé de codage est fourni au propriétaire de l'ordinateur ; une telle valeur correspondant par exemple à une combinaison de 18 bits telle que celle utilisée dans la description qui suit. Dans le même temps, le constructeur ou le concepteur du logiciel fournit aux distributeurs un dispositif de codage tel que celui illustré sur la figure 1.Le propriétaire de l'ordinateur désirant acquérir le logiciel doit alors fournir le nombre d'identification au distributeur de logiciels pour que ce dernier effectue le codage du logiciel selon la clé de codage associée au nombre d'identification. The system which has just been described can be implemented very simply. Either the owner of a computer has his computer modified by replacing the existing microprocessor chip with a chip comprising, in addition to the microprocessor, the coding / decoding device illustrated in FIG. 2, or the computer is already provided with such a device. In both cases, an identification number representing a coding key is provided to the owner of the computer; such a value corresponding for example to a combination of 18 bits such as that used in the description which follows. At the same time, the manufacturer or designer of the software supplies the distributors with a coding device such as that illustrated in FIG. 1. The owner of the computer wishing to acquire the software must then supply the identification number to the software distributor. so that the latter performs the coding of the software according to the coding key associated with the identification number.

On pourrait également envisager que le logiciel fourni aux distributeurs sous forme de disquettes, soit déjà codé par une clé F1, ce qui éviterait à des vendeurs indélicats de pouvoir copier le logiciel non codé reçu du concepteur. Dans ce cas, la partie de clé de codage destinée à coder les données et se trouvant dans la mémoire
ROM 58 devra résulter de la combinaison par des circuits
OU-Exclusif de la clé F1 et de la clé spécifique du propriétaire de l'ordinateur. On peut d'ailleurs imaginer que le logiciel soit préalablement codé à plusieurs niveaux par des clés F1, F2... ce qui implique d'avoir une clé de décodage qui soit la résultante des différentes clés utilisées pour le codage.
It could also be envisaged that the software supplied to the distributors in the form of floppy disks, is already coded by an F1 key, which would prevent unscrupulous sellers from being able to copy the uncoded software received from the designer. In this case, the part of the coding key intended for coding the data and located in the memory
ROM 58 must result from the combination by circuits
OR-Exclusive of the F1 key and the specific key of the computer owner. One can also imagine that the software is previously coded at several levels by keys F1, F2 ... which implies having a decoding key which is the result of the different keys used for coding.

On doit noter que la clé F1 (ou la combinaison de plusieurs clés F1, F2...) pourrait se présenter sous la forme d'un fichier formé d'une pluralité de mots, comme par exemple un fichier de 1024 mots de 8 bits. It should be noted that the key F1 (or the combination of several keys F1, F2 ...) could be in the form of a file formed by a plurality of words, such as for example a file of 1024 words of 8 bits .

Bien que l'invention s'applique particulièrement aux logiciels, on peut l'appliquer à tout autre fichier tel qu'une base de données personnalisée. Dans ce cas, le dispositif installé dans l'ordinateur devra décoder les données lues à partir de la mémoire, mais également coder les nouvelles données transférées en mémoire. Ceci peut être réalisé avec le même circuit 56 puisque, que ce soit le codage ou le décodage, il utilise les mêmes circuits OU
Exclusif. Par conséquent les bus de données 54 et 61 de la figure 2 devraient alors être bidirectionnels.
Although the invention is particularly applicable to software, it can be applied to any other file such as a personalized database. In this case, the device installed in the computer will have to decode the data read from the memory, but also encode the new data transferred to the memory. This can be done with the same circuit 56 since, whether encoding or decoding, it uses the same OR circuits
Exclusive. Consequently, the data buses 54 and 61 of FIG. 2 should then be bidirectional.

Claims (8)

REVENDICATIONS 1. Système de protection empêchant l'utilisation illégale d'un logiciel ou autre fichier de données dans un ordinateur comprenant une unité de traitement (42) et une mémoire (40) contenant les bits de données dudit logiciel lesdits bits de données ayant été emmagasinés dans ladite mémoire à partir d'une source de données telle qu'une disquette sur laquelle a été enregistré ledit logiciel ledit système étant caractérisé en ce qu'il comprend 1. A protection system preventing the illegal use of software or other data files in a computer comprising a processing unit (42) and a memory (40) containing the data bits of said software, said data bits having been stored in said memory from a data source such as a floppy disk on which said software has been recorded, said system being characterized in that it comprises un premier codeur (18) pour coder, préalablement à leur enregistrement dans la source de données, les mots de données d'au moins une partie dudit logiciel selon une première partie d'une clé de codage et coder les adresses desdites données selon une deuxième partie de ladite clé de codage, et a first coder (18) for coding, before their recording in the data source, the data words of at least part of said software according to a first part of a coding key and coding the addresses of said data according to a second part of said coding key, and une unité de codage / décodage interconnectée entre ladite unité de traitement et ladite mémoire de l'ordinateur, comprenant un décodeur (56) pour décoder les bits de données lorsqu'ils sont lus à partir de ladite mémoire par ladite unité de traitement et un second codeur (46) pour coder les adresses auxquelles sont lus lesdits bits de données dans ladite mémoire selon ladite deuxième partie de ladite clé de codage. a coding / decoding unit interconnected between said processing unit and said computer memory, comprising a decoder (56) for decoding the data bits when they are read from said memory by said processing unit and a second coder (46) for coding the addresses from which said data bits are read from said memory according to said second part of said coding key. 2. Système selon la revendication 1, dans lequel ledit premier codeur (18), ledit décodeur (56) et ledit second codeur (46) sont formés de circuits OU-Exclusif à deux entrées, la première entrée étant le bit de données ou d'adresse à coder ou à décoder et la deuxième entrée étant le bit correspondant de ladite clé de codage. 2. The system as claimed in claim 1, in which said first coder (18), said decoder (56) and said second coder (46) are formed of two-input OR-Exclusive circuits, the first input being the data bit or d address to be coded or decoded and the second entry being the corresponding bit of said coding key. 3. Système selon la revendication 1 ou 2, dans lequel ladite clé de codage est spécifique audit ordinateur et ladite source de données (10) telle qu'une disquette est codée par le vendeur du logiciel à l'aide dudit premier codeur en utilisant la clé de codage communiquée par l'acheteur.  3. The system as claimed in claim 1 or 2, in which said coding key is specific to said computer and said data source (10) such as a floppy disk is coded by the software vendor using said first coder using the coding key communicated by the buyer. 4. Système selon la revendication 1 ou 2, dans lequel les bits de données dudit logiciel sont d'abord codés une première fois selon un algorithme de codage prédéterminé (F1) avant d'être codés au moyen dudit premier codeur utilisant ladite première partie d'une clé de codage spécifique audit ordinateur et communiquée par l'acheteur dudit logiciel, ledit décodeur (56) utilisant une combinaison dudit algorithme de codage et de ladite première partie de la clé de codage pour décoder les bits de données dudit logiciel. 4. The system as claimed in claim 1 or 2, in which the data bits of said software are first coded a first time according to a predetermined coding algorithm (F1) before being coded by means of said first coder using said first part d a coding key specific to said computer and communicated by the purchaser of said software, said decoder (56) using a combination of said coding algorithm and said first part of the coding key to decode the data bits of said software. 5. Système selon la revendication 4, dans lequel ledit algorithme de codage prédéterminé (F1) est constitué d'une séquence de mots de données et sa combinaison avec ladite première partie de la clé de codage combine de façon répétitive les bits de ladite première partie de la clé de codage avec la suite des bits de ladite séquence dans des circuits OU-Exclusif à 2 entrées. 5. The system as claimed in claim 4, in which said predetermined coding algorithm (F1) consists of a sequence of data words and its combination with said first part of the coding key repetitively combines the bits of said first part. of the coding key with the sequence of bits of the said sequence in Exclusive-OR circuits with 2 inputs. 6. Système selon l'une des revendications 1 à 5, dans lequel ladite unité de codage/décodage comprend un dispositif d'autorisation de décodage comportant des registres (62, 64) indiquant le début et la fin de la partie du logiciel à coder et des comparateurs (66, 68) pour autoriser par des portes (50, 60) ledit second codeur (46) et ledit décodeur (56) lorsque les données adressées se trouvent dans ladite partie à coder et pour interdire ledit second codeur et ledit décodeur lorsque les données adressées se trouvent en dehors de ladite partie à coder. 6. System according to one of claims 1 to 5, wherein said coding / decoding unit comprises a decoding authorization device comprising registers (62, 64) indicating the start and the end of the part of the software to be coded. and comparators (66, 68) for authorizing by doors (50, 60) said second coder (46) and said decoder (56) when the addressed data are in said part to be coded and for prohibiting said second coder and said decoder when the data addressed is outside of said part to be coded. 7. Système selon l'une des revendications 5 à 6, dans lequel la partie à coder dudit logiciel ou autre fichier de données comporte des portions de données qui sont réécrites, le bus de données (54) connectant ladite mémoire (40) audit décodeur (56) et le bus de données 61 connectant ledit décodeur à ladite unité de traitement (42) étant bidirectionnels de manière à ce que les données qui doivent être réécrites puissent être codées par ledit décodeur lorsqu'elles sont transmises de ladite unité de traitement à ladite mémoire.  7. System according to one of claims 5 to 6, in which the part to be coded of said software or other data file comprises portions of data which are rewritten, the data bus (54) connecting said memory (40) to said decoder. (56) and the data bus 61 connecting said decoder to said processing unit (42) being bidirectional so that the data which must be rewritten can be coded by said decoder when it is transmitted from said processing unit to said memory. 8. Système selon l'une quelconque des revendications précédentes, dans lequel ladite clé de codage est emmagasinée dans une mémoire permanente du type ROM (48, 58) dans ledit ordinateur.  8. System according to any one of the preceding claims, in which said coding key is stored in a permanent memory of the ROM type (48, 58) in said computer.
FR9503990A 1995-03-30 1995-03-30 Protection system blocking illegal use of computer program or data Pending FR2732488A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR9503990A FR2732488A1 (en) 1995-03-30 1995-03-30 Protection system blocking illegal use of computer program or data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9503990A FR2732488A1 (en) 1995-03-30 1995-03-30 Protection system blocking illegal use of computer program or data

Publications (1)

Publication Number Publication Date
FR2732488A1 true FR2732488A1 (en) 1996-10-04

Family

ID=9477751

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9503990A Pending FR2732488A1 (en) 1995-03-30 1995-03-30 Protection system blocking illegal use of computer program or data

Country Status (1)

Country Link
FR (1) FR2732488A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
EP0171456A1 (en) * 1984-08-17 1986-02-19 Thomas O. Westheimer Computer software protection system
EP0583140A1 (en) * 1992-08-11 1994-02-16 International Business Machines Corporation System for seamless processing of encrypted and non-encrypted data and instructions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
EP0171456A1 (en) * 1984-08-17 1986-02-19 Thomas O. Westheimer Computer software protection system
EP0583140A1 (en) * 1992-08-11 1994-02-16 International Business Machines Corporation System for seamless processing of encrypted and non-encrypted data and instructions

Similar Documents

Publication Publication Date Title
US9934408B2 (en) Secure personal content server
US5337357A (en) Method of software distribution protection
EP0089876B1 (en) Method and device for the protection of software delivered by a supplyer to a user
US8839005B2 (en) Apparatus for transferring licensed digital content between users
EP0430734A1 (en) System and method to securely operate a computerprogram
US7440574B2 (en) Content encryption using programmable hardware
FR2750554A1 (en) CONDITIONAL ACCESS SYSTEM AND CHIP CARD PROVIDING SUCH ACCESS
EP0540095A1 (en) Microcircuit for an IC-card with protected programmable memory
WO2002069070A2 (en) Controlling access to protected digital content
CN1575446A (en) Method for binding a software data domain to specific hardware
FR2654236A1 (en) METHOD FOR PROTECTING AGAINST THE FRAUDULENT USE OF MICROPROCESSOR CARDS, AND DEVICE FOR IMPLEMENTING SAME.
EP3283968B1 (en) Method for sharing a memory between at least two functional entities
FR2732488A1 (en) Protection system blocking illegal use of computer program or data
KR20210054934A (en) Method for protecting copyright using blockchain
EP1609326B1 (en) Method of protecting a mobile-telephone-type telecommunication terminal
FR2814557A1 (en) PROTECTION AGAINST THE ABUSE OF AN INSTRUCTION IN A MEMORY
EP0246119B1 (en) Optional system for protecting access to a computer
KR102550994B1 (en) Method and system for temporal leasing digital contents by use of NFT
EP1031987B1 (en) Electronic memory and electronic device having such a memory
CA2120816C (en) Method of software distribution protection
FR2577332A1 (en) System for measuring the use of application software on a computer or a microcomputer
Davison Some Implications of the US Working Group's Report on Intellectual Property and the National Information Infrastructure
FR2835331A1 (en) PROCESS FOR MONITORING THE USE OF DIGITAL CONTENT BY A SECURITY MODULE OR A CHIP CARD INCLUDING LEDIT MODULE
EP1570332A2 (en) Method of securing digital data records
FR2766597A1 (en) Memory management unit for a microprocessor which converts a logic address into a physical address.