Brevet FR3081241A1 — publié le 20191122

Procédé de gestion de la valeur de la tension d'alimentation d'un module d'un circuit intégré, et circuit intégré associé Des modes de mise en oeuvre et de réalisation de l'invention concernent les circuits intégrés, notamment mais non exclusivement ceux comportant des modules sécurisés, et en particulier la protection de ce type de circuit contre les analyses par canaux auxiliaires, connues par l'homme du métier sous la dénomination anglo-saxonne « Side channel analysis », et tout particulièrement contre les analyses de la consommation en courant du circuit intégré lors de son fonctionnement. En particulier, un circuit logique, par exemple une porte logique, présente des consommations en courant différentes lors d'une transition du signal délivré par sa borne de sortie d'un état bas vers un état haut, et lors d'une transition d'un état haut vers un état bas. Ces consommations varient également d'une porte logique à une autre. Ainsi, par exemple, dans le cas d'une transition d'un état bas vers un état haut, la consommation d'une porte logique de type inverseur sera différente de la consommation d'une porte de type ET. En analysant la consommation du circuit, grâce à des algorithmes mathématiques dédiés, il est donc possible d'obtenir des informations sur les opérations effectuées ainsi que sur les données manipulées et/ou sur leurs occurrences. En particulier, lors des commutations de ses composants logiques, un circuit intégré produit des signaux électromagnétiques par l'intermédiaire des pistes métalliques du circuit intégré sur lesquelles circule le courant consommé. Il est possible d'analyser la consommation en courant du circuit intégré via ces signaux électromagnétiques. Il existe des solutions pour masquer la consommation en courant d'un circuit intégré, par exemple en réalisant une pluralité de portes logiques supplémentaires, n'intervenant pas dans les opérations sécurisées, en faisant commuter ses portes logiques supplémentaires de 2 façon aléatoire afin de générer une consommation supplémentaire du circuit intégré, et donc des émissions électromagnétiques supplémentaires, indépendantes des opérations sécurisées. Cela étant, bien que cette solution soit avantageuse, elle peut 5 dans certains cas être difficile à implémenter. En outre, il existe un besoin de fournir des solutions plus économes. Ainsi, selon un mode de réalisation, il est proposé un circuit intégré dans lequel on génère des variations d'une tension 10 d'alimentation d'un module indépendantes des opérations sécurisées réalisées par le circuit intégré. Selon un aspect, il est proposé un procédé de gestion de la tension d'alimentation d'un module d'un circuit intégré, dans lequel, au démarrage du circuit intégré, on sélectionne, en réponse à une 15 commande, une action parmi les actions suivantes: - alimenter le module avec la tension d'alimentation ayant une valeur fixe sélectionnée parmi une pluralité de valeurs prédéterminées - faire varier la valeur de la tension d'alimentation au rythme d'un signal impulsionnel. 20 Ainsi, puisque la tension d'alimentation, et donc le courant consommé, ont une valeur qui peut changer, il est plus difficile d'analyser les émissions électromagnétiques du circuit intégré. Celui-ci est donc mieux protégé contre des attaques par canaux auxiliaires. Le signal impulsionnel peut être un signal d'horloge. 25 Le signal impulsionnel peut être un signal impulsionnel aléatoire. La valeur de la commande permettant la sélection peut être paramétrée avant le démarrage du circuit intégré. Ce paramétrage peut englober une valeur prédéterminée de la 30 commande visant à sélectionner à chaque démarrage l'une des actions mentionnées ci-avant, ou bien englober un choix aléatoire de la valeur de la commande parmi des valeurs possibles de la commande correspondant respectivement aux différentes actions pouvant être sélectionnées. 3 Ce paramétrage peut être par exemple fait en usine ou bien par l'utilisateur lors d'une personnalisation du circuit intégré. Selon un autre aspect, il est proposé un circuit intégré comportant un module alimenté par une tension d'alimentation, le 5 circuit intégré comportant un dispositif configurable de gestion de la tension d'alimentation configuré pour, au démarrage du circuit intégré et en réponse à une commande, sélectionner et réaliser une action parmi les actions suivantes : - alimenter le module logique avec la tension d'alimentation 10 ayant une valeur fixe sélectionnée parmi une pluralité de valeurs prédéterminées ; - faire varier la valeur de la tension d'alimentation au rythme d'un signal impulsionnel. Le circuit intégré peut comprendre un régulateur de tension 15 configuré pour délivrer ladite tension d'alimentation et être configuré pour, - dans une première configuration, délivrer un signal de commande ayant une valeur fixe au régulateur de tension, le régulateur de tension étant configuré pour délivrer la tension d'alimentation 20 ayant une valeur fixe à la réception du signal de commande, et - dans une deuxième configuration, délivrer au régulateur de tension ledit signal de commande dont la valeur peut varier parmi une pluralité de valeurs, le régulateur de tension étant configuré pour délivrer la tension d'alimentation dont la valeur dépend de la valeur du 25 signal de commande, le circuit intégré comportant en outre une unité de commande configurée pour délivrer ladite commande au dispositif afin de le placer dans sa première configuration ou dans sa deuxième configuration. 30 L'unité de commande peut être paramétrable de façon à délivrer ladite commande en fonction d'un paramètre d'entrée. Le dispositif peut comporter des moyens de sélection comprenant un premier multiplexeur comportant une pluralité d'entrées configurées chacune pour recevoir un signal ayant une valeur 4 prédéfinie distincte, une sortie couplée au régulateur configurée pour délivrer le signal de commande ayant l'une des valeurs prédéfinies, et une entrée de commande couplée à des moyens de commande configurés pour sélectionner l'une desdites valeurs prédéfinies. 5 Les moyens de sélection peuvent être configurés pour, dans la première configuration, sélectionner la valeur fixe parmi la pluralité de valeurs prédéfinies au démarrage du circuit intégré. Les moyens de sélection peuvent être configurés pour, dans la deuxième configuration, sélectionner la valeur fixe parmi la pluralité 10 de valeurs prédéfinies au rythme d'un signal impulsionnel. Le dispositif peut comporter des moyens de cadencement configurés pour, dans la deuxième configuration, délivrer ledit signal impulsionnel aux moyens de commande, les moyens de commande étant configurés pour sélectionner une nouvelle valeur prédéfinie à 15 chaque impulsion du signal impulsionnel. Le signal impulsionnel peut être un signal d'horloge. Le signal impulsionnel peut être un signal impulsionnel aléatoire. Les moyens de cadencement comportent des moyens de retard 20 configurés pour, de façon aléatoire, appliquer ou non un retard à chaque impulsion du signal impulsionnel. Selon un aspect, il est proposé un système comportant un circuit intégré tel que décrit précédemment, dans lequel le module est configuré pour réaliser des opérations sécurisées. 25 Ce système peut par exemple être une carte à puce. D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée de modes de mise en oeuvre et de réalisation de l'invention, nullement limitatifs, et des dessins annexés sur lesquels : 30 - les figures 1 à 10 illustrent des modes de mise en oeuvre et de réalisation de l'invention. La figure 1 illustre un circuit intégré CI comportant un module logique ML configuré pour effectuer des opérations sécurisées, alimenté par une tension d'alimentation VREG fournie par un 5 régulateur de tension REG. Ici, le régulateur de tension REG, alimenté par une tension VDD, est commandable, c'est-à-dire qu'il est apte à fournir une tension d'alimentation VREG pouvant prendre différentes valeurs en fonction de la valeur d'un signal de commande SC. 5 Le régulateur de tension REG comporte une borne d'entrée BE1 configurée pour recevoir le signal de commande SC, et une borne de sortie BS1 couplée au module logique ML et configurée pour délivrer ladite tension d'alimentation VREG. Le circuit intégré CI comporte en outre un dispositif DIS de 10 gestion de la tension d'alimentation VREG, comportant une borne de commande BSC configurée pour délivrer le signal de commande SC, et une borne d'entrée de commande BEC apte à recevoir une première commande COM1 de la part d'une unité de commande UC. Le dispositif DIS établit la valeur du signal de commande SC, 15 et donc de la tension d'alimentation VREG, en réponse à la première commande COM1 fournie. Le dispositif DIS comporte des moyens de sélection MSL configurés pour sélectionner la valeur du signal de commande SC parmi une pluralité de valeurs prédéfinies, et des moyens de 20 cadencement MCD aptes à délivrer un signal impulsionnel SI à l'unité de commande UC. Dans une première configuration du dispositif DIS, les moyens de sélection MSL sont configurés pour délivrer le signal de commande SC ayant une valeur sélectionnée parmi une pluralité de valeurs, ici 25 quatre valeurs, et qui est fixe durant toute la durée du fonctionnement du dispositif DIS. Le régulateur de tension REG délivre alors la tension d'alimentation VREG dépendante de la valeur du signal de commande SC, qui reste fixe tout au long du fonctionnement du circuit intégré. 30 Dans cette première configuration, les moyens de cadencement MCD sont désactivés, et ne délivrent donc pas le signal impulsionnel SI. La sélection de la valeur du signal de commande SC se fait alors au démarrage du circuit intégré CI, en réponse à la première commande COM1 de l'unité de commande UC. 6 Dans une deuxième configuration du dispositif DIS, les moyens de cadencement MCD sont activés, et délivrent le signal impulsionnel SI à l'unité de commande UC. Dans cette deuxième configuration, les moyens de sélection 5 MSL sont configurés pour délivrer le signal de commande SC dont la valeur est variable et peut prendre une valeur quelconque parmi ladite pluralité de valeurs. Les variations de la valeur du signal de commande SC, et donc de la tension d'alimentation VREG se font au rythme des impulsions 10 du signal impulsionnel SI. Les moyens de sélection MSL comportent la borne de sortie de commande BSC, configurée pour délivrer le signal de commande SC, et la borne d'entrée de commande BEC, configurée pour recevoir le premier signal de commande COM1 de la part de l'unité de commande 15 UC. Les moyens de sélection MSL comportent un premier multiplexeur MX1, et des moyens de commande CMD comportant un deuxième multiplexeur MX2. Le premier multiplexeur MX1 comporte une pluralité d'entrées, 20 ici 4 entrées référencées V1, V2, V3, et V4, et une unique sortie SX1 formant la borne de sortie de commande BSC du dispositif DIS et une entrée de commande CX1. Chacune des entrées V1, V2, V3 et V4 est configurée pour recevoir un signal ayant respectivement une première valeur, une 25 deuxième valeur, une troisième valeur et une quatrième valeur, correspondant chacune à une valeur distincte du signal de commande SC, et donc à une valeur distincte de tension d'alimentation VREG. Par exemple ici, les valeurs des signaux sur les entrées V1, V2, V3 et V4 correspondent respectivement à des valeurs de la tension 30 d'alimentation VREG de 1 volt, 1,1 volt, 1,2 volt, et 1,3 volt. Le deuxième multiplexeur MX2 comporte deux entrées 21 et 22 et une entrée de commande CX2 couplée à l'unité de commande UC et formant la borne d'entrée de commande BEC, et une borne de sortie 7 SX2 couplée à l'entrée de commande CX1 du premier multiplexeur MX1. La première entrée 21 du deuxième multiplexeur MX2 est couplée à un premier registre REG1 configuré pour délivrer un signal 5 dont la valeur correspond ici à la sélection de la troisième entrée V3 du premier multiplexeur MX1. La valeur du signal de commande SC associée à la première entrée V3 du premier multiplexeur MX1 joue ici le rôle de valeur par défaut. Il serait toutefois possible que la valeur contenue dans le 10 premier registre REG1 corresponde à une valeur du signal de commande SC correspondant à la sélection d'une autre valeur de la tension d'alimentation VREG, qui serait alors la valeur par défaut. La deuxième entrée 22 du deuxième multiplexeur MX2 est couplée à un deuxième registre REG2 comportant quatre valeurs et est 15 configurée pour délivrer un signal dont la valeur est l'une quelconque des quatre valeurs contenues dans le registre sélectionné aléatoirement. Ainsi, la sélection de la deuxième entrée 22 du deuxième multiplexeur MX2 correspond à une sélection aléatoire de l'une 20 quelconque des entrées du premier multiplexeur MX1. L'unité de commande UC est configurée pour, dans la première configuration, sélectionner la première ou la deuxième entrée 21 du deuxième multiplexeur MX2 et pour désactiver les moyens de cadencement MCD, et pour, dans la deuxième configuration, 25 sélectionner la deuxième entrée 22 du deuxième multiplexeur MX2, pour activer les moyens de cadencement MCD, et pour envoyer une deuxième commande COM2 au deuxième registre REG2 au rythme des impulsions du signal impulsionnel SI, afin que la valeur délivrée par le deuxième registre REG2 sur la deuxième entrée 22 du deuxième 30 multiplexeur MX2 change au rythme des impulsions du signal impulsionnel SI. Par exemple, la configuration de l'unité de commande UC peut être effectuée lors de la fabrication du circuit intégré CI, afin par 8 exemple que le dispositif DIS soit toujours dans sa première configuration ou toujours dans sa deuxième configuration. Il serait également possible de configurer l'unité de commande UC de façon à ce qu'au démarrage du circuit intégré CI, l'unité de 5 commande UC choisisse aléatoirement l'une ou l'autre des configurations. Les moyens de cadencement MCD comportent un troisième multiplexeur MX3 comportant plusieurs entrées, ici quatre entrées 31, 32, 33 et 34, et une sortie SX3 configurée pour délivrer le signal 10 impulsionnel SI. Une première entrée 31 est configurée pour recevoir un signal impulsionnel dont les impulsions sont générées de façon aléatoire, une deuxième entrée 32 est configurée pour recevoir un signal impulsionnel étant un signal d' horloge, c' est-à-dire dont les 15 impulsions présentent des états hauts et des états bas de durées identiques, une troisième entrée 33 est configurée pour recevoir un signal impulsionnel dont la fréquence est dix fois plus faible que la fréquence du signal d'horloge, et une quatrième entrée 34 est configurée pour recevoir un signal impulsionnel SI dont la fréquence 20 est n fois plus faible que la fréquence du signal d'horloge, n étant un nombre entier pouvant être choisi aléatoirement, par exemple par l'unité de commande UC. La sortie SX3 du troisième multiplexeur MX3 est couplée à l'unité de commande UC via des moyens de retard MR configurés pour 25 choisir aléatoirement d'appliquer ou non un retard à chaque impulsion du signal impulsionnel SI. Les moyens de retard MR sont couplés à l'unité de commande UC, et sont aptes à recevoir une troisième commande COM3 de la part de l'unité de commande UC, la troisième commande COM3 30 correspondant à une commande d'activation ou de désactivation des moyens de retard MR. Si les moyens de retard MR sont désactivés, le signal impulsionnel SI est transmis à l'unité de commande UC sans être retardé. 9 L'entrée de commande CX3 du troisième multiplexeur MX3 est couplée à l'unité de commande UC et est apte à recevoir une quatrième commande COM4 correspondant à la sélection de l'une des entrées du troisième multiplexeur MX3. 5 Les figures 2 et 3 illustrent un mode de réalisation dans lequel le dispositif DIS est dans la première configuration. Dans cette première configuration, les moyens de cadencement MCD sont désactivés. A des fins de simplification, la désactivation des moyens de 10 cadencement MCD est illustrée sur la figure 2 par un interrupteur INT ouvert. La désactivation des moyens de cadencement pourra en pratique se faire par tout moyen classique que l'homme du métier saura choisir. Dans ce mode de réalisation, l'unité de commande UC est 15 configurée pour, au démarrage du dispositif DIS, sélectionner la première entrée 21 du deuxième multiplexeur MX2; ainsi, la troisième entrée V3 du premier multiplexeur MX1 est sélectionnée. Le signal de commande SC a donc ici la troisième valeur. A la réception de ce signal, comme l'illustre la figure 3, le régulateur de 20 tension REG générera la tension d'alimentation VREG ayant la première valeur, ici 1,2V, et cette tension sera maintenue pendant tout le fonctionnement du circuit intégré. Les figures 4 et 5 illustrent un fonctionnement alternatif du dispositif DIS dans sa première configuration. 25 Dans ce mode de réalisation, l'unité de commande UC est configurée pour, au démarrage du dispositif DIS sélectionner la deuxième entrée 22 du deuxième multiplexeur MX2; ainsi, le deuxième registre délivre un signal correspondant à l'une quelconque des valeurs qu'il contient, et par conséquent l'entrée correspondante V1, V2, V3, 30 ou V4 du premier multiplexeur MX1 est sélectionnée aléatoirement. Par exemple ici, la première entrée V1 est sélectionnée. Le signal de commande SC a donc ici la première valeur. A la réception de ce signal, comme l'illustre la figure 5, le régulateur de tension REG génère la tension d'alimentation VREG ayant la première 10 valeur, ici 1 volt, et cette tension sera maintenue pendant tout le fonctionnement du circuit intégré CI. Ainsi, à chaque démarrage du circuit intégré CI, la tension d'alimentation VDD peut être différente, ce qui rend plus difficile une 5 attaque par canaux auxiliaire. Les figures 6 et 7 illustrent un mode de réalisation dans lequel le dispositif DIS est dans sa deuxième configuration. Dans ce mode de réalisation, les moyens de cadencement MCD sont activés, et l'unité de commandes UC est configurée pour 10 sélectionner la deuxième entrée 22 du troisième multiplexeur MX3. Les moyens de cadencement MCD sont configurés pour délivrer le signal impulsionnel SI étant un signal d'horloge. A chaque impulsion du signal impulsionnel SI, l'unité de commande UC envoi la deuxième commande COM2 au deuxième 15 registre REG2, qui en réponse sélectionne l'une quelconque des quatre valeurs qu'il contient et la délivre sur la deuxième entrée 22. Ainsi, comme l'illustre la figure 7, à chaque impulsion du signal impulsionnel SI, le régulateur fournit la tension d'alimentation VREG ayant éventuellement une nouvelle valeur parmi 1 volt, 1,1 volt, 20 1,2 volt, et 1,3 volt. Le fonctionnement du dispositif DIS lorsque la troisième entrée 33 ou la quatrième entrée 34 du troisième multiplexeur MX3 est sélectionnée est analogue à ce mode de réalisation, à la différence que la fréquence du signal impulsionnel est respectivement dix fois plus 25 faible ou n fois plus faible. Selon une variante de fonctionnement illustrée sur les figures 8 et 9, l'unité de commande UC peut être configurée pour sélectionner la première entrée 31 du troisième multiplexeur MX3. Ainsi, le signal impulsionnel SI sera un signal aléatoire, et, comme l'illustre la figure 30 8, le régulateur REG sera alors configuré pour délivrer la tension d'alimentation VREG dont la valeur varie aléatoirement, au rythme du signal impulsionnel SI. En lien avec la deuxième configuration du dispositif DIS, il serait possible que l'unité de commande UC active les moyens de 11 retard MR, de façon à ce que certaines au moins des impulsions soit retardées d'un retard prédéfini, ou d'un retard choisi parmi une pluralité de retards possibles. Cela permet avantageusement de renforcer le caractère 5 aléatoire du dispositif DIS, et donc de rendre encore plus difficile une attaque par canaux auxiliaire. Un signal impulsionnel régulier, par exemple un signal d'horloge, auquel on applique ou non de façon aléatoire un retard sur ses impulsions peut être considéré comme un signal impulsionnel 10 aléatoire. L'application de retards éventuels sur les impulsions d'un signal d'horloge est donc un moyen alternatif d'obtenir un signal impulsionnel aléatoire, par rapport à la sélection de la deuxième entrée 32 du troisième multiplexeur MX3. 15 Le circuit intégré CI décrit précédemment en lien avec les figures 1 à 9 peut être intégré dans tout type de système SYS dans lequel une protection solide contre les attaques par canaux auxiliaires est bénéfique, REVENDICATIONS1. Procédé de gestion de la tension d'alimentation d'un module d'un circuit intégré (CI), dans lequel, au démarrage du circuit intégré (CI), on sélectionne, en réponse à une commande, une action parmi les actions suivantes : alimenter le module avec la tension d'alimentation (VREG) ayant une valeur fixe sélectionnée parmi une pluralité de valeurs prédéterminées ; - faire varier la valeur de la tension d'alimentation (VREG) au rythme d'un signal impulsionnel (SI). 2. Procédé selon la revendication 1 ou 2, dans lequel le signal impulsionnel (SI) est un signal d'horloge. 3. Procédé selon la revendication 1 ou 2, dans lequel le signal impulsionnel est un signal impulsionnel aléatoire. 4. Procédé selon l'une quelconque des revendications précédentes, dans lequel la valeur de la commande permettant la sélection est paramétrée avant le démarrage du circuit intégré. 5. Circuit intégré comportant un module (ML) alimenté par une tension d'alimentation (VREG), le circuit intégré (CI) comportant un dispositif configurable (DIS) de gestion de la tension d'alimentation configuré pour, au démarrage du circuit intégré et en réponse à une commande, sélectionner et réaliser une action parmi les actions suivantes : alimenter le module logique avec la tension d'alimentation (VREG) ayant une valeur fixe sélectionnée parmi une pluralité de valeurs prédéterminées ; faire varier la valeur de la tension d'alimentation (VREG) au rythme d'un signal impulsionnel (SI). 6. Circuit intégré selon la revendication 5, comprenant un régulateur de tension (REG) configuré pour délivrer la tension d'alimentation (VREG), dans lequel le dispositif (DIS) est configuré pour, dans une première configuration, délivrer un signal de 13 commande (SC) ayant une valeur de commande fixe au régulateur de tension (REG), le régulateur de tension (REG) étant configuré pour, a la réception du signal de commande (SC), délivrer la tension d'alimentation ayant ladite valeur fixe parmi ladite pluralité de valeurs 5 prédéterminée, et dans une deuxième configuration pour délivrer au régulateur de tension (REG) ledit signal de commande (SC) dont la valeur peut varier parmi une pluralité de valeurs au rythme du signal impulsionnel (SI), le régulateur de tension (REG) étant configuré pour délivrer la tension d'alimentation (VREG) dont la valeur dépend de la 10 valeur du signal de commande (SC) et le circuit intégré (CI) comporte une unité de commande configuré pour délivrer ladite commande au dispositif afin de le placer dans sa première configuration ou dans sa deuxième configuration. 7. Circuit selon la revendication 5 ou 6, dans lequel l'unité de 15 commande (UC) est paramétrable de façon à délivrer ladite commande en fonction d'un paramètre d'entrée. 8. Circuit intégré selon l'une quelconque des revendications 5 à 7, dans lequel le dispositif (DIS) comporte des moyens de sélection (MSL) comprenant un premier multiplexeur (MX1) comportant une 20 pluralité d'entrées (V1, V2, V3, V4) configurées chacune pour recevoir un signal ayant une valeur prédéterminée distincte, une sortie (SX1) couplée au régulateur (REG) configurée pour délivrer le signal de commande (SC) ayant l'une des valeurs prédéterminées, et une entrée de commande (CX1) couplée à des moyens de commande (CMD) 25 configurés pour sélectionner l'une desdites valeurs prédéterminées. 9. Circuit intégré selon la revendication 8, dans lequel les moyens de sélection (MSL) sont configurés pour, dans la première configuration, sélectionner la valeur fixe parmi la pluralité de valeurs prédéterminées au démarrage du circuit intégré. 30 10. Circuit intégré selon la revendication 8 ou 9, dans lequel les moyens de sélection (MSL) sont configurés pour, dans la deuxième configuration, sélectionner la valeur fixe parmi la pluralité de valeurs prédéfinies au rythme du signal impulsionnel (SI). 14 11. Circuit intégré selon l'une quelconque des revendications 8 à 10, dans lequel le dispositif (DIS) comporte des moyens de cadencement (MCD) configurés pour, dans la deuxième configuration, délivrer ledit signal impulsionnel (SI) aux moyens de commande 5 (CMD), les moyens de commande (CMD) étant configurés pour sélectionner une nouvelle valeur prédéfinie à chaque impulsion du signal impulsionnel (IMP). 12. Circuit selon l'une quelconque des revendications 5 à 11, dans lequel le signal impulsionnel (SI) est un signal d'horloge. 10 13. Circuit selon l'une quelconque des revendications 5 à 11, dans lequel le signal impulsionnel (SI) est un signal impulsionnel aléatoire. 14. Circuit selon l'une quelconque des revendications 11 à 13, dans lequel les moyens de cadencement (MCD) comportent des moyens 15 de retard (MR) configurés pour, de façon aléatoire, appliquer ou non un retard à chaque impulsion du signal impulsionnel (SI). 15. Système comportant un circuit intégré selon l'une quelconque des revendications 5 à 14, dans lequel le module (ML) est configuré pour réaliser des opérations sécurisées. 20 16. Système selon la revendication 15, le système étant une carte à puce.