FR 2719925 A1 19951117 FR 9405883 A 19940510 PROCEDE POUR PRODUIRE UNE CLE COMMUNE DANS DEUX DISPOSITIFS EN VUE DE METTRE EN OEUVRE UNE PROCEDURE CRYPTOGRAPHIQUE COMMUNE, ET APPAREIL ASSOCIE. L'invention est relative à un procédé pour produire une clé commune K attribuée à un quelconque dispositif CEk d'un ensemble de premiers dispositifs CE et à un quelconque dispositif PMEi d'un ensemble de seconds dispositifs PME pour que ces deux dispositifs mettent en oeuvre une procédure cryptographique commune. Un procédé classique consiste à attribuer à l'ensemble des premiers dispositifs CE une clé mère commune et, à chacun des seconds dispositifs PME une clé fille différente, obtenue par diversification de la clé mère au moyen d'une donnée d'identification du second dispositif considéré. On établit ainsi une hiérarchie entre les premiers et seconds dispositifs puisque le niveau de sécurité des premiers est plus élevé que celui des seconds. Lors d'une session entre un premier dispositif CE et un second dispositif PME, ce dernier transmet au premier sa donnée d'identification de façon que le premier dispositif calcule la clé fille du second dispositif à partir de sa clé mère : cette clé fille constitue la clé commune K. Ce procédé donne satisfaction vis-à-vis d'une tentative de fraude au niveau d'un des seconds dispositifs PME. En effet, la violation d'un second dispositif PME permettra au fraudeur de découvrir au mieux une clé fille, mais pas de prendre connaissance de la clé mère qui seule lui aurait permis de produire de nouvelles clés filles frauduleuses compatibles avec la clé mère, pour fabriquer des seconds dispositifs frauduleux PME. En revanche, la violation d'un des premiers dispositifs CE par le fraudeur risque de lui donner accès à la clé mère. Le problème que vise à résoudre l'invention est de proposer un procédé du genre cité au début de l'exposé, qui offre une bonne immunité vis-à-vis d'une violation de l'un quelconque des deux dispositifs PME et CE entre lesquels intervient une procédure cryptographique commune. A cet effet, le procédé selon l'invention comprend les étapes consistant à attribuer une première clé mère KC à chacun desdits premiers dispositifs CE, et une seconde clé mère KP à chacun desdits seconds dispositifs PME à å attribuer à chaque premier dispositif CEk, à partir de la seconde clé mère KP relative aux seconds dispositifs PMEi et d'une donnée d'identification ck attribuée à ce premier dispositif CEk, au moins une clé fille KPck ; à attribuer à chaque second dispositif PMEi, à partir de la première clé mère KC relative aux premiers dispositifs CEk et d'une donnée d'identification pi attribuée à ce second dispositif PMEi, au moins une clé fille KCpi, et à chaque fois qu'une procédure cryptographique entre un premier dispositif PMEi et un second dispositif CEk est demandée transmettre, depuis chacun de ces deux dispositifs, la donnée d'identification pi, ck à l'autre dispositif ; élaborer, dans chacun de ces deux dispositifs, une clé fille KPCk, KCpi à partir de la clé mère KP, KC du dispositif considéré et de la donnée d'identification ck, pi reçue de l'autre dispositif ; sélectionner, dans chacun de ces deux dispositifs, la clé fille KCpi, KPck correspondant à la donnée d'identification pi,ck reçue de l'autre dispositif ; et associer les deux clés filles constituées par la clé fille KPck ; KCpi élaborée à l'occasion de cette procédure et la clé fille sélectionnée KCpi ; KPck pour former un couple constituant ladite clé commune K. Ainsi, de façon surprenante, on répartit les données les plus secrètes, c'est-à-dire les clés mères KC,KP dans les premiers et les seconds dispositifs, et ce quelque soit par ailleurs la différence de niveau hiérarchique pouvant exister entre les deux ensembles de dispositifs et liée à l'application considérée (par exemple : entre un serveur de bases de données et un terminal donnant accès à celui-ci , entre une caisse électronique d'un commerçant et un porte-monnaie électronique d'un client). En ce qui concerne la nature des clés détenues par les premiers et seconds dispositifs, ceux-ci présentent le même niveau de sécurité. La violation d'un premier ou d'un second dispositif PMEi permet au mieux au fraudeur de se procurer l'une des clés mères KP, mais pas l'autre KC. Or, dans la mesure où la ou les clés filles KCpi présentes dans ce dispositif PMEi ne sont valables que pour ce dispositif particulier, il ne peut les utiliser pour les mettre dans de nouveaux dispositifs frauduleux mais il lui faudrait au contraire être capable de recréer, pour chaque dispositif frauduleux, les indispensables clés filles KCpi compatibles avec la donnée d'identification pi de ce dispositif. L'invention concerne aussi l'appareil associé à ce procédé. D'autres détails et avantages de l'invention apparaîtront au cours de la description suivante d'une forme de réalisation préférée mais non limitative, en regard des dessins annexés, sur lesquels La figure 1 présente deux clés maîtres KCM et KPM et leur décomposition en plusieurs clés mères La figure 2 présente la façon dont chaque clé mère KPi est elle-même décomposée en plusieurs clés filles KPisj, et la façon dont on attribue à une caisse électronique KC4 plusieurs de ces clés filles La figure 3 présente une famille NO 19 de porte-monnaie dont chaque porte-monnaie possède une clé mère commune KP1g et plusieurs clés filles KCipj, et un groupe NO 4 de caisses électroniques, dont chaque caisse possède une clé mère commune KC4 et plusieurs clés filles KPicj ; et La figure 4 présente un mode de production d'une clé diversifiée Kld à partir d'une clé de base K1 et d'une donnée de diversification E. L'exemple de réalisation présenté prend en considération deux types de dispositifs, le premier étant une caisse électronique CE disposée dans un terminal point de vente d'un commerçant et le second étant un portemonnaie électronique PME constitué d'un objet portatif se présentant sous la forme d'une carte du genre carte bancaire, et distribué à chaque client potentiel. Chaque caisse comme chaque porte-monnaie comprend des moyens de traitement de l'information, par exemple sous la forme d'un microprocesseur associé, sur une même puce, à une mémoire non volatile autoprogrammable et tel que défini par le brevet français NO 2 461 301. Selon la figure 1, on définit deux clés maîtres KCM et KPM se situant à un niveau de sécurité le plus élevé dans la hiérarchie des différentes clés utilisées. Avantageusement, chaque clé maître est double, c'est-à-dire constituée de deux mots 1,2 (de 64 bits par exemple) et donne naissance à plusieurs clés mères elles-mêmes doubles. Ainsi, la clé maître KCM donne naissance à quatre clés mères KC1 à KC4 relatives aux caisses C, tandis que la clé maître KPM donne naissance à 64 clés mères KP1 à KP64 relatives aux porte-monnaie P. Un principe de diversification avantageux, parmi d'autres, est illustré sur la figure 4. Il est basé sur l'utilisation de l'algorithme dit "triple DES" (Data Encryption Standard) dans lequel une donnée de diversification E constitue la variable d'entrée d'un premier algorithme DES, le résultat du calcul constituant la variable d'entrée d'un second algorithme DES-1 inverse du premier, le second résultat de calcul constituant la variable d'entrée d'un troisième algorithme DES identique au premier. L'algorithme DES fait intervenir une clé K11 tandis que l'algorithme DES-1 fait intervenir une clé K12. Avantageusement, K11 et K12 constituent les deux clés simples d'une clé double K1- Elles sont par exemple constituées d'un mot de 64 bits. Le résultat de l'algorithme "triple DES" est une clé K1d diversifiée par rapport à la clé Ksi : à chaque valeur différente de E correspond une clé diversifiée Kld différente. La clé Kld a la même taille que les clés K11 et K12. Les quatre clés mères KC1 à KC4 sont par exemple obtenues selon le procédé de la figure 4 en utilisant, en tant que donnée de diversification E, le numéro d'ordre 1 à 4 de ces clés, et en tant que clé K1, la clé maître KCM. Afin de produire des clés doubles, la clé diversifiée Kld constituant le résultat de calcul est utilisée en tant que donnée de diversification pour un second calcul donnant une deuxième clé diversifiée K2d, la paire de clés Kld, K2d ainsi produite formant la clé double recherchée. Les soixante quatre clés mères KP1 à KP64 sont produites de la même manière. Les clés mères KC1 à KC4 définissent quatre groupes de caisses, L'ensemble des caisses d'un parc de caisses donné comprenant par exemple 100 000 caisses étant réparties dans ces quatre groupes. Comme cela apparaîtra mieux par la suite, le nombre de groupes a été choisi faible car il conditionne directement l'encombrement de la zone mémoire de chaque porte-monnaie affectée au stockage des clés filles. Le classement des différentes caisses dans les différents groupes peut s'effectuer comme suit : on attribue respectivement aux quatre groupes les nombres binaires 00, 01, 10 et 11 et l'on classe dans le groupe 00 toutes les caisses dont les deux bits de poids faible du numéro de série correspondent à ce nombre, et ainsi de suite pour les autres caisses. D'une manière tout à fait similaire, les 64 clés mères KP1 à KP64 définissent 64 familles de porte-monnaie, dix millions de porte-monnaie constituant par exemple le parc de porte-monnaie et étant répartis dans ces différentes familles. La répartition s'effectue en considérant les six bits de poids faible du numéro de série de chaque porte-monnaie. Un tel classement apparaît sur la figure 3 où le groupe de caisses NO 4 défini par la clé mère KC4 contient le quart des caisses, à savoir vingt cinq mille caisses numérotées ici de 1 à 25 000 pour simplifier. De même, la famille de porte-monnaie NO 19 définie par la clé mère KP1g contient une fraction correspondant à 1/64ième de l'ensemble des porte-monnaie, soit approximativement cent cinquante mille porte-monnaie numérotés ici de 1 à 150 000 pour simplifier. La façon dont sont produites les clés filles à partir des clés mères est exposée en regard de la figure 2. Par exemple, la clé mère KP1 est diversifiée en cent mille clés filles KP1c1 à KP1c100 000 en utilisant comme donnée de diversification E le numéro de série des différentes caisses dans sa totalité, numéro qui occupe classiquement quatre à cinq octets. Les clés mères KP2 à KP64 sont diversifiées de la même façon à partir des numéros de série des caisses. Pour la diversification, on utilise avantageusement le procédé de la figure 4 basé sur l'algorithme "triple DES" dans lequel les clés K11 et K12 correspondent respectivement aux deux clés simples constituant chaque clé mère KPi. La diversification des clés mères KC1 à KC4 s'effectue de façon comparable, à partir des numéros de série des différents porte-monnaie, pour produire des clés filles KC1pl à KClplO 000 000 jusqu'à KC4p1 à KC4p10 000 000. On expose maintenant la façon dont on personnalise chaque caisse et chaque porte-monnaie en lui attribuant un jeu unique de clés. La caisse NO k, qui fait par exemple partie du groupe de caisses N04 (figure 3), comprend tout d'abord une clé mère KC4 qui est celle du groupe. Elle comprend ensuite 64 clés filles KP1ck à KP64ck. Ce jeu de clé filles a été constitué comme représenté sur la partie droite de la figure 2 : on a prélevé, dans chacun des 64 jeux de clés filles issues des 64 clés mères KP1 à KP64 relatives aux familles de porte-monnaie, uniquement la clé fille portant l'indice ck. Au total, la caisse NO k possède donc un jeu de 65 clés, dont l'une est une clé mère double et les autres sont des clés filles simples. La figure 3 précise aussi le contenu des jeux de clés pour les caisses NO 1 à 25 000 du même groupe. On procède d'une manière similaire pour constituer le jeu de clés de chaque porte-monnaie. Par exemple, le porte-monnaie NO i comprend la clé mère KPIS et les quatre clés filles KC1pi à KC4pi. En comparant le contenu du jeu de clés d'un porte-monnaie NOi et d'une caisse NOk, on observe tout d'abord que chacun ne contient qu'une seule clé mère , respectivement KP1g et KC4, qui est bien relative au type de dispositif concerné, à savoir un porte-monnaie P et une caisse C. On ne retrouve donc pas dans un même jeu de clés une clé mère KPi et une clé mère KCk, c'est-à-dire des clés dérivant directement de la clé maître KPM et des clés dérivant directement de la clé maître KCM. En revanche, chaque jeu de clés d'un premier type de dispositif contient des clés filles qui émanent toutes d'une clé mère du second type de dispositif, la clé mère étant différente pour chaque clé fille : ainsi, le portemonnaie NO i contient quatre clés filles Ka1 pi à KC4pi issues des clés mères KC1 à KC4 relatives aux caisses ; de même, la caisse NO k contient soixante quatre clés filles KPlck à KP64ck. L'utilisation de ces différentes clés va maintenant être exposée en relation avec l'application particulière du porte-monnaie électronique. Dans une telle application, la prise en compte d'une transaction consiste à débiter un certain montant sur le porte-monnaie et à créditer la caisse du commerçant concerné de ce même montant. Pour des raisons de sécurité, on impose que le crédit de la caisse ne puisse s'effectuer qu'après le débit du portemonnaie, de façon à empêcher une création illicite de monnaie électronique aux dépens de l'organisme émetteur du porte-monnaie. A cet effet, chaque porte-monnaie est agencé pour générer, à chaque transaction effectuée auprès d'une caisse donnée, un certificat de débit qui est la signature S d'un message M constitué d'informations relatives à la transaction considérée (identification du client, date, montant, etc...). La signature du message est le résultat d'un calcul effectué par un algorithme déterminé F et utilisant comme données d'entrée le message et une clé K. Quant à la caisse, elle vérifie l'authenticité de la signature S transmise par le porte-monnaie. Si l'algorithme F est du type symétrique, cette vérification nécessitera la même clé K. En cas de confirmation de la signature, la caisse pourra enregistrer le crédit correspondant à la transaction. De façon très avantageuse, on calcule la clé K à partir de deux clés filles, I'une KC4pi dérivant de la clé mère KC4 de la caisse NOk considérée et diversifiée avec le numéro du porte-monnaie considéré, L'autre KPi9ck dérivant de façon symétrique de la clé mère KP19 du porte monnaie NO i et diversifiée avec le numéro k de la caisse. Par exemple, en référence à la figure 4, les deux clés filles KC4pi et KP1gCk constituent les deux clés K11 et K12, et un aléa, qui est fonction du couple (caisse, porte-monnaie) et toujours différent d'une session à l'autre, constitue la donnée de diversification E : une clé de session simple Ks est alors constituée par le résultat Kld du calcul. Ce calcul est effectué à la fois dans la caisse et dans le porte-monnaie. Si l'on souhaite obtenir une clé de session double, on peut par exemple effectuer à nouveau le calcul de la figure 4 en utilisant cette fois, en tant que donnée de diversification E, la clé de session simple K5 déjà calculée. On va maintenant exposer la façon dont les clés filles KC4pi et KP19ck sont mises à disposition dans la caisse NOk et dans le porte-monnaie NO i. A l'occasion d'une transaction, la caisse NOk et le porte-monnaie NOi identifient mutuellement en s'échangeant leurs numéros de série respectifs pi, ck. Le porte-monnaie calcule alors, grâce à sa clé mère KP1g et au numéro de série ck, une clé fille KP19ck selon la procédure décrite précédemment (voir les flèches correspondantes sur la figure 3). De même, la caisse calcule, grâce à sa clé mère KC4 et au numéro de série pi, une clé fille KC4pi. De plus, le porte-monnaie N01 identifie, à partir des deux bits de poids faible du numéro de série ck de la caisse, le numéro de groupe 4 auquel celle-ci appartient et va rechercher, dans sa mémoire, la clé fille KC4pi relative à ce groupe. La caisse NOk procède de la même façon pour sélectionner sa clé fille KP1gCk. Le porte-monnaie et la caisse calculent alors, chacun à partir du couple commun KP1gCk, KC4pi, la clé de session Ks. A supposer qu'un fraudeur s'empare d'un porte-monnaie NOi et arrive à en extraire le jeu de clés, il aura à sa disposition la clé mère KP19 lui permettant de générer la clé fille KP19ck, quelque soit la caisse nok à laquelle il veut accéder. En revanche, il ne pourra pas réutiliser le jeu des clés filles KClpi à KC4pi pour l'insérer dans un lot de porte-monnaie frauduleux : en effet, ces clés sont spécifiques du porte-monnaie NOi. II lui faudrait être capable de créer de nouvelles clés filles KClpj à KC4pj adaptées à de nouveaux numéros d'identification de porte-monnaie pj . il serait nécessaire pour cela qu'il viole les différentes caisses pour en extraire les clés mères KC1 à KC4. Selon une forme de réalisation moins avantageuse de l'invention, on ne définit qu'une seule famille de porte-monnaie et/ou qu'un seul groupe de caisses. Dans ce cas, chaque porte-monnaie et/ou caisse contient la clé mère unique de la famille ou du groupe et une seule clé fille dérivée de l'autre clé mère. Selon une autre variante de l'invention, on utilise une seule clé maître pour générer toutes les clés mères des porte-monnaie et des caisses. Dans ce cas, on s'assure que les clés mères sont bien différentes pour les portemonnaie et les caisses. On peut par exemple, prendre en compte les six bits de poids faible des numéros de série des porte-monnaie pour générer leurs clés mères, et les deux bits de poids fort des numéros de série des caisses pour générer leurs clés mères, les bits sélectionnés occupant, dans la donnée de diversification E, le même rang. Selon une autre variante de l'invention, on ne calcule pas de clé de session Ks à partir des deux clés filles KC4pi et KP1gck sélectionnées par le portemonnaie et la caisse, mais on utilise directement cette paire de clés filles pour la procédure cryptographique commune. Selon une autre variante non préférée de l'invention, la donnée d'identification d'un quelconque dispositif (porte-monnaie ou caisse) est constituée par le numéro d'ordre de la famille ou du groupe auquel il appartient, plutôt que par un numéro propre à ce dispositif. L'invention s'applique à tous les niveaux de la hiérarchie d'un système quelconque de délivrance de biens ou de services, d'accès à des bases de données, d'échange de données privé ou public : I'invention servira à gérer aussi bien le dialogue entre l'autorité suprême du système et l'ensemble de dispositifs coopérant directement avec celle-ci, que le dialogue entre deux ensembles de dispositifs de niveau intermédiaire, ou encore au niveau le plus bas avec l'interlocuteur final. L'invention s'appliquera dans toute procédure nécessitant la détention, par les deux dispositifs ayant à dialoguer ensemble, d'une clé commune, par exemple pour protéger par chiffrement la transmission de données sensibles, pour la génération d'un certificat de transaction ou d'une signature de message, etc... REVENDICATIONS: 1. Procédé pour produire une clé commune (K) attribuée à un quelconque dispositif (CEk) d'un ensemble de premiers dispositifs (CE) et à un quelconque dispositif (PMEi) d'un ensemble de seconds dispositifs (PME) pour que ces deux dispositifs mettent en oeuvre une procédure cryptographique commune, caractérisé en ce qu'il comprend les étapes consistant à - attribuer une première clé mère (KC) à chacun desdits premiers dispositifs (CE), et une seconde clé mère (KP) à chacun desdits seconds dispositifs (PME) - attribuer à chaque premier dispositif (CEk), à partir de la seconde clé mère (KP) relative aux seconds dispositifs (PMEi) et d'une donnée d'identification (ck) attribuée à ce premier dispositif (CEk), au moins une clé fille (KPck) - attribuer à chaque second dispositif (PMEi), à partir de la première clé mère (KC) relative aux premiers dispositifs (CEk) et d'une donnée d'identification (pi) attribuée à ce second dispositif (PMEi), au moins une clé fille (KCpi), et à chaque fois qu'une procédure cryptographique entre une premier dispositif (PMEi) et un second dispositif (CEk) est demandée - transmettre, depuis chacun de ces deux dispositifs, la donnée d'identification (pi, ck) à l'autre dispositif - élaborer, dans chacun de ces deux dispositifs, une clé fille (KPCk, KCpi) à partir de la clé mère (KP, KC) du dispositif considéré et de la donnée d'identification (ck, pi) reçue de l'autre dispositif - sélectionner, dans chacun de ces deux dispositifs, la clé fille (KCpi, KPck) correspondant à la donnée d'identification (pi,ck) reçue de l'autre dispositif ; et - associer les deux clés filles constituées par la clé fille (KPck ; KCpi) élaborée à l'occasion de cette procédure et la clé fille sélectionnée (KCpi KPck) pour former un couple constituant ladite clé commune (K). 2. Procédé selon la revendication 1, consistant en outre à - définir plusieurs groupes (1 à 4) de premiers dispositifs (CE) et plusieurs familles (1 à 64) de seconds dispositifs (PME) - affecter à chaque groupe ou famille une clé mère différente (KCg ; KPf), chaque dispositif du groupe ou de la famille possédant en tant que clé mère celle du groupe ou de la famille - définir dans chaque premier dispositif (CEk), à partir des clés mères (KPf) relatives aux seconds dispositifs, et de sa donnée d'identification (ck), plusieurs clés filles (KPgck) - définir dans chaque second dispositif (PMEi), à partir des clés mères (KCg) relatives aux premiers dispositifs et de sa donnée d'identification (pi), plusieurs clés filles (KCgpi); et - sélectionner, dans les premier et second dispositifs et parmi l'ensemble des clés filles détenues (KPfck ; KCgpi > , celle (KP1gCkt KC4pi) dont la clé mère (KPi9, KC4) correspond à la clé mère détenue par l'autre dispositif. 3. Procédé selon la revendication 1 ou 2, consistant en outre à attribuer à chaque dispositif d'un ensemble de dispositifs une donnée d'identification différente. 4. Procédé selon l'une quelconque des revendications précédentes, consistant en outre à élaborer les premières (KCg) et secondes (KPf) clés mères à partir de deux clés maîtres respectives (KCM, KPM) différentes. 5. Procédé selon l'une quelconque des revendications précédentes, consistant en outre à utiliser, pour élaborer les différentes clés précitées, un algorithme mettant en oeuvre deux clés (Kil, Ksi 2) constituées selon le cas d'une clé maître ou clé mère double, ou dudit couple commun de clés filles. 6. Appareil pour gérer des transactions ou la délivrance de services et comprenant un ensemble de premiers dispositifs (CE) et un ensemble de seconds dispositifs (PME), un quelconque premier dispositif étant agencé pour échanger des transactions ou services avec un quelconque second dispositif en mettant en oeuvre une procédure cryptographique commune au moyen d'une clé de session (Ks) commune à ces deux dispositifs, caractérisé en ce que - chacun desdits dispositifs (CE, PME) comprend une mémoire dans laquelle est enregistrée une première clé mère (KC) pour ce qui concerne les premiers dispositifs (CE), et une seconde clé mère (KP) pour ce qui concerne les seconds dispositifs (PME); - la mémoire de chaque premier dispositif (CEk) contient aussi au moins une clé fille (KPck) définie à partir de la seconde clé mère (KP) relative aux seconds dispositifs (PMEi) et d'une donnée d'identification (ck) attribuée à ce premier dispositif (CEk); - la mémoire de chaque second dispositif (PMEi) contient aussi au moins une clé fille (KCpi) définie à partir de la première clé mère (KC) relative aux premiers dispositifs (CEk) et d'une donnée d'identification (pi) attribuée à ce second dispositif (PMEi) ; - chaque dispositif (CEk, PMEi) comprend des moyens pour échanger sa donnée d'identification (pi, ck) avec un quelconque dispositif avec lequel une procédure cryptographique commune doit être mise en oeuvre, et des moyens de traitement pour élaborer une clé fille (KPck, KCpi) à partir de sa clé mère (KP, KC) et de la donnée d'identification reçue de l'autre dispositif, sélectionner dans sa mémoire la clé fille (KCpil KPck) correspondant à la donnée d'identification (pi,ck) reçue de l'autre dispositif ; et associer les deux clés filles constituées par la clé fille (KPck ; KCpi) élaborée à l'occasion de cette procédure et la clé fille sélectionnée (KCpi KPck) pour former un couple constituant ladite clé commune (K). 7. Appareil selon la revendication 6, dans lequel chaque premier dispositif (CE) est une caisse électronique disposée dans un terminal point de vente et chaque second dispositif (PME) est un porte-monnaie électronique constitué d'un objet portatif et attribué à un client potentiel, le portemonnaie étant agencé pour calculer un certificat de débit à partir de données caractérisant la transaction ou le service considéré et au moyen d'un algorithme déterminé utilisant, en tant que clé, ladite clé commune (K), ce certificat étant transmis à la caisse électronique qui vérifie l'authenticité de ce certificat au moyen d'un algorithme déterminé utilisant, en tant que clé, ladite clé commune (K).