Brevet FR2702066A1 — publié le 19940902

PROCEDE DE GESTION DE CLES SECRETES ENTRE DEUX CARTES A MEMOIRE DESCRIPTION Domaine de l'invention L'invention concerne un procédé pour gérer des clés secrètes entre deux cartes à mémoire. Actuellement les cartes à mémoire connaissent un fort développement en tant qu'outils d'authentification et de certification de données, du fait notamment de leur aptitude à stocker des données secrètes. Le domaine de l'invention est celui de tous ces types de cartes à mémoire utilisées pour l'authentification et la certification de données, et destinées à être lues par un système informatique comportant un lecteur de cartes à mémoire Ces cartes à mémoire peuvent être, par exemple, des cartes de terminaux dialoguant derrière un réseau commuté, telles que les cartes à mémoire de télécopieurs ou de distributeurs bancaires. Ces cartes à mémoire seront aussi, dans la suite de la description, nommées plus simplement "cartes". Etat de la technique Il est usuel, dans la plupart des systèmes informatiques à cartes, d'utiliser un serveur informatique central apte à lire des cartes à mémoire principales, dites "cartes mères" A ce serveur central, sont connectés une pluralité de terminaux informatiques aptes à lire des cartes à mémoire secondaires, dites "cartes filles" Ces terminaux sont alors connectés selon une architecture étoilée sur le serveur central Selon cette architecture étoilée, le dialogue ne peut être établi qu'entre la carte mère et l'une des cartes filles. Deux cartes filles ne peuvent dialoguer, ensemble, c'est- à-dire échanger des informations entre elles. Aussi, un système informatique ayant une telle architecture permet de réaliser des transactions sécurisées entre les cartes filles et les cartes mères, mais elles ne permet pas de transaction sécurisée mutuelle entre deux cartes filles. Un tel système informatique a également pour inconvénient de nécessiter, lors de l'établissement d'une clé de session commune entre deux cartes à mémoire, que chacune de ces cartes possède une clé secrète personnelle identique à la clé secrète de l'autre carte avec laquelle on cherche à établir une clé de session commune. Un tel système informatique utilisant une carte microprocesseur, qui met en oeuvre un algorithme cryptographique, est décrit dans les demandes de brevet français publiées sous le numéro FR-2 601 795 et sous le numéro FR-2 469 760 Ces demandes de brevet décrivent, en effet, des dispositifs mettant en oeuvre un procédé de dialogue entre une carte mère et des cartes filles organisées en réseau étoilé Les opérations réalisables par ces procédés ne peuvent donc avoir lieu qu'entre une carte mère et les cartes filles à l'aide des clés secrètes obtenues par diversification de la clé mère (clé secrète de la carte mère) Chaque clé secrète ainsi obtenue est le résultat d'un calcul faisant intervenir la clé mère et un paramètre propre à la carte fille avec laquelle la carte mère veut dialoguer Un tel système informatique ne permet donc pas de mettre en oeuvre un procédé utilisant une clé de session commune entre deux cartes filles. Un autre système informatique connu est décrit dans une notice commerciale du Centre commun de FRANCE TELECOM et de TDF, CCETT Ce système informatique comporte une carte microprocesseur multiservice connue sous le nom commercial "Mimosa" Une telle carte à microprocesseur multiservice utilise un algorithme à clé publique Deux cartes de ce type sont aptes à s'authentifier mutuellement Elles peuvent émettre et vérifier des signatures en utilisant l'algorithme à clé publique basé sur l'identité Un tel algorithme à clé publique peut également permettre l'établissement d'une clé de session entre deux cartes Cet algorithme met en oeuvre des opérations arithmétiques (multiplications, puissances, divisions) sur des nombres de plusieurs centaines de bits cette complexité de calcul a pour conséquence de nécessiter, pour réaliser ces cartes, des composants haut de gamme qui sont actuellement encore très coûteux. Exposé de l'invention Le but de la présente invention est de remédier aux inconvénients des systèmes informatiques décrits précédemment en proposant un procédé de gestion de clés secrètes dont la mise en oeuvre est simple et relativement peu coûteuse. A cette fin, elle a pour objet un procédé de gestion de clés secrètes entre deux cartes à mémoire, dans lequel un premier code d'identité est mémorisé dans la première carte à mémoire, et un second code d'identité est mémorisé dans la seconde carte à mémoire Ce procédé se caractérise par les phases suivantes * phase'de personnalisation comprenant les étapes d'écriture, dans chacune des cartes à mémoire, d'un algorithme de traitement de la clé secrète de groupe et des codes d'identité; d'écriture dans chacune des cartes à mémoire, d'une même clé secrète de groupe; * phase d'utilisation comprenant les étapes de transmission du premier code d'identité vers la seconde carte à mémoire; de transmission du second code d 'identité vers la première carte à mémoire; de calcul, par l'algorithme de traitement, d'une première et d'une seconde clés de session, respectivement dans la première et la seconde cartes à mémoire. Un même nombre aléatoire est fourni à chacune des cartes à mémoire Avantageusement, l'étape de calcul de la première et de la seconde clés de session par l'algorithme de traitement consiste en les étapes: d'application d'un algorithme de diversification à partir des premier et second codes d'identité et de la clé secrète de groupe pour déterminer un nombre secret; d'application d'un algorithme de calcul des clés de session à partir du nombre aléatoire et du nombre secret. Selon un mode de réalisation de l'invention, l'algorithme de diversification consiste: à déterminer un premier nombre secret à partir du premier code d'identité et de la clé secrète de groupe mémorisée dans chacune des cartes à mémoire, à déterminer un second nombre secret à partir du second code d'identité et de la clé secrète de groupe, à combiner par une opération commutative ces premier et second nombres secrets pour obtenir le nombre secret. Cette opération commutative peut être une addition. Selon le mode de réalisation préféré de l'invention, les algorithmes de diversification et de calcul de clé de session de la première et de la seconde cartes à mémoire sont identiques, les clés de session obtenues pour la première et pour la seconde carte à mémoire étant alors identiques. Ce procédé a donc pour avantage que deux cartes à mémoire sont aptes à dialoguer ensemble et à s'authentifier mutuellement par utilisation de leur clé de session lors d'une opération d'authentification. En outre, seuls les codes d'identité étant transmis d'une carte vers l'autre, un intrus qui observerait les communications entre les deux cartes ne pourrait reconstituer la clé de session à l'issue du protocole, cet intrus ne pouvant connaître, par écoute, la clé secrète de groupe puisque celle-ci n'est pas transmise entre les cartes. Ce procédé a également pour avantage qu'une autre carte ayant la même clé secrète de groupe que les cartes en communication ne peut déterminer la clé de session de ces cartes, puisque cette clé dépend des deux codes d'identités dont l'un réside nécessairement dans la carte. Brève description du dessin La figure unique, annexée, représente le schéma fonctionnel de réalisation d'une clé de session commune à deux cartes à mémoire. Exposé détaillé de modes de réalisation de l'invention Sur la figure, on a représenté le schéma fonctionnel de l'opération de réalisation de la clé de session commune aux deux cartes mémoire Cl et C 2 Pour une meilleure compréhension de l'invention, la clé de session réalisée à partir de la carte Cl sera référencée Si et la clé de session réalisée à partir de la carte C 2 sera référencée 52 Pour réaliser de telles clés de session Si et 52, le système informatique fournit à chacune des cartes Cl et C 2 un nombre aléatoire NA En outre, chacune des cartes appartient à un groupe, c'est- à-dire que chacune des cartes appartient à un ensemble de cartes ayant à communiquer entre elles De façon plus précise, un groupe représente l'ensemble des correspondants ayant à communiquer entre eux et faisant cette communication deux à deux de manière protégée vis- à-vis des autres correspondants dudit groupe et vis-à-vis des correspondants extérieurs audit groupe Aussi, outre ce nombre aléatoire NA reçu du système, chacune de cartes mémoires Cl et C 2 possède une clé secrète de groupe, référencée G Cette clé secrète de groupe est identique pour chacune des cartes d'un même groupe. De plus, chacune des cartes de ce groupe (à savoir les cartes Cl et C 2 sur la figure) possède un code d'identité personnel, référencé I Di pour la carte Cl et ID 2 pour la carte C 2 Les codes d'identité I Di et ID 2 mémoire auxquelles ils sont associés Les codes d'identité ID 1 et ID 2 n'étant pas secrets, ils peuvent être communiqués d'une carte à une autre Sur la figure, le code d'identité ID 1 est transmis à la carte C 2 et le code d'identité ID 2 est envoyé vers la carte Cl. En outre, sur chacune de ces cartes Cl et C 2, sont écrits des algorithmes cryptographiques, notés respectivement, Dl et CC 1, et D 2 et CC 2. Ainsi, le code d'identité ID 1 envoyé par la carte Cl vers la carte C 2 est introduit dans l'algorithme de diversification D 2 écrit dans la carte mémoire C 2. L'algorithme de diversification D 2 détermine, à partir du code d'identité ID 1 ainsi reçu et de la clé secrète de groupe G, un premier nombre secret N 51 N 51 s'exprime sous la forme: N Sl = D 2 (G, I Di). Parallèlement, cet algorithme de diversification D 2 déterminé un second nombre secret N 52 à partir du code d'identité ID 2 et de la clé secrète de groupe G Ce second nombre secret s'exprime sous la forme: N 52 = D 2 (G, ID 2). Lorsque les deux nombres secrets N 51 et N 52 ont été déterminés par l'algorithme D 2, une fonction Add assure l'addition de ces deux nombres secrets N 51 et N 52 Le nombre secret résultant de cette addition est référencé NS. L'algorithme de calcul de clé CC 2 utilise alors ce nombre secret NS ainsi calculé et utilise également le nombre aléatoire NA fourni par le système informatique pour produire la clé de session 52 de la carte mémoire C 2. Ces algorithmes de diversification D 2 et de calcul de clé CC 2 ne sont pas décrits de façon plus précise car ils sont de type connu par l'homme de l'art et décrits dans les demandes de brevet français cités précédemment. Toutes les opérations décrites pour la carte C 2, sont réalisées de façon symétrique par la carte Cl. Ainsi, l'algorithme de diversification Dl écrit dans la carte Cl calcule le premier nombre secret N 51 = Dl(G,I Dl) en utilisant le code d'identité I Di lui appartenant et en utilisant la clé secret de groupe G Ce même algorithme de diversification Dl calcule, d'autre part, le nombre secret N 52 = Dl(G, ID 2) en utilisant le code d'identité ID 2 reçu de la carte C 2 et en utilisant la clé secrète de groupe G Tout comme dans la carte C 2, ces nombres secrets N 51 et N 52 sont additionnés par une fonction Add (ou toute opération commutative) pour donner le nombre secret NS L'algorithme de calcul de clé CC 1 calcule alors la clé de session Si à partir du nombre aléatoire NA reçu du système informatique et du nombre secret NS calculé de la façon décrite précédemment. Pour une meilleure compréhension de l'invention, les algorithmes de diversification ont été précédemment notés Dl et D 2; ils sont cependant identiques l'un et l'autre Il en est de même pour les algorithmes de calcul de clé CC 1 et CC 2 qui sont identiques l'un et l'autre On comprendra bien évidemment que, si les algorithmes Dl et D 2 et CC 1 et CC 2 sont, respectivement, identiques, les clés de session référencées Si pour la clé de session obtenue par la carte Cl et 52 pour la clé de session obtenue par la carte C 2 sont également identiques l'une et l'autre On a ainsi une clé de session commune aux deux cartes Cl et C 2. On comprendra de plus, à la lecture de cette description, que toute carte en possession de la clé de groupe secrète G peut établir une clé de session commune avec n'importe quelle autre carte du même groupe, c'est- à-dire possédant également la clé secrète G. REVENDICATIONS 1 Procédé de gestion de clé secrète entre une première et une seconde cartes à mémoire (Cl) et (C 2) dans lequel un premier code d'identité (I Di) est mémorisé dans la première carte à mémoire et un second code d'identité (ID 2) est mémorisé dans la seconde carte à mémoire, caractérisé en ce qu'il consiste en les phases suivantes: * phase de personnalisation comprenant les étapes d'écriture dans chacune des cartes à mémoire, d'une même clé secrète de groupe (G); d'écriture, dans chacune des cartes à mémoire, d'un algorithme de traitement de la clé secrète de groupe et des codes d'identité; * une phase d'utilisation comprenant les étapes de transmission du premier code d'identité vers la seconde carte à mémoire; de transmission du second code d 'identité vers la première carte à mémoire; de calcul, par les algorithmes de traitement, d'une première et d'une seconde clés de session (Si, 52), respectivement dans la première et la seconde cartes à mémoire. 2 Procédé selon la revendication 1, caractérisé en ce que, un même nombre aléatoire étant fourni à chacune des cartes à mémoire, l'étape de calcul de la première et de la seconde clés de session par l'algorithme de traitement consiste en les étapes: d'application d'un algorithme de diversification (Dl, D 2) à partir des premier et second codes d'identité et de la clé secrète de groupe pour déterminer un nombre secret; d'application d'un algorithme de calcul des clés de session (CC 1, CC 2) à partir du nombre aléatoire et du nombre secret. 3 Procédé selon la revendication 1 ou 2, caractérisé en ce que l'algorithme de diversification consiste: à déterminer un premier nombre secret (N 51) à partir du premier code d'identité et de la clé secrète de groupe mémorisée dans chacune des cartes à mémoire, à déterminer un second nombre secret (N 52) à partir du second code d'identité et de la clé secrète de groupe, à combiner, par une opération commutative, ces premier et second nombres secrets pour obtenir le nombre secret. 4 Procédé selon la revendication 3, caractérisé en ce que l'opération commutative effectuée sur les premier et second nombres secrets dans l'algorithme de diversification est une addition. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que les algorithmes de diversification et de calcul de clé de session de la première et de la seconde cartes à mémoire sont identiques, les clés de session obtenues pour la première et pour la seconde carte à mémoire étant alors identiques.