Brevet FR3042626A1 — publié le 20170421

DOMAINE DE L'INVENTION La présente invention concerne le domaine des circuits intégrés électroniques et plus particulièrement un procédé et un système d'accès à des services mis en oeuvre dans de tels circuits intégrés. CONTEXTE DE L'INVENTION Les circuits intégrés électroniques sont, de nos jours, mis en oeuvre dans de nombreux dispositifs électroniques. On connaît notamment les circuits intégrés formant puce électronique de carte à puce, cartes mémoire, clé USB, etc. La fabrication d'un circuit intégré s'effectue généralement dans un premier site ou unité de fabrication (généralement une usine) où le circuit est élaboré sur une tranche de silicium (ou wafer). Puis lorsque celui-ci doit être personnalisé ou pré-personnalisé, cette opération est réalisée dans un deuxième site ou unité de personnalisation (ou plusieurs autres sites) où le circuit intégré ainsi élaboré est (pré)personnalisé par des données numériques eu égard aux fonctions qu'il devra remplir. Dans la suite de ce document, le terme "personnalisation" sera généralement compris comme étant celui utilisé couramment par l'homme du métier dans l'industrie des cartes à microcircuit, ou tel que défini par W. Rankl et W. Effing dans le document "Smart Card Handbook, Second Edition, Ed. John Wiley & Sons, Ltd' de la façon suivante : "Le terme personnalisation, dans son sens le plus large, signifie que les données spécifiques à une carte ou à une personne sont entrées dans la carte. Ces données peuvent par exemple être un nom, une adresse, mais aussi des clefs associées à la carte. La seule chose qui importe est que ces données soient spécifiques à cette carte." Par extension, la pré-personnalisation des circuits intégrés consiste en des opérations similaires sauf que les données entrées dans ces circuits intégrés sont communes à un lot de circuits intégrés ou à un type d'entité (par exemple les cartes à puces). Il s'agit par exemple de données de configuration de programmes contenus dans une mémoire morte ROM qui visent à déterminer un comportement ou un 3042626 2 fonctionnement commun à tous ces circuits intégrés du même lot ou du même type d'entité. Pour des raisons sécuritaires, les circuits intégrés, lorsqu'ils sortent des sites de fabrication, doivent contenir une clé dite de transport propre à chaque circuit 5 intégré, afin de prévenir tout accès non souhaité aux mémoires, généralement EEPROM ("Electrically-Erasable Programmable Read-Only Memory' ou mémoire morte effaçable électriquement et programmable), qu'ils contiennent. Cette clé de transport est alors utilisée lors d'un contrôle d'authentification préalable à la pré-personnalisation ou personnalisation du circuit intégré avec accès à ces mémoires. 10 Cette clé de transport peut ainsi être vue comme étant une clé d'authentification. Une clé d'authentification peut également être utilisée pour accéder à d'autres services que ceux évoqués précédemment, à savoir les services de personnalisation ou pré-personnalisation des cartes. Le brevet FR 2 960 327 décrit un procédé d'accès à un service dans un 15 circuit intégré, qui comprend : une étape d'authentification, par un dispositif d'accès externe au circuit intégré, dudit circuit intégré en utilisant une clé personnelle d'authentification propre audit circuit intégré et mémorisée dans le circuit intégré, ladite clé personnelle d'authentification étant générée par une première diversification d'une clé racine en une clé intermédiaire, suivie d'une deuxième diversification de la clé 20 intermédiaire en la clé personnelle d'authentification ; puis en cas d'authentification réussie, une étape d'accès au service dans le circuit intégré, et notamment à un service de personnalisation du circuit intégré. Dans ce document, la première diversification permet de générer une clé intermédiaire commune à un lot de cartes, à partir d'un secret initial, la clé racine. 25 L'usage de plusieurs clés intermédiaires par lots permet de garantir l'indépendance de la production vis-à-vis des lots : comme l'opération de dérivation n'est pas inversible, la divulgation d'une clé intermédiaire ou d'une clé personnelle de circuit ne compromet pas le secret dont elle est issue, à savoir le secret initial ou la clé intermédiaire commune à un lot. 30 La deuxième diversification permet de générer la clé personnelle d'authentification à partir d'un identifiant propre à chaque circuit pour un lot donné. Ce schéma de diversification en deux étapes est illustré en figure 1. 3042626 3 RESUME DE L'INVENTION L'approche proposée dans le document FR 2 960 327 ne tient pas compte de différents niveaux d'accès que l'on pourrait affecter à une pluralité de services qu'une carte ou puce peut proposer sur authentification. 5 Les services peuvent regrouper différentes fonctionnalités ou fonctions disponibles dans une carte, notamment des fonctionnalités dégradées les unes par rapport aux autres (ajouts de fonctions de lecture et/ou écriture en mémoire). A titre d'exemple, différents services de personnalisation peuvent proposer d'agir différemment sur des mêmes paramètres de personnalisation (taille de mémoire 10 disponible) ou d'agir sur des paramètres distincts de personnalisation (autorisation ou non d'écrire dans certaines parties de mémoire, etc.). Utiliser la clé personnelle d'authentification obtenue dans le document FR 2 960 327 pour accéder à l'ensemble des services n'apparaît pas sécurisé, car on recherche classiquement à fournir différents droits d'accès. 15 L'approche intuitive de prévoir une clé racine par service pour en dériver une clé personnelle d'authentification dédiée audit service pour chaque carte n'apparaît pas entièrement satisfaisante. Cette approche est illustrée schématiquement en figure 2 pour N services, et donc N clés racines (secrets initiaux). En effet, le nombre de références à des secrets initiaux qu'un module de 20 sécurité matérielle HSM ("Hardware Security Module") pour circuits intégrés devrait gérer croît alors proportionnellement au nombre de services proposés, et augmente donc lorsque de nouveaux services sont proposés. Il en résulte un volume de gestion (transfert de clés, stockage, accès, ...) qui peut être important. Afin d'améliorer cette situation, l'invention prévoit en outre que la première 25 ou deuxième diversification comprend une opération de diversification de la clé racine ou intermédiaire à partir d'une information unique associée audit service à accéder. Ainsi il est possible d'utiliser un seul secret initial (clé racine) pour aboutir à une pluralité de clés personnelles dédiées à une pluralité de services au sein d'un même circuit intégré. Le nombre de références à un secret initial peut ainsi être 30 contrôlé et réduit. Corrélativement, l'invention concerne également un système d'accès à un service dans un circuit intégré, comprenant un dispositif d'accès externe au circuit intégré, ledit dispositif d'accès comprenant des instructions de code qui lorsqu'elles sont exécutées par un processeur conduisent le dispositif d'accès à effectuer les étapes suivantes : 3042626 4 une étape d'authentification dudit circuit intégré en utilisant une clé personnelle d'authentification propre audit circuit intégré et mémorisée dans le circuit intégré, ladite clé personnelle d'authentification étant générée par une première diversification d'une clé racine en une clé intermédiaire, suivie d'une deuxième 5 diversification de la clé intermédiaire en la clé personnelle d'authentification ; en cas d'authentification réussie, une étape d'accès au service dans le circuit intégré ; caractérisé en ce que la première ou deuxième diversification comprend une opération de diversification de la clé racine ou intermédiaire à partir d'une 10 information unique associée audit service à accéder. Le système présente des avantages similaires à ceux du procédé évoqué précédemment. En particulier, le système peut comprendre des moyens se rapportant aux caractéristiques du procédé exposées par la suite. Des caractéristiques optionnelles du procédé selon l'invention sont par 15 ailleurs définies dans les revendications dépendantes. Le système selon l'invention peut également comprendre des moyens configurés pour mettre en oeuvre ces caractéristiques optionnelles. Dans un mode de réalisation principal, l'opération de diversification à partir de ladite information unique associée audit service à accéder est incluse dans la 20 première diversification diversifiant la clé racine en une clé intermédiaire. Cela permet d'obtenir simplement des clés intermédiaires dédiées à des services respectifs, à partir d'un unique secret initial. Bien entendu, une variante envisageable est celle où cette opération de diversification est réalisée lors de la deuxième diversification. 25 Dans un mode de réalisation particulier, la première diversification de la clé racine en la clé intermédiaire comprend, en outre, une opération de diversification de la clé racine à partir d'un identifiant de lot constitué d'une pluralité de circuit intégrés. Ainsi, une mise en oeuvre de l'invention permet d'obtenir, par ladite première diversification, des clés intermédiaires dédiées à plusieurs services, pour un même lot 30 de cartes. Cette disposition est particulièrement adaptée à un processus de production de circuits intégrés par lots, évitant de gérer plusieurs secrets initiaux. Selon une caractéristique particulière, l'identifiant de lot constitue une première sous-partie d'un numéro de série du circuit intégré. Selon le choix de la première sous-partie, cette disposition permet d'obtenir des clés intermédiaires 35 opérationnelles pour un sous-ensemble des circuits intégrés fabriqués. On peut ainsi 3042626 5 faire correspondre une clé intermédiaire à un tiers manipulant un sous-ensemble des circuits intégrés fabriqués pour un service donné. Ce tiers n'a ainsi aucune connaissance de la clé racine et/ou des autres clés intermédiaires qui sont opérationnelles pour des circuits intégrés qu'il ne manipule pas ainsi que de la clé 5 racine et/ou des autres clés intermédiaires qui sont opérationnelles pour d'autres services. Selon cette disposition, ladite première sous-partie du numéro de série est commune à une pluralité de circuits intégrés (formant le lot). Elle peut par exemple comprendre une information de numéro de lot de wafers ou de numéro de wafer sur 10 lequel sont construits les circuits intégrés. Il s'agit ainsi d'un lot de circuits intégrés fabriqués ensembles. La clé intermédiaire générée correspond ainsi à ce lot de wafers ou à ce wafer particulier. Selon une autre caractéristique particulière, la deuxième diversification 15 diversifiant la clé intermédiaire en la clé personnelle comprend une opération de diversification de ladite clé intermédiaire à partir d'une deuxième sous-partie, distincte de la première sous-partie, du numéro de série du circuit intégré. En particulier, ladite deuxième sous-partie du numéro de série identifie le circuit intégré à l'intérieur du lot de circuits intégrés identifié par ladite première sous- 20 partie. Il peut par exemple s'agir de la position du circuit intégré sur un wafer ou dans un lot de wafers. On peut ainsi, par diversification d'une clé, individualiser la clé d'authentification pour chaque circuit intégré fabriqué. Notamment, lesdites première et deuxième sous-parties du numéro de série sont complémentaires dans ledit numéro de série unique, c'est-à-dire qu'elles 25 forment à elles deux (en concaténation par exemple) l'ensemble du numéro de série unique. En appliquant ces diverses particularités, un système conforme à l'invention peut ainsi être configuré pour, lors de la première diversification, diversifier la clé racine en une clé intermédiaire à partir de ladite information unique associée 30 audit service à accéder et à partir d'un identifiant de lot constitué d'une pluralité de circuit intégrés ; et pour, lors de la deuxième diversification, diversifier la clé intermédiaire ainsi obtenue en la clé personnelle à partir d'un numéro de série du circuit intégré. A noter que la diversification par lot peut être rendue optionnelle en 35 considérant un lot groupant l'intégralité des circuits intégrés considérés. 3042626 6 Dans un mode de réalisation, le numéro de série unique du circuit intégré est mémorisé en mémoire non volatile du circuit intégré. Cela permet d'effectuer la ou les diversifications au sein même du circuit intégré. Dans un mode de réalisation, la deuxième diversification de la clé 5 intermédiaire en la clé personnelle d'authentification comprend une opération de diversification de la clé intermédiaire à partir d'un numéro de série unique (ou donnée unique d'identification) du circuit intégré. Dans un mode de réalisation, l'accès au service comprend la personnalisation du circuit intégré à l'aide de données spécifiques audit circuit intégré. 10 Une application préférée de l'invention est ainsi le contrôle de l'accès aux services de personnalisation ou pré-personnalisation des cartes à puce ou équivalents. Dans un mode de réalisation, le procédé comprend une étape de fabrication du circuit intégré au niveau d'un site de fabrication et une étape de réception, par ledit site de fabrication, de la clé racine ou d'une ou des clés 15 intermédiaires éventuellement associées à des services en provenance du site central, et ladite fabrication comprend une étape de génération de clés personnelles d'authentification associées à des services dans le circuit intégré, par diversification de ladite clé racine ou de la ou des clés intermédiaires à l'aide desdites étapes de 20 diversification et une étape d'enregistrement desdites clés personnelles d'authentification dans une mémoire non volatile dudit circuit intégré. Ainsi, au sortir du site de fabrication, tous les circuits intégrés contiennent leurs propres clés d'authentification associées respectivement aux services qu'ils proposent). 25 Dans une variante, le procédé comprend une étape de fabrication du circuit intégré au niveau d'un site de fabrication et une étape de réception, par ledit site de fabrication, de la clé racine ou d'une ou des clés intermédiaires éventuellement associées à des services en provenance du site central, et ladite fabrication comprend une étape d'enregistrement de ladite clé racine 30 ou de la ou des clés intermédiaires éventuellement associées à des services dans une mémoire non volatile dudit circuit intégré. Cette disposition permet de simplifier les opérations relatives aux clés secrètes réalisées par le fondeur/fabriquant des circuits intégrés, car il n'a plus à générer les clés personnelles d'authentification propres à chaque circuit et chaque 35 service et ne manipule désormais plus qu'une seule clé, la clé racine, pour un plus ou 3042626 7 moins grand nombre de circuits intégrés fabriqués simultanément, et cela quel que soit le nombre de services proposés. Les coûts opérationnels et les risques liés à la manipulation des clés secrètes sont ainsi réduits pour le fondeur. 5 Selon une caractéristique particulière, le procédé comprend une étape consistant à générer, au sein du circuit intégré et en réponse à un premier signal reçu par le circuit intégré, lesdites clés personnelles d'authentification associées aux services que le circuit intégré propose par diversification de la clé enregistrée (racine ou intermédiaires). 10 Cette diversification met en oeuvre, bien entendu si nécessaire, les deux étapes de diversification. Cette génération en interne accroît, par ailleurs, la confidentialité des clés personnelles d'authentification car leurs valeurs ne sont pas connues des organes externes (journal, fondeur, etc.). 15 En particulier, le procédé comprend des étapes consistant à : - effacer la clé racine ou les clés intermédiaires enregistrées de la mémoire non volatile; et - enregistrer lesdites clés personnelles d'authentification (ainsi générées) dans la mémoire non volatile du circuit intégré (une par service proposé). 20 Notamment, ledit effacement peut être réalisé par écrasement en mémoire de la clé racine ou des clés intermédiaires enregistrées par les clés personnelles d'authentification générées. La mémorisation des clés d'authentification permet de réaliser l'authentification lors des accès à un service particulier, par exemple pour un mode de 25 personnalisation, au circuit intégré. L'écrasement garantit, quant à lui, qu'en possession de ce circuit intégré, une personne mal intentionnée ne puisse récupérer la clé racine ou les clés intermédiaires à des fins de réutilisation malveillante. Dans un mode de réalisation déjà évoqué, les clés personnelles 30 d'authentification sont obtenues par diversification de la clé racine à partir d'un numéro de série unique du circuit intégré stockée dans ladite mémoire non volatile du circuit intégré ainsi que d'autant d'identifiants que de services proposés. A noter que l'enregistrement de ce numéro de série ainsi que des identifiants des services peut avoir lieu au niveau du site de fabrication, en même temps que l'enregistrement de la 35 clé racine. 3042626 8 Ainsi, la génération des clés personnelles d'authentification peut être menée de façon autonome par le circuit intégré lui-même, sans nécessiter une information provenant de l'extérieur du circuit intégré. Le numéro de série unique du circuit intégré peut notamment comprendre 5 un identifiant d'un lot de tranches de silicium ou d'une tranche de silicium sur laquelle est élaboré ledit circuit intégré, et comprendre une identification (un identifiant ou des coordonnées spatiales) dudit circuit intégré à l'intérieur dudit lot ou de la tranche. Dans un mode de réalisation de l'invention, ledit premier signal est un premier signal analogique de mise sous tension du circuit intégré. Il s'agit 10 généralement de la première mise sous tension de test par un équipement de test sur le site de fabrication avant livraison à un site de personnalisation, afin de savoir si le circuit intégré est opérationnel ou destiné au rebut. Cette disposition permet de générer les clés personnelles d'authentification avant toute intervention sur le circuit intégré. Du fait de la présence de tests sur le site 15 de fabrication, cette disposition conduit à ce que les circuits intégrés, lorsqu'ils sont livrés pour le personnaliser, contiennent déjà leur(s) clé(s) personnelle(s) de transport, différente pour chaque circuit intégré et éventuellement pour chaque service proposé. On évite ainsi que la seule connaissance de la clé racine soit susceptible de donner l'accès à toutes les cartes ayant cette clé racine en commun. 20 En variante, ledit premier signal est un premier signal numérique, c'est-à- dire contenant des informations numériques. Cela permet de générer les clés personnelles d'authentification uniquement lorsque les moyens de traitement numérique du circuit intégré (le processeur ou microcontrôleur) sont sollicités. Généralement, ce premier accès par signal numérique est réalisé lors de la première 25 tentative de personnalisation du circuit intégré. Ainsi, dans cette configuration, les délais d'attente correspondant à la (sous)-diversification de la clé racine ou des clés intermédiaires pour obtenir les clés personnelles d'authentification fonction des services proposés sont déportés hors du site de fabrication. Ceci permet d'éviter toute attente au niveau de ce site. 30 En outre, étant donné que les traitements de signaux analogiques (site de fabrication) sont plus brefs que ceux des signaux numériques (généralement au site de personnalisation), cette disposition rend la génération des clés d'authentification quasi-transparente eu égard au délai de traitement d'un tel signal numérique. En particulier, le premier signal numérique est une première instruction de 35 commande, par exemple de type APDU envoyée par le dispositif d'accès et par 3042626 9 exemple lors de la première tentative d'accès pour personnalisation du circuit intégré. Une instruction de commande a notamment pour fonction de faire exécuter une action au circuit intégré, en appelant un programme (le système d'exploitation par exemple) déjà mémorisé dans le circuit intégré. 5 Selon une caractéristique particulière, le procédé comprend, à réception dudit premier signal par le circuit intégré, une étape d'écriture, dans une mémoire non volatile programmable qu'une seule fois (type PROM Programmable Read Only Memory ou OTP One Time Programmable), d'une information indiquant qu'un premier signal a déjà été reçu. 10 Grâce à cette information (par exemple un drapeau ou tout autre indicateur binaire), le circuit intégré a connaissance, à moindre coût, de la réalisation déjà effectuée de la diversification de la clé enregistrée pour obtenir sa personnelle clé d'authentification. L'inscription de cette information dans une mémoire programmable qu'une 15 seule fois garantit, en outre, qu'aucune action malveillante ne puisse entraîner une nouvelle réalisation de la diversification de la ou des clés enregistrées par le circuit intégré. Ainsi, dans ce cas, le procédé peut comprendre, à réception d'un signal (de même nature que ledit premier signal) et préalablement au déclenchement de la 20 génération de clés personnelles d'authentification, une étape de détermination de la présence, en mémoire non volatile programmable qu'une seule fois, d'une information indiquant qu'un premier signal a déjà été reçu. Ainsi, le circuit intégré est apte à bloquer, de façon efficace, une nouvelle génération des clés personnelles d'authentification si celle-ci a déjà été réalisée. 25 Selon une caractéristique particulière, ladite écriture de l'information qu'un premier signal a déjà été reçu est postérieure à une étape d'enregistrement des clés personnelles d'authentification dans la mémoire non volatile du circuit intégré. Cette disposition protège le circuit intégré de certains problèmes pouvant résulter de la coupure d'alimentation de celui-ci avant la fin de la génération interne par 30 diversification. En effet, l'information d'un premier accès déjà réalisé est ainsi inscrite en mémoire uniquement lorsque les clés personnelles d'authentification (une par service proposé) ont bien été générées. Bien entendu, des variantes peuvent être prévues, telle que l'inscription de cette information préalablement à la génération par diversification. 3042626 10 Selon une autre caractéristique particulière, ledit circuit intégré transmet, à un dispositif externe et postérieurement à une étape d'enregistrement des clés personnelles d'authentification dans la mémoire non volatile du circuit intégré, une réponse audit premier signal. Bien entendu, ce dispositif externe est notamment celui 5 ayant généré ledit premier signal à l'attention du circuit intégré. Il peut s'agir en particulier dudit dispositif d'accès lorsque celui-ci est utilisé, par exemple, pour effectuer la toute première personnalisation du circuit intégré. Cette disposition permet d'ajuster la réponse en fonction du succès ou non de l'étape de génération par diversification. Ainsi, une éventuelle erreur peut être 10 remontée au dispositif externe afin, par exemple, de mettre le circuit intégré au rebut. En particulier, ledit dispositif externe attend une réponse audit premier signal pendant au moins 50 ms (millisecondes) avant de générer une erreur, notamment au moins 100 ms, de préférence au moins 250 ms. La génération par diversification introduit des délais supplémentaires de traitement par rapport aux 15 traitements des premiers signaux. Cette disposition assure ainsi que ces délais de génération sont pris en compte au niveau des dispositifs de test et/ou de personnalisation du circuit intégré. Dans un mode de réalisation, une même clé racine ou intermédiaire est enregistrée dans une pluralité de circuits intégrés fabriqués sur une même tranche de 20 silicium, au niveau du site de fabrication. Cette disposition permet au fondeur, fabricant des circuits intégrés, de ne manipuler qu'un nombre réduit de clés racines/intermédiaires pour tous les circuits d'une même tranche de silicium (wafer) ou d'un même lot. A noter qu'une même clé racine/intermédiaire peut être utilisée pour un lot entier de tranches de silicium. 25 Par ailleurs, l'étape d'enregistrement de la clé racine ou de la ou des clés intermédiaires en mémoire non volatile peut comprendre une étape d'accès direct à ladite mémoire non volatile, c'est-à-dire sans passer par le processeur ou une interface de communication classique du circuit intégré, et une étape d'écriture de ladite clé racine ou de la ou des clés intermédiaires dans la mémoire lors de cet accès direct. 30 Cet accès direct permet d'éviter la détection d'une anomalie si le circuit intégré est mis sous tension sans détenir la clé racine et que des moyens de détection d'une anomalie sur les clés secrètes équipent ce circuit. Selon divers aspects, l'étape d'authentification peut comprendre : - une authentification du circuit intégré par le dispositif d'accès; 35 - une authentification du dispositif d'accès par le circuit intégré; ou 3042626 11 - une authentification mutuelle regroupant les deux authentifications précitées. Chaque authentification peut être de type challenge-response. Notamment, le procédé peut comprendre des étapes de personnalisation 5 d'une pluralité de circuits intégrés au niveau d'un site distinct de pré-personnalisation ou personnalisation, ces étapes de personnalisation étant précédées d'authentifications au cours desquelles on obtient le numéro de série d'un circuit intégré correspondant par envoi d'une commande à ce circuit intégré, on diversifie ladite clé racine à partir du numéro de série obtenu et d'un identifiant du service de 10 personnalisation souhaité, et on réalise une authentification, de préférence mutuelle, à partir de cette clé racine ente le circuit intégré et un dispositif de personnalisation. Selon une caractéristique de l'invention, le procédé comprend le montage dudit circuit intégré dans un corps de carte conforme à la norme ISO 7816. Bien entendu, le circuit intégré peut également être monté sur un module de dispositif sans 15 contact conforme à la norme ISO 14443. Des dispositifs conformes à l'une de ces normes peuvent notamment revêtir la forme d'une carte au format ID1, d'un passeport biométrique, d'une clé USB, d'une mémoire de stockage type microSD, etc. Selon une autre caractéristique de l'invention, ladite diversification de la clé 20 racine met en oeuvre une fonction de hachage, par exemple SHA-256 ("Secure Hash Algorithm" produisant un résultat ou hash sur 256 bits). Selon une autre caractéristique de l'invention, ledit circuit intégré comprend, en mémoire, ladite clé personnelle d'authentification, et ladite étape d'authentification met en oeuvre un algorithme cryptographique à clé symétrique. Bien 25 entendu, la mise en oeuvre d'algorithmes cryptographies à clés asymétriques peut être envisagée. Selon une autre caractéristique de l'invention, ledit procédé est mis en oeuvre au cours d'une opération de personnalisation dudit circuit imprimé. La diversification de la clé racine pour obtenir la clé personnelle 30 d'authentification inclut, selon les dispositions de l'invention, les première et deuxième diversifications. 3042626 12 BREVE DESCRIPTION DES FIGURES D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après, illustrée par les dessins ci-joints, dans lesquels : - la figure 1 illustre schématiquement un schéma de diversification de 5 clés pour circuits intégrés, selon l'état de l'art ; - la figure 2 illustre schématiquement un schéma hypothétique de diversification de clés pour circuits intégrés non satisfaisant ; - la figure 3 représente un système de production mettant en oeuvre la présente invention selon un premier mode de réalisation ; 10 - la figure 4 illustre schématiquement un circuit intégré dans une carte à puce à un premier instant de production dans le système de la figure 3, notamment avant la génération, au sein du circuit intégré, d'une clé personnelle de transport ou d'authentification ; - la figure 5 représente, sous forme de logigramme, des étapes de 15 production de cartes à puce ou de circuits intégrés selon le premier mode de réalisation de la figure 3 ; - la figure 6 illustre schématiquement un schéma de diversification selon l'invention, dérivant une unique clé racine à partir d'identifiants de services proposés par un circuit intégré ; 20 - la figure 7 illustre schématiquement l'application de ce schéma de diversification à une pluralité de services et une pluralité de circuits intégrés ; - la figure 8 illustre schématiquement le circuit intégré de la figure 4 à un deuxième instant de production dans le système de la figure 3, notamment après la génération, au sein du circuit intégré, d'une clé personnelle de transport ou 25 d'authentification ; - la figure 9 représente un système de production mettant en oeuvre la présente invention selon un deuxième mode de réalisation ; et - la figure 10 représente, sous forme de logigramme, des étapes de production de cartes à puce ou de circuits intégrés selon le deuxième mode de 30 réalisation de la figure 9. 3042626 13 DESCRIPTION DETAILLEE DE MODES DE REALISATION DE L'INVENTION La figure 3 montre les différents intervenants dans un processus de production d'une carte à puce électronique à partir d'un circuit intégré. 5 Comme représenté schématiquement par la figure 4, une carte à puce CP comprend généralement un corps de carte CO en matière plastique recevant un module construit à partir d'un circuit intégré Cl 10. Ce dernier comporte un processeur ou microcontrôleur 11, ainsi qu'une mémoire non volatile réinscriptible 12, une mémoire volatile type RAM 13, une mémoire non volatile non réinscriptible ROM 14 et 10 une interface de communication 19 permettant d'échanger des données entre le processeur et l'extérieur de la carte à puce et également d'alimenter électriquement la carte à puce, par exemple des contacts électriques selon la norme ISO/IEC 7816 ou une interface sans contact conforme à la norme ISO/IEC 14443. Les mémoires et l'interface de communication sont gérées et accessibles 15 par le microcontrôleur (en lecture et/ou en écriture selon le cas). La carte à puce peut proposer diverses fonctionnalités ou services accessibles sur authentification. Chaque fonctionnalité ou service peut être identifié par une information d'identification (unique) propre IDserv- A noter qu'un identifiant Ipserv nul peut être affecté à un service donné. De façon similaire, l'absence d'identifiant peut 20 également désigner un service particulier. A titre d'exemple, deux fonctionnalités différentes peuvent concerner deux services de personnalisation de la carte à puce qui se distinguent par des droits différents (autorisation d'accéder à certaines zones mémoires ou non, possibilité de modifier certains paramètres ou non, valeurs de paramétrages disponibles différentes, 25 etc.). De façon classique, un service de personnalisation pour administrateur peut offrir un large panel d'options de personnalisation de la carte à puce, alors qu'un service de personnalisation client peut être un service dégradé de personnalisation, c'est-à-dire disposant de moins d'options de personnalisation. De retour à la figure 3, un donneur d'ordre 100, par exemple un fabricant 30 de carte à puce, fait appel à un fabricant 200 (ou fondeur) de circuits intégrés et à une société 300 de (pré)personnalisation de circuits intégrés selon les fonctionnalités souhaitées dans la carte à puce. Le site de fabrication 200 est un environnement hautement sécurisé, d'un point de vue physique comme informatique, afin de garantir une fabrication intègre de 35 circuits intégrés 10 à partir de tranches de silicium 1 ou wafers. 3042626 14 Au niveau du donneur d'ordre, un module de sécurité matérielle HSM ("Hardware Security Module") 110 pour circuits intégrés est prévu pour générer des clés secrètes de fabricant MSK ("Manufacturer Secret Key"), ci-après dénommées clés racines ou maîtres (root keys). Ces clés racines peuvent alors être transmises au site 5 de fabrication 200 par un accès sécurisé, par exemple via l'Internet sécurisé. Conformément à des modes de réalisation de l'invention, une ou plusieurs clés intermédiaires MSKL sont dérivées de chaque clé racine, notamment en fonction des services disponibles dans les cartes, et ce sont ces clés intermédiaires MSKL qui sont transmises au site de (pré)personnalisation 300 par un accès sécurisé, par exemple 10 via l'Internet sécurisé. Au niveau du fondeur 200, un module de sécurité matérielle HSM 210 est également présent pour recevoir ces clés racines MSK et les communiquer de façon sécurisée au reste de la chaîne de fabrication. Cette dernière comprend un module de contrôle et de programmation 220 15 des circuits intégrés et une tête de programmation 230 des circuits intégrés 10. Comme on le verra par la suite, cette tête de programmation 230 comprend également des moyens d'alimentation (non représentés) des circuits intégrés 10 lors d'un test initial. Bien entendu les opérations de fabrication et de (pré)personnalisation 20 peuvent être menées par une même entreprise, les unités de fabrication et de (pré)personnalisation pouvant être dans une même usine mais dans deux zones opérationnelles distinctes. Pour la suite de la description, on décrira principalement la personnalisation des circuits intégrés 10. L'invention s'applique toutefois à d'autres 25 opérations, par exemple celles de pré-personnalisation. La figure 5 illustre des étapes de production d'une carte à puce CP selon un premier mode de réalisation. Lors d'une étape initiale E0, le fondeur 200 conduit la fabrication matérielle de circuits intégrés 10, et donc des différents composants énumérés précédemment en 30 lien avec la figure 4. En particulier, le dessin des différentes couches du circuit intégré élabore la mémoire non volatile non réinscriptible (ROM) 14 pour qu'elle comprenne des données représentatives d'instructions de programmes de base pour le fonctionnement du circuit intégré, par exemple d'un programme d'amorçage (boot) et d'un système d'exploitation OS apte à traiter des commandes APDU ("Application 35 Protocol Data Unit' en anglais) comme évoquées par la suite. 3042626 15 Au niveau du site de fabrication 200, les circuits intégrés électroniques 10 sont élaborés sur des wafers 1 (étape E0). Chaque wafer appartient à un lot de wafers numéroté IDlot et comprend un numéro d'identification IDwafer- Chaque circuit intégré réalisé sur un wafer peut par ailleurs être identifiée par sa position (Xcircuit, Ycircuit) sur un 5 wafer ou comprendre un numéro de circuit 111),,,,t dans le lot ou sur le wafer. Lors d'une première étape E1, chez le fabricant de cartes à puce 100, une clé MSK est générée (la MSK racine), par exemple sur 8 ou 16 octets, par le module HSM 110. L'étape El est suivie d'une étape E1' au cours de laquelle le module HSM 10 110 génère également des clés intermédiaires MSKL par une première étape S1 de diversification de la clé racine MSK à partir : - par exemple du numéro de lot IlDlot de plusieurs circuits ou du numéro de wafer IDwafer qui est en train d'être construit par le site de fabrication 200. Ce numéro de lot ou de wafer peut constituer une première sous-partie d'une donnée unique 15 d'identification ou numéro de série unique ID, d'un circuit intégré 10,. Cette sous-partie est notamment commune à un ensemble de circuits intégrés (ceux du même lot ou du même wafer) et à ce titre, la clé intermédiaire MSKL est commune à ce même ensemble de circuits intégrés ; et - de l'information unique Ipserv associé à un ou plusieurs services 20 proposés par la carte. L'étape E1' permet ainsi de générer plusieurs clés intermédiaires MSKL à partir d'une seule référence (clé racine) dans le HSM, telles que chaque clé intermédiaire est associée à un service proposé par la carte et est unique par service et par lot. 25 A titre d'illustration, cette première étape S1 de diversification peut mettre en oeuvre une fonction de hachage cryptographique, par exemple SHA-256 qui présente l'avantage d'une exécution rapide et difficilement détectable. Ainsi, à partir d'une clé racine MSK de 16 octets, d'un numéro de lot IDlot sur 4 à 8 octets par exemple et d'un identifiant de service IDserv sur 1 à 4 octets par exemple, lesquels sont 30 simplement concaténés en entrée de la fonction de hachage, on obtient une clé intermédiaire MSKL sur 32 octets: MSKL = SHA-256( Ipserv IDlot II MSK ). En variante, on peut utiliser un encodage selon un algorithme symétrique, par exemple MSKL=AES(IDserv, ID,of, MSK). 3042626 16 La clé racine MSK est transmise au fondeur 200 et les clés intermédiaires MSKL sont transmises au site de personnalisation 300, respectivement aux modules HSM 210 et 310, via l'Internet sécurisé, lors des étapes E2 et E2'. A ce stade, on observe donc que le site de personnalisation 300 n'a pas 5 connaissance de la clé racine MSK, ce qui accroît la sécurité de la protection des circuits intégrés. Une fois qu'un wafer 1 de circuits intégrés 10, a été élaboré, le module de programmation 220 commande, à l'étape E4', la tête 230 pour écrire, dans la mémoire non volatile réinscriptible 12, par exemple type EEPROM, de chaque circuit intégré 10, : 10 - la donnée unique d'identification ID, du circuit intégré, qui peut par exemple comprendre tout ou partie du type de circuit intégré, d'un identifiant du site de fabrication Osite, et des identifiants IDIot, IDwafer et IDorcult (ou Xcircuit, Ycircuit); - la clé racine MSK. La figure 4 illustre l'état du circuit intégré après cette étape, étant noté que 15 l'identifiant IDserv de chaque service est également connu du circuit intégré, en association avec chaque service proposé. Ainsi, la tête de programmation 230 comporte des moyens d'accès direct à la zone mémoire 12 pour écrire ces diverses données, par exemple par contact direct sur les bornes physiques de la mémoire. On entend ici par "accès direct" le fait que 20 l'accès n'est réalisé ni au travers du processeur du circuit intégré ni au travers de l'interface normale de communication du circuit intégré (généralement les contacts électriques selon la norme ISO/IEC 7816). Cet accès direct s'avère utile dès lors que le système d'exploitation du processeur 11 comprend des moyens de détection d'anomalies ou d'attaques relatives 25 à des clés secrètes, ce qui est généralement le cas. En effet, dans ce cas, si le processeur est mis sous tension avant que la clé racine ne soit mémorisée en mémoire non volatile, une anomalie/attaque est immédiatement détectée en raison de l'absence de la clé, et cette détection conduit à mettre le circuit intégré hors service, alors que ce n'est pas le cas. 30 On remarque donc à ce stade (étape E4') que tous les circuits intégrés possèdent en mémoire la même clé racine MSK. Ainsi, le fondeur 100 ne manipule que cette clé racine, sans avoir à générer les clés personnelles de chacun des circuits intégrés ni de clé intermédiaire MSKL. Puis à l'étape E5, le fondeur 200 mémorise, dans un journal (fichier 35 numérique ou "log"), les seules données uniques d'identification ID, des circuits 3042626 17 associés. Ce journal est notamment mémorisé de façon cryptée au niveau du module de programmation 220 ou, en variante, dans le module HSM 210. A l'issue de cette étape, la programmation des circuits intégrés 10 a été réalisée. De façon optionnelle, Il est prévu de procéder à un test d'alimentation E6' afin 5 de vérifier le bon fonctionnement électrique de chaque circuit. Ce test comprend l'étape E60 au cours de laquelle un module de contrôle avec une tête d'alimentation (ce peut être le même module que le module de programmation 220 muni de sa tête 230) se connecte aux contacts électriques externes normaux de l'interface de communication et met le circuit intégré 10, sous 10 tension en lui appliquant un tout premier signal analogique d'alimentation électrique. Cette mise sous tension déclenche automatiquement l'exécution (E61'), par le processeur 11, d'un programme de génération automatique d'une ou plusieurs clés personnelles de transport/d'authentification MSKD,. Selon l'invention, chaque clé personnelle MSKD, est dédiée à un service particulier fourni par le circuit intégré, c'est- 15 à-dire que cette clé personnelle doit être utilisée pour s'authentifier afin d'accéder audit service associé. Le calcul de génération consiste par exemple à diversifier la clé racine MSK en deux étapes 51 et S2 de diversification successives à partir du numéro de série unique ID, et de l'identifiant de service ID',,, ces informations (clé racine, numéro 20 de série et identifiants de service) étant enregistrées dans la mémoire non volatile 12 à laquelle accède le processeur 11. La première étape 51 consiste par exemple à obtenir une clé intermédiaire MSKL pour chaque service proposé par le circuit intégré, à partir de la clé racine MSK en mémoire et de l'identifiant de service ID',,, par exemple MSKL = SHA-256( IDserv 11 25 'plot II MSK ). Puis la deuxième étape S2 consiste à diversifier chacune de ces clés intermédiaires MSKL à partir du numéro de circuit intégré 111),,,',t (par exemple sur 4 octets) dans le lot ou sur le wafer (ou les coordonnée s )(circuit, Ycircuit). A titre d'illustration, on peut simplement concaténer IDcircut avec chaque clé intermédiaire MSKL et appliquer sur cette valeur obtenue la fonction de hachage SHA- 30 256: MSKD, = SHA-256( IDorcultilMSKL ). On obtient ainsi une pluralité de clés personnelles d'authentification MSKD, pour le circuit intégré, chacune de ces clés personnelles étant dédiée à un service particulier fourni par le circuit intégré. On peut noter que l'utilisation d'une fonction de hachage telle que SHA-256 35 à l'avantage de simplifier les traitements pour former le mot d'entrée de ces fonctions: 3042626 18 pas de troncature et seulement des concaténations (ici représentée par les symboles "II") sont utiles, puisqu'une fonction de hachage peut recevoir des données d'entrée de longueur variable. En outre, la fonction de hachage SHA-256 a l'avantage de générer une clé 5 personnelle de transport/d'authentification sur 32 octets, ce qui correspond à la taille d'une clé pour l'algorithme AES qui peut être utilisée pour l'authentification E13' décrite par la suite. Notamment, en fonction de l'algorithme d'authentification, on utilisera tout ou partie des octets des clés personnelles ainsi générées: pour un algorithme de type 3DES ou AES-128, seuls les 16 premiers octets d'une clé personnelle MSKD, seront 10 utilisés; pour un algorithme de type AES-192, seuls les 24 premiers octets d'une clé personnelle MSKD, seront utilisés; et pour un algorithme de type AES-256, les 32 octets d'une clé personnelle MSKD, seront utilisés. La figure 6 illustre la double diversification ainsi mise en oeuvre par les modes de réalisation actuellement décrits de l'invention. A partir d'un seul secret initial 15 (clé racine MSK), la première diversification S1 permet d'obtenir une pluralité de clés intermédiaires pour un lot, chaque clé intermédiaire MSKLsERv[i_N] étant dédiée à un service donné SERV[1-N]. Puis la deuxième diversification S2 permet de décliner (dériver) chacune de ces clés intermédiaires en une clé personnelle propre au circuit I' considéré. Chaque clé personnelle du circuit T dédiée au service SERV est notée, sur 20 la figure, MSKD,sERv. La déclinaison de cette approche pour une pluralité de circuits est illustrée par la figure 7. Suite à l'étape E61', le processeur enregistre (E62'), dans la mémoire non volatile 12, les clés personnelles MSKD, ainsi générées, en association avec le service 25 correspondant et en remplacement de la clé racine MSK. Pour éviter de rendre la clé racine accessible à une personne mal intentionnée, cette opération est réalisée par écrasement de la clé racine MSK par l'une (la première générée) des nouvelles clés personnelles MSKD,. Ensuite, le processeur écrit dans une mémoire 15 non volatile 30 programmable qu'une seule fois (figure 8), également connue sous la terminologie "mémoire PROM" Programmable Read Only Memory ou "mémoire OTP" One Time Programmable , un drapeau 150 (flag, par exemple un bit) indiquant que la génération de la ou des clés personnelles MSKD, a déjà eu lieu (étape E63'). La mémoire OTP 15 peut toutefois être une partie de la mémoire non 35 volatile non réinscriptible ROM 14. 3042626 19 Une telle mémoire OTP 15, par exemple par grillage irréversible de fusibles, empêche toute modification de l'information 150 et donc garantit une sécurité quant à savoir si la ou les clés personnelles MSKD, ont bien été générées. La présence de cette information dans la mémoire OTP 15 est notamment 5 vérifiée à chaque mise sous tension du circuit intégré (par exemple au début de l'exécution du programme de génération automatique de clé personnelle) pour déterminer s'il s'agit de la première mise sous tension du circuit, auquel cas la génération des clés personnelles MSKD, doit être réalisée comme décrit ci-dessus, ou s'il s'agit d'une mise sous tension ultérieure, auquel cas l'exécution du programme de 10 génération des clés personnelles est bloquée. Ainsi le drapeau 150 indique qu'un premier signal de mise sous tension a déjà été reçu. Dans ce mode de réalisation, l'étape E63' succède à l'étape E61' de génération, sécurisant ainsi le circuit intégré contre des problèmes pouvant découler 15 d'une éventuelle coupure d'alimentation avant la fin de la génération par diversification E61'. En effet, dans ce cas il n'est pas indiqué, à juste titre, dans la mémoire 15, que la clé personnelle MSKD, a été générée. La prochaine mise sous tension E61 déclenchera alors à nouveau cette génération. En variante toutefois, l'étape E63' peut précéder l'étape E61' ou être 20 concomitante. Puis, selon la norme ISO/IEC 7816, le circuit 10, répond alors, à la mise sous tension, par un message ATR ("Answer To Resef) à l'étape E65. Dans le cadre de la norme ISO/IEC 14443 (cartes sans contact), cette réponse prend la forme d'un message ATS ("Answer To Select"). 25 Cet ordre des étapes permet, si nécessaire, d'indiquer dans la réponse à la mise sous tension (ATR dans le cas d'un circuit intégré prévu pour un dispositif avec contact conforme à la norme ISO/IEC 7816 et ATS dans le cas d'un circuit intégré prévu pour un dispositif sans contact conforme à la norme ISO/IEC 14443) qu'une erreur ou une anomalie s'est produite lors de la génération de la clé personnelle par 30 diversification Des moyens de détection d'erreur dans l'exécution d'un programme de la carte à puce sont alors prévus dans le circuit intégré 10,. Et l'indication d'une erreur ou anomalie est ainsi détectée lors du test E8 pour mettre le circuit intégré 10, au rebut. 3042626 20 En effet, si le circuit intégré renvoie un message ATR conforme à la norme ISO 7816 et que son contenu est correct, c'est-à-dire celui attendu par le module de contrôle (test E8), alors ce circuit intégré 10, est considéré comme conforme (étape E9). 5 Autrement (par exemple si aucune réponse n'est reçue dans un délai prédéfini), le circuit intégré est considéré comme défaillant et mis au rebut (étape El 0). A cette occasion, le circuit intégré peut être marqué comme défaillant (en mémoire par le module de contrôle ou une inscription équivalente dans le journal prévu à l'étape E5). 10 En variante toutefois, tout ou partie des étapes E61', E62' et E63' peut être réalisée après l'étape E65. En raison du temps nécessaire à la génération des clés personnelles MSKD, dans le circuit intégré 10, (prenant entre 50 et 500 ms, généralement entre 100 et 200 ms), le module de contrôle 220 est configuré pour attendre suffisamment 15 longtemps (délai prédéfini) lors du test E8 pour permettre la génération complète des clés personnelles. Ainsi ce module de contrôle est configuré pour attendre la réponse ATR/ATS à la mise sous tension, au moins 50 ms (millisecondes) avant de générer une erreur, notamment au moins 100 ms, et de préférence au moins 250 ms voire 500 20 ms. Dans la plupart des cas, l'attente ne sera pas supérieure à 1 seconde, voire 500 MS. Après les étapes E8 et E9, les circuits intégrés 10, quittent le site de fabrication avec, en mémoire, une donnée unique d'identification ID, et une clé de transport/d'authentification MSKID, propres à chaque circuit intégré et à chaque service 25 qu'il propose. Les circuits intégrés sont alors livrés au site de personnalisation 300 (étape E11), soit sous forme de wafer entier, soit déjà individualisés par découpage du wafer 1. A l'étape E12, les circuits intégrés reçus sont, si nécessaire, découpés du wafer reçu, puis par exemple montés sur une vignette pour former un module de carte 30 à puce, et enfin insérés dans un corps de carte CO conforme à la norme ISO 7816 de sorte à créer une carte à puce. Bien entendu, un même procédé est mis en oeuvre pour la production de cartes sans contact ("contactless" ou "eCover" - nom commercial) en montant les circuits intégrés sur des modules de cartes sans contact, ou pour la production d'autres 3042626 21 entités portables ou de poche, telles que les cartes mémoires (SD ou Flash) ou les clés USB, en sélectionnant le corps de l'entité devant recevoir le circuit intégré. La figure 8 illustre l'état du circuit intégré 10, au moment de la livraison E11: la mémoire 12 comprend les clés personnelles MSKD, mais plus la clé racine 5 MSK, et la mémoire OTP 15 comprend le drapeau 150. Survient ensuite la personnalisation de la carte à puce et donc du circuit intégré qu'elle contient, par un module/dispositif de personnalisation 320, pour répondre aux fonctions attendues. Selon les modes de réalisation actuellement décrits de l'invention, différentes clés intermédiaires ou personnelles dédiées à autant de 10 services ont été générées pour permettre un contrôle sécurisé (par authentification) de l'accès à chacun des différents services de personnalisation disponibles (par exemple des services plus ou moins dégradés). La personnalisation du circuit à l'aide d'un service SERVI comprend, à l'étape E13', une authentification entre la carte à puce CP et un dispositif d'accès et de 15 personnalisation 310/320 disposant de la clé intermédiaire MSKL associée au service SERVI. Cette authentification a pour objectif par exemple d'autoriser ou non l'écriture des données dans la mémoire non volatile, type EEPROM, du circuit intégré 10,. Cette écriture est alors restreinte aux droits conférés par le service SERVI utilisé. 20 Bien entendu, d'autres fonctionnalités/options que la simple écriture peuvent être accédées par la mise en oeuvre de l'invention. L'authentification est notamment réalisée par communication avec le circuit intégré 10, au travers de l'interface de communication 14, par exemple au travers des contacts électriques selon la norme ISO 7816. 25 A titre d'illustration non limitative, une authentification par algorithme challenge-réponse peut être mise en oeuvre pour authentifier la carte CP par le dispositif d'accès ou de personnalisation. Une authentification similaire du dispositif d'accès ou de personnalisation par la carte CP est également prévue pour obtenir une authentification mutuelle des deux entités. 30 L'authentification de la carte CP par le dispositif d'accès ou de personnalisation peut comprendre : - l'envoi d'une première commande numérique d'authentification de type commande APDU, par le dispositif d'accès ou de personnalisation auprès de la carte à personnaliser, communiquant un challenge c (typiquement un nombre aléatoire) de 35 taille adéquate au circuit intégré 10, (étape E130). La commande APDU peut 3042626 22 notamment indiquer le service SERV accédé. A ce stade, cette commande APDU constitue le tout premier signal numérique que reçoit généralement la carte à puce fabriquée ; - le calcul, par le circuit intégré 10, de la carte, d'une réponse resl 5 correspondant à un encryptage du challenge c par sa clé de transport ou d'authentification MSKD, propre associée au service SERV accédé (par exemple par application d'un algorithme symétrique DES ou AES) (étape E134); - l'envoi de la réponse resl, accompagnée de la donnée unique d'identification ID,, de la carte au dispositif d'accès ou de personnalisation (étape 10 E135); - la calcul, par le dispositif d'accès ou de personnalisation, de la réponse res2 censée être reçue par celui-ci, - en dérivant tout d'abord la clé intermédiaire pour le service accédé, MSKLsERv, détenue (depuis l'étape E2') à l'aide de la donnée unique d'identification ID, 15 également reçue correspondant à cette carte, pour obtenir la clé personnelle MSKD i-calculéeSERV MSKDI-calculéeSERV = SHA-256 (Ipserv Ocircult 11MSKL) (étape E136'); puis - en calculant res2 à l'aide de cette clé personnelle, de façon similaire au calcul de resl mais en utilisant cette fois-ci la clé MSKD, calculéeSERV; et 20 - la comparaison entre les deux valeurs resl et res2 pour valider ou non l'authentification (étape E137). On constate donc que l'authentification peut être réalisée sans que le dispositif de personnalisation 320 ait connaissance de la clé racine MSK de laquelle découlent les clés personnelles MSKD,sERv des différents circuits intégrés. 25 L'authentification du dispositif d'accès ou de personnalisation par la carte CP est similaire, en inversant les rôles: la première commande APDU permet à la carte CP de générer un nombre aléatoire c qui est alors communiqué au dispositif d'accès ou de personnalisation. En cas d'authentification mutuelle positive, la personnalisation E14 du 30 circuit intégré de la carte à puce CP est alors réalisée par le dispositif de personnalisation, à l'aide du service SERV accédé. Sinon la personnalisation n'est pas autorisée. Une telle personnalisation peut consister à mémoriser des instructions de logiciel en mémoire non volatile 12 du circuit intégré de sorte que la carte à puce offre 35 des fonctions (porte-monnaie électronique, titre de transport, passeport, etc.). 3042626 23 Par ailleurs, un choix approprié des critères appliqués pour chaque étape S1 ou S2 de diversification permet d'obtenir des clés intermédiaires opérationnelles pour un nombre plus ou moins limité de circuits intégrés, par service. Notamment, chaque clé intermédiaire MSKL fournie à 300 peut concerner uniquement les circuits 5 intégrés traités par 300, en livrant par exemple uniquement les lots ou wafers dont l'identifiant IlDiot ou IDwafer a servi à la génération El' de chacune de ces clés intermédiaires MSKL communiquées. Les figures 9 et 10 illustrent un deuxième mode de réalisation de l'invention, dans lesquelles les mêmes références que celles décrites précédemment 10 concernent des mêmes éléments ou mêmes étapes. Ce mode de réalisation se distingue du premier en ce que la génération des clés personnelles MSKD,sERv au sein des circuits intégrés 10, est réalisée à réception de la première commande valide par le circuit intégré 10,, c'est-à-dire à réception d'un signal numérique, dans notre exemple la commande APDU El 30. 15 Le module de programmation 220 inscrit (E4') toujours en mémoire non volatile 12 du circuit intégré 10, la clé racine MSK, les identifiants de service et le numéro de série ID,. Puis, un test d'alimentation E6 simplifié est mis en oeuvre, en remplacement du test E6'.Ce test E6 comprend l'étape E60 au cours de laquelle le 20 module de contrôle avec tête d'alimentation (ce peut être le même module que le module de programmation 220 muni de sa tête 230) se connecte aux contacts électriques externes normaux de l'interface de communication et met le circuit intégré 10, sous tension en lui appliquant un premier signal analogique d'alimentation électrique. 25 Selon la norme ISO/IEC 7816, le circuit 10, répond alors, à la mise sous tension, par un message ATR ("Answer To Resef) à l'étape E65. Dans le cadre de la norme ISO/IEC 14443 (cartes sans contact), cette réponse prend la forme d'un message ATS ("Answer To Select"). Au moment de la livraison El 1, la mémoire 12 comprend alors la clé racine 30 MSK et non les clés personnelles MSKD,sERv, et ne comprend pas le drapeau 150 en mémoire OPT 15 (figure 6). L'authentification E13" diffèrent en ce qu'à réception E130 de la toute première commande APDU, l'exécution du programme de génération automatique des clés personnelles de transport/d'authentification MSKD,sERv est déclenchée au sein du 35 circuit intégré 10, pour l'ensemble des services proposés par le circuit intégré (E131"). 3042626 24 Bien entendu, d'autres critères de déclenchement à réception d'une "première" commande peuvent être mis en oeuvre, comme par exemple la réception d'une première commande valide susceptible d'entraîner l'exécution d'une action par le processeur 11, ou d'une première commande parmi une catégorie de commandes ou 5 parmi une liste prédéfinie de commandes. Les étapes E132" et E133" sont respectivement similaires aux étapes E62' et E63' décrites précédemment, conduisant, à réception d'une commande, à vérifier la présence ou non du flag 150 en mémoire 15 avant de déclencher l'exécution E131" de la génération des clés personnelles MSKD,sERv. 10 Les étapes suivantes E134, E135, E136', E137 et E14 sont inchangées permettant l'authentification et la personnalisation du circuit intégré 10,. L'état de ce circuit intégré avant l'étape de personnalisation E14 est identique à celui représenté sur la figure 8. De façon similaire au premier mode de réalisation, l'ordre des étapes 15 E131", E132", E133" peut être modifié, étant entendu que l'étape E135 fournit, dans la réponse, la valeur resl calculée à partir de la clé personnelle MSKD,sERv associée au service utilisé, telle que générée à l'étape E131". En outre, lors de l'authentification E13", le dispositif de personnalisation 320 est configuré pour attendre le temps nécessaire pour que le circuit intégré 10, 20 puisse générer les clés personnelles MSKD,sERv, soit généralement au moins 50 ms, voire 100, 250 ou 500 ms, avant de générer un message d'erreur ou d'envoyer une nouvelle commande APDU. On notera toutefois que les temps d'attente de tels dispositifs 320 à des commandes est généralement plus important que celui du module de contrôle 220 25 évoqué précédemment. A titre d'exemple, il est courant que des lecteurs de carte à puce attentent une seconde avant de considérer que l'opération demandée est un échec. Ainsi, ce mode de réalisation s'intègre particulièrement bien aux temps d'attente actuels des dispositifs de lecture de circuits intégrés ou cartes à puces. La 30 génération des clés personnelles MSKD,sERv apparaît ainsi quasi transparente eu égard au délai de traitement de la commande numérique. Egalement, la réponse E135 peut renseigner de toute erreur ou anomalie s'étant produite pendant la génération E131" ou les enregistrements E132" et E133". Par ailleurs, bien que dans ces exemples de réalisation, la première partie 35 'Dm (ou IDwafer 1 du numéro de série et la deuxième partie Ocircuit de ce même numéro , 3042626 25 de série utilisées pour la génération en deux étapes successives de diversification des clés personnelles sont des parties complémentaires du numéro de série unique: ID, = IlDlot (ou ID 1 wafer, Il lijcircuit, il peut être prévu que ce ne soit pas le cas, par exemple que ces deux parties soient différentes mais avec une sous-partie en commun (à titre 5 d'exemple IlDlot et IDwafer d'un côté, et IDwafer et ID,,rc,t de l'autre côté). Dans une variante de ces deux modes de réalisation, les étapes E2 et E2' consistent à envoyer, aussi bien au site de personnalisation 300 qu'au site de fabrication 200, les clés intermédiaires MSKL associées à différrents services, telles que générées lors de l'étape El '. 10 Dans ce cas, l'étape E4' consiste à enregistrer les clés MSKL (pour les services offerts) en mémoire des circuits intégrés 10, et les étapes E61' et E131" consistent à mettre en oeuvre uniquement la deuxième opération de diversification, dans notre exemple : msKD,sERv 15 Les figures 4 et 8 s'appliquent également à ce deuxième mode de réalisation, si ce n'est que, dans l'état de la figure 4, la mémoire 12 comprend les clés intermédiaires MSKLsERv en lieu et place de la clé racine MSK. Une autre variante de l'invention consiste à ce que le fondeur 100 calcule lui-même les clés personnelles MSKD,sERv (étape E3) par diversification de la clé MSK 20 ou des clés intermédiaires MSKLsERv selon qu'il a reçu l'une ou les autres. D'une façon générale, la double diversification des clés par service telle que proposée ici permet une utilisation des clés personnelles MSKD,sERv de plusieurs manières. Si l'utilisateur ou opérateur souhaitant accéder à un service du circuit 25 intégré possède uniquement la référence au secret initial MSK, il doit appliquer la première diversification 51 à l'aide de Ipserv et IDlot afin d'obtenir la clé intermédiaire MSKI-sERv propre au service souhaité. Puis il doit appliquer la seconde diversification S2 pour obtenir la clé personnelle MSKD,sERv du circuit considéré pour le service désiré. Il peut alors réaliser l'opération souhaitée avec cette clé dédiée au service 30 désiré. Si l'utilisateur ou opérateur souhaitant accéder à un service du circuit intégré possède uniquement déjà la clé intermédiaire MSKLsERv propre au service souhaité (car des figures 3 à 10), il doit uniquement appliquer la seconde diversification S2 pour obtenir la clé personnelle MSKIDisERv du circuit considéré pour le SHA-256 ( IDsERv lDcircuit MSKL )- 3042626 26 service désiré. Il peut alors réaliser l'opération souhaitée avec cette clé dédiée au service désiré. Puis si l'utilisateur ou opérateur souhaite utiliser un autre service, il doit : soit utiliser l'identifiant IDserv du nouveau service (en plus de la donnée IDIot 5 de dérivation) avec la référence au secret initial MSK ; soit utiliser une autre clé intermédiaire MSKLsERv dédiée au nouveau service. On voit que la solution proposée ici par l'invention conduit à obtenir plusieurs clés personnelles MSKIDisERv à partir d'une seule référence de secret initial 10 MSK. La connaissance d'une telle clé personnelle MSKIDisERv ne compromet ni le secret initial MSK, ni sa propre clé intermédiaire MSKLsERv (car les diversifications ne sont pas inversibles), ni les autres clés intermédiaires et personnelles associées aux autres services. A noter que, bien que la description ci-dessus envisage une diversification 15 à partir de l'identifiant IDserv lors de la première diversification S1, il peut être envisagé de réaliser celle-ci lors de la deuxième diversification S2. Les exemples qui précèdent ne sont que des modes de réalisation de l'invention qui ne s'y limite pas. Par exemple, bien qu'il soit fait mention de deux étapes S1 et S2 20 constitutives de la diversification de la clé racine MSK, un plus grand nombre d'étapes peut être prévu, générant plusieurs clés intermédiaires successives pour un même service. Un tel cas peut par exemple servir, pour une société à laquelle on livre un lot de wafers (première étape de diversification à l'aide de IDIot permettant de générer une clé intermédiaire par service pour la société) qui sont répartis sur plusieurs sites de 25 personnalisation (deuxième étape de diversification à l'aide de IDwafer permettant de générer, à partir de la clé intermédiaire précédemment obtenue, une nouvelle clé intermédiaire par service et par site). Chaque site réalise alors l'authentification E13' ou E13" à l'aide de la clé intermédiaire reçue pour le service utilisé. De préférence, la diversification à l'aide de l'identifiant de service est 30 réalisée dès la première diversification des diversifications successives. Bien entendu, elle peut en variante intervenir à un stade ultérieur. Notamment, la première diversification peut être réalisée dans le circuit intégré à réception du premier signal de mise sous tension (étape E6') et la deuxième diversification également dans le circuit intégré mais à réception du premier signal 35 numérique (étape E13"). 3042626 27 Par ailleurs, l'invention peut être mise en oeuvre dans des contextes d'utilisation différents du contexte de fabrication et de (pré)personnalisation des circuits intégrés comme décrit ci-dessus. A titre d'exemple, la clé racine peut être mémorisée dans la mémoire volatile lors de l'opération de personnalisation de la carte CP. Elle est 5 ensuite diversifiée en des clés d'authentification personnelle pour divers services, dès la première utilisation chez un utilisateur (détection du premier signal issu d'un dispositif de lecture/écriture d'un utilisateur). Par ailleurs, bien que les exemples de diversification évoqués ci-dessus mettent en oeuvre une opération de hachage type SHA-256, ces diversifications 10 peuvent mettre en oeuvre des opérations cryptographiques à clés symétriques ou asymétriques (AES, DES), soit directement sur tout ou partie des numéros de série ID,, soit sur le résultat de l'opération de hachage (dans ce cas on combine hachage et opération cryptographique). REVENDICATIONS1. Procédé d'accès à un service (SERV) dans un circuit intégré (101 comprenant : une étape d'authentification (E13', E13"), par un dispositif d'accès externe au circuit intégré, dudit circuit intégré en utilisant une clé personnelle d'authentification (msKpisERv) propre audit circuit intégré et mémorisée dans le circuit intégré, ladite clé personnelle d'authentification étant générée par une première diversification (51) d'une clé racine (MSK) en une clé intermédiaire (MSKLsERv), suivie d'une deuxième diversification (S2) de la clé intermédiaire en la clé personnelle d'authentification ; en cas d'authentification réussie, une étape d'accès (E14) au service dans le circuit intégré ; caractérisé en ce que la première ou deuxième diversification comprend une opération de diversification de la clé racine ou intermédiaire à partir d'une information unique (IDserv) associée audit service à accéder. 2. Procédé selon la revendication 1, dans lequel l'opération de diversification à partir de ladite information unique associée audit service à accéder est incluse dans la première diversification diversifiant la clé racine en une clé intermédiaire. 3. Procédé selon la revendication 2, dans lequel la première diversification (51) de la clé racine en la clé intermédiaire comprend, en outre, une opération de diversification de la clé racine à partir d'un identifiant (11Dlot) de lot constitué d'une pluralité de circuit intégrés. 4. Procédé selon la revendication 3, dans lequel l'identifiant de lot constitue une première sous-partie d'un numéro de série du circuit intégré (ID;). 5. Procédé selon la revendication 4, dans lequel la deuxième diversification (S2) diversifiant la clé intermédiaire en la clé personnelle comprend une opération de diversification de ladite clé intermédiaire à partir d'une deuxième sous-partie (11Dcircuit), distincte de la première sous-partie, du numéro de série du circuit intégré. 6. Procédé selon la revendication 4 ou 5, dans lequel le numéro de série unique du circuit intégré est mémorisé en mémoire non volatile du circuit intégré. 7. Procédé selon l'une quelconque des revendications 1 à 6, dans lequel la deuxième diversification de la clé intermédiaire en la clé personnelle 3042626 29 d'authentification comprend une opération de diversification de la clé intermédiaire à partir d'un numéro de série unique (ID;, IDdr'it) du circuit intégré. 8. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel l'accès au service comprend la personnalisation du circuit intégré à l'aide de 5 données spécifiques audit circuit intégré. 9. Système d'accès à un service dans un circuit intégré, comprenant un dispositif d'accès externe au circuit intégré, ledit dispositif d'accès comprenant des instructions de code qui lorsqu'elles sont exécutées par un processeur conduisent le dispositif d'accès à effectuer les étapes suivantes : 10 une étape d'authentification dudit circuit intégré en utilisant une clé personnelle d'authentification propre audit circuit intégré et mémorisée dans le circuit intégré, ladite clé personnelle d'authentification étant générée par une première diversification d'une clé racine en une clé intermédiaire, suivie d'une deuxième diversification de la clé intermédiaire en la clé personnelle d'authentification ; 15 en cas d'authentification réussie, une étape d'accès au service dans le circuit intégré ; caractérisé en ce que la première ou deuxième diversification comprend une opération de diversification de la clé racine ou intermédiaire à partir d'une information unique associée audit service à accéder. 20 10. Système selon la revendication 9, configuré pour, lors de la première diversification, diversifier la clé racine en une clé intermédiaire à partir de ladite information unique associée audit service à accéder et à partir d'un identifiant de lot constitué d'une pluralité de circuit intégrés ; et pour, lors de la deuxième diversification, diversifier la clé intermédiaire ainsi obtenue en la clé personnelle à partir d'un numéro 25 de série du circuit intégré.