WO1990001736A1 - Method and device for the protection and universalization of a software - Google Patents

Method and device for the protection and universalization of a software Download PDF

Info

Publication number
WO1990001736A1
WO1990001736A1 PCT/FR1989/000392 FR8900392W WO9001736A1 WO 1990001736 A1 WO1990001736 A1 WO 1990001736A1 FR 8900392 W FR8900392 W FR 8900392W WO 9001736 A1 WO9001736 A1 WO 9001736A1
Authority
WO
WIPO (PCT)
Prior art keywords
microprocessor
software
memory
operating system
assembly
Prior art date
Application number
PCT/FR1989/000392
Other languages
French (fr)
Inventor
Philippe Pionchon
Original Assignee
Philippe Pionchon
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 Philippe Pionchon filed Critical Philippe Pionchon
Publication of WO1990001736A1 publication Critical patent/WO1990001736A1/en

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]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/86Secure or tamper-resistant housings
    • 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/2143Clearing memory, e.g. to prevent the data from being stolen

Definitions

  • the invention relates to a method and a device for protecting software, in particular against unauthorized copying, and for universalizing this software, so as to make it independent of the operating system managing the computer or the microphone. - computer intended to use this software.
  • the present invention relates to a mode of software protection, which is not subject to the aforementioned drawbacks and which also makes it possible to make this software "universal", that is to say independent of the operating system managing the system on which the software will be used.
  • the subject of the invention is also means of the aforementioned type, which make it possible to adapt the type and performance of a microprocessor to the type of software that it has to execute.
  • the invention also relates to means of this type, which make it very easy to perform multi-processing of information.
  • a method of protection and universalization of software consisting in recording at least an essential part of the software in at least one memory connected to an information processing microprocessor in a set of inviolable type.
  • the method according to the invention therefore differs from known methods in that it consists in recording, in the memory of an inviolable assembly, not a part, even a large one, of the software, but all of this software, apart from its functions system, which are they recorded on any independent support, such as for example a floppy disk which will be read by the operating system. It follows that, according to the invention, the microprocessor of the operating system confines itself to managing and executing the input / output requests which are sent to it by the microprocessor of the inviolable assembly, the latter executing the software in question.
  • the software executed by the microprocessor of the inviolable assembly is made independent of the operating system which manages the operating system. It suffices for this that, on the annexed medium, the desired communication and input / output management programs have been recorded, as well as the functions which are dependent on this operating system.
  • a single input / output port is provided on the inviolable assembly, for its connection to the microprocessor of the operating system.
  • This link which is from microprocessor to microprocessor, can be a serial link of the RS 232 C type, or a link with shareable memory, or even a link channel to parallel input / output channel.
  • the actual protection of the software can be provided in various ways: for example by using a material of the thermosetting type in which the memories and the microprocessor of the inviolable assembly are embedded.
  • the invention also provides a device for protecting and universalizing software, comprising at least one memory in which an essential part of the software is recorded and a microprocessor for processing information, connected to the memory and forming with that -a tamper-evident assembly comprising means for connection to a system for using the software comprising a microprocessor, characterized in that the software proper is stored in the memory of the tamper-evident assembly, and in that any independent medium , readable by the operating system, contains programs for communication between the inviolable assembly and the operating system, for managing input / output operations, and functions which are dependent on the operating system managing the system of use.
  • the device according to the invention is extremely inexpensive compared to the advantages which it presents. Indeed, the price of a microprocessor produced in large series is now very low, and its association with a working memory and with a memory in which the software is recorded, does not increase in a way sensitive the price of software.
  • the means of connection between the microprocessors of the operating system and of the tamper-proof assembly comprise a serial link of the RS 232 C type, or a link with shareable memory, or even a link channel to parallel input / output channel.
  • the channel-to-channel link includes, for each microprocessor, an ISR register directly installed on a data bus of the associated microprocessor, and an RS flip-flop whose inputs are connected to decoder circuits for reading and writing addresses .
  • Another advantage of the device according to the invention is that it is possible to provide, in the same inviolable assembly, several microprocessors connected in parallel to the memories of this assembly, which makes it possible very simply to perform multi-processing.
  • FIG. 1 schematically represents a device according to the invention and its connection to a software use system
  • FIG. 2 schematically shows by way of example the essential characteristics of a channel-to-channel link used in the context of the invention.
  • the device according to the invention is generally designated by the reference 10 and comprises a box 12 of the tamper-proof type, which contains at least one microprocessor 14 for processing information and at least one memory 16 in which most of the software to be protected has been recorded.
  • a box 12 of the tamper-proof type which contains at least one microprocessor 14 for processing information and at least one memory 16 in which most of the software to be protected has been recorded.
  • microprocessor 14 for processing information
  • memory 16 in which most of the software to be protected has been recorded.
  • the housing 12 contains another microprocessor 18 which is connected to the microprocessor 14, one being for example master and the other slave.
  • the microprocessors 14 and 18 are connected to the aforementioned memory 16, which is for example of the ROM, PROM, EPROM, etc. type, as well as to a working memory 20 of the RAM type, in which the software will be executed.
  • One of the microprocessors of the assembly 10 is also associated with means 22 for connecting to a system 24 for using the software.
  • This system 24 can be a personal or professional microcomputer, or even a specialized computer system. It includes for example a microprocessor 26 associated with a random access memory 28, a read-only memory 30 and at least one input / output unit 32.
  • the part of the software which is not recorded in the memory 16 of the set 10, and which corresponds to communication programs between the set 10 and the system 24, to programs for managing input / output operations and to functions dependent on the operating system managing the operating system 24, can be recorded on an independent medium 34, such as a floppy disk, the unit 32 for input / output of the system 24 then being a unit for floppy disk.
  • the assembly 10 can be made inviolable by virtue of a block or a layer of a hard material such a thermosetting resin, forming the housing 12 which contains the microprocessor (s) 14, 18, the memories 16, 20 and their connections, as well as part of the connecting means 22.
  • the material used can be a synthetic material of the type resin which can be polymerized cold or at high temperature and which, after polymerization, becomes very hard and very resistant and has a high melting point, so that any attempt to destroy or remove this material necessarily destroys the memory 16 and / or its connections to microprocessors 14 .. 18.
  • connection means 22 it is sufficient, by the connecting means 22, to connect the assembly according to the invention to a system 24 for using the software.
  • the floppy disk 34 or any other suitable medium is placed in the input / output unit 32 of the system 24.
  • the system 24 is then able to execute the programs contained in the floppy disk 34 and thus trigger the execution of the software recorded in the memory 16 of the inviolable assembly 10.
  • This software is executed by the microprocessor (s) 14, 18 which transmit their logical requests, for example of input / output, to the microprocessor 26 of the operating system 24.
  • This microprocessor 26 then works as a slave microprocessor of the microprocessor (s) 14, 18, it executes the input / output operations which are requested and provides the results to the microprocessors 14, 18, of the set 10.
  • connection means 22 we understand that it is impossible for a specialist to use the connecting means 22 to have a any direct access to the software recorded in the memory 16, given that it passes through these connection means 22 only input / output requests and the corresponding results.
  • microprocessor 26 of the operating system can have very reduced performance, since it is limited to managing input / output operations.
  • microprocessor (s) 14, 18 of the assembly 10 can be exactly adapted to the software that they must execute, both from the point of view of performance and that of their architecture.
  • memories 16 and 20 are not limited, and several sets of memories 16-20 can be provided in the same tamper-evident assembly 10, when several microprocessors 14, 18 are provided in this assembly.
  • the connecting means 22 between the microprocessor 14 and the assembly 10 and the microprocessor 26 of the use system 24 can be of different types, which are already known in themselves to those skilled in the art:
  • the RS 232 C serial link is simple and very well known, and allows two microprocessors to be connected with a whole set of pre-conditioned components.
  • this type of link is not very attractive from an economic point of view and is not very efficient either. It requires an additional supply and minus 12 volts. It is generally only used to connect microprocessors or central processing units more than two meters apart.
  • the memory-to-memory link which uses a shareable memory component, makes it possible to connect two microprocessors or central units in a very efficient manner.
  • this link is complex (creation of an acquisition line to manage access restrictions, forced sleep of the losing central unit, synchronization of memory access times, etc. ).
  • the channel-to-channel link which is widely used in mainframe computers, uses a specific register directly installed on the data bus and allowing the link between two central units via a fictitious input / output channel , associated with a memory position or an input / output port address. depending on the type of machine used.
  • connection means 22 between the two microprocessors 14 and 26 then comprise, for each microprocessor, a register 36 generally known as the ISR register (Interrupt Service Register) and which can be a circuit SN 74 ALS 373N or SN 74 ALS573 YEAR.
  • ISR register Interrupt Service Register
  • This register is requested via an address decoder (memory or input / output memory) allowing its access in read and write. Access to register 36 is only possible in reading for the microprocessor with which it is associated, and in writing for the other microprocessor. The two mi croprocessors use the same means of access and the same access address.
  • Each microprocessor 14, 26 will therefore be associated with a register 36 whose inputs 0, ...., 7 are connected directly to the data bus 38 of the other microprocessor (for example 26) and whose outputs O, ...., 7 are connected directly to the data bus 40 of the associated microprocessor (for example 14).
  • a flip-flop RS 42 makes it possible to manage the interruption of the associated microprocessor 14.
  • the line is connected to the input of register 36 as well as to line general.
  • a diode 44 is inserted on the line to isolate the RESET from the reading selection by the associated microprocessor 14.
  • the line of the flip-flop 42 is connected to the input of an inverter 46 whose output is connected to the input G of the register 36.
  • the output of scale 42 is connected to the input or of the associated microprocessor 14.
  • the read address decoder 48 is composed of a circuit SN 74 ALS 138 N or of a logic circuit NO-AND-OR-NO. The output of this decoder 48 is directly connected to the input of flip-flop 42. The signal ⁇ general activates this line to inactivate register 36 when the corresponding microprocessor 14 is powered up or reset.
  • the write address decoder 50 is composed of an identical circuit or a NON-AND-OR-NO logic circuit whose output is directly connected to the input of scale 42.
  • the operating principle is as follows: as soon as a microprocessor writes to a register 36, an interruption is generated in the associated microprocessor, which will read the data contained in the register 36, process it and communicate the result in the register 36 of the other microprocessor, then resume operation where it was interrupted.
  • the works ment of the other microprocessor is interrupted by the communication of the result in its own register 36.
  • protocol or communication software is used between the two microcomputers so that the link is efficient and can operate without errors.
  • microprocessors used in the device according to the invention are commercially available. One can in particular make use of microprocessors INTEL IAPX 86 or IAPX 88 or IAPX 186, etc, whose performances are chosen according to the software to be executed.
  • the microprocessor 26 of the software use system 24 can optionally be a low-end microprocessor.
  • Each microprocessor 14-memory 16-memory 20 assembly may possibly be constituted by a single integrated circuit.
  • the set includes all the programs necessary for a given application, as well as the read-only memories and the microprocessor (s) dedicated to its execution;
  • the assembly according to the invention is independent of any operating system and the software it contains is protected against unauthorized copies.

Abstract

Method and device for the protection and universalization of a software, comprising the recording of the software itself into a memory (16) connected to a microprocessor (14) in an inviolable assembly (10) connected by means (22) to a software utilization system (24), and the recording on any independent medium (34), such as a disc, of programmes of communication and management of input/output operations, as well as functions depending on the system for exploiting the utilization system (24).

Description

PROCEDE ET DI SPOS ITIF DE PROTECTION ET D ' UNIVERSALISATION PROTECTION AND UNIVERSALIZATION METHOD AND DI SPOS
D ' UN LOGICIEL SOFTWARE
L'invention concerne un procédé et un dispositif de protection d'un logiciel, en particulier contre les copies non autorisées, et d'universalisation de ce logiciel, de façon à le rendre indépendant du système d'exploitation gérant l'ordinateur ou le micro-ordinateur destiné à utiliser ce logiciel.  The invention relates to a method and a device for protecting software, in particular against unauthorized copying, and for universalizing this software, so as to make it independent of the operating system managing the computer or the microphone. - computer intended to use this software.
On connaît l'importance que revêt la protection des programmes pour les sociétés de service en informatique. Quels que soient les moyens de protection utilisés, il est toujours possible à un spécialiste, s'il dispose du temps et des moyens suffisants. de parvenir à copier un logiciel enregistre sur un support quelconque (mémoire morte, disquette, etc . Les moyens les plus courants de protection des logiciels sont le codage ou cryptage, au moyen de clés statiques, de clés dynamiques et de fonctions ou d'algorithmes mathématiques plus ou moins sophistiqués. Le spécialiste qui parvient cependant à découvrir les clés de codage ou a inverser les fonctions de codage, peut alors utiliser le logiciel à son profit, le reproduire en une pluralité d'exemplaires, etc.  We know the importance of protecting programs for IT service companies. Whatever the means of protection used, it is always possible for a specialist, if he has sufficient time and means. to succeed in copying recorded software onto any medium (read-only memory, floppy disk, etc.) The most common means of protecting software are coding or encryption, using static keys, dynamic keys and functions or algorithms more or less sophisticated mathematics, but the specialist who manages to discover the coding keys or reverse the coding functions can then use the software to his advantage, reproduce it in a plurality of copies, etc.
On a déjà proposé (EP-A-0175 557 et EP-A-0151 049) d ' associer dans un ensemble inviolable un microprocesseur et une mémoire dans laquelle on enregistre des parties plus ou moins importantes du logiciel à protéger. Cet ensemble peut être relié à un système informatique d'utilisation, comprenant un microprocesseur, des mémoires et des unités d'entrée/sortie, et dans lequel on a enregistré le restant du logiciel à protéger. C'est alors le microprocesseur du système d'utilisation qui commence à traiter le logiciel puis, quand il arrive à une instruction ou à un sous-programme qui n'est pas dans sa mémoire, qui transmet les données voulues au microprocesseur de l'ensemble inviolable qui exécute alors l'instruction ou le sous-programme requis, puis retrans met les données au système d'utilisation, etc... . It has already been proposed (EP-A-0175 557 and EP-A-0151 049) to associate in a tamper-proof assembly a microprocessor and a memory in which more or less important parts of the software to be protected are recorded. This assembly can be connected to a computer system for use, comprising a microprocessor, memories and input / output units, and in which the remainder of the software to be protected has been recorded. It is then the microprocessor of the operating system which begins to process the software then, when it arrives at an instruction or a subroutine which is not in its memory, which transmits the desired data to the microprocessor of the tamper-evident assembly which then executes the required instruction or subroutine, then retransmits puts the data in the user system, etc ....
On obtient alors une certaine protection du logiciel, au prix d'une augmentation considérable des communications entre la partie du logiciel stockée dans le système d'utilisation et celle qui est stockée dans l'ensemble inviolable, ce qui dégrade énormément les performances d'exécution.  This then provides some protection for the software, at the cost of a considerable increase in communications between the part of the software stored in the operating system and that which is stored in the tamper-proof assembly, which considerably degrades the performance of execution. .
La présente invention a pour objet un mode de protection d'un logiciel, qui ne soit pas soumis aux inconvénients précités et qui permette de plus de rendre ce logiciel "universel", c'est-à-dire indépendant du système d'exploitation gérant le système sur lequel le logiciel va être utilisé.  The present invention relates to a mode of software protection, which is not subject to the aforementioned drawbacks and which also makes it possible to make this software "universal", that is to say independent of the operating system managing the system on which the software will be used.
L'invention a également pour objet des moyens du type précité, qui permettent d'adapter le type et les performances d'un microprocesseur au type de logiciel qu'il doit exécuter.  The subject of the invention is also means of the aforementioned type, which make it possible to adapt the type and performance of a microprocessor to the type of software that it has to execute.
L'invention a encore pour objet des moyens de ce type, qui permettent de réaliser très facilement un multi-traitement de l'information.  The invention also relates to means of this type, which make it very easy to perform multi-processing of information.
Elle propose, pour cela, un procédé de protection et d'universalisation d'un logiciel, consistant à enregistrer au moins une partie essentielle du logiciel dans au moins une mémoire reliée à un microprocesseur de traitement de l'information dans un ensemble de type inviolable comprenant des moyens de connexion à un système d'utilisation du logiciel, comprenant un microprocesseur, caractérisé en ce que l'on enregistre dans ladite mémoire de l'ensemble inviolable le logiciel proprement dit, on enregistre sur un support indépendant quelconque, lisible par le système d'utilisation, des programmes de communication entre l'ensemble inviolable et le système d'utilisation, de gestion des opérations d'entrée/sortie, et des fonctions dépendantes du système d'exploitation gérant le système d'utilisation, et l'on fait exécuter le logiciel par le microprocesseur de l'ensemble inviolable, dont les demandes logiques d'entrée/sortie sont traitées par le microprocesseur du système d'utilisation. It proposes, for this, a method of protection and universalization of software, consisting in recording at least an essential part of the software in at least one memory connected to an information processing microprocessor in a set of inviolable type. comprising means for connection to a system for using the software, comprising a microprocessor, characterized in that the software itself is recorded in said memory of the inviolable assembly, it is recorded on any independent medium, readable by the operating system, communication programs between the inviolable assembly and the operating system, management of input / output operations, and functions dependent on the operating system managing the operating system, and the the software is executed by the microprocessor of the inviolable assembly, whose logical input / output requests are processed by the microprocessor of the operating system.
Le procédé selon l'invention diffère donc des procédés connus en ce qu'il consiste à enregistrer, dans la mémoire d'un ensemble inviolable, non pas une partie, même importante, du logiciel, mais la totalité de ce logiciel, hormis ses fonctions système, qui sont elles enregistrées sur un support quelconque indépendant, tel par exemple qu'une disquette qui sera lue par le système d'utilisation. Il en résulte que, selon l'invention, le microprocesseur du système d'utilisation se borne à gérer et à exécuter les demandes d'entrée/sortie qui lui sont adressées par le microprocesseur de l'ensemble inviolable, ce dernier exécutant le logiciel en question.  The method according to the invention therefore differs from known methods in that it consists in recording, in the memory of an inviolable assembly, not a part, even a large one, of the software, but all of this software, apart from its functions system, which are they recorded on any independent support, such as for example a floppy disk which will be read by the operating system. It follows that, according to the invention, the microprocessor of the operating system confines itself to managing and executing the input / output requests which are sent to it by the microprocessor of the inviolable assembly, the latter executing the software in question.
On évite donc ainsi l'inconvénient essentiel des procédés antérieurs, qui consistait à transférer sans cesse des données entre l'ensemble inviolable et le système d'utilisation, étant donné que chacun d'eux exécutait une part du logiciel.  This therefore avoids the essential drawback of the prior methods, which consisted in constantly transferring data between the inviolable assembly and the operating system, since each of them executed a part of the software.
Corollairement, le logiciel exécuté par le microprocesseur de l'ensemble inviolable est rendu indépendant du système d'exploitation qui gère le système d'utilisation. Il suffit pour cela que, sur le support annexe, on ait enregistré les programmes voulus de communication et de gestion des entrées/sorties, ainsi que les fonctions qui sont dépendantes de ce système d'exploitation.  As a corollary, the software executed by the microprocessor of the inviolable assembly is made independent of the operating system which manages the operating system. It suffices for this that, on the annexed medium, the desired communication and input / output management programs have been recorded, as well as the functions which are dependent on this operating system.
Selon une autre caractéristique de l'invention, on prévoit un seul port d'entrée/sortie sur l'ensemble inviolable, pour sa connexion au microprocesseur du système d'utilisation. Cette liaison, qui est de microprocesseur à microprocesseur, peut être une liaison série du type RS 232 C, ou une liaison à mémoire partageable, ou encore une liaison canal à canal d'entrée/sortie parallèle.  According to another characteristic of the invention, a single input / output port is provided on the inviolable assembly, for its connection to the microprocessor of the operating system. This link, which is from microprocessor to microprocessor, can be a serial link of the RS 232 C type, or a link with shareable memory, or even a link channel to parallel input / output channel.
Il en résulte que tout accès à la mémoire de l'ensemble inviolable dans laquelle est stocké le logiciel, est interdit et qu'il ne passe, par la liaison entre les microprocesseurs, que des demandes d'entrée/sortie et les résultats correspondants. As a result, any access to the memory of the inviolable assembly in which the software is stored, is prohibited and only passes, by the link between the microprocessors, input / output requests and the corresponding results.
La protection proprement dite du logiciel peut être assurée de diverses façons : par exemple en utilisant une matière du type thermodurcissable dans laquelle sont noyées les mémoires et le microprocesseur de l'ensemble inviolable.  The actual protection of the software can be provided in various ways: for example by using a material of the thermosetting type in which the memories and the microprocessor of the inviolable assembly are embedded.
Ces moyens peuvent être combinés avec d'autres moyens connus de protection, tels que le codage ou criptage, et les techniques dites de "gate array" (système de tables de correspondance), de "standard cell" ou de "full custom".  These means can be combined with other known means of protection, such as coding or encryption, and the techniques known as "gate array" (correspondence table system), "standard cell" or "full custom".
L'invention propose également un dispositif de protection et d'universalisation d'un logiciel, comprenant au moins une mémoire dans laquelle est enregistrée une partie essentielle du logiciel et un microprocesseur de traitement de l'information, relié à la mémoire et formant avec celle-ci un ensemble inviolable comprenant des moyens de connexion à un système d'utilisation du logiciel comprenant un microprocesseur, caractérisé en ce que le logiciel proprement dit est enregistré dans la mémoire de l'ensemble inviolable, et en ce qu'un support indépendant quelconque, lisible par le système d'utilisation, contient des programmes de communication entre l'ensemble inviolable et le système d'utilisation, de gestion des opérations d'entrée/sortie, et des fonctions qui sont dépendantes du système d'exploitation gérant le système d'utilisation.  The invention also provides a device for protecting and universalizing software, comprising at least one memory in which an essential part of the software is recorded and a microprocessor for processing information, connected to the memory and forming with that -a tamper-evident assembly comprising means for connection to a system for using the software comprising a microprocessor, characterized in that the software proper is stored in the memory of the tamper-evident assembly, and in that any independent medium , readable by the operating system, contains programs for communication between the inviolable assembly and the operating system, for managing input / output operations, and functions which are dependent on the operating system managing the system of use.
Le dispositif selon l'invention est extrêmement peu coûteux par rapport aux avantages qu'il présente. En effet, le prix d'un microprocesseur fabriqué en grande série est maintenant très faible, et son association à une mémoire de travail et à une mémoire dans lequel est enregistré le logiciel, n'augmente pas de façon sensible le prix d'un logiciel. The device according to the invention is extremely inexpensive compared to the advantages which it presents. Indeed, the price of a microprocessor produced in large series is now very low, and its association with a working memory and with a memory in which the software is recorded, does not increase in a way sensitive the price of software.
Selon une autre caractéristique de l'invention, les moyens de connexion entre les microprocesseurs du système d'utilisation et de l'ensemble inviolable comprennent une liaison série du type RS 232 C, ou une liaison à mémoire partageable, ou encore une liaison canal à canal d'entrée/sortie parallèle.  According to another characteristic of the invention, the means of connection between the microprocessors of the operating system and of the tamper-proof assembly comprise a serial link of the RS 232 C type, or a link with shareable memory, or even a link channel to parallel input / output channel.
Par exemple, la liaison canal a canal comprend, pour chaque microprocesseur, un registre ISR directement implanté sur un bus de données du microprocesseur associé, et une bascule RS dont les entrées sont reliées a des circuits décodeurs d'adresses de lecture et d' écriture.  For example, the channel-to-channel link includes, for each microprocessor, an ISR register directly installed on a data bus of the associated microprocessor, and an RS flip-flop whose inputs are connected to decoder circuits for reading and writing addresses .
Ce type de liaison est simple à réaliser, peu coûteux et très performant.  This type of connection is simple to carry out, inexpensive and very efficient.
Un autre avantage du dispositif selon l'invention est que l'on peut prévoir, dans le même ensemble inviolable, plusieurs microprocesseurs reliés en parallèle aux mémoires de cet ensemble, ce qui permet de réaliser très simplement un multi-traitement.  Another advantage of the device according to the invention is that it is possible to provide, in the same inviolable assembly, several microprocessors connected in parallel to the memories of this assembly, which makes it possible very simply to perform multi-processing.
En outre, plusieurs ensembles inviolables peuvent être connectés au même système d'utilisation, ce qui constitue une autre possibilité de multi-traitement; les deux possibilités précitées pouvant d'ailleurs être combinées.  In addition, several tamper-evident assemblies can be connected to the same use system, which constitutes another possibility of multi-processing; the two aforementioned possibilities can also be combined.
Dans la description qui suit, faite à titre d'exemple, on se réfère aux dessins annexés, dans lesquels :  In the description which follows, given by way of example, reference is made to the appended drawings, in which:
La figure 1 représente schématiquement un dispositif selon l'invention et sa connexion à un système d'utilisation de logiciel;  FIG. 1 schematically represents a device according to the invention and its connection to a software use system;
La figure 2 représente schématiquement à titre d'exemple les caractéristiques essentielles d'une liaison canal à canal utilisée dans le cadre de l'invention.  FIG. 2 schematically shows by way of example the essential characteristics of a channel-to-channel link used in the context of the invention.
En figure 1, le dispositif selon l'invention est désigné généralement par la référence 10 et comprend un boîtier 12 de type inviolable, qui contient au moins un microprocesseur 14 de traitement de l'information et au moins une mémoire 16 dans laquelle a été enregistré l'essentiel d'un logiciel à protéger. Par l'essentiel, on entend toutes les fonctions complexes et/ou originales du logiciel et tous ses programmes et sous-programmes, à l'exception des fonctions système (hormis peut-être celle d'horloge}. In Figure 1, the device according to the invention is generally designated by the reference 10 and comprises a box 12 of the tamper-proof type, which contains at least one microprocessor 14 for processing information and at least one memory 16 in which most of the software to be protected has been recorded. Basically, we mean all the complex and / or original functions of the software and all its programs and subroutines, except for the system functions (except perhaps the clock function).
Dans l'exemple représenté. le boîtier 12 contient un autre microprocesseur 18 qui est connecté au microprocesseur 14, l'un etant par exemple maître et l'autre esclave. Les microprocesseurs 14 et 18 sont raccordes a la memoire 16 précitée, qui est par exemple du type ROM, PROM, EPROM, etc..., ainsi qu'à une mémoire de travail 20 du type RAM, dans laquelle seront exécutés les logiciels.  In the example shown. the housing 12 contains another microprocessor 18 which is connected to the microprocessor 14, one being for example master and the other slave. The microprocessors 14 and 18 are connected to the aforementioned memory 16, which is for example of the ROM, PROM, EPROM, etc. type, as well as to a working memory 20 of the RAM type, in which the software will be executed.
L'un des microprocesseurs de l'ensemble 10 est associé également à des moyens 22 de liaison à un système 24 d'utilisation du logiciel.  One of the microprocessors of the assembly 10 is also associated with means 22 for connecting to a system 24 for using the software.
Ce système 24 peut être un micro-ordinateur de type personnel ou professionnel, ou encore un système informatique spécialisé. Il comprend par exemple un microprocesseur 26 associé à une mémoire vive 28, une mémoire morte 30 et au moins une unité 32 d' entrée/sortie.  This system 24 can be a personal or professional microcomputer, or even a specialized computer system. It includes for example a microprocessor 26 associated with a random access memory 28, a read-only memory 30 and at least one input / output unit 32.
La partie du logiciel qui n'est pas enregistrée dans la mémoire 16 de l'ensemble 10, et qui correspond à des programmes de communication entre l'ensemble 10 et le système 24, à des programmes de gestion des opérations d'entrée/sortie et à des fonctions dépendantes du système d'exploitation gérant le système d'utilisation 24, peut être enregistrée sur un support indépendant 34, telle qu'une disquette, l'unité 32 d' entrée-sortie du système 24 étant alors une unité de disquette.  The part of the software which is not recorded in the memory 16 of the set 10, and which corresponds to communication programs between the set 10 and the system 24, to programs for managing input / output operations and to functions dependent on the operating system managing the operating system 24, can be recorded on an independent medium 34, such as a floppy disk, the unit 32 for input / output of the system 24 then being a unit for floppy disk.
L'ensemble 10 peut être rendu inviolable grâce à un bloc ou une couche d'une matière dure telle qu'une résine thermodurcissable, formant le boîtier 12 qui contient le ou les microprocesseurs 14, 18, les mémoires 16, 20 et leurs connexions, ainsi qu'une partie des moyens de liaison 22. La matière utilisée peut être une matière synthétique du type résine polymérisable à froid ou à température élevée et qui, après polymérisation, devient très dure et très résistante et possède un point de fusion élevé, de telle sorte que toute tentative de destruction ou d'enlèvement de cette matière entraîne nécessairement la destruction de la mémoire 16 et/ou de ses liaisons aux microprocesseurs 14.. 18. The assembly 10 can be made inviolable by virtue of a block or a layer of a hard material such a thermosetting resin, forming the housing 12 which contains the microprocessor (s) 14, 18, the memories 16, 20 and their connections, as well as part of the connecting means 22. The material used can be a synthetic material of the type resin which can be polymerized cold or at high temperature and which, after polymerization, becomes very hard and very resistant and has a high melting point, so that any attempt to destroy or remove this material necessarily destroys the memory 16 and / or its connections to microprocessors 14 .. 18.
On peut bien entendu utiliser tout autre moyen équivalent empêchant l'accès physique, électrique, ou électronique à la mémoire 16 et à ses connexions avec les microprocesseurs 14, 18.  It is of course possible to use any other equivalent means preventing physical, electrical, or electronic access to the memory 16 and to its connections with the microprocessors 14, 18.
L'utilisation du dispositif selon l'invention est le suivant:  The use of the device according to the invention is as follows:
Il suffit, par les moyens de liaison 22, de connecter l'ensemble selon l'invention à un système 24 d'utilisation du logiciel. La disquette 34 ou tout autre support approprié, est placé dans l'unité d' entrée /sortie 32 du système 24.  It is sufficient, by the connecting means 22, to connect the assembly according to the invention to a system 24 for using the software. The floppy disk 34 or any other suitable medium is placed in the input / output unit 32 of the system 24.
Le système 24 est alors en mesure d'exécuter les programmes contenus dans la disquette 34 et ainsi de déclencher l'exécution du logiciel enregistré dans la mémoire 16 de l'ensemble inviolable 10. Ce logiciel est exécuté par le ou les microprocesseurs 14, 18 qui transmettent leurs demandes logiques, par exemple d'entrée/sortie, au microprocesseur 26 du système d'utilisation 24. Ce microprocesseur 26 travaille alors comme un microprocesseur esclave du ou des microprocesseurs 14, 18, il exécute les opérations d' entrée/sortie qui lui sont demandées et fournit les résultats aux microprocesseurs 14, 18, de l'ensemble 10.  The system 24 is then able to execute the programs contained in the floppy disk 34 and thus trigger the execution of the software recorded in the memory 16 of the inviolable assembly 10. This software is executed by the microprocessor (s) 14, 18 which transmit their logical requests, for example of input / output, to the microprocessor 26 of the operating system 24. This microprocessor 26 then works as a slave microprocessor of the microprocessor (s) 14, 18, it executes the input / output operations which are requested and provides the results to the microprocessors 14, 18, of the set 10.
On comprend qu'il est impossible à un spécialiste d'utiliser les moyens de liaison 22 pour avoir un accès direct quelconque au logiciel enregistré dans la mémoire 16, étant donné qu'il ne passe dans ces moyens de liaisons 22 que des demandes d'entrée/sortie et les résultats correspondants. We understand that it is impossible for a specialist to use the connecting means 22 to have a any direct access to the software recorded in the memory 16, given that it passes through these connection means 22 only input / output requests and the corresponding results.
Par ailleurs, le microprocesseur 26 du système d'utilisation peut avoir des performances très réduites, puisqu'il se borne à gérer des opérations d'entrée/sortie.  Furthermore, the microprocessor 26 of the operating system can have very reduced performance, since it is limited to managing input / output operations.
En revanche, le ou les microprocesseurs 14, 18 de l'ensemble 10 peuvent être exactement adaptés aux logiciels qu'ils doivent exécuter, à la fois du point de vue des performances et de celui de leur architecture.  On the other hand, the microprocessor (s) 14, 18 of the assembly 10 can be exactly adapted to the software that they must execute, both from the point of view of performance and that of their architecture.
Il en résuite corollairement une double possibilité de multi-traitement: soit à l'intérieur de l'ensemble 10 grâce à plusieurs microprocesseurs 14, 18, ..., soit par rapport au microprocesssur 26 du système d'utilisation, auquel on peut connecter plusieurs ensembles 10 différents. Ces deux possibilités de multitraitement peuvent bien entendu être combinées et multipliées autant que nécessaire.  As a corollary, this results in a double possibility of multi-processing: either inside the assembly 10 thanks to several microprocessors 14, 18, ..., or in relation to the microprocessor on 26 of the operating system, to which one can connect several different sets 10. These two possibilities of multiprocessing can of course be combined and multiplied as much as necessary.
La capacité des mémoires 16 et 20 n ' est pas limitée, et plusieurs ensembles de mémoires 16-20 peuvent être prévus dans le même ensemble inviolable 10, lorsque plusieurs microprocesseurs 14, 18 sont prévus dans cet ensemble.  The capacity of memories 16 and 20 is not limited, and several sets of memories 16-20 can be provided in the same tamper-evident assembly 10, when several microprocessors 14, 18 are provided in this assembly.
Les moyens de liaison 22 entre le microprocesseur 14 et l'ensemble 10 et le microprocesseur 26 du système d'utilisation 24 peuvent être de différents types, qui sont déjà connus en eux-mêmes de l'homme du métier :  The connecting means 22 between the microprocessor 14 and the assembly 10 and the microprocessor 26 of the use system 24 can be of different types, which are already known in themselves to those skilled in the art:
- une liaison série du type RS 232 C,  - a serial link of RS 232 C type,
- une liaison du type à mémoire partageable, ou une liaison canal à canal d'entrée/sortie parallèle.  - a link of the shared memory type, or a channel link to parallel input / output channel.
La liaison série RS 232 C est simple et très bien connue, et permet de relier deux microprocesseurs avec tout un ensemble de composants pré-conditionnés. Cependant, ce type de liaison n'est pas très mtéressant sur le plan économique et n'est pas non plus très performant. Il nécessite une alimentation en plus et moins 12 volts. Il n'est en général utilisé que pour relier des microprocesseurs ou des unités centrales distantes de plus de deux mètres environ. The RS 232 C serial link is simple and very well known, and allows two microprocessors to be connected with a whole set of pre-conditioned components. However, this type of link is not very attractive from an economic point of view and is not very efficient either. It requires an additional supply and minus 12 volts. It is generally only used to connect microprocessors or central processing units more than two meters apart.
La liaison du type mémoire à mémoire, qui utilise un composant à mémoire partageable, permet de relier deux microprocesseurs ou unités centrales de façon très performante. Cependant, la mise au point de cette liaison est complexe (création d'une ligne d'acquisition pour gérer les contentions d'accès, mise en sommeil forcé de l'unité centrale perdante, synchronisation des temps d'accès à la mémoire, etc...).  The memory-to-memory link, which uses a shareable memory component, makes it possible to connect two microprocessors or central units in a very efficient manner. However, the development of this link is complex (creation of an acquisition line to manage access restrictions, forced sleep of the losing central unit, synchronization of memory access times, etc. ...).
La liaison canal à canal, qui est très utilisée dans les grands ordinateurs, fait appel à un registre spécifique directement implanté sur le bus de données et permettant la liaison entre deux unités centrales par l'intermédiaire d'un canal fictif d'entrée/sortie, associé à une position de la mémoire ou à une adresse de port d'entrée/sortie. en fonction du type de machine utilisée.  The channel-to-channel link, which is widely used in mainframe computers, uses a specific register directly installed on the data bus and allowing the link between two central units via a fictitious input / output channel , associated with a memory position or an input / output port address. depending on the type of machine used.
Pour fixer les idées, une partie essentielle d'une liaison canal à canal a été représentée aux figures 2.  To fix the ideas, an essential part of a channel-to-channel link has been shown in Figures 2.
Les moyens de liaison 22 entre les deux microprocesseurs 14 et 26 comprennent alors, pour chaque microprocesseur, un registre 36 connu en général sous le nom de registre ISR (Interrupt Service Register) et qui peut être un circuit SN 74 ALS 373N ou SN 74 ALS573 AN.  The connection means 22 between the two microprocessors 14 and 26 then comprise, for each microprocessor, a register 36 generally known as the ISR register (Interrupt Service Register) and which can be a circuit SN 74 ALS 373N or SN 74 ALS573 YEAR.
Ce registre est sollicité par l'intermédiaire d'un décodeur d'adresse (mémoire ou mémoire d'entrée/sortie) permettant son accès en lecture et en écriture. L'accès au registre 36 n'est possible qu'en lecture pour le microprocesseur auquel il est associé, et qu'en écriture peur l'autre microprocesseur. Les deux mi croprocesseurs utilisent le même moyen d'accès et la même adresse d'accès. This register is requested via an address decoder (memory or input / output memory) allowing its access in read and write. Access to register 36 is only possible in reading for the microprocessor with which it is associated, and in writing for the other microprocessor. The two mi croprocessors use the same means of access and the same access address.
Chaque microprocesseur 14, 26 va donc être associé à un registre 36 dont les entrées 0, .... , 7 sont connectées directement au bus de données 38 de l'autre microprocesseur (par exemple 26) et dont les sor- ties O, ...., 7 sont reliées directement au bus de données 40 du microprocesseur associé (par exemple 14).  Each microprocessor 14, 26 will therefore be associated with a register 36 whose inputs 0, ...., 7 are connected directly to the data bus 38 of the other microprocessor (for example 26) and whose outputs O, ...., 7 are connected directly to the data bus 40 of the associated microprocessor (for example 14).
Une bascule RS 42 permet de gérer l'interruption du microprocesseur associé 14. La ligne est reliée à l'entrée du registre 36 ainsi qu'a
Figure imgf000012_0005
Figure imgf000012_0001
la ligne
Figure imgf000012_0002
générale. Une diode 44 est insérée sur la ligne
Figure imgf000012_0003
pour isoler le RESET de la sélection de lecture par le microprocesseur associé 14. La ligne
Figure imgf000012_0004
de la bascule 42 est reliée à l'entrée d'un inverseur 46 dont la sortie est reliée à l'entrée G du registre 36. La sortie
Figure imgf000012_0008
de la bascule 42 est reliée à l'entrée
Figure imgf000012_0006
ou
Figure imgf000012_0007
du microprocesseur associé 14.
A flip-flop RS 42 makes it possible to manage the interruption of the associated microprocessor 14. The line is connected to the input of register 36 as well as to
Figure imgf000012_0005
Figure imgf000012_0001
line
Figure imgf000012_0002
general. A diode 44 is inserted on the line
Figure imgf000012_0003
to isolate the RESET from the reading selection by the associated microprocessor 14. The line
Figure imgf000012_0004
of the flip-flop 42 is connected to the input of an inverter 46 whose output is connected to the input G of the register 36. The output
Figure imgf000012_0008
of scale 42 is connected to the input
Figure imgf000012_0006
or
Figure imgf000012_0007
of the associated microprocessor 14.
Le décodeur 48 d'adresse de lecture est composé d'un circuit SN 74 ALS 138 N ou d'un circuit logique N0N-ET-OU-NON. La sortie de ce décodeur 48 est directement reliée à l'entrée
Figure imgf000012_0009
de la bascule 42. Le signal
Figure imgf000012_0011
¬
Figure imgf000012_0010
général active cette ligne pour inactiver le registre 36 au moment de la mise sous tension ou de la réinitialisation du microprocesseur 14 correspondant.
The read address decoder 48 is composed of a circuit SN 74 ALS 138 N or of a logic circuit NO-AND-OR-NO. The output of this decoder 48 is directly connected to the input
Figure imgf000012_0009
of flip-flop 42. The signal
Figure imgf000012_0011
¬
Figure imgf000012_0010
general activates this line to inactivate register 36 when the corresponding microprocessor 14 is powered up or reset.
Le décodeur d'adresse d'écriture 50 est composé d'un circuit identique ou d'un circuit logique NON- ET-OU-NON dont la sortie est directement reliée à l'entrée
Figure imgf000012_0012
de la bascule 42.
The write address decoder 50 is composed of an identical circuit or a NON-AND-OR-NO logic circuit whose output is directly connected to the input
Figure imgf000012_0012
of scale 42.
Le principe de fonctionnement est le suivant: dès qu'un microprocesseur écrit dans un registre 36, une interruption est générée dans le microprocesseur associé, qui va lire la donnée contenue dans le registre 36, la traiter et communiquer le résultat dans le registre 36 de l'autre microprocesseur, puis reprendre ensuite son fonctionnement là où il avait été interrompu. Le fonctionne ment de l'autre microprocesseur est interrompu par la communication du résultat dans son propre registre 36. The operating principle is as follows: as soon as a microprocessor writes to a register 36, an interruption is generated in the associated microprocessor, which will read the data contained in the register 36, process it and communicate the result in the register 36 of the other microprocessor, then resume operation where it was interrupted. The works ment of the other microprocessor is interrupted by the communication of the result in its own register 36.
Sauf dans le cas où l'on a défini a priori les rôles des microprocesseurs (l'un maître et l'autre esclave), on utilise un logiciel de protocole d'échange ou de communication entre les deux micro-ordinateurs pour que la liaison soit efficace et puisse fonctionner sans erreurs.  Except in the case where the roles of the microprocessors (one master and the other slave) have been defined a priori, protocol or communication software is used between the two microcomputers so that the link is efficient and can operate without errors.
On peut utiliser pour cela les codes du protocole de communication BSC (Binarγ Synchronous Communication) qui est bien connu des spécialistes:  The codes of the BSC (Binarγ Synchronous Communication) communication protocol which is well known to specialists can be used for this:
WCC : code commande  WCC: order code
STX : début de texte  STX: start of text
ETX : fin de texte  ETX: end of text
EOT : fin de dialogue  EOT: end of dialogue
ACK : bien reçu  ACK: well received
NKK : pas d'accord  NKK: disagree
INQ : invitation.  INQ: invitation.
L'homme du métier sait utiliser un tel protocole de communication.  Those skilled in the art know how to use such a communication protocol.
Les microprocesseurs utilisés dans le dispositif selon l'invention sont disponibles dans le commerce. On peut notamment se servir de microprocesseurs INTEL IAPX 86 ou IAPX 88 ou IAPX 186, etc, dont les performances sont choisies en fonction du logiciel à exécuter. Le microprocesseur 26 du système 24 d'utilisation du logiciel peut éventuellement être un microprocesseur bas de gamme.  The microprocessors used in the device according to the invention are commercially available. One can in particular make use of microprocessors INTEL IAPX 86 or IAPX 88 or IAPX 186, etc, whose performances are chosen according to the software to be executed. The microprocessor 26 of the software use system 24 can optionally be a low-end microprocessor.
Chaque ensemble microprocesseur 14-mémoire 16-mémoire 20 peut éventuellement être constitué par un seul circuit intégré.  Each microprocessor 14-memory 16-memory 20 assembly may possibly be constituted by a single integrated circuit.
Les avantages essentiels de l'invention sont les suivants :  The essential advantages of the invention are as follows:
-on combine en un ensemble autonome et amovible les circuits et les logiciels nécessaires à une application donnée, cet ensemble ne possédant qu'une liai son protocolaire avec l'extérieur; - we combine into an autonomous and removable assembly the circuits and the software necessary for a given application, this assembly having only one link its protocol with the outside;
-l'ensemble comprend la totalité des programmes nécessaires à une application donnée, ainsi que les mémoires mortes et vives et le ou les microprocesseurs dédiés à son exécution ;  -the set includes all the programs necessary for a given application, as well as the read-only memories and the microprocessor (s) dedicated to its execution;
-il ne possède qu'un système de contrôle logique pour les opérations d' entrée/sortie impliquant des unités périphériques  -it only has a logical control system for input / output operations involving peripheral units
-il ne possède aucune fonction système, autre que la fonction horloge  - it has no system function, other than the clock function
-il ne possède qu'un seul port d'entrée/sortie qui lui permet d'être relié à un système d'utilisation par une liaison classique du type canal à canal,  -it has only one input / output port which allows it to be connected to a system of use by a classic link of the channel to channel type,
-il ne possède aucun système de contrôle des opérations physiques d' entrée/sortie, autre que celui de sa liaison avec le système d'utilisation.  -it does not have any control system of physical operations of entry / exit, other than that of its connection with the system of use.
L'ensemble selon l'invention est indépendant d'un système quelconque d'exploitation et le eu les logiciels qu'il contient sont protégés contre les copies non autorisées.  The assembly according to the invention is independent of any operating system and the software it contains is protected against unauthorized copies.

Claims

REVENDICATIONS
1. Procédé de protection et d'universalisation d'un logiciel, consistant à enregistrer au moins une partie essentielle du logiciel dans au moins une mémoire (16) reliée à un microprocesseur (14) de traitement de l'information dans un ensemble (10) de type inviolable comprenant des moyens (22) de connexion à un systeme (24) d'utilisation du logiciel, comportant un microprocesseur (26), caractérisé en ce que l'on enregistre dans ladite mémoire (16) de l'ensemble inviolable (10) le logiciel proprement dit, on enregistre sur un support indépendant quelconque (34, lisible par le système d'utilisation (24), des programmes de communication entre l'ensemble inviolable (10) et le système d'utilisation (24), de gestion des opérations d'entrée/sortie, et des fonctions dépendantes du système d'exploitation gérant le système d'utilisation (24), et l'on fait exécuter le logiciel par le microprocesseur (14) de l'ensemble inviolable (10), dont les demandes logiques d'entrée/sortie sont traitées par le microprocesseur (26) du système d'utilisation (24).  1. Method for protecting and universalizing software, consisting in recording at least an essential part of the software in at least one memory (16) connected to a microprocessor (14) for processing information in a set (10 ) of the inviolable type comprising means (22) of connection to a system (24) for using the software, comprising a microprocessor (26), characterized in that one records in said memory (16) the inviolable assembly (10) the software proper, there are recorded on any independent medium (34, readable by the operating system (24), communication programs between the tamper-proof assembly (10) and the operating system (24) , management of input / output operations, and functions dependent on the operating system managing the operating system (24), and the software is executed by the microprocessor (14) of the tamper-proof assembly ( 10), including logical input / output requests are processed by the microprocessor (26) of the operating system (24).
2 . Procédé selon la revendication 1, caractérisé en ce qu'on prévoit un seul port d'entrée/sortie sur l'ensemble inviolable (10), pour connexion au microprocesseur (26) du système (24).  2. Method according to claim 1, characterized in that a single input / output port is provided on the tamper-evident assembly (10), for connection to the microprocessor (26) of the system (24).
3. Procédé selon la revendication 1 ou 2 , caractérisé en ce qu'il consiste à relier le microprocesseur (14) de l'ensemble inviolable (10) au microprocesseur (26) du système d'utilisation (24) par une liaison série du type RS 232 C, ou par une liaison à mémoire partageable, ou par une liaison canal à canal d'entrée/sortie parallèle.  3. Method according to claim 1 or 2, characterized in that it consists in connecting the microprocessor (14) of the tamper-evident assembly (10) to the microprocessor (26) of the use system (24) by a serial link of the RS 232 C type, or by a shared memory link, or by a channel link to parallel input / output channel.
4. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il consiste à noyer les mémoires (16, 20) et le microprocesseur (14) précité dans un bloc ou une épaisseur (12) de matière résistante, telle par exemple qu'une résine thermodurcissable. 4. Method according to one of the preceding claims, characterized in that it consists in flooding the memories (16, 20) and the microprocessor (14) mentioned above in a block or a thickness (12) of resistant material, such as for example a thermosetting resin.
5. Procédé selon l'une des revendications 1 à 4, caractérisé en ce que l'on prévoit plusieurs microprocesseurs (14, 18) en parallèle dans ledit ensemble inviolable (12).  5. Method according to one of claims 1 to 4, characterized in that several microprocessors (14, 18) are provided in parallel in said tamper-evident assembly (12).
6. Dispositif de protection et d'umversalisation d'un logiciel, comprenant au moins une mémoire (16) dans laquelle est enregistrée une partie essentielle du logiciel et un microprocesseur (14) de traitement de l'information, relie à la mémoire (16) et formant avec celle-ci un ensemble inviolable (10) comprenant des moyens (22) de connexion à un système (24) d'utilisation du logiciel comprenant un microprocesseur (26), caractérisé en ce que le logiciel proprement dit est enregistré dans la mémoire (16) de l'ensemble inviolable (10) et en ce qu'un support indépendant quelconque (34), lisible par le système d'utilisation (24), contient des programmes de communication entre l'ensemble inviolable (10) et le système d'utilisation (24), de gestion des opérations d'entrée/sortie, et des fonctions dépendantes du système d'exploitation gérant le système d ' utilisation (24).  6. Device for protecting and updating software, comprising at least one memory (16) in which an essential part of the software is recorded and a microprocessor (14) for processing information, connected to the memory (16 ) and forming therewith an inviolable assembly (10) comprising means (22) for connection to a system (24) for using the software comprising a microprocessor (26), characterized in that the software itself is recorded in the memory (16) of the tamper-evident assembly (10) and in that any independent medium (34), readable by the operating system (24), contains communication programs between the tamper-evident assembly (10) and the operating system (24), for managing input / output operations, and functions dependent on the operating system managing the operating system (24).
7. Dispositif selon la revendication 6, caractérisé en ce que l'ensemble inviolable (10) comprend un bloc ou une épaisseur (12) d'une matière telle qu'une résine thermodurcissable, dans laquelle sont noyés la mémoire (16) et le microprocesseur (14) précité ainsi que leurs connexions.  7. Device according to claim 6, characterized in that the tamper-evident assembly (10) comprises a block or a thickness (12) of a material such as a thermosetting resin, in which the memory (16) and the microprocessor (14) above and their connections.
8. Dispositif selon la revendication 6 ou 7, caractérisé en ce que l'ensemble inviolable (10) précité comprend plusieurs microprocesseurs (14, 18) reliés en parallèle à au moins une mémoire (16) contenant le ou les logiciels à exécuter et au moins une mémoire vive (20) par laquelle sont exécutés les logiciels.  8. Device according to claim 6 or 7, characterized in that the above tamper-evident assembly (10) comprises several microprocessors (14, 18) connected in parallel to at least one memory (16) containing the software or software to be executed and to minus a random access memory (20) by which the software is executed.
9. Dispositif selon l'une des revendications 6 à 8, caractérisé en ce que les moyens (22) de connexion entre les microprocesseurs (14, 26) de l'ensemble inviolable et du système d'utilisation comprennent une liaison série du type RS 232 C, ou une liaison à mémoire partageable, ou une liaison canal à canal d ' entrée/sortie parallèle. 9. Device according to one of claims 6 to 8, characterized in that the means (22) for connection between the microprocessors (14, 26) of the tamper-proof assembly and of the operating system comprise a serial link of the RS 232 C type, or a link with shareable memory , or a channel link to parallel input / output channel.
10. Dispositif selon la revendication 9, caractérisé en ce que la liaison canal a canal comprend, pour chaque microprocesseur (14, 26), un registre ISR (36) directement implanté sur un bus de données (40) du microprocesseur associé, et une bascule RS (42) dont les entrées sont reliées a des circuits (48, 50) de codeurs d'adresses de lecture et d'écriture.  10. Device according to claim 9, characterized in that the channel to channel link comprises, for each microprocessor (14, 26), an ISR register (36) directly implanted on a data bus (40) of the associated microprocessor, and a RS flip-flop (42) whose inputs are connected to circuits (48, 50) of read and write address coders.
PCT/FR1989/000392 1988-08-01 1989-07-26 Method and device for the protection and universalization of a software WO1990001736A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR88/10360 1988-08-01
FR8810360A FR2634917A1 (en) 1988-08-01 1988-08-01 METHOD AND DEVICE FOR PROTECTING SOFTWARE, ESPECIALLY AGAINST UNAUTHORIZED COPIES

Publications (1)

Publication Number Publication Date
WO1990001736A1 true WO1990001736A1 (en) 1990-02-22

Family

ID=9368990

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR1989/000392 WO1990001736A1 (en) 1988-08-01 1989-07-26 Method and device for the protection and universalization of a software

Country Status (4)

Country Link
EP (1) EP0395749A1 (en)
JP (1) JPH03500462A (en)
FR (1) FR2634917A1 (en)
WO (1) WO1990001736A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1471405A1 (en) * 2001-11-12 2004-10-27 Network Research Lab, Ltd. Method and device for protecting information against unauthorised use

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2828303B1 (en) * 2001-07-31 2010-09-03 Validy METHOD FOR PROTECTING SOFTWARE USING A PRINCIPLE OF "RENAMING" AGAINST ITS UNAUTHORIZED USE
FR2828302B1 (en) * 2001-07-31 2010-09-03 Validy METHOD FOR PROTECTING SOFTWARE USING A PRINCIPLE SAID "CONDITIONAL CONNECTION" AGAINST ITS UNAUTHORIZED USE
FR2828300B1 (en) * 2001-07-31 2010-09-03 Validy METHOD FOR PROTECTING SOFTWARE USING A PRINCIPLE OF "ELEMENTARY FUNCTIONS" AGAINST ITS UNAUTHORIZED USE
FR2828304B1 (en) * 2001-07-31 2010-09-03 Validy METHOD FOR PROTECTING SOFTWARE USING A PRINCIPLE OF "TIME DISSOCIATION" AGAINST ITS UNAUTHORIZED USE
FR2828301B1 (en) * 2001-07-31 2010-09-03 Validy METHOD FOR PROTECTING SOFTWARE USING A PRINCIPLE OF "DETECTION AND COERCITION" AGAINST ITS UNAUTHORIZED USE
FR2828305B1 (en) * 2001-07-31 2010-09-03 Validy METHOD FOR PROTECTING SOFTWARE USING A PRINCIPLE SAID "VARIABLE" AGAINST ITS UNAUTHORIZED USE
US7269740B2 (en) 2001-08-01 2007-09-11 Sas Validy Method to protect software against unwanted use with a “variable principle”
US7502940B2 (en) 2001-08-01 2009-03-10 Sas Validy Method to protect software against unwanted use with a “conditional branch” principle
US7434064B2 (en) 2001-08-01 2008-10-07 Sas Validy Method to protect software against unwanted use with a “elementary functions” principle
US7174466B2 (en) 2001-08-01 2007-02-06 Sas Validy Method to protect software against unwanted use with a “detection and coercion” principle
US7343494B2 (en) 2001-08-01 2008-03-11 Sas Validy Method to protect software against unwanted use with a “renaming” principle
US7272725B2 (en) 2002-06-25 2007-09-18 Sas Validy Method to protect software against unwanted use with a “temporal dissociation” principle
FR2870019B1 (en) * 2004-05-10 2006-09-01 Gemplus Sa ELECTRONIC PLATFORM HAVING SECURE ACCESS, AND SECURING METHOD

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0151049A2 (en) * 1984-02-02 1985-08-07 National Research Development Corporation Microcomputer with software protection
EP0175557A1 (en) * 1984-09-20 1986-03-26 Kenneth John Fifield Processing device and method
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
FR2606185A1 (en) * 1986-11-04 1988-05-06 Eurotechnique Sa Method and device for storing software delivered by a supplier to a user
EP0268142A2 (en) * 1986-11-05 1988-05-25 International Business Machines Corporation Tamper-resistant packaging for protection of information stored in electronic circuitry

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0151049A2 (en) * 1984-02-02 1985-08-07 National Research Development Corporation Microcomputer with software protection
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
EP0175557A1 (en) * 1984-09-20 1986-03-26 Kenneth John Fifield Processing device and method
FR2606185A1 (en) * 1986-11-04 1988-05-06 Eurotechnique Sa Method and device for storing software delivered by a supplier to a user
EP0268142A2 (en) * 1986-11-05 1988-05-25 International Business Machines Corporation Tamper-resistant packaging for protection of information stored in electronic circuitry

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A.S. Tanenbaum: "Operating Systems: Design and Implementation", 1987, Prentice-Hall International, Inc. (Englewood Cliffs, NJ, US), pages 118-119 *
Mini-Micro Conference Record, 8-11 novembre 1983, San Francisco (CA, US), B. Huston: "New ICs help prevent software theft", pages 1-11 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1471405A1 (en) * 2001-11-12 2004-10-27 Network Research Lab, Ltd. Method and device for protecting information against unauthorised use
EP1471405A4 (en) * 2001-11-12 2010-01-13 Gerite Associates Ltd Method and device for protecting information against unauthorised use

Also Published As

Publication number Publication date
JPH03500462A (en) 1991-01-31
FR2634917A1 (en) 1990-02-02
EP0395749A1 (en) 1990-11-07

Similar Documents

Publication Publication Date Title
WO1990001736A1 (en) Method and device for the protection and universalization of a software
EP0481881B1 (en) Integrated circuit with improved security access
FR2675602A1 (en) METHOD AND DEVICE FOR PROTECTING A COMPUTER SYSTEM.
EP0552077B1 (en) Mass memory card for microcomputer with facilities for execution of internal programs
EP0089876A1 (en) Method and device for the protection of software delivered by a supplyer to a user
FR2716021A1 (en) Chip card transaction method and system.
FR2747962A1 (en) Method of sending payment over computer networks particularly the internet
BE1001065A3 (en) Conversion method of control signals for computers.
FR2804226A1 (en) DEVICE AND METHOD FOR PROHIBITING PIRATE COPIES OF COMPUTER PROGRAMS
WO1999066387A1 (en) Method for verifying the execution of a software product
EP0919026A1 (en) Method for modifying code sequences and related device
EP2569735A2 (en) Payment card comprising an electronic game chip
FR2882835A1 (en) SECURE TRANSFER METHOD WITH SECURE MEDIA CARD
WO1997040474A1 (en) Security access control system enabling transfer of authorisation to make keys
EP3903210A1 (en) Secure, tracked communication network
EP0246119B1 (en) Optional system for protecting access to a computer
EP1016045B1 (en) Chip card equipped with a counter device
BE1005492A6 (en) Data processing system.
EP0557197A1 (en) Access time sharing system to a memory shared by a processor and other applications
CA2319773A1 (en) Simultaneous protection for several types of software of several software designers
WO2002035407A2 (en) Method and device for providing a product while allowing said product to develop
Gallenberger et al. Kodak Optical Disk and Microfilm Technologies Carve Niches in Specific Applications.
EP1256880A1 (en) Data processing system and method for distributing memory access
EP0569653A1 (en) Information storage device connectable to a computer
WO2005002818A2 (en) System for data collection and distribution

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE FR GB IT LU NL SE

WWE Wipo information: entry into national phase

Ref document number: 1989909200

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1989909200

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1989909200

Country of ref document: EP