FR 2525790 A1 19831028 FR 8306646 A 19830422 i 2525790 La présente invention concerne un système de sécurité électronique qui est conçu de façon à contrôler et limiter l'accès à divers emplacements et biens tels que notamment des bâtiments et des programmes d'ordinateurs. On connaît de nombreux systèmes électroniques qui sont conçus de de façon à permettre Vcontrôler l'accès à divers emplacements et biens, tels que notamment des locaux publics ou privés, des programmes d'ordi- nateurs, des informations stockées dans des ordinateurs etc Pour contrôler et commander l'accès à ces emplacements et biens, il est nécessaire que les systèmes prévus à cet effet utilisent un code pré-établi. Par exemple, de nombreux systèmes nécessitent qu'une personne désirant accéder à l'emplacement ou aux biens considérés introduise un code, par exemple un mot de passe, dans un dispositif électronique, qui ensuite compare le code ainsi introduit à un code prédéterminé et si les deux codes correspondent déverrouille une serrure à commande électrique ou électronique, afin de permettre l'accès désiré Dans certains exemples de réalisation, le code est pré-établi dans le dispositif et toutes les personnes autorisées possè- dent ce code. Dans d'autres systèmes, un code peut être enregistré de façon magné- tique ou autre sur une carte qui est introduite dans un dispositif de lecture qui détermine si le code enregistré dans la carte est le même que le code pré- établi et qui, si la comparaison est favorable permet l'accès à l'installation ainsi protégée. Ces systèmes connus posent le problème suivant Si le code est connu par un grand nombre d'utilisateurs, il peut tomber accidentellement entre les mains de personnes non autorisées -Même si la connaissance du code doit se traduire par la possession d'un dispositif physique, par exemple une carte qui estnécessaire pour obtenir l'accès désiré, une telle carte peut être facilement reproduite à partir du moment o le code est connu Bien que ce code puisse être changé chaque fois que l'on suspecte qu'une personne non autorisée est susceptible de posséder le code, il est nécessaire de donner le nouveau code à toutes les personnes autorisées Par ailleurs, dans les cas o l'on utilise un code inamovible, on peut trouver des moyens permettant de connaître ce code. Le besoin se fait donc sentir de réaliser un système de sécurité 2 12525790 plus sophistiqué qui ne peut pas être facilement neutralisé. Selon la présente invention, un système de sécurité engendre une première variable qui est transmise à l'utilisateur Cet utilisateur possède un dispositif séparé dans lequel cette première variable est introduite, ce dispositif engendrant une seconde variable ayant une relation prédéterminée par rapport à la première variable Cette seconde variable est ensuite intro- duite par l'utilisateur dans le système de sécurité qui engendre lui-même la seconde variable Les secondes variables sont ensuite comparées et si elles correspondent, l'accès aux biens ou à l'emplacement protégés est accordé à l'utilisateur. Par conséquent, le système comprend des moyens pour engendrer un premier caractère afin d'engendrer une première variable, des moyens pour engendrer un second caractère, permettant d'engendrer une seconde variable, ayant une relation prédéterminée par rapport à la première variable, des moyens constituant une "clé", utilisés par l'opérateur afin d'engendrer une seconde variable correspondante, des moyens permettant à l'utilisateur d'intro- duire cette seconde variable dans le système, des moyens de comparaison de caractères, afin de comparer les deux secondes variables, c'est-à-dire la seconde variable engendrée par le générateur de second caractère et la seconde variable introduite dans le système par l'utilisateur et des moyens de verrouil- lage d'accès permettant l'accès à l'installation ou aux biens protégés, lorsque les deux variables correspondent. La "clé" utilisée par l'opérateur pour engendrer la seconde variable peut être réalisée sous différentes formes, par exemple sous la forme de tables ou de tableaux numériques, alphabétiques ou autres, ou sous la forme d'un ca L- culateur programmé. Grâce au système selon la présente invention, le code ou le "mot de passe", qui constitue la seconde variable,dépend de la première variable qui, de préférence, est engendrée de façon 'aléatoire De même, il n'est-pas néces- saire que l'utilisateur connaisse la relation qui existe entre la première et la seconde variables et de préférence, cette relation n'a pas à être connue par l'utilisateur Il est simplement nécessaire que l'utilisateur ait accès à la "clé" c'est-à-dire aux moyens commandés par l'utilisateur pour engendrer la seconde variable, Lorsque ces moyens sont réalisés sous la forme d'un calculateur pré-programmé, il peut s'avérer que la relation entre la première et la se- 3 2525790 conde variables soit très compliquée et pratiquement impossible à mettre en oeuvre de façon empirique Par conséquent, le dispositif pour engendrer la seconde variable peut être conçu de façon à être pratiquement impossible à reproduire, ce qui signifie que seule la personne possédant ce dispositif peut avoir accès à l'installation ou aux biens protégés. D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-après en référence aux dessins annexés, qui en illustrent divers exemples de réalisation, dépourvus de tout caractère limitatif Sur les dessins La Figure 1 est un schéma par blocs illustrant le fonctionnement du sys- tème selon l'invention La Figure 2 est un tableau devant être utilisé avec l'un des exemples de réalisation de la présente invention La Figure 3 est un dispositif mettant en oeuvre un tableau similaire à celui de la Figure 2 La Figure 4 est une vue en perspective d'un calculateur de poche qui peut être utilisé selon la présente invention, après avoir été préprogrammé La Figure 5 est un schéma illustrant le circuit d'un exemple de réalisa- tion d'un calculateur selon la Figure 4 La Figure 6 est une vue en perspective illustrant un second exemple de réalisation d'un calculateur pouvant être pré-programmé et utilisé selon l'in- vention, et La Figure 7 est une vue en perspective d'un ensemble de circuit intégré amovible pouvant être utilisé dans le calculateur illustré par la Figure 6. On se réfère en premier lieu à la Fig 1, qui représente sous la forme d'un schéma par blocs les composants de base du système de sécurité selon la présente invention Lorsque l'accès à l'installation ou aux biens protégés est désiré, un générateur de premier caractère engendre un caractère ou une variable à partir d'un premier jeu de variables Cette première variable peut être un chiffre unique ou une lettre unique de l'alphabet ou bien des chiffres numériques, multiples et/ou des symboles alphabétiques, ou bien tout autre symbole Par exemple, le premier caractère ou première variable peut être constitué par les lettres "EF" On préfère que le générateur de premier caractère soit constitué par un générateur de caractères aléatoires, afin que la première variable soit engendrée de façon aléatoire ou qu'au moins elle elle apparaisse à l'utilisateur comme étant engendrée de façon aléatoire. De cette façon, l'utilisateur ne connait pas (et il ne peut pas anticiper sur cette connaissance) la variable devant être engendrée par le générateur de premier caractère. Dès que la première variable a été engendrée, elle est utilisée comme signal de sortie du système, par exemple sous la forme d'un affichage optique Par conséquent, les lettres "EF" peuvent apparartre sur un affichage optique, par exemple un système d'affichage à cristal liquide ou un système d'affichage à diode émettrice de lumière, ou bien sur un tube à rayons ca- thodiques classique, utilisé dans les ordinateurs. Un générateur de second caractère engendre ensuite un second caractère ou une seconde variable qui présente une relation prédéterminée par rapport au premier caractère Cette relation peut prendre des formes infinies Par exemple, elle peut être réalisée sous la forme d'une rela- tion mathématique ou fonctionnelle, ou bien encore elle peut être déterminée de manière aléatoire, par un tableau préétabli, tel que, notamment, le ta- bleau illustré par la Figure 2. Afin de permettre à un utilisateur de déverrouiller le système, il est nécessaire que cet utilisateur prenne la première variable, qui lui est communiquée par affichage, et qu'il détermine la seconde variable appropriée en utilisant la "clé" Si la relation entre les variables est déterminée par un tableau, l'utilisateur autorisé, ayant accès au système, doit pouvoir disposer du tableau, par exemple celui représenté sur la Figure 2, sous la forme, notamment, d'un cylindre représenté sur la Figure 3 Si la première variable est affichée sous la forme des lettres "EF"', l'utilisateur recherche la lettre une rangée du E' dans V tableau de la Figure 2, et la lettre "FI' dans une colonne de ce tableau Il peut ainsi trouver la seconde variable, qui, dans ce cas, est la lettre "T". Ensuite, l'utilisateur introduit la lettre "T" dans le système, par exemple à l'aide d'un clavier, et le comparateur de caractères prévu dans le système compare cette seconde variable engendrée par le comparateur à une seconde variable, qui est engendrée de faaçon interne par le générateur de second caractère du système Si ces variables sont les mêmes, un sys- tème de verrouillage approprié est actionné de façon à déverrouiller et per- mettre l'accès à l'installation ou aux biens protégés Si les variables ne sont pas les, mêmes, l'accès est impossible On peut laisser à l'utilisateur une autre possibilité d'introduire une donnée, ou bien on peut encore prévoir la possibilité de déterminer une seconde variable, après création d'une nou- velle première variable Par exemple, on peut engendrer et afficher la pre- mière variable "CG" Dans ce cas, l'utilisateur doit introduire la lettre "D", afin d'obtenir l'accès au système En utilisant le tableau représenté par la Figure 2, le premier jeu de variables est constitué par toutes les combinai- sons de deux lettres pouvant être réalisées en utilisant les lettres A à H en tant que premières lettres des deux variables, et en utilisant les lettres A à K en tant que seconds caractères. Le tableau représenté par la Figure 2 ne constitue qu'un exemple. On peut en effet, en pratique, utiliser un tableau plus important; cependant, dans ce cas, la mise en oeuvre est plus difficile, 'mais le système présente l'avantage d'être particulièrement difficile à copier On comprend que le tableau comporte des rangées et des colonnes pour l'alphabet complet, plus des doubles lettres, des combinaisons de lettres minuscules et majuscules, ou bien encore des combinaisons de lettres, de chiffres et de nombres On peut ainsi réaliser un nombre très important de tableaux différents Ces ta- bleaux, plutôt que d'être imprimés sur une feuille plate d'un matériau quel- conque, qui pourrait être copiée facilement par voie mécanique, peuvent être réalisés sous la forme d'un cylindre, comme représenté sur la Figure 3 On sait qutun cylindre est très difficile à copier,dans une machine de reproduction. On peut, bien entendu, utiliser d'autres formes, notamment des formes qui présentent des surfaces courbes, particulièrement une sphère La-surface du tableau peut être recouverte d'un filtre ou d'un matériau coloré, ce qui rend sa reproduction par copie particulièrement difficile, ou bien encore le tableau lui-même peut être réalisé en couleur, dont la reproduction est difficile Afin d'augmenter la difficulté et le temps de reproduction manuelle d'un tel tableau, on peut utiliser un jeu de plusieurs tableaux La première variable pourrait alors être représentée par "CF 1 ", c'est-à-dire que la lettre "C" est choisie dans la rangée du tableau " 1 ", et que la lettre "F" est choisie dans une colonne de ce même tableau " 1 ". Au lieu d'utiliser des tableaux, on peut également employer un dispositif pré-programmé, tel que le calculateur de poche illustré par la Figure 4 Dans certains cas, lorsque le système affiche la première variable, 6 2525790 par exemple le nombre " 15 ", ce nombre est introduit dans le calculateur 20 à l'aide du clavier 21 Ce calculateur comporte un programme préétabli, et il affiche donc ensuite la seconde variable sur l'écran 22 La variable ainsi affi- chée est introduite ensuite par l'utilisateur dans le système de sécurité, o elle est comparée à la seconde variable, engendrée par le générateur de se- conds caractères du système En utilisant un calculateur préprogrammé, la relation entre la première et la seconde variables peut être suffisamment complexe pour rendre impossible toute détermination empirique de cette re- lation, c'est-à-dire une rupture du code De même, lors du calcul de la se- conde variable, la première variable peut être découpée de façon à être in- troduite dans le calculateur,sous la forme de deux ou trois entrées, dans le programme du calculateur P>ar exemple, la première variable du système peut être constituée par le nombre " 2135 " On commence par introduire, dans le calculateur, comme première entrée, le nombre " 21 " dans le programme préétabli du calculateur, et le nombre " 35 " est introduit dans ce programme en tant que seconde entrée Bien entendu, c'est le nombre total qui constitue la première variable du système. On peut évidemment utiliser n'importe quel type de calculateur pro- grammable, et, à titre d'exemple, on a représenté sur la Figure 5 un circuit relativement simple pouvant être utilisé dans le système selon l'invention, Ce circuit comporte un micro-calculateur à plaque unique ICI, par exemple du type "COPS 421 L", fabriqué par la firme "National Semiconductor", ce micro-calculateur étant connecté et programmé de façon à pouvoir traiter toutes les fonctions nécessaires Une batterie 23, de 9 volts, est reliée, par l'intermédiaire d'un commutateur 24, de façon à alimenter en énergie le micro- calculateur On peut, bien entendu, utiliser toute autre source d'alimentation fournissant une tension positive comprise entre 4 et 9 volts On prévoit une résistance Rl et un condensateur CI pour déterminer la fréquence de l'hor- loge interne du micro-calculateur ICI. Quatre conducteurs, 25, 26, 27 et 28 (Fig 5) sont reliés à quatre bornes de sortie programmables Al à A 4 du micro-calculateur ICI, et ces conducteurs sont disposés de façon à constituer une matrice avec quatre con- ducteurs 29, 30, 31 et 32, connectés à quatre bornes d'entrée programmables Bl à B 4, afin de former une matrice 4 x 4, comme représenté sur la Figure 5. Cette matrice comporte seize points sur lesquels un conducteur connecté à 7 22525790 une borne de sortie croise un conducteur relié à une borne d'entrée Cette matrice est positionnée physiquement sous le clavier 21 (Fig 4), de manière qu'une "clé" du clavier à seize "clés" soit située au-dessus de chacune des seize intersections de conducteurs Dans les conditions normales de fonction- nement, les conducteurs ne se touchent pas aux intersections, si bien qu'il n'existe pas de contact entre les conducteurs de sortie et d'entrée Lorsque l'utilisateur appuie sur une touche, il réalise le contact entre le conducteur d'entrée et le conducteur de sortie au point d'intersection situé sous cette touche Il s'agit là d'un système classique de disposition de clavier, utilisé dans de nombreux calculateurs de poche à commande manuelle. -Les quatre conducteurs de sortie 25 à 28 sont également reliés à quatre systèmes d'affichage à chiffre unique 33, 34, 35 et 36, qui constituent l'écran d'affichage 22 Ces systèmes d'affichage peuvent être constitués du dispositif "Litronix MAN-4 ". Sept bornes de sortie programmables supplémentaires du micro- calculateur ICI, désignées par les références CI à C 7, sont reliées en paral- lèle à chacun des dispositifs d'affichage 33-36 Le micro-calculateur ICI est programmé de manière à balayer les quatre lignes de sortie 25 à 28, de façon répétée, en utilisant séquentiellement un signal de faible niveau, par exemple de O volt, sur chacune des quatre lignes, les trois lignes restantes étant à un niveau élevé, par exemple à + 5 volts De cette façon, la matrice du clavier est alimentée en énergie, et elle commande séquentiellement chacun des sys- tèmes d'affichage Un affichage est commandé lorsque son entrée de commande passe de + 5 volts à O volt Le balayage est suffisamment rapide pour que chaque affichage apparaisse continu à l'oeil de l'utilisateur, bien que chaque affichage soit actionné de façon séquentielle. Lorsque une touche du clavier 21 est libérée, de manière que l'un des conducteurs de sortie 25 à 28 vienne au contact de l'un des conducteurs d'entrée 29 à 32, un signal d'entrée apparart sur la borne d'entrée appropriée Bl à B 4, en relation avec une sortie à l'une des bornes AI à A 4 Par consé- quent, si l'on relâche la touche " 2 " du clavier 21, on produit un signal de niveau élevé sur la ligne d'entrée 30, qui passe à un niveau faible lorsque la ligne de sortie 27 passe à un niveau faible Cette entrée représente le nombre " 2 " pour le calculateur De la même façon, le fait de relâcher d'autres touches du tableau de bord 21 se traduit par d'autres combinaisons 8 2525790 de signaux d'entrée et de sortie qui représentent les "clés" chiffrées res- pectives Etant donné que le balayage des conducteurs de sortie est relative- ment rapide, le calculateur ICI est programmé de façon à pouvoir reconnaître plusieurs entrées similaires en tant qu'entrées uniques, et de manière à réaliser plusieurs balayages d'entrées afin de séparer des entrées consécu- tive s. Le micro-calculateur I Ci est programmé de manière à accepter la première variable telle qu'elle est introduite par l'utilisateur à l'aide du cla- vier, et à engendrer une variable qui présente une relation prédéterminée par rapport à cette première variable Par exemple, la relation prédéterminée peut consister à doubler l'entrée, à y ajouter 50, et à faire tourner vers la gauche, c'est-à-dire à déplacer vers la gauche le chiffre de la réponse, tout en déplaçant de façon appropriée d'autres chiffres Par conséquent, si la première variable est constituée par le nombre " 15 ", la seconde variable sera ( 15 x 2) + 50 = 80, ou en quatre chiffres 0080 Après rotation vers la gauche, la seconde variable devient 0800 La complexité de la relation entre la première -et la seconde variable n'est limitée que par les possibilités du micro-calculateur particulier utilisé dans le système. La seconde variable ainsi déterminée par le micro-calculateur I Ci est affichée sur l'écran 22 Chacune des sept bornes de sortie Cl à C 7 com- mande un segment du système à sept segments permettant de réaliser l'affi- chage d'un chiffre Il en résulte que les signaux qui apparaissent sur les bornes Cl à C 7 provoquent chaque affichage en réalisant le premier chiffre de la seconde variable calculée, en même temps qu'un signal de faible niveau sur la ligne de sortie 25, ce qui fait que ce chiffre apparart sur le dispositif d'affichage 33, sous la forme du chiffre le plus à gauche de l'écran 22 Des signaux apparaissant sur les bornes CI à C 7 amènent les affichages à cons- tituer la seconde position de la variable calculée, et, simultanément, un si- gnal de faible niveau, sur le conducteur 26, provoque l'apparition de ce chiffre dans le second chiffre à partir de la gauche sur l'écran 22 De la même ma- nière, les affichages, en 35 et 36, qui forment les chiffres aux troi- sième et quatrième positions à partir de la gauche, sur l'écran 22, appa- raissent simultanément avec la présence de signaux de faible niveau sur les conducteurs 2,7 et 28, respectivement. Un circuit intégré, tel que celui présent dans le micro-calculateur 9 2525790 ICI, est pourvu, par son fabricant, d'une mémoire qui contient un programme particulier désiré Par conséquent, le programme tel que décrit ci- dessus est conçu par le fabricant du dispositif de sécurité de manière à pouvoir être utilisé dans un système particulier ou dans un jeu de systèmes, puis délivré ensuite au fabricant du système de sécurité, de façon à pouvoir être livré à l'utilisateur sous la forme d'une unité préprogrammée En variante, on peut utiliser un circuit intégré de micro-calculateurs, comportant une mé- moire programmable à champ, ce micro-calculateur étant par ailleurs si- milaire au micro-calculateur ICI On peut notamment utiliser un micro- calculateur "COP 402 ", "National Semiconductor" Ce calculateur, au lieu d'être programmé par le fabricant de circuits intégrés, peut être programmé par le fabricant du système de sécurité, et livré à l'utilisateur sous la forme d'une unité pré-programmée. On peut utiliser le même type de calculateur pré-programmé à commande manuelle, sans affichage ou clavier, en branchant directement le calculateur sur une console ou sur un socle associé au dispositif, de manière que l'utilisateur, en branchant le calculateur sur ledit socle, provoque la délivrance de la première variable du système au calculateur, ce dernier engendrant ensuite sa seconde variable pour la délivrer en retour, directement au système Bien que, dans certains cas, le système soit déverrouillé par l'utilisateur par la simple introduction de sa "clé", il est cependant néces- saire que l'utilisateur possède cette "clé", et cette dernière est encore consi- dérée comme un dispositif actionné par l'utilisateur, pour déterminer la seconde variable, l'utilisateur fournissant l'entrée du calculateur. Parmi les applications importantes du système de sécurité objet de la présente invention, on peut mentionner la protection des programmes de calculateurs à l'encontre d'une utilisation non autorisée. On sait qu'à l'heure actuelle, la plupart des calculateurs et ordina- teurs sont de type à usage universel, étant donné qu'ils sont programmés pour effectuer des travaux spécifiques, au lieu d'être conçus spécialement pour effectuer ces travaux Il en résulte que les programmes qui permettent à un tel ordinateur d'exécuter certains travaux peuvent présenter une valeur très importante Ces programmes étant contenus sur des bandes ou disques ma- gnétiques, ils peuvent être facilement reproduits, et, en outre, lorsqu'un programme est placé dans un ordinateur, ce dernier, dans certains cas, peut 2525790 transférer un programme directement à un autre ordinateur. Les systèmes de protection de programmes selon la technique antérieure ont pour objet de rendre difficile la copie d'un programme d'un disque ou d'une bande magnétiques sur un autre disque ou une autre bande à l'aide d'un brouillage des codes de programmes, dans certaines zones d'un disque ne pouvant être copié L'expérience montre cependant que ces systèmes de sécurité peuvent être facilement neutralisés, Le système objet de la pré- sente invention, au lieu d'eempêcher une copie des programmes, limite l'accès au programme uniquement à des utilisateurs autorisés Il en résulte que, bien qu'un programme puisse être copié à partir d'une bande ou d'un disque magné- tique, il ne peut pas être tiat 11 sé, en raison de la présence du système de sécu- rité objet de la présente invention. Pour permettre l'utilisation d'un système selon l'invention avec un programme d'ordinateur, lorsqu'un tel programme doit être utifisé dans le calculateur, le programme lui-mnême engendre, de façon aléatoire, la pre- mière variable, et il l'affiche Le type d'affichage peut varier en fonction de l'équipement de l'ordinateur utilisé Après affichage de la première variable, il est nécessaire que l'utilisateur détermine une seconde variable et l'intro- duise dans l'ordinateur Ce dernier est programmé pour engendrer la seconde ZO variable, et pour la comparer à la seconde variable introduite par l'utilisateur. Si ces deux secondes variables correspondent, le programme se déverrouille de lui-même, et l'ordinateur peut alors traiter ce programme Si les deux secondes variables ne correspondent pas, l'ordinateur peut engendrer une seconde première variable, ou bien il peut être programmé de façon à dé- charger ce programme de sa mémoire, ou prendre toute autre mesure ap- propriée En général, on réalise un système de sécurité satisfaisant en donnant à l'utilisateur trois possibilités d'engendrer une seconde variable appropriée avant que l'ordinateur ne décharge le programme de sa mémoire. Ceci permet de pallier toute erreur faite par l'utilisateur lors de la détermi nation de la seconde variable, même lorsque celui-ci possède la "clé" ap- propriée, tout en ne permettant pas des essais en nombre illimité ou dei- erreurs répétées. Au lieu de perfectionner le système lorsque le programme est initialement conçu de manière à être utilisé dans l'ordinateur, ce programme peut être déterminé de manière à rendre nécessaire une délivrance de la seconde variable à d'autres emplacements variés, et une excitation, à cer- tains moments seulement, sur une base aléatoire ou selon un programme préétabli Par exemple, ce programme peut faire fonctionner l'ordinateur de façon normale, puis, à certai ns points choisis au hasard lors de l'utilisa- tion, il peut engendrer la première variable et réclamer la seconde variable, avant de pouvoir poursuivre son fonctionnement. On a découvert qu'il était particulièrement efficace d'obtenir un fonctionnement du système de sécurité en certains points critiques d'un pro- gramme Par exemple, avec un programme de traitement de textes, il est généralement nécessaire de sauvegarder et de stocker tout nouveau document ou toute nouvelle édition dès création de ces derniers, Dans ces conditions, il peut être préférable de prévoir la création de la seconde variable et son introduction dans l'ordinateur, sous la forme d'un signal d'entrée, transmis par l'utilisateur, après création ou édition d'un document, et avant le stockage de ce document Ensuite, sauf si l'utilisateur peut introduire la variable cor- recte, le document ne peut pas être stocké, et le travail est perdu Au lieu de demander la variable chaque fois qu'un document doit être stocké, il peut être préférable d'entrer la seconde variable uniquement lorsque le document doit être stocké dans l'ordinateur La nécessité d'introduire la seconde variable peut être fonction de la longueur du document devant être stocké ou du nombre de fois o l'utilisateur emploie sa, "clé" pour créer ou éditer le document, de manière que le programme puisse fonctionner de façon normale pour des docu- ments courts, tout en exigeant que l'utilisateur apporte la preuve qu'il dispose d'une autorisation pour introduire la variable correcte dans l'ordinateur On comprend qu'il existe un nombre considérable de variantes permettant l'utilisation du système de sécurité selon l'invention, en combinaison avec un y programme d'ordinateur La programmation du système selon l'invention peut varier, d'un programme à l'autre, et également avec les équipements pour lesquels les programmes protégés ont été écrits Cependant, cette pro- grammation est évidente pour l'homme du métier, et, en conséquence, elle ne sera pas décrite ici La relation qui existe entre la première et la seconde variables peut être déterminée par le programmateur, et elle peut être incor- porée dans le programme lors de l'écriture de ce dernier, ou bien encore elle peut être déterminée par le fabricant de l'unité centrale et transmise au pro- grammateur, afin que ce dernier puisse programmer la même relation dans le programme de l'ordinateur. La complexité de la relation entre la première et la seconde va- riable et la façon selon laquelle l'utilisateur engendre la seconde variable varient en fonction de la valeur du programme devant être protégé Par con- séquent, pour un programme de jeux d'ordinateurs oh le programme lui-même peut coûter entre 150 et 300 francs environ, on peut prévoir an système peu coûteux, se présentant sous la forme du tableau décrit ci-dessus, qui est déli- vré à l'utilisateur autorisé en même temps que le programme Lorsqu'il est nécessaire de protéger un programme de traifement de données complexe, coûtant plusieurs milliers de francs, on fournit à l'utilisateur autorisé du programme un dispositif du type analogue au calculateur pré-programmé à commande manuelle décrit ci-dessus. Sur la Figure 6, on a représenté un exemple de réalisation préféré d'une unité de calculateur pouvant être utilisée dans des ordinateurs Dans ce cas, le calculateur,désigné dans son ensemble par la référence 40, au lieu d'être tenu à la main, est conçu de façon à pouvoir être monté sur le clavier 41 d'un ordinateur Il n'est pas nécessaire de prévoir une liaison électrique vers l'ordinateur, afin que l'unité 40 puisse être montée à tout emplacement sur le clavier, sans perturber le fonctionnement normal de l'ordinateur Cette unité 40 peut être fixée sur le clavier ou en toute autre zone du poste de travail de l'ordinateur, par des moyens divers, par exemple à l'aide d'un adhésif ou d'une bande adhésive De même, cette unité 40 peut être conservée sous la forme d'une unité portable, sans aucune fixation sur l'ordinateur. Une unité de calculateur 40 est conçue et réalisée de façon à pouvoir être utilisée par de nombreux programmes différents, qui peuvent être pro- tégés par le système objet de la présente invention et traités dans le même ordinateur L'unité 40 comporte un clavier,désigné dans son ensemble par la référence 42, et qui comporte jusqu'à six touches ou "clés", représentant les nombres 1 à 6 On peut, bien entendu, prévoir des "clés" supplémentaires cependant, l'expérience montre que six "clés" suffisent En plus du clavier 42, l'unité 40 comporte une touche "entrée" 43, un système d'affichage ou écran 44, et un logement 45, conçu de façon à recevoir et maintenir, en liaison électrique, une plaque de circuit intégré 46 Comme on l'a décrit précédemment, chaque programme protégé par ce système comporte sa propre formule individuelle de relation entre la première et la seconde va- 13 2525790 riables: Avec l'unité de calculateur représentée sur la Figure 6, plutôt que d'utiliser un calculateur séparé pour chaque programme, on utilise la même unité, mais le circuit intégré qui contient la formule préprogrammée, et quelquefois d'autres données, est changé lorsqu'on change le programme Par conséquent, au lieu de disposer d'un calculateur complet pour chaque pro- gramme protégé par le système, l'utilisateur dispose d'une plaque de circuit intégré individuelle 46 pour chaque programme Lorsqu'il est nécessaire d'utiliser un programme particulier dans l'ordinateur, on introduit la'plaque de circuit intégré associé au programme dans l'unité de calculateur universel 40. Le circuit de ce calculateur 40 peut être similaire au circuit du calculateur 20 illustré sur la Figure 5, étant entendu qu'il existe des modifi- cations évidentes résultant de la réduction du nombre de "clés", ces dernières étant au nombre de sept, dans le calculateur 40, et de seize dans le calcula- teur 20 L'unité de micro-ordinateur à circuit Intégré ICI de la Figure 5 cons- titue la plaque de circuit intégré amovible 46 des Figures 6 et 7 Il demeure bien entendu que le circuit représenté sur la Figure 5 ne constitue qu'un exemple de réalisation non limitatif, et que l'on peut réaliser diverses va- riantes, évidentes pour l'homme de l'art, en adaptant l'invention à diverses formes d'unités de calculateurs et de composants de circuits divers. Dans le système de base décrit ici, le programme de l'ordinateur, ou un autre système de verrouillage, engendre une première variable et de- mande à l'utilisateur d'engendrer et d'introduire une seconde variable, ce qui exige, de la part de ce dernier, l'introduction de la première variable dans son unité de calculateur chaque fois qu'une seconde variable est exigée Dans certains cas, il peut être préférable d'éliminer certaines de ces étapes, et, dans ce but, on peut prévoir une génération automatique des variables Avec une telle génération automatique, non seulement la seconde variable présente une relation prédéterminée par rapport à la première variable, mais égale- ment les premières et secondes variables successives présentent une certaine relation prédéterminée, afin que le calculateur et l'ordinateur puissent savoir tous deux ce que doivent être les variables successives. Par conséquent, lorsqu'une première variable est engendrée par le programme et introduite dans l'unité de calculateur par l'utilisateur, et qu'une seconde variable correspondante est engendrée par l'unité de calcula- teur et introduite dans l'ordinateur, le programme et le calculateur 14 2525790 sont synchronisés Ensuite, le programme et le calculateur peuvent tous deux engendrés automatiquement les premières variables successives et leurs secondes variables associées sans que l'utilisateur soit obligé d'introduire à l'aide de sa "clé" la première variable dans le calculateur Lors de l'utili- sation, après synchronisation, lorsque le programme exige l'introduction de l'entrée de la seconde variable, il suffit que l'utilisateur presse la touche d'entrée 43 sur le calculateur et la seconde variable correcte est alors affichée sur l'écran 44 L'utilisateur économise ainsi le temps qui serait nécessaire pour introduire à l'aide de sa "clé" la première variable dans l'unité de calcu- lateur L'utilisateur doit encore introduire la seconde variable affichée dans l'ordinateur Plutôt que d'engendrer automatiquement la première variable à l'aide d'une relation prédéterminée par rapport à la première variable pré- cédemment engendrée pour engendrer ensuite la seconde variable correspon- dante, la seconde variable peut présenter une relation prédéterminée de ma- nière à engendrer directement une seconde variable, à partir de la seconde variable précédente, en relâchant la pression sur la touche d'entrée 43 Le procédé utilisé pour engendrer les variables et pour commander le programme constitue un simple choix pour le programmateur. Si le programme de l'ordinateur et l'unité de calculateur se désyn- ZO chronisent de manière qu'une seconde variable défectueuse soit introduite dans l'ordinateur ou si pour un quelconque autre motif, l'utilisateur introduit une seconde variable erronée, le programme de l'ordinateur engendre alors une nouvelle première variable et l'utilisateur doit exécuter le cycle complet de génération de la seconde variable Le programme d'ordinateur peut, de façon aléatoire ou par générations automatiques, exiger de la part de l'utili- * sateur qu'il exécute tout le procédé d'introduction par "clé" de la première variable, afin d'être certain que cet utilisateur est bien autorisé et qu'il n'a pas obtenu par avance les séries de secondes variables successives Par ailleurs, le programme peut conserver la trace du nombre de fois qu'une se- conde variable défectueuse a été introduite dans le système, ce qui permet de détecter toute utilisation non autorisée du programme et ceci permet de pro- grammer une action quelconque, permettant un refus ou un ralentissement du fonctionnement, après l'introduction d'un nombre donné d'entrées défectueuses. Il est également possible de concevoir les moyens actionnés par l'opérateur pour engendrer la seconde variable (c'est-à-dire l'unité de calcu- 2525790 lateur), de façon que ceux-ci soient rendus intelligents en eux-mêmes, pour qu'ils puissent conserver la trace de diverses informations, telles que notamment le nombre de fois o ils ont été utilisés, la date, l'heure, etc En 1 fait, il est préférable que l'unité de calculateur 40 comporte également un système de circuit calendaire standard, de manière que lorsque l'écran d'affi- chage 44 ne montre pas une seconde variable, il puisse afficher la date et l'heure Avec un circuit intégré 46 ou un calculateur intelligent, le système peut être disposé de manière que le programme de l'ordinateur et le calcula- teur puissent effectivement communiquer entre eux, en plus d'assurer les fonctions de génération des première et seconde variables Pour obtenir cette communication, le programme de l'ordinateur peut engendrer une demande d'information qui peut être distinguée et comprise par l'unité de calculateur, tout en étant réalisée dans le format général d'une première variable et ne pouvant pas être distinguée d'une première variable par l'utilisateur L'unité de calculateur répond à l'ordinateur et elle délivre l'information requise dans un format qui est généralement le même que celui d'une seconde variable, tout en étant ici encore non distinguable d'une seconde variable aux yeux de l'utilisateur Par exemple, si le programme de l'ordinateur désire connaftre la date ou l'heure, il envoie une requête dans ce sens au calculateur, lequel délivre une information de date et d'heure en réponse à cette demande En dehors de ces demandes d'informations et de réponses à ces demandes, on peut également coder certaines informations sur les première et seconde va- riables Ainsi, les informations de date et d'heure peuvent être codées dans la seconde variable, ce qui permet au programme de l'ordinateur de déterminer si la seconde variable introduite dans ce programme a été engendrée ou si elle découle d'une liste de variables précédemment engendrées Si on le désire, le programme peut exiger que toutes les secondes variables valides introduites dans le système comportent des informations de date et d'heure courantes. Par ailleurs, en prévoyant un codage des informations de date et/ou d'heure dans les variables qui sont introduites dans l'ordinateur, il est possi- ble de réaliser deslimitations sur l'accès autorisé en fonction de date et d'heure. Par conséquent, si on désire qu'un programme ne puisse être utilisé qu'entre certains moments de la journée ou uniquement durant certains jours de la semaine ou de l'année, le programme peut être déterminé de manière à ne s 16 2525790 fonctionner que si l'information de date et/ou d'heure encodée dans la seconde variable indique une période admissible Si l'indication correspond à une pé- riode interdite, le programme engendre les opérations appropriées pour inter- dire l'accès au système Dans certains cas, l'information de date et d'heure qui est introduite en code dans la seconde variable ne doit pas transmettre à l'ordinateur la date ou l'heure actuelle, mais elle peut simplement constituer une modification de la seconde variable, de manière que si cette seconde va- riable est engendrée pendant une certaine période de temps, elle constitue une seconde variable valable, alors que si elle est engendrée pendant une autre période de temps, elle est suffisamment modifiée pour ne plus être reconnue par l'ordinateur comme une seconde variable. Lorsque le calculateur est conçu de façon à conserver la trace du nombre de fois ohi il a été utilisé pour engendrer une seconde variable, il peut être programmé de façon à cesser d'engendrer des secondes variables après un nombre prédéterminé d'utilisation Une telle caractéristique peut être avan- tageuse lorsqu'elle est utilisée en combinaison avec un logiciel ou en rapport avec la location d'un tel logiciel, lorsque l'utilisateur ne peut utiliser qu'un certain nombre de programmes pour lesquels il a payé un droit d'utilisation. Avec l'exemple de réalisation du calculateur représenté sur la Fig 6 et lorsque l'utilisateur possède plusieurs programmes qui sont proté- gés par le système, objet de l'invention, il est avantageux de disposer d'un type de circuit intégré pouvant absorber et conserver les programmes et les variables de programmes qui sont contenus sur plusieurs des circuits intégrés. individuels devant être prévus dans le cas de l'utilisation de plaques de circuit intégré individuel 46, avec chaque programme individuel Dans certains cas, une plaque de circuit intégré 46 peut être utilisée avec plusieurs programmes différents protégés Afin de programmer une unité de circuit intégré du type mentionné ci-dessus (dit "circuit maftre"), le calculateur de l'utilisateur doit être programmé pour faciliter l'absorption ainsi que le transfert de pro- grammes et de variables, à partir de plusieurs plaques de circuit intégré 46 dans un circuit intégré maître Si le calculateur de l'utilisateur ne possède pas cette aptitude, l'utilisateur peut alors posséder un tel circuit maitre qui est conçu par le vendeur du logiciel ou par toute autre personne possédant l'aptitude nécessaire à cet effet. e 17 2525790 O Le système objet de la présente invention, en dehors de la protec- tion des programmes d'ordinateurs, peut également être utilisé de façon efficace, dans un ordinateur, afin de contrôler l'accès à certaines données stockées dans cet ordinateur. Plutôt que de protéger des programmes d'ordinateurs ou des infor- mations stockées dans un ordinateur, lorsque le système est programmé dans l'ordinateur, le système peut être facilement réalisé, en utilisant soit un micro-ordinateur programmé de façon à fonctionner de la manière décrite ci- dessus, soit un système de circuit pour chacun des blocs de la Fig 1, de ma- nière à fonctionner en actionnant des systèmes de verrouillage à commande électrique, pour protéger des installations ou des biens à l'encontre des per- sonnes non autorisées Ainsi, la porte d'une pièce peut être pourvue d'une serrure à commande électrique et d'un système selon l'invention prévu à pro- ximité de cette serrure, ou à un endroit éloigné de celle-ci, o un bouton peut être pressé pour exciter le système et provoquer l'affichage de la première variable La personne faisant fonctionner le système détermine ensuite la se- conde variable et e lle l'introduit dans le système Si cette seconde variable est correcte, le système actionne la serrure, permettant ainsi l'ouverture de la porte et l'accès de la pièce protégée Les composants ainsi que les circuits nécessaires au fonctionnement d'un tel système sont évidents pour un technicien dans le domaine électronique et en conséquence, ils ne seront pas décrits ici. Il demeure bien entendu que la présente invention n'est pas limitée aux divers exemples de réalisation décrits et représentés ici, mais qu'elle en englobe toutes les variantes. REVENDICATIONS 1 Système de sécurité pour commander et contrôler l'accès à des emplacements divers et à des biens et propriétés déterminés, caractérisé en ce qu'il comprend: des moyens (A) pour engendrer un premier caractère qui constitue une première variable faisant partie d'un premier jeu de variables des moyens (B) pour engendrer un second caractère qui constitue une seconde variable, ayant une relation prédéterminée par rapport à ladite première va- riable; des moyens de sortie (DI pour transmettre ladite première variable à un utilisateur; des moyens d'entrée (F) permettant à l'utilisateur d'introduire une variable dans le système; des moyens de comparaison de caractères (C) pour comparer la seconde variable engendrée par les moyens (B) engendrant le second caractère, à la variable introduite par l'utilisateur; des moyens de verrouillage de l'accès (G) pour garantir l'accès aux emplacements, biens et propriétés déterminés, lorsque la comparaison entre les deux variables est convenable et, des moyens séparés, actionnés par l'utilisateur, pour intro- duire ladite première variable et pour engendrer ladite seconde variable, con- formément à ladite relation prédéterminée. 2 Système de sécurité selon la revendication 1, caractérisé en ce que les moyens actionnés par l'utilisateur sont constitués par un calculateur préprogrammé ( 20) qui comporte une entrée commandée par l'utilisateur et une sortie et dans lequel ladite relation prédéterminée entre la première va- riable et la seconde variable est programmée de manière que l'utilisateur in- troduise la première variable affichée par le système dans ledit calculateur et que ce calculateur détermine et délivre en sortie la seconde variable que l'uti- lisateur peut ensuite introduire dans les moyens d'entrée du système. 3 Système de sécurité selon la revendication 2, caractérisé en ce que les moyens de sortie délivrant ladite première variable sont constitués par un affichage optique (Z 2) de cette variable. 4 Système de sécurité selon la revendication 3, caractérisé en ce que les moyens d'entrée à la disposition de l'utilisateur pour l'introduction d'une variable, sont réalisés sous la forme d'un clavier de commande ( 21). Système de sécurité selon la revendication 2, caractérisé en ce que la première variable peut comprendre une instruction spéciale pour le calculateur, en ce que ledit calculateur ( 20) comprend des moyens pour exa- miner la première variable, afin de déterminer si une instruction spéciale est 19 2525790 présente et, en ce que le calculateur comprend des moyens pour exécuter des instructions spéciales. 6 Système de sécurité selon la revendication 5, caractérisé en que les moyens pour exécuter des instructions spéciales comprennent des moyens pour modifier la seconde variable. 7 Système de sécurité selon la revendication 6, caractérisé en ce que les moyens pour modifier la seconde variable agissent sur celle-ci, de façon à y inclure de l'information devant être transférée du calculateur au système. 8 Système de sécurité selon la revendication 7, caractérisé en ce que le calculateur comprend des moyens pour déterminer une information de date et en ce que les moyens pour modifier la seconde variable agissent sur cette dernière, de manière à y inclure une information de date. 9 Système de sécurité selon la revendication 7, caractérisé en ce que le calculateur comprend des moyens pour déterminer l'instant ou l'heure de l'information de jouret en ce que les secondes variables peuvent être modi- fiées pour y inclure l'instant ou l'heure de l'information de jour. Système de sécurité selon la revendication 9, caractérisé en ce que la seconde variable est modifiée pendant certaines périodes de temps et ne l'est pas pendant d'autres périodes. 11 Système de sécurité selon la revendication 7, caractérisé en ce que le calculateur comprend des moyens pour déterminer le nombre de fois que la seconde variable a été engendrée et en ce que les moyens pour modifier la seconde variable agissent sur cette dernière, de façon à y inclure une infor- mation d'utilisation. 12 Système de sécurité selon la revendication 2, caractérisé en que les premières variables successives ont entre elles une relation prédéter- minée, en ce que le calculateur comprend des moyens pour engendrer des pre- mières variables successives, conformément à ladite relation prédéterminée et en ce que les premières variables peuvent être introduites dans le calculateur en actionnant les moyens qui engendrent les premières variables successives. 13 Système de sécurité selon la revendication 2, caractérisé en ce qu'il existe une relation prédéterminée entre les secondes variables succes- sives et, en ce que ledit calculateur comprend des moyens pour engendrer 2525790 des secondes variables successives à partir de secondes variables précédem- ment engendrées, sans introduction correspondante de la première variable. 14 Système de sécurité selon la revendication 2, caractérisé en ce que le calculateur comprend un circuit intégré amovible ( 46) et, en ce que l'information pré-programmée dans le calculateur est contenue dans ledit cir- cuit intégré de manière que l'information pré-programmée puisse être facile- ment changée par l'utilisateur, en enlevant un circuit intégré préprogrammé et en y introduisant un autre circuit intégré. Système de sécurité selon la revendication 14, caractérisé en ce qu'on utilise un calculateur unique ( 40) pour protéger plusieurs biens ou propriétés et en ce qu'on prévoit un circuit intégré pré-programmé, séparé et amovible ( 46) pour chacun des biens, de manière que, lorsqu'on veut avoir accès à un bien particulier, le circuit intégré amovible associé soit introduit dans le calculateur ( 40), ce dernier étant alors utilisé en association avec ce bien. 16 Système de sécurité selon la revendication 14, caractérisé en ce qu'on utilise un calculateur unique pour protéger plusieurs biens ou pro- priétés et en ce qu'un circuit intégré unique est programmé, afin de contenir l'information pré-programmée séparée, associée à chacun des biens séparés, de manière qu'un circuit intégré unique puisse être introduit dans le calculateur, qui est utilisé ensuite en association avec ces biens ou propriétés multiples. 17 Système de sécurité selon la revendication 2, caractérisé en que les moyens d'entrée du calculateur sont connus de façon à être appariés aux moyens de sortie du système, pour que la première variable soit délivrée à l'utilisateur par transmission directe au calculateur et en ce que les moyens de sortie du calculateur sont connus de façon à s'apparier aux moyens d'entrée du système, p 5 our que la sortie variable du calculateur soit introduite dans le système par l'utilisateur, par transmission directe au système à partir du calculateur. 18 Système de sécurité selon la revendication 2, caractérisé en ce que le bien devant être protégé est constitué par un programme d'ordinateur et en ce que l'ordinateur luimême est programmé de façon à fournir toutes les fonctions du système, à l'exception des moyens séparés actionnés par l'utilisateur. 19 Système de sécurité selon la revendication 2, caractérisé en, 21 2525790 ce que le bien devant être protégé est constitué par un système de données d'ordinateurs et en ce que l'ordinateur lui-même est programmé de manière à fournir toutes les fonctions du système, à l'exception des moyens séparés actionnés par l'utilisateur.