FR 2600190 A1 19871218 FR 8608656 A 19860616 PROCEDE POUR DIVERSIFIER UNE CLE DE BASE ET POUR AUTHENTIFIER UNE CLE AINSI DIVERS IF IEE COMME AYANT ETE ELABOREE A PARTIR D'UNE CLE DE BASE PREDETERMINEE, ET SYSTEME DE MISE EN OEUVRE. L'invention a pour objet un procédé pour diversifier une clé de base et pour authentifier une clé ainsi diversifiée comme ayant e été élaborée à partir d'une clé de base prédéterminée, et un système pour sa mise en oeuvre. Un tel procédé permet notamment de diversifier les clés secrètes enregistrées dans des objets portatifs tels que des cartes à mémoire. L'essor des applications qui mettent en oeuvre des objets portatifs tels que des cartes est essentiellement dû a' l'avènement des cartes à mémoire dont une caractéristique essentielle est de posséder des circuits de traitement. Ces circuits comprennent genéralement un microprocesseur qui effectue des calculs non seulement sur des données entrées de l'extérieur, mais surtout sur des données internes inaccessibles de l'extérieur. De telles cartes sont distribuées à des utilisateurs par des organismes habilités qui proposent la délivrance de services par l'intermédiaire d'appareils ou terminaux mis à la disposition du public et auxquels l'utilisateur accouple temporairement sa carte.. Tout appareil ne délivre généralement le service demandé qu'après s'être préalablement assuré que la carte a bien été établie à l'origine comme pouvant donner accès å ce service. En effet, il faut éviter à tout prix qu'une carte établie pour accéder à un service (A) ne puisse être également utilisée pour accéder à un service (B), ou qu'un fraudeur ne puisse concevoir ou simuler une fausse carte donnant accès au service (A) et/ou (B). Ces buts sont généralement atteints par l'établissement préalable d'un échange d'informations sous forme d'un dialogue entre la carte et l'appareil. Un type de dialogue tel que décrit dans le brevet français N"2 469 760 de la demanderesse prend en compte une clé secrète seule connue de l'organisme habilité. Cette clé est enregistrée à la fois dans la carte et dans l'appareil. A titre d1exemple, la carte calcule un résultat qui est fonction de sa clé secrète et l'appareil calcule un résultat similaire qui est fonction de sa clé secrète. Les résultats sont comparés par l'appareil qui n'autorisera l'accès au service demandé qu'en cas d'identité ou de concordance entre ces résultats. Cette condition ne peut être satisfaite que si les clés de la carte et de l'appareil sont identiques. Ainsi, tout appareil conçu pour délivrer un service donné est apte à reconnaitre l'ensemble des cartes qui auront été délivrées par un organisme habilité commé donnant acces a' ce service. Cependant, pour une même clé secrète enregistrée dans un appareil, il y a n cartes d'une même famille possédant cette clé secrète (n pouvant atteindre plusieurs millions, notamment dans les applications bancaires). Si un fraudeur parvient à percer le secret de cette clé, il se trouve dans la possibilité de pouvoir fabriquer et diffuser de fausses cartes qui seront cependant reconnues comme valables par les appareils. Une telle -conséquence serait donc catastrophique et nécessiterait le changement de la clé secrète et une distribution de nouvelles cartes. Pour pallier cet inconvénient, l'invention prévoit de diversifier les clés secrètes enregistrées dans les cartes à partir d'une même clé de bas-e tout en permettant aux appareils de les reconnaitre comme ayant e' été élaborées à partir d'une même clé de base prédeterminée. Ainsi, chaque carte aura une clé secrète qui lui est propre. L'invention propose donc un procédé pour diversifier une clé de base par un système d'initialisation, chaque clé de base ainsi diversifiée étant enregistrée dans une mémoire d'un objet portatif, et pour faire reconnaitre par un système d'exploitation que la clé diversifiée d'un objet portatif a bien e' été élaborée à partir d'une clé de base prédéterminée, caractérisé en ce qu'il consiste - pour diversifier une clé de base (Sb) préenregistrée dans une mémoire du dispositif d'initialisation, à faire calculer par des circuits de traitement de ce dispositif une clé diversifiée (Sd) par application d'une fonction (fl) qui prend en compte la clé de base (Sb) et au moins un paramètre (Eu) propre à l'objet portatif et tel que Sd = fl(Sb, Eu) - et à enregistrer la clé diversifiée (Sd) et le paramètre (Eu) dans la mémoire de l'objet portatif, - et en ce qu'il consiste pour faire reconnaitre par un système d'exploitation la clé diversifiée (Sd) d'un objet portatif comme ayant été élaborée à partir d'une clé de base prédéterminée (Sb), à accoupler l'objet portatif avec un dispositif de contrôle ayant une mémoire dans laquelle est enregistrée la clé de base prédéterminée (Sb), à faire calculer par des circuits de traitement du dispositif de contrôle une clé diversifiée (Sd) par application de la fonction (fl) qui prend en compte la clé de base prédéterminée (Sb) et le paramètre (Eu) prélevée dans la mémoire de l'objet portatif, à faire calculer par les circuits de traitement du dispositif de contrôle un résultat (R2) par application d'une fonction (f2) qui prend au moins en compte la clé diversifiée (Sd) calculée par le dispositif de contrôle et un paramètre (X), à faire calculer par les circuits de traitement de l'objet portatif un résultat (Rl) par application de la fonction (f2) qui prend au moins en compte la clé diversifiée (Sd) préenregistrée dans la mémoire de l'objet portatif et le paramètre (X), et à comparer les résultats (Rl, R2) ainsi calculés qui ne peuvent être identiques ou satisfaire une relation prédéterminée que si la clé diversifiée enregistrée dans l'objet portatif a été élaborée à partir d'une clé de base identique à celle contenue dans le dispositif de contrôle. Selon une autre caractéristique de l'invention, la mémoire et les circuits de traitement du dispositif d'initialisation, l'objet portatif et du dispositif de contrôle sont réalisés sous la forme d'un bolier à circuit intégré. Selon une autre caractéristique de l'invention, l'objet portatif est avantageusement constitué par une carte normalisée du type carte à mémoire. D'autres caractéristiques, avantages et détails ressortiront de la description explicative qui va suivre faite en référence aux dessins annexés dans lesquels - la figure 1 schématise un dispositif d'initialisation pour illustrer la première phase du procédé conforme à l'invention, - et la figure 2 schématise un dispositif d'exploitation pour illustrer la deuxième phase du procédé conforme à l'invention, D'une façon générale, le procédé conforme à l'invention se décompose en une phase d'initialisation et en une phase d'exploitation. La phase d'initialisation consiste - à faire calculer par un système d'initialisation des clés diversifiées à partir d'une clé de base prédéterminée, - et à enregistrer ces clés secrètes ainsi diversifiées dans les mémoires des objets portatifs. Cette première phase est réalisée par un organisme habilité qui remet ensuite les objets portatifs aux utilisateurs, chaque objet portatif ayant une clé secrète différente. Chaque utilisateur pourra ensuite demander l'accès à des services au moyen de son objet portatif, mais cet accès ne pourra être validé qu'après un contrôle basé sur la reconnaissance de la clé diversifiée enregistrée dans l'objet portatif. Ce contrôle fait l'objet de la deuxième phase ou phase d'exploitation qui sera décrite plus loin. Le dispositif d'initialisation (1) représenté à la figure 1 se compose notamment d'une mémoire (DIM), de circuits de traitement (DIT) tels qu'un microprocesseur, d'un circuit d'entrée (DIE) tel qu'un clavier par exemple et d'une interface d'entrée-sortie (Il). L'ensemble de ces circuits sont reliés entre eux par un bus (bl) de commande, d'adresse et de donnée. Ce dispositif d'initialisation (l) est destiné à coopérer avec des objets portatifs (2) qui se composent notamment d'une mémoire (DOM), de circuits de traitement (DOT) tels qu'un microprocesseur et d'une interface d'entrée-sortie (22) reliés entre eux par un bus (b2) de commande, d'adresse et de donnée. Les objets portatifs (2) peuvent être avantageusement constitués par des cartes à mémoire pourvues d'un microprocesseur et telles que décrites dans les brevets français n" 2 401 459 et nO 2 461 301 de la demanderesse. Un objet portatif (2) est accouplé au dispositif d'initialisation (1) par l'intermédiaire de leurs interfaces (11, 22) reliées, en local ou à distance, par une ligne de transmission (L) comme cela est décrit dans le brevet français n" 2 483 713 de la demanderesse. Le dispositif d'initialisation (1) a pour objet de calculer et d'enregistrer une clé secrète (Sd) dans la mémoire (DOM) de l'objet portatif (2). Cette clé (Sd) est une clé obtenue par une opération de diversification d'une clé de base (Sb) préenregistrée dans la mémoire (DIM) du dispositif d'initialisation (1). La clé (Sd) est le résultat d'un calcul effectué par les circuits de traitement (DIT) du dispositif d'initialisation (1). Plus précisément, les circuits de traitement (DIT) exécutent un programme (P1) préenregistré dans la mémoire (DIM) et qui est la mise en oeuvre d'une fonction (fl) d'un algorithme prédéterminé. Cette fonction (fl) prend au moins en compte deux paramètres : le code de base (Sb) et une donnée d'entrée variable (Eu) propre à chaque dispositif objet (2) et entrée par exemple au clavier (DIE), avec Sd = fl(Sb, Eu) Le code (Sd) est ensuite préenregistré dans la mémoire (DOM) de l'objet portatif (2), ainsi que la donnée d'entrée (Eu). Bien entendu, le calcul du code (Sd) peut prendre en compte un ou plusieurs autres paramètres internes au dispositif objet (2) et/ou externes entrés au clavier (DIE) par exemple en fonction des applications envisagées pour les objets portatifs. De cette manière, il est possible d'initialiser n objets portatifs (2) dont les mémoires (DOM) contiendront respectivement n clés diversifiées (Sdl, Sd2,....Sdn) à partir de n données d'entrée variables (Eul,- Eu2, ....Eun) et d'une même clé de base (Sb). Toutes ces opérations sont normalement exécutées par un organisme habilité qui met ensuite ces objets portatifs (2) à la disposition d'utilisateurs pour obtenir l'accès à un service ou à une prestation délivrée par un appareil mis à la disposition du public. Un tel appareil ne validera un tel accès qu après avoir préalablement vérifié que l'objet (2) a bien été initialisé et mis en circulation par l'organisme habilité qui gère cet appareil. Cette vérification fait l'objet de la deuxième phase du procédé ou phase d'exploitation telle que décrite ci-après. Un appareil (3) qui délivre un service et tel que représenté à la figure 2 se compose d'un dispositif de contrôle (4) comprenant notamment une mémoire (DSM), de circuits de traitement (DST) tels qu'un microprocesseur et d'une interface d'entrée-sortie (33). Ces circuits sont reliés entre eux par un bus (b4) de commande, d'adresse et de donnée. Bien entendu, cet appareil comprend également un ensemble de circuits (non représentés) qui sont spécifiques du service rendu. Un objet portatif (2) est accouplé à l'appareil (3) par les deux interfaces (22, 33) reliées par une ligne-de transmission (L). Une fois cet accouplement réalisé, les circuits de traitement (DST) du dispositif de contrôle (4) vont calculer une clé diversifiée (Sd) à partir d'une clé de base (Sb) préenregistrée dans sa mémoire (DSM) et du programme (P1) préenregistré dans sa mémoire et identique à celui utilisé dans la phase d'initialisation. En effet, le dispositif de contrôle (4) de tous les appareils (3) délivrant un même service ont une mémoire qui contient la même clé de base (Sb) et le même programme (P1) que la mémoire du dispositif d'initialisation (1) de l'organisme habilité qui gère ces appareils (3). Les circuits de traitement (DST), du dispositif de contrôle (4) calculent donc une clé diversifiée (Sd) telle que Sd = fl(Sb, Eu) où la donnée (Eu) est prélevée dans la mémoire (DOM) de l'objet portatif (2). Le dispositif de contrôle (4) doit vérifier que cette clé diversifiée (Sd) ainsi calculée correspond à celle qui est préenregistrée dans la mémoire (DOM) de l'objet portatif (2). Comme ces clés doivent rester secrètes, il est exclu que le dispositif de contrôle (4) puisse prélever directement la clé diversifiée (Sd) de l'objet portatif (2) pour la comparer avec celle qu'il vient de calculer. Dans ces conditions, la comparaison est effectuée indirectement sur deux résultats (Ri, R2) respectivement calculés par l'objet portatif (2) et par le dispositif de contrôle (4). Les calculs de ces résultats prennent au moins en compte d'une part, la clé diversifiée (Sd) de l'objet portatif (2) pour le résultat (R1) et la clé diversifiée (Sd) calculée par le dispositif de contrôle (4) pour le résultat (R2), et d'autre part une même donnée (X) ou paramètre. La donnée (X) peut être soit interne à l'objet portatif (2) et transmise au dispositif de contôle (4) pour le calcul du résultat (R2), soit externe à l'objet portatif (2) et transmise par le dispositif de contrôle (4) pour le calcul du résultat (R1) dans l'objet portatif (2). L'objet portatif (2) calcule donc par l'intermédiaire de ses circuits de traitement (DOT) un- résultat (R1) par exécution d'un programme (P2) préenregistré dans sa mémoire (DOM) et tel que R1 = f2(Sd, X) où (Sd) est la clé diversifiée de l'objet portatif (2) et (X) une donnée que l'on prend par exemple égale a la donnée (Eu) précitée interne à l'objet portatif (2). Le dispositif de contrôle (4) calcule, par l'intermédiaire de ses circuits de traitement (DST), un résultat (R2) par exécution du même programme (P2) préenregistré dans sa mémoire (DSM) et tel que R2 = f2(Sd, X) où (Sd) est la clé diversifiée précédemment calculée par le dispositif de contrôle (4) et (x) la donnée (Eu) prélevée dans la mémoire de l'objet portatif (2). Le résultat (R1) calcule par l'objet portatif (2) est ensuite prélevé par le dispositif de contrôle (4) et comparé avec le résultat (R2) dans pn circuit comparateur (cc) par exemple relié au bus (b4). A titre d'exemple, les programmes (P1) et (P2) peuvent être les mêmes. Si les deux résultats (R1, R2) sont identiques ou satisfont une condition prédéterminée, le dispositif de contrôle (4) aura authentifié l'objet portatif (2) comme possédant une clé diversifiée qui a bien été élaborée à partir d'une clé de base prédéterminée. Dans le cas contraire, le dialogue est interrompu entre l'objet portatif (2) et l'appareil (3). Selon un mode de réalisation de l'invention, la mémoire et les circuits de traitement du dispositif d'initialisation (1), de l'objet portatif (2) et du dispositif de contrôle (4) sont des blocs fonctionnels pouvant être intégrés dans des plaquettes semiconductrices (puces) séparées ou non et montées dans un boîtier (5). Enfin, les bottiers (5) des objets portatifs (2r et des dispositifs de contrôle (4) peuvent être avantageusement conçus selon les caractéristiques des brevets français nO 2 401 459 et 2 461 301 de la demanderesse et montés dans un support portatif tel qu'une carte à mémoire normalisée. Parmi ces caractéristiques, il faut retenir celle de la mémoire qui contient une zone inaccessible de l'extérieur et où seront enregistrées les clés diversifiées (Sd) et les clés de base (Sb). Le dispositif d'exploitation (3) peut également être conçu pour gérer plusieurs clés de base (Sbl, Sb2,...Sbn) associées respectivement à n familles d'objets portatifs (2). Ainsi, tout objet portatif possèdant une clé diversifiée établie à partir de l'une de ces clés de base pourra être authentifiée par tout dispositif d'exploitation dans lequel sont préenregistrées ces clés de base. Dans l'exemple décrit précédemment, l'appareil d'exploitation authentifie un objet portatif comme possèdant bien une clé secrète que seul un organisme habilité a pu élaborer. Le calcul des résultats (R1, R2) peut également prendre en compte une donnée secrète (S) préenregistrée dans la mémoire de l'objet portatif et dans la mémoire de l'appareil. Cette donnée secrète (S) peut par exemple être spécifique du service rendu par l'appareil et seuls les objets portatifs ayant cette donnée secrète (S) pourront accéder à ce service. Ainsi, si les résultats (R1, R2) concordent, l'appareil aura non seulement authentifié la clé diversifiée (Sd) de l'objet portatif, mais encore vérifié que l'objet portatif donne bien droit au service dispensé par cet appareil.Dans le cas contraire, soit la clé diversifiée (Sd) de l'objet portatif n'est pas reconnue conforme, soit la clé diversifiée (Sd) est reconnue conforme mais la donnée secrète (S) de l'objet portatif n'est pas identique à celle de l'appareil ce qui signifie que l'objet portatif ne permet d'accéder au service dispensé par cet appareil. Le programme (P2) utilisé pour le calcul des résultats (R1, R2) peut correspondre en variante, à la mise en oeuvre d'un algorithme inversible. Plus précisément, la fonction (f2) est par exemple la fonction inverse de l'algorithme qui est exécutée par le dispositif de contrôle (4) pour obtenir le résultat (R2) tel que R2 = f2-1 (Sd, Eu) alors que l'objet portatif (2) exécute la fonction directe de l'algorithme sur ce résultat (R2) pour obtenir un résultat (R1) tel que R1 = F2 (R2, Eu) = S'd et ce résultat (R1) doit être identique à la clé diversifiée (Sd) de l'objet portatif (2). Inversement, il est possible de faire calculer le résultat (R1) par l'objet portatif (2) et ensuite de faire appliquer par le dispositif de contrôle (4) la fonction inverse sur ce résultat (R1) pour trouver un résultat (R2) qui doit être identique à la clé diversifiée (Sd) recalculée par le dispositif de contrôle (4). Revendications 1. Procédé pour diversifier une clé de base par un système d'initialisation, chaque clé de base ainsi diversifiée étant enregistrée dans une mémoire d'un objet portatif, et pour faire reconnaître par un système d'exploitation que la clé diversifiée d'un objet portatif a bien été élaborée à partir d'une clé de base prédéterminée, caractérisé en ce qu'il consiste - pour diversifier une clé de base (Sb) préenregistrée dans une mémoire (DIM) du dispositif d'initialisation (1), à faire calculer par des circuits de traitement (DIT) de ce dispositif (1) une clé diversifiée (Sd) par application d'une fonction (fl) qui prend en compte la clé de base (Sb) et au moins un paramètre (Eu) propre à l'objet portatif et tel que Sd = fl(Sb, Eu) - et à enregistrer la clé diversifiée (Sd) et le paramètre (Eu) dans la mémoire (DOM) de l'objet portatif (2), - et en ce qu'il consiste pour faire reconnaître par un système d'exploitation (3) la clé diversifiée (Sd) d'un objet portatif (2) comme ayant été élaborée à partir d'une clé de base prédéterminée (Sb), à accoupler l'objet portatif (2) avec un dispositif de contrôle ayant une mémoire dans laquelle est ènregistrée la clé de base prédéterminée (Sb), à faire calculer par des circuits de traitement (DST) du dispositif de contrôle (4) une clé diversifiée (Sd) par application de la fonction (fl) qui prend en compte la clé de base prédéterminée (Sb) et le paramètre (Eu) prélevé dans la mémoire (DOM) de l'objet portatif (2), à faire calculer par les circuits de traitement (DST) du dispositif de contrôle (4) un résultat (R2) par application d'une fonction (f2) qui prend au moins en compte la clé diversifiée (Sd) calculée par le dispositif de contrôle (4) et un paramètre (X), à faire calculer par les circuits de traitement de l'objet portatif (2) un résultat (R1) par application de la fonction (f2) qui prend au moins en compte la clé diversifiée (Sd) préenregistrée dans la mémoire (DOM) de l'objet portatif (2) et le paramètre (X), et à comparer les résultats (R1, R2) ainsi calculés qui ne peuvent être identiques ou satisfaire une relation prédéterminée que si la clé diversifiée enregistrée dans l'objet portatif (2) a été 'élaborée à partir d'une clé de base identique à celle contenue dans le dispositif de contrôle (4). 2. Procédé selon la revendication 1, caractérisé en ce qu'il consiste à prendre pour les calculs des résultats (R1, R2) une donnée (X) interne ou externe à l'objet portatif (2). 3. Procédé selon la revendication 1 ou 2, caractérisé en ce qu'il consiste à faire comparer les résultats (R1, R2) par le dispositif de contrôle (4). 4. Système pour diversifier un code de base et pour reconnaître qu'une clé ainsi diversifiée a bien été élaborée à partir d'une clé de base déterminée conformément au procédé défini par l'une des revendications 1 à 3, caractérisé en ce qu'il comprend - un dispositif d'initialisation (1) composé d'une mémoire (DIM), de circuits de traitement (DIT) et d'un circuit d'entrée (DIE) pour calculer une clé diversifiée (Sd) à partir d'une clé de base (Sb) préenregistrée dans la mémoire (DIM), - un objet portatif (2) composé d'une-mémoire (DOM) où est enregistrée la clé diversifiée (Sd) précédemment calculée et de circuits de traitement (DOT), - et un dispositif d'exploitation comprenant un dispositif de contrôle (4) composé d'une mémoire (DSM) où est enregistré une clé de base (Sb), de circuits de traitement (DST) pour recalculer une clé diversifiée (Sd) et un circuit de comparaison (cc) pour comparer un résultat (R1) calculé par l'objet portatif (2) accouplé au dispositif de contrôle (4) et un résultat (R2) calculé par le dispositif de contrôle (4), le résultat (R1) étant au moins fonction de la clé diversifiée de l'objet portatif (2) et le résultat (R2) étant au moins fonction de la clé diversifiée recalculée par le dispositif de contrôle (4). 5. Système selon la revendication 3 ou 4, caractérisé en ce que la mémoire (DIM) et les circuits de traitement (DIT) du dispositif d'initialisation (1) sont intégrés dans une puce montée dans un boîtier (5). 6. Système selon la revendication 3 ou 4, caractérisé en ce que la mémoire DOM et les circuits de traitement (DOT) de l'objet portatif (2) sont intégrés dans une puce montée dans un boîtier (5). 7. Système selon la revendication 3 ou 4, caractérisé en ce que la mémoire (DSM) et les circuits de traitement (DST) du dispositif de contrôle (4) sont intégrés dans une puce montée dans un boîtier (5). & Système selon la revendication 3, 4 ou 6, caractérisé en ce que l'objet portatif (2) est réalisé sous la forme d'une carte à mémoire normalisée. 9. Système selon la revendication 3 ou 7, caractérisé en ce que le dispositif de contrôle (4) est réalisé sous la forme d'une carte à mémoire normalisée.