<Desc/Clms Page number 1>
Clé électronique de sécurité destinée à activer et/ou désactiver les fonctions ou programmes spéciaux dans un ordinateur électronique dans le but d'empêcher la copie du programme de travail de l'ordinateur
Le programme de travail enregistré dans la mémoire EPROM d'un ordinateur électronique affecté, par exemple, à la commande d'une machine d'emballage de produits au moyen d'un film extensible ou d'une autre machine automatique peut actuellement être copié avec une extrême facilité Le but de l'invention est de remédier à cet inconvénient en liant audit ordinateur électronique par accouplement Interactif une unité électronique de sécurité, appelée ci-après pour simplifier "clé",
qUI a pour fonction d'activer ou de désactiver des fonctions ou programmes spéciaux dans cet ordinateur
La clé est constituée d'une mini-carte en CMS, logée dans un conteneur de petites dimensions, noyée dans une résine spéciale et dotée d'une unique puce qui peut être masquée ou programmée une seule fois La clé est un système fermé et autonome, qui contient dans son volume intérieur des mémoires PROM, RAM et EEPROM et elle peut être connectée à l'ordinateur principal par un port série, sans porter à l'extérieur du bus d'autres signaux, et ceci pour garantir une grande sécurité contre la copie
Pour pouvoir enregistrer la totalité du programme de l'ordinateur principal,
le programme de cet ordinateur peut être écrit de manière à n'activer la machine automatique à laquelle il est raccordé que si l'habilitation a été fournie et maintenue par des demandes continuelles à la clé
Au contraire, pour pouvoir enregistrer uniquement certaines fonctions principales du programme, une partie du programme de l'ordinateur fonctionne dans le mode normal et seules certaines fonctions
<Desc/Clms Page number 2>
sont activées par l'habilitation de la clé Dans ce cas, on a le grand avantage d'avoir la partie principale du programme dans une version unique et standardisée C'est le programme fût-même qui devra vérifier la présence de la clé et activer les fonctions particulières.
Comme cela sera mieux précisé plus loin, la clé pourra être personnalisée pendant la phase de programmation de l'ordinateur principal, par insertion de fonctions particulières qui empêchent de copier la partie principale du programme, et par insertion dans cette clé de blocs de programmes, de routines propres et de parties de routines qui, pendant la phase de travail de l'ordinateur principal, sont transférés dans la mémoire RAM de celui-ci pour être exécutés
Avec les mêmes parties qui composent normalement une clé, on peut construire plusieurs clés personnalisées, préparées pour enregistrer différentes fonctions, et plusieurs clés peuvent être connectées entre elles en cascade et être préparées pour travailler en synchronisation avec l'ordinateur principal
D'autres caractéristiques de l'invention, et les avantages qui en dérivent,
ressortiront clairement de la description qui va suivre d'un mode réalisation préféré de l'invention, qui est lustré uniquement à titre d'exemple non limitatif, sur les figures des quatre planches de dessins annexés sur lesquelles la figure 1 est un schéma-bloc qui montre la composition et le fonctionnement de la clé ;
la figure 2 illustre par un schéma-bloc la formation des programmes de travail tant dans la clé selon l'invention que dans l'ordinateur principal qui commande le fonctionnement de la machine automatique, les figures 3 et 4 illustrent par un schéma-bloc deux déroulements d'opérations de la clé selon l'invention
Sur la figure 1, on remarque que la clé 1 est normalement munie d'au moins une prise 2 pour la connexion par port série à l'ordinateur principal 4 de la machine automatique et à un support d'activation externe qui peut être représenté par un ordinateur comme on le dit plus loin ou par un autre moyen adapté En 3, on a indiqué une autre prise éventuelle destinée à permettre de connecter en cascade entre elles plusieurs clés qui travailleront en synchronisme avec l'ordinateur principal 4
<Desc/Clms Page number 3>
Comme on l'a déjà dit,
la clé comprend une unique puce 5, avec ses mémoires RAM 6-PROM 7-EEPROM 8 En 9, on a indiqué une unité logique qui dirige toutes les fonctions de la puce unique et qui a été spécialement étudiée pour permettre l'insertion de paramètres et/ou de routines de programmation aptes à personnaliser le caractère opérationnel de la clé
Le bloc 10 indique le programme de gestion série Par exemple, ce bloc a été préparé pour gérer les ports série communs RS232 et RS485, avec possibilité d'extension à d'autres types de communication Il peut avoir un débit en bauds programmable par matériel ou logiciel, aussi bien pendant la phase de production de la clé que pendant son utilisation,
avec possibilité de modifier la vitesse même à l'intérieur du message unique Les bits de panté peuvent aussi être programmés par matériel ou logiciel, aussi bien dans la phase de la construction que dans la phase du fonctionnement de la clé, et on a aussi prévu la possibilité d'introduire des erreurs de blocs selon des règles programmables, le tout dans le but de rendre extrêmement compliquées toutes les tentatives d'interprétation des messages
Le bloc 11 indique le gestionnaire des protocoles de communication Comme cela se produit pour la gestion physique de la communication, Il est également possible de programmer le type de protocole au niveau logique.
Certains types de protocoles de communication sont déjà prévus en standard dans le programme de la clé et d'autres peuvent être ajoutés sur Indications spécifiques du constructeur des machines automatiques Le bloc 11 est aussi préparé pour la reconnaissance de la clé à laquelle le message est adressé, en capturant uniquement les messages relatifs à cette clé
Le bloc 12 concerne la routine des entrées Il exécute la traduction des messages provenant de l'ordinateur 4 de la machine automatique et qui, au niveau du port série, transitent sous une forme cryptée selon des règles qui peuvent être modifiées dans le temps
Le bloc 13 exécute le traitement des entrées Il traite les messages provenant du bloc 12,
en distinguant les réponses à des ordres envoyés précédemment des nouveaux ordres provenant de l'ordinateur 4 Pour les premiers le traitement s'arrête à ce bloc tandis que les autres ordres sont
<Desc/Clms Page number 4>
transférés aux routines de niveau supérieur affectés aux diverses fonctions.
Le bloc 14 est l'analyseur des événements aléatoires Il sert à augmenter le nombre des combinaisons possibles, en laissant au hasard la vérification d'un événement particulier et d'une condition particulière.
Ces routines commandent lorsque les éléments spécifiés se vérifient
Le bloc 15 est le gestionnaire des événements aléatoires. Il est affecté aux règles de la causalité, règles qui peuvent changer dans le temps et dont la fonction peut être modifiée à l'aide de tables spécialement prévues
Le bloc 16 concerne les routines de traitement des ordres Il est affecté à la gestion des nouveaux ordres qu doivent être envoyés par la clé, en relation avec la logique et avec les règles qui sont actives à ce moment
Le bloc 17 est le superviseur du système servant à coder/décoder et crypter/décrypter C'est le gestionnaire de la logique de codage qui accepte les règles Imposées dans la phase de programmation de la clé (voir plus loin) et qui, ensuite,
exécute ces règles selon les conditions particulières de la logique Interne de fonctionnement de la clé ou de la logique de fonctionnement, qui sont imposées cas par cas par l'ordinateur 4
Le bloc 18 concerne la gestion des programmes du constructeur de la machine automatique Il n'intervent que dans le cas où, dans la phase de programmation de la clé (voir plus loin), on a mélangé dans le programme de la clé des parties de programmes ou de routines qui doivent,
en réalité être exécutées dans l'ordinateur 4 Le bloc 18 assure la gestion de ces parties de programmes ou de routines et établit les temps et les modes de transfert des procédures dans l'ordinateur 4
Le bloc 19 concerne le programme de traitement des sorties Il prépare les messages à envoyer à l'ordinateur 4
Le bloc 20 concerne la routine de codage des messages de sortie Il travaille symétriquement par rapport au bloc 12 de routine de décodage des entrées Il exécute la traduction des messages préparés par le bloc 19 de traitement des sorties dans le format dans lequel ils doivent être transmis sur la ligne série et selon les règles qui sont actives à ce
<Desc/Clms Page number 5>
moment
Les blocs 21 et 22 concernent les programmes d'activation et
EMI5.1
désactivation de la clé connectée à l'ordinateur 4.
Il faut la présence d'un support d'activation externe comme, par exemple, un ordinateur ou autre appareil connecté à la pnse 2, comme indiqué par 102, pour transmettre à la clé les données qui identifient l'ordinateur 4 de façon univoque
Sur la figure 2, on a représenté une possibilité pour un système de personnalisation de la clé, pour faire en sorte que sa logique de fonctionnement soit secrète A cet effet, la clé 1 et l'ordinateur 4 de la machine automatique sont connectés à un ordinateur personnel (PC) 25 par des dispostifs de progammations de PROM 23 et 27 respectifs.
Le dispositif de programmation se sert d'une bibliothèque de macrosystèmes 28 et de programmes, de procédures et de routines de base 30 Par les programmes spécialement prévus qui tournent sur le PC 25, le dispositif de programmation peut engendrer un logiciel comportant des systèmes et algorithmes, qui ne seront portés à la connaissance que des personnes autorisées Avec des programmes spécialement prévus, le même dispositif de programmation pourra éventuellement introduire dans le logiciel de la clé, des routines 31 propres et spécifiques à la machine commandée par l'ordinateur 4 Une fois défini l'ensemble du programme dans ses diverses parties, on engendrera, par le compilateur et link (lien) 29, les fichiers qui constituent le programme objet 24 et qui seront employés pour la programmation de la clé,
par le dispositif de programmation de PROM 23 Par une procédure analogue, en utilisant des routines écrites en langage "C" et qUI sont donc facilement transportables, le dispositif de programmation pourra créer le logiciel d'interface 26 à Insérer dans l'ordinateur 4 de la machine par le dispositif de programmation de PROM 27
Il reste entendu que dans une autre forme de réalisation de l'invention, la programmation de la clé pourra être exécutée avec une phase dite de masquage Les fichiers du programme sont fournis au constructeur de la puce unique 5 de la figure 1,
lequel procèdera à l'insertion du programme de l'utilisateur dans ce composant
Les figures 3 et 4 montrent de façon simplifiée un déroulement possible d'opérations d'interfaçage entre une clé 1 et l'ordinateur 4 d'une
<Desc/Clms Page number 6>
machine automatique où certaines fonctions doivent être protégées Dans ce cas, Il est prévu que l'ordinateur de la machine ait son code d'identification enregistré en mémoire et que la clé ait été préalablement conditionnée dans l'accouplement à cet ordinateur particulier.
Sur la figure 3, on a représenté en particulier le déroulement d'opérations d'activation de la fonction, tandis que, sur la figure 4, on a Illustré la procédure servant à maintenir cette fonction active
A la phase 32 de départ, font suite les phases 33 et 34 d'activation aussi bien du programme de l'ordinateur 4 que de la clé 1.
S'il y a une demande 35 de fonction spéciale de l'opérateur qui commande le fonctionnement de la machine automatique et qui intervent à cet effet sur l'ordinateur 4, ce dernier envoie à la clé une demande 37 de dialogue Si la clé n'est pas présente, la fonction demandée n'est pas activée et le programme de demande prend fin comme indiqué en 36 Si, au contraire, la clé est présente, la phase 38 prévoit que le programme de la clé envoie à l'ordinateur 4, selon une règle aléatoire établie, une série d'informations qui caractérisent les messages et les ordres qui sont échangés entre les parties 1 à 4 à partir de ce moment, et qu'il envoie une table qui définit comment coder/décoder et/ou crypte r/décrypte r les différents messages On charge en outre dans la mémoire RAM de l'ordinateur 4 des routines,
qui seront exécutées pendant la reconnaissance d'activation de la fonction. Entre les phases 37 et 38 précitées, Il y a une phase intermédiaire 39 de vérification de la présence de la clé et dans la négative, il y absence d'activation 40 de la fonction, avec interruption 41 du déroulement des opérations.
Après la phase 38, en suivant la logique définie plus haut, l'ordinateur 4 envoie en mode masqué son propre code d'identification et le code de la fonction à activer, comme indiqué en 42 Y fait suite une phase 43 de vérification de la validité des données envoyées par l'ordinateur 4 et, si la clé ne reconnaît pas la validité de ces données, aussi bien en tant que contenu qu'en tant que code, elle annule ce qui a été envoyé précédemment et la fonction n'est pas activée, comme indiqué par la succession des phases 44 et 45
Dans le cas où la demande a satisfait aux divers contrôles, la clé 1 envoie en mode masqué son accord 46 pour activer la fonction 47 et les
<Desc/Clms Page number 7>
routines nécessaires pour rendre la fonction opérationnelle,
après quoi le déroulement des opérations prend fin comme indiqué en 48
Pour éviter qu'une fois la fonction activée, la clé 1 ne soit déconnectée et utilisée pour activer la même fonction sur d'autres machines, il peut être prévu que l'ordinateur 4 continue à exiger l'accord pour le maintien en activité de la fonction
La figure 4 montre un déroulement des opérations de vérification continue de la présence de la clé.
Après exécution de l'activation 49 et après la phase de reconnaissance de la clé, l'ordinateur 4 commence à dialoguer selon la règle, les tables et les routines établies dans la phase d'inittalisation 50 et, dans la phase suivante 51, il envoie un ordre pour vérifier continuellement la présence de la clé Cette vénflcatlon s'effectue conformément aux règles, à la table de codage et aux routines actifs à ce moment, c'est-à-dire sur la base des dernières informations envoyées par la clé 1
Dans la phase 52, la clé interprète le message selon les mêmes règles et, dans la phase 53, SI l'analyseur des événements aléatoires établit, que la condition 54 nécessaire pour modifier la logique et les modalités de transmission est vérifiée,
elle réclame intervention 55 du gestionnaire des éléments aléatoires, qu ! établi selon un algorithme propre les nouvelles règles, la nouvelle table de transcodage et les nouvelles routines qui devront être activées dans l'ordinateur 4
Cette logique est envoyée à l'ordinateur 4 par le critère de transmission précédent et, à partir de ce moment, les nouvelles règles indiquées en 56 prennent la place des règles précédentes désignées par 50
Parallèlement, la clé envoie son accord 57 pour le maintien de la fonction spéciale par la dernière logique convenue entre les unités 1 et 4 L'ordinateur 4 reçoit l'accord 58, la fonction 59 reste active et le déroulement des opérations se termine comme indiqué par 60
Dans le cas où l'ordinateur 4 ne reçoit pas une réponse de la clé 1,
le caractère opérationnel 61 de la fonction spéciale est supprimé, la routine 62 chargée dans la mémoire RAM s'auto-détruit et le déroulement des opérations se termine comme Indiqué par 63
<Desc / Clms Page number 1>
Electronic security key intended to activate and / or deactivate special functions or programs in an electronic computer in order to prevent the copying of the work program from the computer
The work program stored in the EPROM memory of an electronic computer assigned, for example, to the control of a product packaging machine using stretch film or another automatic machine can currently be copied with extreme ease The object of the invention is to remedy this drawback by linking to said electronic computer by interactive coupling an electronic security unit, called hereinafter to simplify "key",
qUI has the function of activating or deactivating special functions or programs in this computer
The key consists of a CMS mini-card, housed in a small container, embedded in a special resin and equipped with a single chip which can be hidden or programmed only once The key is a closed and autonomous system , which contains in its internal volume PROM, RAM and EEPROM memories and it can be connected to the main computer by a serial port, without carrying outside the bus other signals, and this to guarantee a high security against the copy
To be able to save the entire program from the main computer,
the program of this computer can be written so as to activate the automatic machine to which it is connected only if the authorization has been provided and maintained by continual requests to the key
On the contrary, to be able to record only certain main program functions, part of the computer program works in normal mode and only certain functions
<Desc / Clms Page number 2>
are activated by enabling the key In this case, we have the great advantage of having the main part of the program in a single, standardized version. It is the program itself that will have to check the presence of the key and activate particular functions.
As will be better explained below, the key can be personalized during the programming phase of the main computer, by inserting particular functions which prevent copying the main part of the program, and by inserting program blocks into this key, own routines and parts of routines which, during the working phase of the main computer, are transferred to the RAM memory of this one to be executed
With the same parts that normally compose a key, one can build several personalized keys, prepared to record different functions, and several keys can be connected to each other in cascade and be prepared to work in synchronization with the main computer.
Other characteristics of the invention, and the advantages derived therefrom,
The following description will clearly emerge from a preferred embodiment of the invention, which is illustrated only by way of nonlimiting example, in the figures of the four sheets of annexed drawings in which FIG. 1 is a block diagram. which shows the composition and the functioning of the key;
FIG. 2 illustrates by a block diagram the formation of the work programs both in the key according to the invention and in the main computer which controls the operation of the automatic machine, FIGS. 3 and 4 illustrate by a block diagram two key operations according to the invention
In FIG. 1, it can be seen that the key 1 is normally provided with at least one socket 2 for connection by serial port to the main computer 4 of the automatic machine and to an external activation support which can be represented by a computer as we say later or by another suitable means In 3, we indicated another possible socket intended to allow to connect in cascade between them several keys which will work in synchronism with the main computer 4
<Desc / Clms Page number 3>
As we said before,
the key includes a single chip 5, with its RAM memories 6-PROM 7-EEPROM 8 In 9, a logic unit has been indicated which directs all the functions of the single chip and which has been specially studied to allow the insertion of parameters and / or programming routines capable of personalizing the operational nature of the key
Block 10 indicates the serial management program. For example, this block has been prepared to manage the common serial ports RS232 and RS485, with the possibility of extension to other types of communication. It can have a baud rate programmable by hardware or software, both during the production phase of the key and during its use,
with the possibility of modifying the speed even inside the single message. The bits of panté can also be programmed by hardware or software, as well in the phase of construction as in the phase of operation of the key, and one also envisaged the possibility of introducing block errors according to programmable rules, all with the aim of making all attempts to interpret messages extremely complicated
Block 11 indicates the manager of the communication protocols. As happens for the physical management of the communication, it is also possible to program the type of protocol at the logical level.
Certain types of communication protocols are already provided as standard in the key program and others can be added on Specific indications from the manufacturer of automatic machines. Block 11 is also prepared for recognition of the key to which the message is addressed. , capturing only messages related to this key
Block 12 concerns the input routine It performs the translation of messages coming from computer 4 of the automatic machine and which, at the level of the serial port, pass in an encrypted form according to rules which can be modified over time
Block 13 performs input processing. It processes messages from block 12,
by distinguishing responses to previously sent orders from new orders from the computer 4 For the first, processing stops at this block while the other orders are
<Desc / Clms Page number 4>
transferred to the higher level routines assigned to the various functions.
Block 14 is the analyzer of random events. It is used to increase the number of possible combinations, leaving the verification of a particular event and a particular condition to chance.
These routines control when the specified elements are verified
Block 15 is the manager of random events. It is assigned to the rules of causation, rules which can change over time and whose function can be modified using specially provided tables
Block 16 concerns the routines for processing orders. It is assigned to the management of new orders that must be sent by the key, in relation to the logic and the rules which are active at this time.
Block 17 is the supervisor of the system used to code / decode and encrypt / decrypt It is the manager of the coding logic which accepts the rules imposed in the programming phase of the key (see below) and which, then,
executes these rules according to the specific conditions of the internal operating logic of the key or the operating logic, which are imposed case by case by the computer 4
Block 18 concerns the management of the programs of the manufacturer of the automatic machine. It only intervenes in the case where, in the key programming phase (see below), parts of the key have been mixed in the key program. programs or routines that need to,
actually be executed in the computer 4 Block 18 ensures the management of these parts of programs or routines and establishes the times and the modes of transfer of the procedures in the computer 4
Block 19 concerns the output processing program It prepares the messages to be sent to the computer 4
Block 20 concerns the routine for coding output messages. It works symmetrically with respect to block 12 for routine for decoding inputs. It performs the translation of the messages prepared by block 19 for processing outputs in the format in which they are to be transmitted. on the serial line and according to the rules that are active at this
<Desc / Clms Page number 5>
moment
Blocks 21 and 22 concern the activation programs and
EMI5.1
deactivation of the key connected to the computer 4.
It is necessary to have the presence of an external activation medium such as, for example, a computer or other device connected to the pnse 2, as indicated by 102, to transmit to the key the data which uniquely identify the computer 4
In Figure 2, there is shown a possibility for a key personalization system, to ensure that its operating logic is secret For this purpose, the key 1 and the computer 4 of the automatic machine are connected to a personal computer (PC) 25 by programming devices from PROM 23 and 27 respectively.
The programming device uses a library of macrosystems 28 and of basic programs, procedures and routines 30 By the specially provided programs which run on the PC 25, the programming device can generate software comprising systems and algorithms , which will only be brought to the attention of authorized persons With specially planned programs, the same programming device could possibly introduce into the software of the key, routines 31 specific to the machine controlled by the computer 4 Once defined the whole program in its various parts, we will generate, by the compiler and link (link) 29, the files which constitute the program object 24 and which will be used for programming the key,
by the PROM programming device 23 By a similar procedure, using routines written in "C" language and which are therefore easily transportable, the programming device can create the interface software 26 to be inserted into the computer 4 of the machine by the PROM 27 programming device
It is understood that in another embodiment of the invention, the programming of the key can be executed with a so-called masking phase. The program files are supplied to the manufacturer of the single chip 5 in FIG. 1,
which will insert the user program into this component
Figures 3 and 4 show in a simplified manner a possible course of interfacing operations between a key 1 and the computer 4 of a
<Desc / Clms Page number 6>
automatic machine where certain functions must be protected In this case, provision is made for the machine's computer to have its identification code stored in memory and for the key to be pre-conditioned in connection with this particular computer.
In FIG. 3, the sequence of activation operations of the function has been shown in particular, while in FIG. 4, the procedure for maintaining this active function has been illustrated.
At the starting phase 32, phases 33 and 34 of activation follow both the program of the computer 4 and the key 1.
If there is a request 35 for a special function from the operator who controls the operation of the automatic machine and who intervene for this purpose on the computer 4, the latter sends the key a dialog request 37 If the key n is not present, the requested function is not activated and the request program ends as indicated in 36 If, on the contrary, the key is present, phase 38 provides that the key program sends to the computer 4 , according to an established random rule, a series of information which characterizes the messages and orders which are exchanged between parts 1 to 4 from this moment, and that it sends a table which defines how to encode / decode and / or encrypts r / decrypts the various messages Routines are also loaded into the computer's RAM memory 4
which will be executed during the recognition of activation of the function. Between the aforementioned phases 37 and 38, there is an intermediate phase 39 of verifying the presence of the key and if not, there is no activation 40 of the function, with interruption 41 of the progress of operations.
After phase 38, following the logic defined above, the computer 4 sends in masked mode its own identification code and the code of the function to be activated, as indicated in 42 There follows a phase 43 of checking the validity of the data sent by computer 4 and, if the key does not recognize the validity of this data, both as content and as code, it cancels what was sent previously and the function is not not activated, as indicated by the succession of phases 44 and 45
If the request has satisfied the various checks, the key 1 sends its agreement in masked mode 46 to activate the function 47 and the
<Desc / Clms Page number 7>
routines necessary to make the function operational,
after which the course of operations ends as indicated in 48
To avoid that once the function is activated, the key 1 is not disconnected and used to activate the same function on other machines, it can be provided that the computer 4 continues to require the agreement for the maintenance in activity of function
Figure 4 shows a sequence of operations for continuous verification of the presence of the key.
After execution of activation 49 and after the key recognition phase, the computer 4 begins to dialogue according to the rule, the tables and the routines established in the initialization phase 50 and, in the next phase 51, it sends an order to continuously check the presence of the key This venflcatlon is carried out in accordance with the rules, the coding table and the routines active at that time, that is to say on the basis of the latest information sent by the key 1
In phase 52, the key interprets the message according to the same rules and, in phase 53, IF the analyzer of random events establishes, that the condition 54 necessary to modify the logic and the modalities of transmission is verified,
it requires intervention 55 from the manager of random elements, qu! established according to an own algorithm the new rules, the new transcoding table and the new routines which will have to be activated in the computer 4
This logic is sent to computer 4 by the previous transmission criterion and, from this moment, the new rules indicated in 56 take the place of the previous rules designated by 50
At the same time, the key sends its agreement 57 for the maintenance of the special function by the last logic agreed between the units 1 and 4 The computer 4 receives the agreement 58, the function 59 remains active and the sequence of operations ends as indicated by 60
If computer 4 does not receive a response from key 1,
the operational character 61 of the special function is deleted, the routine 62 loaded in the RAM memory self-destructs and the flow of operations ends as indicated by 63