FR 2596173 A1 19870925 FR 8603978 A 19860320 La présente invention concerne un système optionnel de protection de l'accès. à un ordinateur, le procédé de protection de l'accès et l'utilisation du système de protection dans un procédé d'accès à l'ordinateur. Dans la bureautique et l'informatique distribuées il peut être intéressant de pouvoir protéger l'accès à des microordinateurs, des stations, des terminaux, ou des ordinateurs. Il existe des dispositifs pour la sécurité de la transmission de signaux entre deux stations de traitement de l'information tel que celui décrit dans la demande de brevet française N0 92 108 déposée au nom de Cii Honeywell 15 Bull. mais ces dispositifs ne prennent pas en compte la protection du terminal ou de l'ordinateur lui-même. Par ailleurs, il existe également des moyens de verrouillage des ordinateurs à l'aide de clefs, par exemple qui, lorsque la clef n'est pas introduite dans la serrure, 20 bloque la transmission des informations provenant du clavier. Ce genre de dispositif, s'il a le mérite d'exister, présente l'inconvénient d'être facilement fraudable et d'offrir une sécurité illusoire. Il est également connu par la demande de brevet PCT W081/01063 de 25 protéger l'accès à un terminal au moyen d'une carte émettrice. Toutefois, cette protection est installée dès le départ mais le dispositif ne permet pas de déclencher la protection de façon optionnelle. Par ailleurs, le dispositif ne prévoit pas la vérification de 30 l'habilitation du porteur de la carte émettrice à travailler avec le terminal, ce qui permet une fraude facile. Un premier but de l'invention est de proposer à un système 35 de protection de l'accès à un ordinateur qui soit à la fois plus fiable et difficilement fraudable et qui - 2 permette de mettre en oeuvre de façon optionnelle la protection. Ce premier but est atteint par le fait que-le système 5 optionnel de protection de l'accès à un ordinateur au moyen d'une carte d'identification intelligente est caractérisé en ce que le travail avec au moins une ressource principale de l'ordinateur est possible seulement en présence de la carte lorsque l'option de 10 protection a été choisie. Selon une autre caractéristique la ressource principale est le clavier et l'entrée des données en provenance du clavier est bloquée en absence de la carte. 15 Selon une autre caratéristique la ressource principale-est un disque magnétique et la lecture du secteur directeur du disque est rendue impossible sans une clef de décryptage fournie par la carte. Selon une autre caractéristique le processeur de l'ordinateur est associé avec des premiers moyens de mémorisation contenant deux programmes de base du système entrée sortie (BIOS); Un premier programme (BIOS 1) comprenant un procédé d'initialisation et de mise en oeuvre de la protection suite au choix de l'option de protection; Un deuxième programme (BIOS 2) comprenant au moins un procédé d'accès aux ressources principales protégées et 30 faisant appel à l'utilisation d'une carte d'identification Un second moyen de mémorisation associé à une alimentation de sauvegarde et de protection, contenant une matrice de couples de valeurs rangés suivant une table d'index, 35 -3 couples de valeurs utilisés dans le procédé d'accès machine du (BIOS 2); et des moyens de sélectionner uniquement l'utilisation du deuxième programme (BIOS 2) après le choix de l'option protection. Un deuxième but de l'invention est l'utilisation du système avec un procédé d'accès aux ressources principales de la machine, qui soit économique, fiable et indépendant 10 des caractéristiques propres de la machine et des ressources associées. Ce but est atteint dans le cas d'un disque magnétique comme ressource principale par le fait que le procédé 15 d'accès du disque comporte notamment le décryptage du secteur directeur du disque encrypté, décryptage qui ne peut être mis en oeuvre qu'après fourniture par la carte de la clef de décryptage. Ce deuxième but est également atteint dans l'utilisation du clavier comme ressource principale par le fait que le circuit d'interface entre le bus du processeur de l'ordinateur et le clavier comporte des moyens, dans le cas du choix de l'option de protection, de bloquer la 25 transmission des données provenant du clavier lorsque un signal indiquant la présence de la carte n'est pas actif. Ce but est également atteint quelque soit la ressource machine principale par le fait qu'on utilise un procédé 30 d'accès machine comportant les étapes suivantes: Contrôle de la présence de la carte; Tirage aléatoire de deux nombres (dl, dm) parmi quatre possibles par le deuxième programme (BIOS 2); Détermination des adresses de couples de valeurs (Ki,Ei) à - 4 partir d'une table d'index adressé par les deux nombres à étape précédente; Envoi d'une première valeur (Ei) du couple (Ki,Ei) de la carte; Calcul par la carte d'une valeur (K'i) associée à la première valeur envoyée par l'ordinateur et telle que (K'i) = f (Ei, Nj, S); Envoi de (K'i) vers l'ordinateur pour comparaison avec la deuxième valeur (Ki) du couple; Arrêt du deuxième programme (BIOS 2), sans achèvement de la procédure de test et blocage de la machine en cas de non concordance de (Ki et K'i). Selon une autre caractéristique le procédé d'accès du 15 disque est exécuté que dans le cas o les valeurs (Ki et K'i) concordent. Un troisième but de l'invention est de proposer un procédé d'initialisation et de mise en oeuvre de la protection. Ce 20 troisième but est atteint par le fait que le procédé comporte les étapes suivantes Vérification de la présence des ressources matérielles (carte d'identité, carte électronique avec son connecteur et carte d'interface); Entrée du nombre d'identification (Nj) par l'opérateur; Tirage aléatoire effectué par le premier programme (BIOS 1) permettant de fixer la première valeur. (Ei)z Envoi de (Ei) et (Nj) à la carte; Mémorisation de (Ei) dans le second moyen de mémorisation 30 (M) suivant les adresses définies par une table d'index contenue dans (M) et un tirage aléatoire de deux nombres (di, dj) parmi quatre effectué par (BIOS 1); Calcul de (Ki) = f (Ei, Nj, S) rangement de (Ki) dans la mémoire (M) à l'adresse associée à la valeur (Ei); 35 Réitération des opérations de tirage de (Ei) de calcul de (Ki) et de rangement dans (M) pendant un certain nombre de fois; Mise en oeuvre du procédé d'encryptage du disque; Confirmation du choix de l'option; Verrouillage des moyens de sélection sur l'utilisation exclusive du deuxième programme (BIOS 2). Selon une autre caractéristique le procédé d'encryptage du 10 disque comporte les étapes suivantes: Calcul par la carte de (Ci) = f (C, Nj, S); Envoi de (Ci) au premier programme (BIOS 1); Calcul par le premier programme (BIOS 1) et valeur ( ) encryptée du secteur directeur (s) par la formule s = g 15 (CI, S); rangement de ces valeurs dans le secteur directeur du disque. D'autres caractéristiques et avantages de la présente 20 invention apparaîtront plus clairement à la lecture de la description ci-après faite en référence aux dessins annexes dans lesquels: La figure 1 représente une vue schématique d'ensemble du 25 système de protection selon l'invention; La figure 2 représente une vue détaillée des modifications apportées à la carte processeur du système de protection; La figure 3 représente l'organigramme du procédé d'initialisation de mise en oeuvre de la protection; La figure 4 représente l'organigramme du procédé d'accès machine et procédé d'accès disque. La carte processeur (I) d'un ordinateur ou microordinateur ou terminal ou station de bureautique se trouve comme - 6 représentée dans la figure 1 reliée par des connecteurs appropriés non représentés à une carte d'interface (I). Cette carte d'interface (I) est elle-même reliée par des connecteurs appropriés non représentés à une carte 5 électronique (EL) comportant une électronique de mise à niveau des signaux délivrés par une carte d'identité intelligente (CB) à un connecteur (CO) porté par la carte électronique (EL). Cette carte électronique (EL) comporte également un dispositif de détection de la présence d'une 10 carte d'identité, dispositif constitué d'une diode photoémettrice (D) alimentée par une souce de tension (+V). Un photo-transistor (T) relié par son émetteur à la masse et dont le collecteur est relié à une source de tension- (+V) au travers d'une résistance (R), délivre sur son 15 collecteur le signal indiquant la présence ou absence de la carte. La diode (D) et le phototransistor (T).sont disposés par rapport au connecteur (CO) de façon à ce que le trajet lumineux du rayon provenant de la diode (D) en direction du photo-transistor (T) soit interrompu par la 20 carte losrque celle-ci est introduite dans le connecteur (C0O). Le connecteur (CO) et l'électronique de la carte (EL) délivrent par la liaison série (6) et la liaison série (4) l'information en série fournie par la carte (CB) à la liaison d'entrée série 70 d'un circuit d'interface 25 série parallèle 7 relié par ses entrées et sorties parallèles (73) aux 8 bits de données de poids faible (DO, D7) du bus de données de la carte processeur. Le circuit d'interface série parallèle 7 est également relié de façon connue par l'homme de métier par les lignes (71) aux 30 lignes du bus de contrôle du processeur (1) nécessaire à son fonctionnement et par les lignes (72) aux lignes d'adresses du bus d'adresses (PA) du processeur (1), nécessaires à la sélection des registres internes du circuit (7) et à la programmation de ce circuit (7). Le 35 -7 clavier (10) est relié par une liaison série bidirectionnelle (100) à un circuit (9) de verrouillage du clavier. Ce circuit (9) est constitué d'une porte ET (91) à deux entrées dont une première entrée reçoit la liaison série bi-directionnelle (100) provenant du clavier et la deuxième entrée est reliée par l'intermédiaire d'un connecteur non représenté à la ligne (3) de la carte (EL) fournissant le signal d'indication de présence de la carte d'identité (CB). Par conséquent lorsque la carte (CB) est 10 présente dans le connecteur (C0) le signal délivré par la ligne 3 est actif (au niveau logique 1) et la sortie de la porte ET (91) délivre un signal reproduisant le signal transmis par la liaison série (100). Ce signal est envoyé sur l'entrée série (80) d'un port (8) d'entrée série 15 parallèle dont les sorties parallèles (81) sont reliées aux huit lignes de poids faible (DO à D7) du bus de données de la carte processeur (P). Une deuxième porte ET (90) à deux entrées, du circuit de verrou clavier (9), reçoit sur sa première entrée le signal fourni par ia 20 liaison série bi-directionnelle (100) et sur sa deuxième entrée le signal délivré par la sortie d'un inverseur (21) dont l'entrée est branchée à la ligne 20 qui transmet le signal de sortie d'un circuit logique de sélection des différents programmes de base du système d'entrée sortie 25 (BIOS 1), (BIOS 2). Cette ligne 20 est au niveau logique "1" lorsque l'on souhaite sélectionner un deuxième programme de base du système d'entrée sortie (BIOS 2). Dans ce cas la sortie de l'inverseur (21) est au niveau logique "0" et la sortie de la porte ET (90) qui est 30 reliée à l'entrée série du port (8) ne transmet pas les signaux provenant du clavier (10). Dans le cas o, le signal transmis par la ligne 20 est niveau "0", ce signal indiquant que l'on a.pas sélectionné le deuxième programme (BIOS 2), la sortie de l'inverseur (21) est au niveau "1" 35 -- 8-et la sortie de la porte ET (90) reproduira le signal transmis par la liaison (100) provenant du clavier (10). Le processeur (1) de la carte proceseur (P), dans l'exemple de réalisation représenté, est constitué par un 5 processeur commercialisé par la firme INTEL sous la référence 80 286 et le boitier associé 82 288. Il est bien évident que ce processeur pourait être remplacé par tout autre proceseur équivalent sans changer l'esprit de l'invention. Sur la carte processeur on n'a pas figuré les 10 éléments nécessaires à la constitution d'un micro ordinateur tel que l'interface de liaison avec une unité de lecture d'un disque magnétique ou de disquettes souples, les liaisons avec les mémoires vives de stockage des programmes d'application, etc... Seuls les éléments 15 indispensables à la compréhension de l'invention et impliquant des modifications par rapport à une carte processeur classique ont été représentés et seront décrits. Des premiers moyens de mémorisation constitués par une mémoire constituée de deux boitiers (22) (23) de 20 capacité suffisante pour contenir deux programmes de base du système d'entrée sortie est reliée d'une part au bus d'adresse (PA) du processeur (1), d'autre part au bus de données (BD0 à BD15) de la carte processeur. Le premier programme (BIOS 1) comporte un programme de base du 25 système d'entrée sortie standard auquel on a ajouté les instructions permettant de mettre en oeuvre le procédé de mise en oeuvre et d'initialisation de la protection, dont l'organigramme est représenté sur la figure 3. Le deuxième programme (BIOS 2) comporte en plus du programme standard 30 d'entrée sortie,- les instructions permettant de mettre en oeuvre le procédé d'accès machine (P.A.M.) et le procédé d'accès disque (P.A.D.). Ces programmes sont exécutés comme pour un programme (BIOS) standard par le processeur 1. La sélection entre le premier programme (BIOS 1) et le 35 2596 173 -9 deuxième programme (BIOS 2) nécessitant obligatoirement l'utilisation de la carte intelligente (CB) est faite à l'aide de la ligne 20 qui est envoyée sur l'entrée (A13) des boitiers de mémoire morte ROM (22, 23). Le signal de 5 sélection arrivant sur l'entrée (A13) des boitiers de mémoire morte (22, 23) valide la moitié de la capacité des premiers moyens de mémorisation moitié dans laquelle réside le programme (BIOS 2). Le système de protection comporte également un second moyen de mémorisation 10 confidentiel (M) qui est relié au bus d'adresses (PA) d'une part, et d'autre part aux 8 bits de poids faible (DO D7) du bus de données (BD0 BD15). cette mémoire vive (M) possède sa propre alimentation (29) de façon à éviter la perte des informations, suite à une panne de courant et à 15 éviter également la lecture des informations contenues par cette mémoire. En effet dans le cas d'une tentavive de lecture il sera nécessaire de débrancher la mémoire de la carte et par conséquent de rompre les liaisons (290) avec son alimentation (29). Ceci entrainera automatiquement la 20 perte de l'information contenue dans cette mémoire vive (M). Cette mémoire (M) contient un ensemble de couples de valeurs (Ki, Ei) utilisés par le deuxième programme (BIOS 2). Ces couples de valeurs sont rangés dans cette mémoire à des adresses définies par une table d'index également 25 contenue par cette mémoire (M). La source d'alimentation de cette mémoire (29) peut être contituée par une batterie ou un condensateur de très forte capacité. A titre d'ordre de grandeur la capacité de cette mémoire peut être de 128 Octets. La figure 2 montre en détail la sélection entre les différents programmes résidant dans premiers moyens de mémorisation constitués par les boitiers de mémoire morte (22, 23) et les circuits qui permettent d'accéder à la 35 - 10 mémoire (M) que par une instruction provenant des programmes (BIOS). Les boitiers de mémoire morte (22, 23) sont adressés sur leurs entrées (A0 A12) par les lignes d'adresses (PAl à PAl3) du bus d'adresses du processeur. 5 La sélection entre le boitier (22) et le boitier (23) est effectuée par la ligne d'adresse (PA0) laquelle est envoyée sur une deuxième entrée de sélection (CS2) du boitier (22). Cette même ligne d'adresses (PA0) est également envoyée par l'intermédiaire de l'inverseur (230) 10 àA la deuxième entrée (CS2) du boitier (23). La première entrée de sélection (CS1) du boitier (23) reçoit la sortie d'un circuit (34) de décodage lequel reçoit sur ses entrées les lignes d'adresses (PAl4 à PAl9) du bus d'adresses du processeur. Ce boitier (24) par décodage de 15 ses lignes d'adresses (PAl4 à PAl9) active son signal de sortie lorsque le décodage indique un adressage des programmes (BIOS). La sortie du boitier (24) est également reliée à la première entrée de sélection (CS1) de la mémoire morte (22). Le boitier (23) sert à délivrer les 20 bits de données de poids faible (DO à D7) tandis que le boitier (22) sert à délivrer les bits de données de poids élévé (D8 à D15) au bus de données de la carte processeur. Par conséquent la valeur logique du signal (-PA0) permettra de déterminer l'octet de poids faible ou l'octet de poids 25 élevé. L'entrée d'adresse (A13) de poids le plus élevé des boitiers de mémoire morte (22, 23) est reliée à la ligne (20) qui délivre le signal de sélection entre le premier programme (BIOS 1) et le deuxième programme (BIOS 2). Par conséquent suivant le niveau logique de cette ligne (20), 30 on sélectionne une des deux pages de la mémoire consituée par les deux boitiers (22, 23) dont la sélection est commandée par (A13) et dans lesquelles on range les deux programmes. Lorsque {A13) est au niveau "1" on sélectionne la page contenant le programme (BIOS 2), cette page de la 35 - 11 zone mémoire correspondant à l'occupation d'une partie du boitier (22) et une partie du boitier (23), par le programme (BIOS 2). Cette ligne (20) est reliée par une résistance (R2) à une source de tension de + 5 Volts et 5 par un fusible (F) à la masse. Une résistance (Ri) relie le point commun à la résistance (R2) et au fusible (F) à l'émetteur d'un transistor (T2) dont le collecteur est relié à une source de tension de + 5 volts. La base du transistor est reliée d'une part à la masse par un 10 condensateur (C) d'autre part par une résistance (R3) à la sortie (Q) d'une bascule (28) de type (D). Cette bascule (28) reçoit sur son entrée d'horloge le signal (ALE) provenant du processeur (1) et sur son entrée (D) un signal provenant de la sortie d'un circuit décodeur (25). 15 L'entrée de remise à "0" de cette bascule (28) est reliée au signal (RESET/) du processeur (A). Le décodeur (25) reçoit sur ses entrées les lignes d'adresses (PA0 à PAl5) du bus d'adresse et le signal (IOW) provenant 20 du processeur (1). Par conséquent lorsque le programme d'initialisation du verrouillage contenu, comme on le verra plus tard, dans le premier programme (BIOS 1) envoie une instruction d'écriture d'entrée sortie au processeur (1) avec une certaine combinaison des lignes d'adresse 25 (PA0 à PA15), la sortie du décodeur (25) devient active. Par suite la sortie (Q) de la bascule (28) sera activée dès l'apparition du signal (ALE) de validation des adresses. L'activation de la sortie (Q) va provoquer la mise en conduction du transistor (T2) et le claquage du 30 fusible (F). Ce fusible (F) étant grillé la ligne (20) sera positionnée au niveau logique "1" et le programme (BIOS 2) sera sélectionné dans les boitiers de mémoire (22, 23). Tant que la sortie (Q) n'est pas validée le transistor (T2) ne conduit pas et le fusible (F) 35 - 12 positionne la ligne (20) au niveau logique "0". Ce qui sélectionne dans les boitiers de mémoire morte (22, 23) le premier programme (BIOS 1). Lors d'une réinitialisation du système le signal (RESET) maintient la bascule à "0" ce 5 qui évite de provoquer de façon inadvertante la mise à "1" de la sortie (Q) de la bascule (28) et la fusion involontaire du fusible (F). Les résistances (R3) et le condensateur (C) jouent le rôle d'un filtre passe-bas qui empêche la transmission de signaux de transition qui 10 pourrait se produire lors d'une réinitilisation du système. Ce n'est donc que, lorsque le signal (Q) sera corectement établi que le grillage du fusible (F) aura lieu. La sélection de la mémoire (M) pour le chargement de celle-ci par le premier programme (BIOS 1) ou pour l'utilisation de ses informations par le deuxième progamme (BIOS 2) est réalisée de la façon décrite ci-après. La première entrée de sélection (S1) de la mémoire (M) reçoit 20 la ligne d'adresse (PAO) du bus d'adresse du processeur (1). Les entrées (MAO à MA8) de la mémoire (M) reçoit 8 des lignes d'adresses (PAO à PAl2) du bus d'adresse du processeur (1). Cette sélection sur les lignes d'adresses (PAO à PA12) permet ainsi d'effectuer un codage des 25 adresses de la mémoire (M). L'entrée (W) de la mémoire (M) reçoit le signal de la sortie (W) du processeur (1) et ce signal (W) indique une écriture en mémoire. La deuxième entrée de sélection (CS2) de la mémoire (M) reçoit la sortie (Q) d'une bascule (26) de type (D) dont l'entrée de 30 mise à "0" reçoit le signal (RESET/) du processeur (1). Cette bascule (26) reçoit sur son entrée (D) la sortie du circuit (24) de décodage indiquant l'adressage d'une instruction du BIOS. Cette bascule (26) reçoit sur son entrée d'horloge la sortie d'une porte ET (27) à cinq 35 - 13 entrées, dont les entrées sont reliées respectivement aux sorties (Si, So/, COD-INTA/, M/IO/ et ALE). L'ensemble de ces sorties *au niveau "1" indique que le processeur effectue une lecture d'un code instruction. Il est bien 5 évident que dans le cas d'un autre processeur on pourra facilement remplacer ces signaux par les signaux équivalents, qui indiquent la lecture d'un code d'instruction par le processeur. Donc à chaque fois qu'une instruction réside dans la mémoire morte (BIOS) l'entrée 10 (D) de la bascule (26) est au niveau logique "1" et lorsque le processeur (1) effectue la lecture du code instruction, la sortie de la porte ET passe également du niveau logique "0" au niveau logique "1". Par conséquent la sortie (Q) de la bascule (26) passe au niveau logique 15 "1", et sélectionne la mémoire (M). On peut donc accéder à la mémoire (M) uniquement lorsqu'on lit une instruction rangée dans la mémoire morte contenant les programmes (BIOS) et lorsque l'adresse de l'instruction correspond aux adresses de la méoire (M). De façon à verrouiller 20 l'accès à la mémoire (M) les programmes rangés dans les mémoires mortes (22,23) n'auront pas de structure de sous programme c'est-à-dire ne comporteront pas la présence d'instruction "RETURN" et n'utiliseront pas la mémoire vive (non représentée) du processeur comme élément de 25 stockage d'informations. Cette mémoire (M) contient un ensemble de couples de valeurs (Ei, Kj) rangés à des adresses déterminées par une table d'index. Cette table d'index est elle-même rangée dans la mémoire (M) à des adresses déterminées par les couples (dl, dm) des numéros 30 de ligne. Le procédé de mise en oeuvre et d'initialisation du verrouillage va être maintenant décrit en liaison avec la figure 3. - 14 Dans la partie auto-test du programme (BIOS) standard on trouve une étape (31) dans laquelle on demande à l'opérateur s'il veut déclencher l'option de verrouillage ou non. Dans le cas o l'opérateur ne souhaite pas 5 déclencher l'option le programme se poursuit à l'étape (32) qui est la fin de l'auto-test normal d'un programme (BIOS) standard. Si l'opérateur sélectionne l'option de verrouillage le programme se poursuit par l'étape (33) constituée par un test de vérification de la présence des 10 ressources matérielles nécessaires au verrouillage c'est-à-dire par la présence de la carte interface, de la carte électronique, du connecteur (CO) et la présence d'une carte intelligente (CB) pourvue d'un processeur et d'une mémoire. Si le test est négatif le programme se 15 poursuit par un message et la procédure de verrouillage est abandonnée comme représentée par l'étape (34). de l'organigramme de la figure 3. Dans le cas de la présence des ressources matérielles le programme se poursuit par les étapes conversationnelles suivantes. L'étape (34) 20 demande à l'opérateur un code (Nj) spécifique à la machine ou à l'utilisateur puis le premier programme (BIOS 1) procéde à un tirage aléatoire permettant de déterminer un nombre (Ei) de 16 bits. Ce tirage aléatoire est représenté par l'étape (36). A l'étape (37) le nombre (Ei) est 25 mémorisé dans un registre du processeur (1) et envoyé à la carte (CB) pour l'exécution de l'étape (38). L'étape (38) consiste en un calcul effectué par la carte (CB), ce calcul permettant de déterminer un coefficient (Ki) tel que (Ki) = f (Ei, Nj, S). Le nombre (S) est un nombre 30 secret contenu par la carte et inaccessible de l'extérieur, (f) est la fonction secrète réalisée par le cablage de la carte, et (Nj) est le code spécifique à la machine déjà mémorisé dans la carte. L'étape (39) consiste à envoyer le (Ki) calculé vers le processeur (1). A 35 - 15 l'étape (40), la clef (Ei) déterminée par le (BIOS) et la clef (Ki) calculée par la carte sont rangées dans la mémoire confidentielle (M) à une adresse déterminée par la table d'index en fonction du tirage aléatoire de deux 5 valeurs (di, dj) parmi quatre, comme on le verra par la suite. Après le rangement on poursuit par une étape (41) qui consiste en un test sur la valeur (i) pour savoir si le nombre de couples calculé est inférieur a une certaine valeur (N>. Dans l'exemple de réalisation choisi on 10 prendra pour valeur (N = 10). Tant que (i) est compris entre 1 et 10 on réitère les étapes (35 à 41) et dès que (i) dépasse la valeur 10 on poursuit par le procédé d'encryptage du disque (PED). Ce procédé commence par un calcul effectué par la carte (CB) pour déterminer une clef 15 (Ci) telle que (Ci) = f (C, Nj S). (C) étant une valeur de codage contenue par la carte (CB). L'étape suivante (43) consiste à envoyer la valeur (Ci) calculée au (BIOS 1). Ensuite le (BIOS) passe à l'étape (44) qui consiste à encrypter les données (s) du secteur directeur du disque. 20 Ces données sont encryptées par une fonction (g) présente dans le premier programme (BIOS), telle que â= g (Ci, s), (s) représentant les données non encryptées du secteur directeur du disque, ( ) les données encryptées du secteur directeur du disque et (g) la fonction d'encryptage 25 réalisée par le programme (BIOS 1). Le procédé de mise en oeuvre et de verrouillage se poursuit par une étape (45) demandant confirmation de l'option de verrouillage avant l'exécution de l'étape (46) qui réalise le grillage du fusible (F) par une instruction d'écriture en entrée et 30 sortie définie par les adresses convenant au décodeur (25). Cette étape (46) fait disparaitre (BIOSl) au profit de (BIOS 2) et par la suite la fin de l'auto-test qui avait démarré dans le (BIOS 1) se poursuit à l'étape (47) dans le (BIOS 2). Ensuite à chaque mise en route du 35 - 16 système, le programme (BIOS 2) est exécuté. Aucun retour BIOS 1 n'est possible sans reconditionnement de la machine. Le procédé de rangement des couples (Ki, Ei) dans la mémoire (M) ainsi que la table d'index contenue par cette mémoire va maintenant être décrit. Dans la mesure o le passage des informations devient 10 invariant entre le processeur, la mémoire (M) et le connecteur (CO), il est toujours possible de détecter la valeur des clefs avec un appareil de mesure connecté sur le bus ou la carte série. Il est alors prévu de mettre en oeuvre un algorithme dont le principe est le suivant: 15 assurer des calculs de clefs différentes à partir d'un tirage aléatoire restreint à un champ de valeur. Pour une machine donnée (identifiée par le code immatriculation Nj), il est possible de précalculer plusieurs clefs à partir d'une série aléatoire. Soit une dizaine de couples 20 Kij et Eij (i = 1 à 10). Les dispositions sont alors les suivantes: 1. Les Kij sont rangés dans la mémoire M, avec les Eij. Une table de chiffrement est ainsi formée avec une dizaine de couples. 2. Le mode de rangement réalisé par le premier programme (BIOScorrespond à une matrice singulière dit MIP (Matrice d'Identification des Parités) dont la propriété est de retrouver n'importe quel couple d'éléments à partir des numéros de lignes contenant ces éléments. 30 Un exemple de modèle MIP connu à repérage mnémotechnique est le suivant: - 17 - 0 32 64 96 128 160 dl | MI U ' T I U | S J d2 I N I O I M I E I N I d3 I D. I E I D I I I T. d4 J C I O | c I I I s I La désignation est biunivoque entre les couples (dl, dm) 1 de lignes. La table peut-être réduite à 10 éléments. 20 25 30 N DE LIGNE --- MIP INDEX DES ELEMENTS dldl ---- UU dl + 32, dl + 96 dld2 ----MM dl + 0, d2 + 64 dld3 ---- TT dl + 64, d3 + 128 dld4 ---- SS dl + 128, d4 + 128 d2d2 ---- NN d2 + O, d2 + 128 d2dl ---- MM d2 + 64, dl + 0 d2d3 ---- EE d2 + 96, d3 + 32 d2d4 ---00 d2 + 32, d4 + 32 d3dl ---- TT d3+ 128, dl + 64 d3d2 ---- EE d3 + 32, d2 + 96 d3d3 ---- DD d3 + 0, d3 + 64 d3d4 ---- II d3 + 96, d4 + 96 d4dl -- -SS d4 + 128, dl + 128 d4d2 ---- 00 d4 + 32, d2 + 32 d4d3 --- II d4 + 96, d3 + 96 d4d4 ----CC d4 + 0, d4 + 64 l I Cette propriété permet de prévoir par le ler programme 35 (BIOS1) un rangement des clés Kij et Eij associées dans la - 18 mémoire (M) (inaccessible par la RAM) tel que le deuxième programme (BIOS2) sait retrouver les couples par les seuls numéros de ligne de la matrice, tirés aléatoirement sans connaitre la disposition des éléments dans la matrice. a Voici à titre d'exemple une matrice contenant les valeurs Ki et Ei rangées selon la méthode ci-dessus. dl 15 d2 d3 t t I III K1l K2 | K3 E2 K4 j i I I t I I t I I K5 K6 | El K7 E5 I t I I t K8 E7 E8 K9 | E3 K10 E6 E10 E9 E4 IL I I -I I d4 L'initialisation est alors faite de la façon suivante par le BIOS: les numéros de lignes sont tirés aléatoirement par BIOS (ex. d2d3) pour ranger dans les registres le couple Kij et 30 Eij correspondant (ex. K7, E7) à partir des clés et index (d2 + 96, d3 + 32) inconnus de BIOS. le rangement suivant sera effectué par un autre tirage d'un couple de numéro de ligne... etc. 35 - 19 En conclusion, le rangement est génèr: sans identification explicite des adresses d'éléments (les valeurs ae décalage sont dans la table MIP de M), - avec possibilité de modification de la table MIP soit 5 dans sa structure (le BIOS ne modifie pas son système d'accès vers la table et seuls les index de MIP sont revus), soit dans son contenu (une initialisation assure un rafraichissement complet du contenu de la table à partir d'une carte bancaire à microprocesseur). 10 L'organigramme de la figure 4 permet d'expliciter le procédé d'accès machine (PAM) et le procédé d'accès disque (PAD) dans le cas d'une machine verrouillée. Dans ce cas cette machine utilise uniquement le programme (BIOS2) et par conséquent pendant le déroulement de la partie 15 autotest du programme (BIOS2) va se trouver exécutée l'étape (61) qui est constituée par un test de la présence d'une carte bancaire contenant la valeur (C) une valeur (Nj) et la valeur secrète (S). Dans le cas o la présence n'est pas détectée l'étape 62 de verrouillage du clavier 20 est accomplie. Ces deux étapes 61 et 62 sont en fait réalisée par le dispositif diode (D) transistor (T), et la porte (ET-91) de la figure 1. (Dans le cas de la présence de la carte, l'opérateur introduit de façon optionnelle au clavier un nombre d'identification (Nj) et ce nombre est 25 compar& à celui (Nj) contenu dans la carte et en cas de non coincidence l'autotest est arrêté. Dans ce cas la machine devient inutilisable). En cas de détection de présence de la carte ou de coincidence dans la cas o l'option de comparaison, ci-dessus est choisie, on passe à 30 l'étape (64) suivante qui est constituée par un tirage aléatoire de deux nombre parmi quatre. Ces deux nombres (dl, dm) tires parmi les valeurs (dl à d4) constituent un couple de numéros de ligne qui va permettre de déterminer par la mémoire (M) les valeurs d'index à ajouter 35 - 20 respectivement à chacun de ces deux nombres pour déterminer les adresses dans lesquelles sont rangées les deux valeurs du couple (Ki, Ej) correspondant à ces deux nombres (dl, dm). Suite à cette détermination d'adresse, 5 le programme (BIOS2) effectue la lecture du couple (Ei, Ki) contenu dans cette mémoire (M) et envoie la première valeur (Ei) à la carte bancaire (CB). Ceci est accompli au cours des étapes (65 et 66). Dans l'étape (67) du procédé la carte (CB) effectue le calcul d'une valeur (K'i) telle 10 que K'i = f(Ei, Nj, S). Cette valeur (K'i) est comparée au cours d'une étape (68), à la deuxième valeur du couple lu dans la mémoire (M), cette deuxième valeur étant la valeur Ki. Si il n'y a pas coincidence on effectue un nouvel essai et au bout d'un certain nombre d'essais l'auto-test 15 est arrêté, ceci est représenté par l'étape (69) de l'organigramme. Dans le cas o il y a coïncidence, on poursuit soit par la fin de l'autotest (BIOS2) et les programmes d'application qui suivent, soit dans le cas o une lecture/écriture du disque ou de la disquette est 20 demandée par la procédure d'accès disque (PAD). Une étape (50) de lecture/écriture disque est toujours suivie d'une étape (51) du calcul de la valeur Ci = f(C, Nj, S) par la carte (CB) et envoi de cette valeur (Ci) au (BIOS2). Cette étape est suivie par la lecture du secteur directeur du 25 disque encrypté représenté par l'étape (52). Les valeurs (s) du secteur encrypté sont ensuite décryptées au cours d'une étape 53 exécutée par le (BIOS2) à partir de la fonction g-1 contenue dans ce (BIOS2) suivant la formule s = g-1 (Ci, ê). Par la suite, la fin de l'auto-test ou les 30 programmes d'application sont exécutés normalement comme si la machine n'était pas protégée. Par conséquent par l'encryptage du secteur directeur du disque il est impossible de transférer, soit un disque dur, soit une disquette sur une autre machine non vérouillée et de lire les données si on ne possède pas la clé de cryptage du 2596 1 73 - 21 secteur directeur du disque dont une partie est fournie par la carte (CB) à microprocesseur. Par ailleurs, dans le cas o on ne possède pas non plus une carte du type précédent, le clavier est verouillé et on ne peut rentrer 5 aucune commande vers la machine. Enfin, l'utilisation de deux programmes différents dont l'un ne peut être accédé qu'après une sélection irréversible (sauf par un service de maintenance) permet d'assurer une protection très efficace à l'accès des ordinateurs. 10 Il est bien évident que toute modification à la portée de l'homme de métier fait également partie de l'esprit de l'invention. - 22 REVENDICATIONS: 1. Système optionnel de protection de l'accès à un système de traitement de l'information au moyen d'une carte 5 d'identification intelligente (CB) , caractérisé en ce que le travail avec au moins une ressource principale de l'ordinateur (10) est possible seulement en présence de la carte (CB) lorsque l'option de protection a été choisie. 2. Système selon la revendication 1, caractérisé en ce que la ressource principale est le clavier (10) et l'entrée des données en provenance du clavier (10) est bloquée en l'absence de la carte (CB). 3. Système selon la revendication 1, caractérisé en ce que la ressource principale est un lecteur de disque et la lecture du secteur directeur du disque (s) est rendue impossible sans une clé (Ci) de décryptage fournie par la carte (CB). 4. Système de protection selon l'une des revendications précédentes, caractérisé en ce que le processeur (1) de l'ordinateur est associé avec des premiers moyens de mémorisation (22, 23) contenant deux programmes de base du 25 système d'entrée/sortie (BIOS); un premier programme (BIOSl) comprenant un procédé d'initialisation et de mise en oeuvre de la protection suite au choix de l'option de protection; un deuxième programme (BIOS2) comprenant au moins un procédé d'accès aux ressources principales protégées et faisant appel à l'utilisation d'une carte (CB); un second moyen de mémorisation (M) associé à une alimentation (29) de sauvegarde et de protection, contenant une matrice de couples de valeur (Ei, Ki)-rangés 35 suivant une table d'index, couples de valeur utilisés dans un procédé d'accès machine du BIOS2; et des moyens de sélectionner uniquement l'utilisation du deuxième programme BIOS2, après le choix de l'option de protection. - 23 5. Système selon la revendication 4, caractérisé en ce que le circuit d'interface entre le bus du processeur (1) de l'ordinateur et le clavier (10) comporte des moyens (91), permettant dans le cas du choix de l'option Ae protection, 5 de bloquer la transmission des données venant du clavier (10) lorsque un signal indiquant la présence de la carte (CB) n'est pas actif. 6. Système selon la revendication 4 ou 5, caractérisé en 10 ce que le procédé d'accès machine comporte les étapes suivantes: a) contrôle de la présence de la carte (CB); b) tirage aléatoire de deux nombres (dl, dm) parmi quatre possible par le deuxième programme (BIOS2); c) détermination à partir des deux nombres (dl, dm) et des index associés, des adresses d'un couple de valeur (Ei, Ki) rangé dans le second moyen de mémorisation; d) envoi d'une première valeur (Ei) du couple (Ei, Ki) avec carte (CB); e) calcul par la carte d'une valeur K'i = f(Ei, Nj, S); f) envoi de la valeur calculée par la carte (K'i) vers l'ordinateur pour comparaison avec la deuxième valeur (Ki) du couple; g) arrêt du programme du procédé d'accès machine et 25 blocage de la machine en cas de non concordance des valeurs comparées (Ki) et (K'i). 7. Système selon la revendication 6, caractérisé en ce que le deuxième programme (BIOS2) comporte un procédé d'accès 30 du disque qui est exécuté dans le cas o les valeurs comparées (Ki) et (K'i) concordent. 8. Système selon la revendication 7, caractérisé en ce que le procédé d'accès du disque comporte notamment le 35 décryptage du secteur directeur encrypté (s) du disque, décryptage qui ne peut être mis en oeuvre qu'après fourniture par la carte (CB) d'une clé de décryptage (Ci). - 24 9. Système selon la revendication 4, caractérisé en ce que le procédé d'initialisation et de mise en oeuvre de la protection comporte les étapes suivantes: - vérification de la présence des ressources matérielles 5 constituées par la carte d'identité (CB), une carte électronique (EL) et son connecteur (CO) et la carte d'interface (I); - entrée par l'opérateur au clavier (10) du nombre d'identification (Nj); - tirage aléatoire effectué par le premier programme (BIOSl) d'une première valeur (Ei) et envoi de cette valeur (Ei) à la carte (CB); - mémorisation de (Ei) dans le second moyen de mémorisation (M); - calcul par la carte (CB) d'une deuxième valeur (Ki) telle que Ki = f(Ei, Nj, S); - envoi de (Ki) vers le second moyen de mémorisation (M) et rangement dans ce second moyen de mémorisation; - mise en oeuvre du procédé d'encryptage du disque (PED); 20 - confirmation du choix de l'option de protection; - verrouillage des moyens de sélectionner l'utilisation exclusive du deuxième programme (BIOS2). 10. Système selon la revendication 9, caractérisé en ce 25 que le procédé d'encryptage du disque (PED) comporte les étapes suivantes: - calcul par la carte (CB) d'un coefficient (Ci) tel que Ci = f(C, Nj, S), (C) étant un nombre contenu dans la carte (CB); - envoi du coefficient (Ci) au premier programme (BIOS1); - calcul par le premier programme (BIOS1) contenant la fonction g d'encryptage des valeurs encryptées ( ) du secteur directeur du disque à partir des valeurs non encryptées (s) de ce secteur directeur par la formule = g(Ci, s). 11. Système selon la revendication 6 caractérisé en ce que le procédé comprend entre les étapes a et b une étape 2596 1 73 - 25 d'introduction au clavier (10) par le porteur de la carte d'un nombre Nj d'identification et de comparaison avec le nombre Nj de la carte.