Brevet FR2875656A1 — publié le 20060324

DIVERSIFICATION DE CLE DANS UN CIRCUIT INTEGRE Domaine de l'invention La présente invention concerne de façon générale le domaine des circuits intégrés manipulant des clés secrètes, que ce soit pour chiffrer des données à communiquer à l'extérieur du circuit ou pour autoriser l'accès des applications. L'invention concerne plus particulièrement une procédure appelée diversification de clé qui consiste à utiliser une valeur numérique propre à un circuit intégré comme élément de diversification d'une clé maître (généralement secrète) propre à un élément ou à une application externe au circuit intégré, pour générer une clé diversifiée. Cette clé diversifiée (ou personnalisée) est alors enregistrée dans le circuit intégré auquel elle est dédiée, et lui sert par la suite de clé d'autorisation d'accès à l'élément (par exemple, clé de personnalisation) ou à une application particulière. Une même carte à puce peut posséder différentes clés secrètes diversifiées qui sont affectées à des applications différentes et pour lesquelles le circuit intégré de la carte à puce possède des droits d'accès différents. La procédure de diversification a pour but de protéger la valeur de la clé maître qui, si elle est découverte, supprime la sécurité du système (ensemble de circuits intégrés et d'échanges partageant une ou plusieurs applications basées sur cette clé maître). La procédure de diversification est telle qu'il est impossible de retrouver la valeur de la clé maître à partir de la connaissance de la valeur de la clé diversifiée et de l'élément de diversification. Ainsi, si malgré les protections de la valeur de la clé diversifiée qui sont disponibles sur le circuit intégré, cette dernière est connue d'un fraudeur, un seul circuit intégré est piraté, mais le reste du système est encore protégé. Un exemple d'application de la présente invention concerne les cartes à puce qui, après fabrication, sont personnalisées, non par le fabricant, mais par le fournisseur de l'application (réseau de transport, établissement bancaire, etc.). Un autre exemple d'application concerne l'attribution de droits différents selon le lecteur dans lequel est placée la carte. Par exemple, dans une application de porte-monnaie électronique, la carte à puce possède au moins une première clé diversifiée d'échange avec un établissement bancaire pour recharger le porte-monnaie et au moins une deuxième clé diversifiée d'échange avec les commerçants pour effectuer des achats. Exposé de l'art antérieur La figure 1 représente, de façon très schématique, un système de personnalisation de carte à puce du type utilisant un module de diversification de clés. Le module 1 comporte, en autres, un élément ll contenant une clé maître MK et un élément 12 (DIVERSIFICATION) d'exécution d'un algorithme de calcul de clés diversifiées à partir de la clé maître MN et d'éléments de diversification DIV fournis par des puces 21 de cartes à puce 2 à personnaliser. Le cas échéant, l'élément de diversification DIV est fourni par le module 1 à la carte. En pratique, le module 1 est un système informatique de type microordinateur et/ou microcontrôleur. En figure 1, une seule carte à puce 2 a été repré-35 sentée. La puce 21 de la carte 2 comporte un élément 22 (de type 2875656 3 mémoire non volatile) contenant un élément de diversification DIV et au moins un élément 23 de mémoire non volatile destiné à contenir une ou plusieurs clés diversifiées DK. Généralement, l'élément 23 contient plusieurs clés DK qui sont affectées aux différentes applications (transport, bancaire, etc.) auxquelles est destinée la carte à puce, voire plusieurs clés diversifiées par application selon les différentes fonctions autorisées à la carte. La carte 2 et le module 1 couu La figure 2 illustre, de façon très schématique et 15 simplifiée, les échanges entre un module de diversification (HSM) et une carte à puce à personnaliser (CARD) dans un système classique tel que celui de la figure 1. On suppose qu'une clé maître MK est présente côté module de diversification, que ce soit de façon intégrée ou que 20 ce soit par chargement depuis une carte à puce ou un clavier selon d'autres processus connus. La première étape représentée (bloc 31, REQ DIV) est l'envoi, par le module de diversification, d'une requête d'obtention de l'élément de diversification DIV que contient la 25 carte. La carte fournit au module de diversification son élément de diversification (bloc 32, SEND DIV). Il peut s'agit indifféremment de l'identifiant unique de la carte ou de tout autre élément numérique utilisé habituellement dans de telles 30 phases de personnalisation. A partir de l'élément de diversification DIV et de sa clé maître MK, le module de diversification calcule (bloc 34, COMPUTE DK) une clé diversifiée DK. Puis (bloc 35, SEND DK), il envoie cette clé 35 diversifiée DK à la carte. La carte mémorise (bloc 36, STORE DK) cette clé dans un élément non volatile. Dans certains cas, l'élément de diversification DIV est initialement inconnu de la carte à puce à personnaliser. Il est alors obtenu par d'autres voies (par exemple, par saisie, connexion à un réseau, etc.) par le module de diversification qui l'utilise pour diversifier sa clé maître et qui transmet la clé diversifiée DK et l'élément de diversification DIV à la carte à puce. D'autres échanges peuvent intervenir entre la carte et le module, par exemple, pour mettre en place des processus de chiffrement (non représentés) des transmissions entre le module de diversification et la carte. Des exemples de procédés et de systèmes de person-15 nalisation sont décrits dans les brevets américains 5 729 609, 4 811 393 et 5 602 915. Un inconvénient des systèmes classiques est lié au besoin de plus en plus fréquent d'installer de nouvelles applications dans des cartes à puce ou d'y autoriser de nouvelles fonctions. En effet, à chaque fois, le module de personnalisation doit connaître l'algorithme permettant la diversification qui peut être propre à chaque nouvelle application ou fonction. Cela alourdit considérablement les systèmes de personnalisation et requiert le plus souvent des modifications importantes de ces systèmes. On connaît également des systèmes dans lesquels des algorithmes de diversification sont contenus dans une carte à puce. Ces algorithmes servent alors à diversifier des clés préalablement stockées de façon non volatile dans la carte et non une clé connue seulement, au moment de la diversification, d'un module de diversification externe à la puce. Les concepteurs de tels systèmes savent que ces clés (qu'elles soient ellesmêmes issues ou non d'une diversification) seront exposées si les protections de la carte ne résistent pas à un pirate. Ils doivent en tenir compte dans la conception générale du système. Résumé de l'invention La présente invention vise à pallier les inconvénients des méthodes et systèmes connus de diversification de clés. L'invention vise notament à diversifier (personnaliser) un clé pour son stockage dans des éléments électroniques (par exemple, des cartes à puce) en simplifiant la gestion des algorithmes de diversification côté module de diversi- fication. L'invention vise également à proposer une solution qui ne requiert pas de modification des modules de diversification à l'apparition d'un nouvel algorithme de diversification. L'invention vise également à ne pas affaiblir la sécurité des éléments personnalisés contre les fraudes. Pour atteindre ces objets ainsi que d'autres, la pré-sente invention prévoit un procédé de personnalisation d'un élément électronique par générat=_on d'une clé diversifiée à partir d'un élément de diversification et d'une clé maître (MK) contenue dans un module de personnalisation externe à l'élément électronique, consistant à : fournir audit élément électronique ladite clé maître; stocker la clé maître dans un élément de mémoire volatile de cet élément; générer la clé diversifiée côté élément électronique; et effacer au moins la zone de la mémoire volatile contenant la clé maître. Selon un mode de mise en oeuvre de la présente inven-30 tion, ladite clé diversifiée est stockée dans un élément de mémoire non volatile de l'élément électronique. Selon un mode de mise en oeuvre de la présente invention, l'élément de diversification est contenu de façon non volatile dans l'élément électronique avant la personnalisation. Selon un mode de mise en oeuvre de la présente invention, l'élément de diversification est fourni par le module de personnalisation. Selon un mode de mise en oeuvre de la présente inven-5 tion, une procédure d'authentification de l'élément électronique est mise en oeuvre avant transmission de la clé maître par le module de personnalisation. Selon un mode de mise en oeuvre de la présente invention, les échanges entre l'élément et le module sont au moins 10 partiellement chiffrés. Selon un mode de mise en oeuvre de la présente invention, ledit élément électronique est une carte à puce. L'invention prévoit également un système de personnalisation de cartes à puce. Brève description des dessins Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de mise en oeuvre et réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles: la figure 1 décrite précédenunent représente, de façon très schématique et sous forme de blocs, un exemple classique de système de personnalisation de cartes à puce; la figure 2 décrite précédemment illustre un exemple classique de procédé de personnalisation d'une carte à puce; la figure 3 représente, de façon très schématique et sous forme de blocs, un système de personnalisation selon un mode de réalisation de l'invention; et la figure 4 illustre un mode de mise en oeuvre du 30 procédé de personnalisation de l'invention. Description détaillée L'invention sera décrite par la suite en relation avec un exemple d'application où l'élément électronique à person- naliser est une carte à puce. Elle s'applique toutefois plus généralement à n'importe quel processus de personnalisation d'un élément électronique utilisant un élément de diversification (natif ou non) pour générer une ou plusieurs clés diversifiées. Les mêmes éléments ont été désignés par les mêmes références aux différentes figures. Pour des raisons de clarté, seuls les éléments et étapes qui sont utiles à la compréhension de l'invention ont été représentés et seront décrits par la suite. En particulier, les opérations effectuées lors des étapes de chiffrement ou de codage n'ont pas été détaillées quand elles font appel à des traitements en eux-mêmes classiques. De plus, l'utilisation faite des clés diversifiées issues de la phase de personnalisation n'a pas été détaillée, cette utilisation ne faisant pas l'objet de l'invention qui est compatible avec toute utilisation ultérieure classique. De même, la constitution d'un module de diversification informatique n'a pas été détaillée, l'invention étant compatible avec tout module de diversification classique. Seul le programme de personnalisation exécuté par le module est propre à l'invention, mais ne requiert pas de modification structurelle du module. En outre, la constitution d'une puce intégrée dans une carte n'a pas été détaillée, l'invention étant là encore compatible avec l'architecture classique de n'importe quelle carte à puce adaptée à gérer des clés diversifiées. La figure 3 représente, de façon très schématique et sous forme de blocs, un système de personnalisation selon un 25 mode de réalisation de l'invention. Corme précédenunent, un module de diversification sécurisé 1' (HSM) contient une clé maître MK dans une zone 11 de mémoire. Le module 1' contient en outre tcus les outils de calcul et de communication classiques (non représentés) suscep- tibles d'être utilisés pour une personnalisation et est notamment capable de communiquer par une ou plusieurs liaisons 15 (le cas échéant sécurisées de façon matérielle ou logicielle) avec une carte à puce 2' ou plus généralement n'importe quel élément électronique dont un circuit intégré 21' est à personnaliser. Côté circuit intégré 21', on retrouve un élément 22 de stockage de l'élément de diversification DIV (natif ou non) et une mémoire non volatile 23 pour stocker une ou plusieurs clés diversifiées DK. Selon la présente invention, le circuit intégré 21' à personnaliser contient l'algorithme ou programme de diversification de clés (bloc 24, DIVERS). Cet algorithme de diversification reprend des processus classiques de diversification de clés à partir d'une clé maître MK et d'un élément de diversi- fication DIV affecté au circuit 21'. Ainsi, pour mettre en oeuvre cet algorithme, le circuit à personnaliser 21' a besoin que lui soit transmise, par la liaison 15, la clé maître MK du module de personnalisation. A priori, une telle transmission paraît gênante et semble fragiliser la sécurité du système dans la mesure où elle donne à la puce de circuit intégré 21' tous les éléments pour effectuer la personnalisation et notamment la clé maître MK. Toutefois, selon une caractéristique de la présente invention, cette clé MK est stockée, côté circuit intégré 21' exclusivement dans un élément 25 de mémoire volatile (RAM) qui est effacé à l'issue de la personnalisation. La figure 4 illustre, de façon très schématique et sous forme de blocs, un exemple de mise en oeuvre du procédé de personnalisation selon l'invention. Comme précédemment, la personnalisation débute par l'introduction d'une carte à personnaliser dans le module 1' qui possède la clé maître MK. Selon l'invention, le module de diversification (HSM) envoie la clé MK à la carte CARD à personnaliser (bloc 41 SEND MK). Cet envoi de la clé maître utilise la liaison 15 entre la carte 2' et le module l'. Lorsque la carte CARD reçoit la clé maître MK, elle la stocke (bloc 42, SCORE MK (RAM)) dans sa mémoire volatile 25. Puis (bloc 43, COMPUTE DK), elle met en oeuvre l'algorithme de diversification qu'elle contient pour calculer la clé diver- sifiée DK à partir de la clé maître MK et de l'élément de diversification DIV (le cas échéant également fourni par le module de diversification 1'). La. clé DK est ensuite stockée (bloc 44, STORE DK), comme dans le cas classique de la figure 2 (étape 36). Selon l'invention, dès la procédure de personnalisation terminée (par exemple, dès le stockage 44 ou en fin de calcul 43), la mémoire volatile 25 de la carte à puce 2' est vidée (bloc 45, ERASE MK), au moins pour ce qui concerne la zone contenant la clé maître MK. Ainsi, la période pendant laquelle la clé MK est présente dans la carte à puce 2' est réduite à la phase de personnalisation. De plus, cela se produit alors que la carte à puce est présente dans un environnement sécurisé. De préférence, l'algorithme de diversification propre-ment dit est contenu, dans la carte à puce 2', dans une zone de mémoire non volatile dans laquelle il est introduit soit lors de la fabrication, soit ultérieurement. Il peut s'agir, par exemple, d'une zone d'un programme natif de la carte à puce stocké en mémoire morte (ROM, PROM, etc.). Un avantage de la présente invention est qu'elle simplifie la phase de personnalisation côté module de diversification et, en particulier, facilite la diversification des clés dans des cartes à puce multiapplications. Un autre avantage de la présente invention est que, dans des applications où l'élément de diversification est natif dans la puce, il n'est désormais plus nécessaire que les modules de diversification aient à connaître les éléments de diversification des cartes à personnaliser. Cela permet de cacher effica- cernent au fabricant du module de personnalisation et à l'opérateur de la personnalisation les éléments de diversification présents dans les cartes à puce. Un autre avantage surprenant de l'invention est qu'en fait la transmission de la clé maître vers les portes monnaies électroniques où elle ne reste que temporairement et dans un 2875656 10 environnement sécurisé ne fragilise pas La sécurité des systèmes. Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l'homme de l'art. En particulier, la réalisation pratique de l'invention par une mise en oeuvre matérielle ou logicielle est à la portée de l'homme du métier à partir des indications fonctionnelles données ci-dessus. De plus, le choix du niveau de sécurité de la liaison de communication de la clé maître entre le module de personnalisation et la carte à puce dépend de l'application, l'invention étant compatible avec les procédés de chiffrement de conununication classique. En outre, l'invention est compatible avec des applica- tions dans lesquelles l'élément de diversification (par exemple, un numéro de compte bancaire) est fourni à la carte par le module de personnalisation. REVENDICATIONS 1. Procédé de personnalisation d'un élément électronique (2') par génération d'une clé diversifiée (DK) à partir d'un élément de diversification (DIV) et d'une clé maître (MK) contenue dans un module de personnalisation. (1') externe à l'élément électronique, caractérisé en ce qu'il consiste à : fournir audit élément électronique ladite clé maître; stocker la clé maître dans un élément de mémoire volatile (25) de cet élément; générer la clé diversifiée côté élément électronique; 10 et effacer au moins la zone de la mémoire volatile contenant la clé maître. 2. Procédé selon la revendication 1, dans lequel ladite clé diversifiée (DK) est stockée dans un élément de mémoire non volatile (23) de l'élément électronique (2'). 3. Procédé selon la revendication 1, dans lequel l'élément de diversification (DIV) est contenu de façon non volatile dans l'élément électronique (2') avant la personnalisation. 4. Procédé selon la revendication 1, dans lequel l'élément de diversification (DIV) est fourni par le module de personnalisation (1'). 5. Procédé selon la revendication 1, dans lequel une procédure d'authentification de l'élément électronique (2') est mise en oeuvre avant transmission de la clé maître (MK) par le module de personnalisation (1'). 6. Procédé selon la revendication 1, dans lequel les échanges entre l'élément (2') et le module (1') sont au moins partiellement chiffrés. 7. Procédé selon la revendication 1, dans lequel ledit élément électronique (2') est une carte à puce. 8. Système de personnalisation de cartes à puce, caractérisé en ce qu'il comporte des moyens pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 7.