Brevet FR2844896A1 — publié le 20040326

ALIMENTATION D'UN CIRCUIT DE TRAITEMENT ASYNCHRONE DE DONN ES La présente invention concerne les circuits intégrés ou éléments de circuit intégré exécutant de façon asynchrone des traitements de données numériques. L'invention concerne plus particulièrement les circuits manipulant des données que l'on 5 souhaite protéger, par exemple, des données confidentielles ou des clés d'authentification. Un type répandu d'attaque de données d'un circuit intégré exécutant des algorithmes sécurisés consiste à analyser la consommation du circuit intégré ou de la partie de celui-ci 10 exécutant l'algorithme manipulant des données secrètes. De telles attaques par analyse de consommation sont connues sous des abréviations SPA (Single Power Analysis) ou DPA (Differential Power Analysis) et consistent à analyser la consommation d'un circuit intégré en fonction des données qu'il traite afin de 15 découvrir des données censées être secrètes. Dans un circuit fonctionnant de façon asynchrone, le circuit fournit les données de sortie en même temps qu'une information comme quoi ces données sont disponibles, une fois qu'il a terminé le traitement. Une attaque par analyse de la 20 consommation d'un circuit asynchrone consiste à observer les pics d'énergie qui correspondent en fait à des données (aux instants o ces données sont traitées). Il est alors possible, pour un pirate, de découvrir l'algorithme ou les données secrètes manipulées. Pour essayer de masquer les traitements de données, une solution connue consiste à ajouter des circuits de 5 traitement supplémentaires, inutiles pour le processus sécurisé proprement dit, mais qui consomment de l'énergie lorsqu'ils manipulent les données. Les données manipulées par le processus asynchrone à protéger sont alors en quelque sorte masquées par l'énergie prélevée par les circuits de traitement additionnels. 10 Outre le fait que l'efficacité d'une telle solution est en quelque sorte proportionnelle au nombre de circuits de traitement supplémentaires prévus, donc à l'encombrement supplémentaire dans le circuit intégré, elle ne fait qu'augmenter le nombre de combinaisons de données possibles que 15 le pirate doit évaluer. En fait, si la consommation additionnelle dépend des données traitées, ces données restent vulnérables. Si la consommation additionnelle est indépendante des données traitées, elle représente en quelque sorte un bruit qui peut être éliminé 20 par des méthodes statistiques. En outre, ajouter des traitements augmente la consammation. La présente invention vise à proposer une autre solution pour protéger l'exécution d'un processus algorithmique asynchrone contre des attaques par analyse de la consommation du 25 circuit intégré ou de la partie de circuit exécutant ce processus. La présente invention vise notamment à proposer une solution dont l'efficacité ne soit pas liée à l'encombrement supplémentaire dans le circuit intégré. L'invention vise également à proposer une solution qui ne se traduise pas simplement par une augmentation des combinaisons possibles devant être examinées par le pirate. Pour atteindre ces objets et d'autres, la présente invention prévoit un procédé d'alimentation d'un élément de 35 calcul asynchrone d'un circuit intégré, consistant à faire varier aléatoirement l'énergie instantanée d'alimentation de l'élément de calcul. Selon un mode de mise en oeuvre de la présente invention, on répartit aléatoirement, dans une fenêtre tempo5 relle prédéterminée, l'énergie instantanée fournie à l'élément de calcul, l'énergie totale dans la fenêtre étant prédéterminée. Selon un mode de mise en oeuvre de la présente invention, l'énergie totale fournie à l'élément de calcul dans la fenêtre temporelle est déterminée en fonction de la consom10 mation maximale possible de l'élément de calcul. La présente invention prévoit également un circuit d'alimentation d'au moins un élément de traitement asynchrone d'un circuit intégré, comportant un élément d'alimentation variable commandé de façon aléatoire ou pseudo-aléatoire. Selon un mode de réalisation de la présente invention, ledit élément d'alimentation variable fait varier la tension d'alimentation de l'élément de traitement asynchrone. Selon un mode de réalisation de la présente invention, l'élément d'alimentation variable est commandé par un générateur 20 pseudo-aléatoire. 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 de réalisation particuliers faite à titre non limitatif en relation 25 avec les figures jointes parmi lesquelles: la figure 1 représente, de façon très schématique et sous forme de blocs, un mode de réalisation d'un circuit d'alimentation d'un élément de calcul asynchrone selon la présente invention; et la figure 2 illustre, par un chronogramme, un mode de mise en oeuvre du procédé d'alimentation selon l'invention. Pour des raisons de clarté, seuls les étapes de procédé et éléments de circuit qui sont nécessaires à la compréhension de l'invention ont été représentés aux figures et seront 35 décrits par la suite. En particulier, l'algorithme mis en oeuvre par l'élément de calcul à protéger n'a pas été détaillé et ne fait pas l'objet de l'invention, celle-ci s'appliquant quel que soit le processus asynchrone mis en oeuvre. De plus, l'élément de calcul asynchrone est bien sr le plus souvent associé à 5 d'autres éléments de circuit avec lequel il est intégré. On ne fera référence ciaprès qu'à l'élément de calcul asynchrone et à son alimentation, l'invention n'agissant pas sur le reste du circuit qui dépend de l'application. Une caractéristique de la présente invention est de 10 faire varier aléatoirement l'énergie fournie à l'élément de traitement asynchrone des données à protéger. La présente invention tire profit du fait que, dans un élément de traitement asynchrone, un défaut d'énergie par rapport à l'énergie nécessaire à la manipulation d'une donnée ne 15 se traduit pas par une erreur de fonctionnement mais simplement par un retard dans le traitement des données. En effet, un élément de traitement asynchrone attend en quelque sorte d'avoir l'énergie nécessaire au traitement pour poursuivre son calcul. Dans les circuits classiques, la source d'énergie est 20 suffisante pour fournir à l'élément de traitement toute l'énergie qu'il requiert à chaque instant. Selon l'invention, on impose l'énergie fournie à l'élément de traitement. Par exemple, on utilise un générateur pseudo-aléatoire tenant compte de la durée souhaitée pour le calcul afin de 25 répartir la quantité d'énergie nécessaire à ce calcul dans une fenêtre temporelle. En effet, la seule contre-partie de la mise en oeuvre de l'invention est un allongement de la durée d'exécution. Cette durée d'exécution peut cependant être maintenue dans une fenêtre 30 prédéterminée grâce à une génération pseudo-aléatoire. Si l'application le permet, notamment si elle n'impose pas de contraintes temporelles, on peut utiliser un générateur aléatoire qui présente l'avantage de dissocier non seulement l'alimentation mais également la durée par rapport aux données 35 traitées. La durée de traitement est ainsi rendue aléatoire. La figure 1 représente, de façon partielle très schématique et sous forme de blocs, un mode de réalisation d'un circuit d'alimentation d'un élément 1 d'exécution asynchrone d'un algorithme de traitement de données (ASYNCALGO). De façon 5 classique, l'élément de calcul asynchrone peut être schématisé comme un circuit recevant des données d'entrée E, fournissant des données de sortie S et échangeant des signaux de commande (CTRL) avec le reste du circuit intégré (par exemple, avec un microprocesseur non représenté). Parmi les signaux de commande 10 figure notamment le signal par lequel l'élément 1 indique au reste du circuit intégré que les données de sortie S sont disponibles. Selon l'invention, le circuit 1 est alimenté au moyen d'un circuit 2 (VAR). Le circuit 2 fournit une énergie variable 15 au circuit 1 et est alimenté par une tension Valim, par exemple, la tension d'alimentation du circuit intégré. Au sens de l'invention, la variation d'énergie peut être effectuée en tension ou en courant, en respectant si besoin les contraintes d'alimentation minimales (par exemple, en niveau de tension) 20 afin de ne pas perdre les données en cours de traitement par le circuit asynchrone 1. Selon le mode de réalisation représenté en figure 1, le circuit 2 de variation de l'alimentation est commandé par un générateur 3 pseudoaléatoire (PRG) afin de distribuer l'énergie 25 de façon aléatoire tout en respectant une fenêtre temporelle T prédéterminée correspondant à la durée souhaitée pour l'exécution du calcul. Le générateur 3 reçoit la consigne T, par exemple, de l'unité centrale du circuit intégré fixant la fenêtre temporelle. Dans le cas o un même circuit intégré contient plusieurs éléments de traitement asynchrone distincts, ceux-ci peuvent être alimentés séparément les uns des autres ou de façon commune au moyen d'un même générateur variable 2. La figure 2 illustre le fonctionnement du circuit de 35 la figure 1 par un organigramme représentant l'énergie (PW) fournie au circuit 1 dans une fenêtre temporelle T d'exécution du calcul. En figure 2, on a représenté par un pointillé p. ce que pourrait être l'énergie absorbée par le circuit 1 dans un 5 cas classique, si celui-ci était directement alimenté par la tension Valim sans recours au générateur variable 2 propre à l'invention. Dans ce cas, l'élément 1 prélève autant d'énergie qu'il en a besoin instantanément. C'est ce qui permet à un pirate éventuel d'analyser les pics de consommation et de relier 10 ces pics aux données (bits 0 ou 1) traitées. Selon l'invention, la même quantité d'énergie nécessaire à l'exécution de l'ensemble du calcul est répartie temporellement dans la fenêtre T de façon aléatoire. Comme cela a été indiqué ci-dessus, la seule 15 conséquence est un allongement de la durée du calcul par rapport au cas classique. Toutefois, cet allongement peut être si besoin limité à une fenêtre temporelle prédéterminée du générateur pseudo-aléatoire. Un avantage de la présente invention est qu'elle 20 permet de masquer les données manipulées par un élément asynchrone de façon particulièrement efficace et, notamment, sans que cela se traduise par une augmentation des combinaisons à examiner par le pirate éventuel. En effet, aucun traitement (calcul) supplémentaire des données n'est prévu par l'invention. 25 Par conséquent, l'efficacité du système n'est pas liée à l'accroissement de l'encombrement des circuits de traitement. Un autre avantage de l'invention est qu'elle ne nécessite aucune modification de l'élément de traitement asynchrone proprement dit. On se contente d'intervenir sur son alimen30 tation. Cet avantage conduit notamment à ce que l'invention puisse être mise en oeuvre dans n'importe quel processus de traitement asynchrone existant sans engendrer de modifications de la partie calcul du circuit intégré existant. Un autre avantage de la présente invention est qu'elle 35 n'engendre pas de consommation énergétique supplémentaire pour l'exécution du calcul luimême, contrairement aux solutions requérant des circuits de traitement additionnels. La mise en oeuvre pratique de l'invention à partir des indications fonctionnelles données ci-dessus est à la portée de 5 l'homme du métier. En particulier, la réalisation d'un générateur variable alimentant un élément de calcul asynchrone ne nécessite que des composants classiques et est à la portée de l'homme du métier. Bien entendu, la présente invention est susceptible de 10 diverses variantes et modifications qui apparaîtront à l'homme de l'art. En particulier, la détermination du niveau d'énergie minimal éventuel qu'il faut fournir à un élément de traitement asynchrone pour préserver les données qu'il est en train de traiter dépend de l'application et l'homme du métier sera à même 15 de fixer les seuils adaptés. Par exemple, on pourra fixer un seuil minimal de tension d'alimentation et faire varier aléatoirement la tension d'alimentation du circuit de traitement dans une plage prédéterminée. Enfin, la réalisation d'un générateur d'une consigne aléatoire ou pseudo-aléatoire fait appel à 20 des moyens classiques qui sont à la portée du l'homme du métier. REVENDICATIONS 1. Procédé d'alimentation d'un élément de calcul asynchrone (1) d'un circuit intégré, caractérisé en ce qu'il consiste à faire varier aléatoirement l'énergie instantanée d'alimentation de l'élément de calcul. 2. Procédé selon la revendication 1, caractérisé en ce qu'il consiste à répartir aléatoirement, dans une fenêtre temporelle prédéterminée (T), l'énergie instantanée fournie à l'élément de calcul, l'énergie totale dans la fenêtre étant prédéterminée. 3. Procédé selon la revendication 2, caractérisé en ce que l'énergie totale fournie à l'élément de calcul dans la fenêtre temporelle est déterminée en fonction de la consommation maximale possible de l'élément de calcul. 4. Circuit d'alimentation d'au moins un élément de 15 traitement asynchrone (1) d'un circuit intégré, caractérisé en ce qu'il comporte un élément d'alimentation variable (2) commandé de façon aléatoire ou pseudo-aléatoire. 5. Circuit selon la revendication 4, caractérisé en ce que ledit élément d'alimentation variable (2) fait varier la 20 tension d'alimentation de l'élément de traitement asynchrone (1). 6. Circuit selon la revendication 5, caractérisé en ce que l'élément d'alimentation variable (2) est commandé par un générateur pseudo-aléatoire (3).