Brevet FR2716280A1 — publié le 19950818

Procédé de protection des composants de cartes à mémoire contre des utilisations frauduleuses La présente invention concerne un procédé de protection des composants de cartes à mémoire contre des utilisations frauduleuses, dans lequel le composant est bloqué aussi longtemps qu'un ordre de déblocage constitué par une clé secrète ne lui a pas été appliqué. A l'heure actuelle, pour réaliser une carte à mémoire selon le processus traditionneld, on passe obligatoirement par les différentes étapes suivantes: I. Fabrication du composant, ou "puce", chez le fondeur de silicium. 1. Masquage de la mémoire morte ROM (système opératoire) et des différentes fonctionnalités du composant, diffusion, test, etc...; 2. Inscription d'un numéro unique N (différent pour chaque composant) et d'une clé secrète CS dans la mémoire non volatile programmable du composant (EPROM, EEPROM, FLASH, ...); 3. Composant sous contrôle du système opératoire; 4. Livraison des tranches de silicium sur lesquelles sont réalisés les composants à l'encarteur. Il. Encartage du composant chez l'encarteur. 1. Réception des tranches de silicium; 2. Encartage dans une carte plastique; 3. Déblocage du composant au moyen de la clé secrète CS; 4. Personnalisation de la mémoire non volatile programmable de la carte en fonction des applications envisagées; 5. Livraison au client du produit fini. On voit qu'après l'étape I.1., le composant est sous le contrôle du système opératoire (ROM) qui bloque toute commande reçue, tant que l'ordre de déblocage constitué par la clé secrète CS n'a pas correctement fonctionné. Cette commande de déblocage n'est en fait envoyée à la carte que lors de l'étape 11.3., chez l'encarteur. Cependant, on voit également que le fondeur de silicium inscrit la clé secrète CS dans le composant lors de l'étape 1.2. et connaît donc forcément cette clé qui lui est généralement communiquée sous forme sécurisée par l'encarteur. Par suite, du personnel indélicat du fondeur pourrait fort bien débloquer le composant dès l'étape 1.2. et l'utiliser à des fins frauduleuses. La présente invention a donc pour but principal de remédier à cet inconvénient et, pour ce faire, elle a pour objet un procédé de ptction des composants de cartes à mémoire du type susmentionné qui se caractérise essentiellement en ce qu'i consiste à inscrire dans le composant, lors de sa fabrication, une valeur et un résultat, ledit résultat étant relié à ladite valeur par un algorithme déterminé et ladite clé secrète. Grâce à cette disposition, le fondeur de siicium ne détient plus aucun secret mais seulement ladite valeur et ledit résultat inscrits dans le composant, ces données pouvant être conservées non secrètes. Ainsi, seul l'encarteur détient la clé secrète permettant de débloquer le composant. Dans une forme de réalisation particulière de l'invention, ladite valeur est inscrite dans la mémoire morte ROM du composant tands que ledit rsultat est iscrit dam la mémoire programmable de ce composant. il est ainsi possible de changer périodiquement le résultat tout en conmservant la même valeur, donc de changer également la cldé secrète, ce qui réduit encore les possibilités de fraude. En effet, à chaque clé secrète correspond un nouveau résultat calculé par l'enarteur en fonction de l'algorithme choisi. Selon une autre caractéristique de l'invention, la clé secrète est stockLée sr une autre carte à mémoire, mais sous une forme diversifiée par un numéro propre au composant préalablement inscrit dans celui-ci. Ainsi, la clé secrète ne peut pas sortir en clair de cette carte, ce qui permet d'utiliser des encarteurs sous-traitants sans avoir à leur divulguer ladite clé secrète. Une forme d'exécution de l'invention est décrite ci-après plus en détail à titre d'exemple. Le procédé conforme à l'invention consiste essentiellement à inscrire dans le composant, lors de sa fabrication et à la place de la dlé secrète CS permettant de débloquer ledit composant, une valeur V et un résultat R, ce résultat R dépendant à la fois de ladite valeur V et de la clé secrète CS par l'intermédiaire d'un algotle déterminé A. Ainsi, pour réaliser une carte à mémoire selon le procédé de l'invention, on passe par les différentes étapes suivantes: I. Fabrication du composant chez le fondeur de silicium. 1. Masquage de la mémoire morte ROM (système opératoire) et des différentes fonctionnalités du composant. A ce stade, on inscrit également dans la ROM une valeur V. 2. Inscription d'un numéro unique N propre au composant considéré dans la mémoire non volatile programmable du composant, par exemple une EPROM. A ce stade, on inscrit également dans la mémoire programmable EPROM un résultat R fourni par l'encarteur. 3. Composant sous contrôle du système opératoire. 4. Livraison des tranches de silicium à l'encarteur. HI. Encartage du composant chez l'encarteur. 1. Réception des tranches de silicium. 2. Encartage dans une carte plastique. 3. Déblocage du composant au moyen de la clé secrète CS connue du seul encarteur. 4. Personnalisation de la mémoire non volatile programmable de la carte. 5. Livraison au client du produit fini. Après l'étape.1., le composant est sous le contrôle du système opératoire de la ROM qui bloque toute commande reçue, tant que l'ordre de déblocage constitué par la clé secrète CS n'a pas correctement fonctionné. Conformément à l'invention, cette clé secrète CS est liéce à la valeur V et au résultat R par un algorithme A. Le déblocage de la carte s'effectue donc en comparant le résultat R inscrit dans le composant au résultat calculé à partir de la valeur V, également inscrite dans le composant, de la clé secrète CS, appliqué par l'encartcur et connue de lui seul, et de l'algorithme A, selon la formule R = A (V.CS). Si les deux résultats sont idcnfiques, la carte est débloquée, tandis que dans le cas contraire, la carte reste bloquée. Bien entendu, l'algorithme A devra être conçu de telle façon que connamissant V et R, il soit impossible d'en déduire la clé secrètc CS. En effet, la valeur V se trouve en ROM et elle est donc non secrète puisque le fondeur pourrait de toute façon la connacître pour masquer la ROM. De même, le résultat R est également non secret et doit être fourni par l'cncarteur au fondeur. En revanche, la clé CS n'est détenue que par lencarteur qui est seul habilité à débloquer la carte, ce qui réduit consid6rablemcnt les risques de fraude. On notera en outre que comme le résultat R se trouve dans une mémoire non volatile réinscriptible, il est possible de changer périodiquement ce résultat sans modifier la valeur V, et donc de changer également la clé secrète CS, ce qui réduit encore les possibilités de fraude. Il suffit en effet que l'encarteur change la dclé CS pour générer un nouveau résultat R selon la formule R = A (V.CS). On peut égalemcnt envisager de stocker hla clé secrète CS dans une autre carte à mémoire, dite carte lot, cette clé ne sortant jamais en clair de la carte lot, mais seulement diversifiée par le numéro N du composant selon la formule suivante CS = A (N. CSM), dans laquelle CSM est la clé maitre secrète stockée dans la carte lot, puis diversifiée à l'intérieur de la carte lot au moyen de l'algorithme A et du numéro N. Grâce à cette disposition, il est possible de multiplier le nombre d'encartcurs sans augmenter les risques de fraude. En effet, l'encarteur ayant développé le système opératoire génère des cartes lots, puis les envoie aux différents encarteurs sous-traitants sans leur dévoiler la clé secrète CS, puisque celle-ci ne sort jamais en clair de la caote lot, mais seulement sous forme diversifiée. REVENDICATIONS 1. Procédé de protection des composants de cartes à mémoire contre des utilisations frauduleuses, dans lequel le composant est bloqué aussi longtemps qu'un ordre de déblocage constitué par une clé secrète (CS) ne lui a pas été appliqué, caractérisé en ce qu'il consiste à inscrire dans le composant, lors de sa fabrication, une valeur (V) et un résultat (R), ledit résultat (R) étant relié à ladite valeur (V) par un algorithme déterminé (A) et ladite clé secrète (CS). 2. Procédé selon la revendication 1, caractérisé en ce que ladite valeur (V) est inscrite dans la mémoire morte ROM du composant, tandis que ledit résultat (R) est inscrit dans la mémoire programmable de ce composant. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que la clé secrète (CS) est stockée sur une autre carte à mémoire, mais sous une forme diversifiée par un numéro (N) propre au composant préalablement inscrit dans celui-ci.