FR 2884336 A1 20061013 FR 0601812 A 20060301 2884336 1 DISPOSITIF ET PROCEDE POUR CALCULER UNE REPRESENTATION D'UN OPERANDE DE RESULTAT Domaine de l'invention La présente invention concerne les portes logiques et, en particulier, les portes logiques présentant un niveau de sécurité accru contre l'analyse d'énergie différentielle. Historique de l'Invention et Art Antérieur La cryptoanalyse sur base d'informations de canal latéral a été appliquée avec succès pour attaquer des dispositifs cryptographiques. Ces attaques exploitent les informations qui s'échappent pendant le calcul d'algorithmes cryptographiques, telle que les informations de temps, de consommation d'énergie, ou des émanations électromagnétiques du dispositif. Kocher [13] a montré que la consommation d'énergie de dispositifs cryptographiques non protégés fournit un canal latéral qui peut être utilisé avec un matériel extrêmement simple. L'analyse d'énergie différentielle (DPA) permet à l'agresseur d'exploiter les corrélations entre la consommation d'énergie instantanée observable et les résultats intermédiaires concernant le secret. Ces dernières années, il est devenu de plus en plus évident qu'il est extrêmement difficile de se protéger contre les attaques d'énergie différentielle [6, 19, 3, 14]. La première classe d'approches ad hoc, appelée contre-mesures de matériel, cherche à réduire le rapport signal-bruit de la fuite du canal latéral et à enfouir finalement les informations utiles dans le bruit. Les contremesures de matériel comprennent des procédés tels que des alimentations de courant détachées [22], l'addition de générateurs de bruit d'énergie, ou l'application d'un déréglage probabiliste des moments auxquels les résultats intermédiaires attaqués sont traités à l'aide d'insertions de retard aléatoire ou randomisation du trajet d'exécution. Tandis que de telles mesures augmentent certainement la charge de travail expérimentale et de calcul de l'agresseur, elles ne rendent pas l'attaque infaisable. Dans la 2884336 2 pratique, plusieurs contre-mesures sont typiquement combinées [6, 3, 14' Cela peut réduire la corrélation à un niveau rendant une DPA pratiquement impossible. Toutefois, les attaques différentielles d'ordre supérieur ou la possibilité d'obtenir une résolution spatiale de la consommation d'énergie en observant les émanations électromagnétiques locales peuvent à nouveau ouvrir une entrée secrète pour les agresseurs professionnels. La deuxième classe de contre-mesures vise à éliminer la cause principale de la fuite d'informations du canal latéral. Dans les circuits standard du type CMOS, la consommation d'énergie dépend fortement des données traitées. Dans d'autres types de logique, tel que la logique à base d'amplificateur de lecture (SABL) [24], basée sur la logique de commutation de tension cascode différentielle (DCVLS), la consommation d'énergie est indépendante des données (si les effets de couplage sont n. égligeables). Toutefois, en termes de superficie et d'énergie, ces types de circuit requièrent plus du double de superficie et d'énergie que les circuits CMOS non protégés. Les types de logique avec une phase de précharge et d'évaluation sont aussi essentiellement des systèmes à deux cycles, contrairement au type de conception CMOS standard qui permet une opération à chaque cycle d'horloge. Il y a lieu de noter également que de tels types de conception ne semblent actuellement pas convenir très bien pour un flux de conception semispécifique, basé sur un langage de description de matériel de haut niveau et bibliothèques cellulaires standard. Le type de logique de différentiel de dynamique d'onde (WDDL) adopte les idées de SABL, mais est basé sur des CMOS standard [25]. Il résout le dernier problème, mais au prix de trois fois la consommation de superficie et d'un procédé à deux cycles. La troisième classe de mesures neutralise la DPA en randomisant les résultats intermédiaires obtenus pendant l'exécution de l'algorithme cryptographique. L'idée principale à la base de cette approche est que la consommation d'énergie des opérations sur des données randomisées 2884336 3 ne doit pas être en corrélation avec les données intermédiaires ordinaires réelles. Des contre-mesures algorithmiques dans le contexte de chiffres symétriques à base de procédés de partage du secret ont été proposées indépendamment par Goubin et Paterin [11; et Chari et ai. [5]. Il a été mis au point environ le même temps de masquage au niveau algorithmique pour les chiffres asymétriques [7, 18]. Messerges [16] a présenté l'idée de masquer toutes les données et les valeurs intermédiaires pendant une opération de cryptage. Akkar et Giraud [1] ont présenté des procédés de masquage pour DES et AES avec la contribution fondamentale d'un masquage robuste, bien que pas parfait, pour les parties non linéaires. Il a été découvert récemment qu'une simplification suggérée proposée dans [28] est vulnérable à des attaques DPA de premier ordre [2]. Les algorithmes cryptographiques combinent souvent des fonctions booléennes (telles que les opérations logiques XOR ou AND) et des fonctions arithmétiques (opérations dans des champs avec une caractéristique supérieure à deux). Les opérations de masquage pour ces deux types de fonctions sont appelées respectivement masquage booléen et arithmétique. Cela pose le problème d'une conversion sûre entre les deux types de masquage dans les deux sens [1]. Il a également été observé que le masquage multiplicatif dans les AES conduit à un problème avec les valeurs zéro, c'est-à-dire qu'un octet zéro ne sera pas masqué et sera aussi placé à un octet zéro par le casier S [10, 28]. Le problème de la valeur zéro rend la version originale masquée des AES vulnérable à une DPA. Par conséquent [26, 27] et [4] ont proposé des contre-mesures qui protégeraient également contre le problème de la valeur zéro. Notamment les trois dernières propositions n'appliquent plus le masquage au niveau algorithmique, mais au niveau des portes logiques. Dans un ouvrage antérieur, Messerges [17] a déjà appliqué l'idée de masquage au niveau des portes et a proposé de remplacer la porte de multiplexeur (MUX) utilisée dans la mise en oeuvre d'opérations non linéaires, telles que casiers S, par une porte MUX masquée (laquelle se 2884336 4 compose, ellemême, de trois portes 1\/IUX). Une théorie de sécurisation d'un circuit au niveau des portes contre les attaques de canal latéral (concentrée sur le sondage) a été cevelcpUee dans ' [12 Le masquage au niveau des portes conduit à des circuits où S aucun conducteur ne porte de valeur qui est en corrélation avec un résultat intermédiaire de l'algorithme. Il est clair que cette approche est plus générique que l'approche algorithmique. Le masquage au niveau des portes est indépendant de l'algorithme spécifique mis en oeuvre. Une fois qu'un procédé de masquage sûr a été mis au point, la génération du circuit masqué à partir de l'algorithme peut être automatisée, et un programme d'ordinateur peut convertir le circuit numérique d'un algorithme cryptographique quelconque en un circuit de portes masquées. Cela dispenserait également les auteurs ou les réalisateurs d'algorithmes cryptographiques de la tâche complexe d'élaborer une solution spécifique contre la fuite du canal latéral pour chaque nouvelle variante ou algorithme de mise en oeuvre. Il a été proposé différents procédés de masquage générique. Ceux-ci sont basés soit sur la technique MUX de [17], telle que [8, 9], soit utilisent des termes de correction, par exemple pour la porte AND [26]. La logique de commutation aléatoire (RSL) de [23] utilise une entrée aléatoire par porte et introduit un signal d'activation qui force la sortie à une valeur définie jusqu'à ce que tous les signaux d'entrée soient stables. C'est donc également un procédé à deux cycles caché, toutefois, requérant un réglage délicat du timing du signal d'activation. Dans une publication récente, Mangard, Popp et Gammel [15] ont montré que les analyses de sécurité des procédés de masquage qui ont été réalisés jusqu'ici étaient basées sur une supposition implicite, qui en général n'est pas valable: Les signaux d'entrée de pratiquement toute porte (masquée) dans un circuit CMOS de combinaison n'arrivent pas en même temps. Par conséquent, il est possible que la sortie de la porte commute plusieurs fois pendant un cycle d'horloge. Les transitions à la sortie d'une porte, avant l'état stable immédiatement avant que ne soit 2884336 5 atteint le bord d'horloge suivant, sont appelées rafales. Les rafales sont un phénomène tunique dans les circuits CMOS et elles ont été pie:ment décr es dans la littérature concernant _a conception V"- S concernant (voir par exemple [2 i)). Etant donné qu'une rafale peut provoquer une transition entièrement oscillante à la sortie de la porte, tout comme la transition "correcte à la valeur finale, une rafale n'est pas un effet d'ordre supérieur négligeable. Tel que montré clairement dans [15], les rafales n'ajoutent pas simplement un bruit de fond par suite d'activités de commutation non corrélées. Malheureusement, l'énergie dissipée des portes masquées non linéaires est en corrélation avec les valeurs traitées lorsque les valeurs d'entrée n'arrivent pas simultanément (forçant la sortie de la porte à alterner plusieurs fois). Par conséquent, les rafales portent de des informations de canal latéral et doivent être prises en compte de manière appropriée dans l'analyse de chaque procédé de masquage sûr. Résumé de l'invention La présente invention a pour objet de proposer un concept pour le calcul d'un résultat d'une opération logique non linéaire qui soit flexible et efficace, d'une part, et sûr, d'autre part. Selon le premier objet de la présente invention, cet objet est réalisé par un dispositif pour le calcul d'une représentation d'un opérande de résultat d'une opération logique non linéaire entre un premier opérande et un deuxième opérande, le premier opérande étant représenté par un premier opérande auxiliaire et un deuxième opérande auxiliaire, les premier et deuxième opérandes auxiliaires donnant le premier opérande lorsqu'ils sont combinés à l'aide d'une combinaison linéaire, le deuxième opérande étant représenté par un troisième opérande auxiliaire et un quatrième opérande auxiliaire, les troisième et quatrième opérandes auxiliaires donnant le deuxième opérande lorsqu'ils sont combinés à l'aide d'une combinaison linéaire, (comprenant: une première porte logique pour le calcul d'un cinquième opérande auxiliaire sur base d'au moins deux opérandes auxiliaires, les 2884336 6 au moins deux opérandes auxiliaires comprenant l'un parmi les premier et deuxième opérandes auxiliaires et l'un parmi les troisième et quatrième opérandes auxiliaires, une deuxième porte logique peur le calcul d'un sixième opérande auxiliaire sur base des premier au quatrième opérandes auxiliaires, où la première et la deuxième porte logique sont conçues de sorte que les cinquième et sixième opérandes auxiliaires, lorsqu'ils sont combinés linéairement, donnent l'opérande de résultat, et où la première et la deuxième porte logique sont conçues de sorte qu'une consommation d'énergie moyenne de la première ou deuxième porte logique soit substantiellement égale pour une pluralité de combinaisons d'opérandes auxiliaires au début du premier cycle d'opérations et d'opérandes auxiliaires au début d'un deuxième cycle d'opérations, l'énergie moyenne étant dérivable d'une pluralité d'ordres différents d'apparitions des premier au quatrième opérandes auxiliaires. Selon un deuxième aspect de la présente invention, cet objet est résolu par un procédé de calcul d'une représentation d'un opérande de résultat d'une opération logique non linéaire entre un premier opérande et un deuxième opérande, le premier opérande étant représenté par un premier opérande auxiliaire et un deuxième opérande auxiliaire, les premier et deuxième opérandes auxiliaires donnant le premier opérande lorsqu'ils sont combinés à l'aide d'une combinaison linéaire, le deuxième opérande étant représenté par un troisième opérande auxiliaire et un quatrième opérande auxiliaire, les troisième et quatrième opérandes auxiliaires donnant le deuxième opérande lorsqu'ils sont combinés à l'aide d'une combinaison linéaire, comprenant: le calcul d'un cinquième opérande auxiliaire sur base d'au moins deux opérandes auxiliaires utilisant une première porte logique, les au moins deux opérandes auxiliaires comprenant l'un parmi le premier et le deuxième opérande auxiliaire et l'un parmi le troisième et le quatrième opérande auxiliaire; le calcul d'un sixième opérande auxiliaire sur base des premier au quatrième opérandes auxiliaires à l'aide d'une deuxième porte logique, où la première et la deuxième porte 2884336 7 logique sont conçues de sorte que les cinquième et sixième opérandes auxiliaires, 1C:'SCi;'tS sont combinés linéairement, l'opérande ry r,P _ combinés m _Ent, donnent _ de résultat et Cü la première et la deuxième porte iogiçue sent conçues de sorte qu'une consommation d'énergie moyenne de la première ou la deuxième porte logique soit substantiellement identique pour une pluralité de combinaisons d'opérandes auxiliaires au début du premier cycle d'opérations et d'opérandes auxiliaires au début d'un deuxième cycle d'opérations, l'énergie moyenne étant dérivable d'une pluralité d'ordres différents d'apparitions des premier au quatrième opérandes auxiliaires. La présente invention se base sur la découverte du fait que la sécurité contre la. DPA peut être obtenue en présence de rafales en calculant une représentation d'un opérande de résultat d'une opération logique non linéaire entre un premier opérande et un deuxième opérande, lorsque le premier opérande, le deuxième opérande et l'opérande de résultat sont représentés, chacun, par deux opérandes auxiliaires qui, lorsqu'ils sont combinés linéairement, donnent l'opérande respectif. En outre, pour le calcul des opérandes auxiliaires représentant l'opérande de résultat, il est utilisé deux portes logiques. Chaque porte logique est conçue de sorte que les sorties de ces portes logiques, lorsqu'elles sont combinées linéairement, donnent l'opérande de résultat. Par ailleurs, les portes logiques sont conçues de sorte qu'une consommation d'énergie des portes logiques soit substantiellement identique pour une pluralité de combinaisons d'opérandes auxiliaires au début d'un premier cycle d'opérations et au début d'un deuxième cycle d'opérations, où l'énergie moyenne est dérivée d'une pluralité d'ordres différents d'apparitions des opérandes auxiliaires représentant le premier et le deuxième opérande aux entrées de la première et de la deuxième porte logique. 2884336 8 De préférence, la première porte logique est une porte linéaire qui ne réalise qu'une coération logiquement linéaire telle qu'une opératien XOR R ou X O R. Par ailleurs, la deuxième porte logique est une porte logique non linéaire comprenant des opérations non linéaires telles qu'une opération AND, OR, NAND, ou OR. De préférence, la deuxième porte logique est mise en oeuvre à l'aide de combinaisons AND et de combinaisons XOR. De préférence, les portes logiques sont mises en oeuvre au niveau transistor à l'aide de quelques transistors qui font partie de la première porte logique et de la deuxième porte logique. Par ailleurs, il est préférable de mettre en oeuvre les deux portes logiques de sorte que la paire de signaux corrélés tels que les premier et deuxième opérandes auxiliaires, d'une part, et les troisième et quatrième opérandes auxiliaires, d'autre part, aient toujours la même profondeur de porte derrière eux. Cela signifie que les première et deuxième portes logiques sont mises en oeuvre au niveau transistor de sorte que ces paires d'opérandes auxiliaires aient les mêmes retards de porte, étant donné qu'elles passent par les mêmes portes. Par ailleurs, il est préférable que les portes logiques soient mises en oeuvre au niveau transistor de sorte que les deux signaux corrélés soient acheminés, les deux trajets de signal ayant les mêmes capacités. Ainsi, le signal dans chaque paire de signaux corrélés arrive simultanément à une entrée de la porte suivante respective. Cette mise en oeuvre a pour résultat des soi-disant portes équivariantes à semi-rafale qui peuvent être utilisées pour la mise en oeuvre de toute opération logique non linéaire entre deux opérandes microscopiques. Il y a lieu de noter que ces portes équivariantes à semi-rafale sont résistantes à la DPA en présence de rafales pour chaque et toute technologie de circuit. Autrement dit, la fonction logique prescrite par ces portes peut être mise en oeuvre par toute technologie de circuit 2884336 9 ayant une énergie de transition pour une transition d'énergie entre zéro et un, un et zéro zéro et zéro, ou un et un. De manière générale, ces portes équivariantes a sen_i-_ aa_e préférées garantissent une résistance à la DPA en présence de rafales, quelles que soient les valeurs réelles de leurs énergies de transition au niveau de la porte. Toutefois, lorsque certaines restrictions moins générales peuvent être faites, telles que l'énergie de transition de zéro à un soit substantiellement égale à l'énergie de transition de un à zéro, ou que l'énergie de transition de zéro à zéro soit substantiellement égale à l'énergie de transition de un à un, la famille des portes équivariantes devient plus grande. Toutefois, pour une mise en oeuvre totalement flexible orientée sur des bibliothèques, il est utilisé, de préférence, la définition tout à fait générale d'énergie de transition résultant en exactement huit portes logiques comme porte non linéaire dans la paire de portes logiques. Selon la présente invention, il est trouvé une famille de portes masquées qui sont théoriquement sûres, mème en présence de rafales. Ces portes forment un ensemble universel et peuvent être utilisées dans des conditions pratiquement très contrôlables dans la synthèse de circuit CMOS automatisée et, de plus, dans la synthèse de circuit automatisée pour d'autre technologies, étant donné que les portes logiques utilisées sont conçues de sorte qu'une consommation d'énergie de ces portes soit substantiellement identique pour une pluralité de combinaisons d'opérandes auxiliaires au début d'un premier cycle d'opérations et d'opérandes auxiliaires au début d'un deuxième cycle d'opérations, où l'énergie moyenne est dérivée d'une pluralité d'ordres différents d'apparitions des premier au quatrième opérandes auxiliaires. Brève description des dessins Ci-après sont décrits des modes de réalisations préférés de la présente invention, en référence aux dessins joints en annexe, dans lesquels: 2884336 1 0 la figure la est un schéma schématisé d'un dispositif pour le calcul selon la nr invention la fig. - 13 est un schéma schématisé d'un enchalnerne- de deux dispositifs selon la figure la; ç la figure le est un schéma schématisé dune représentation d'élévation en deux portes logiques d'une opération logique ayant trois opérandes représentés par six opérandes auxiliaires; la figure 2a est un schéma de timing illustrant quelques ordres (p d'apparitions des premier au quatrième opérandes auxiliaires; la figure 2b est un schéma de temps d'une sortie du dispositif de la figure la, illustrant plusieurs rafales dépendant de l'ordre d'apparition de la figure 2a sur deux cycles d'opérations; la figure 2c est un tableau illustrant à titre d'exemple une situation de rafale à la figure 2a et la figure 2b; la figure 3 est un schéma opérationnel illustrant la stratégie à la base d'une recherche exhaustive pour trouver la famille de portes masquées qui sont théoriquement sûres, même en présence de rafales; la figure 4a est un tableau illustrant toutes les fonctions booléennes de toutes les portes localement G-équivariantes; les figures 4b, 4c sont des tableaux illustrant toutes les fonctions booléennes des portes semi-G- équivariantes additionnelles; la figure 5 est un tableau illustrant toutes les combinaisons possibles des prernière et deuxième portes pour la mise en oeuvre d'une opération AND selon le mode de réalisation préféré de la présente invention; la figure 6 est un tableau illustrant toutes les combinaisons possibles des prernière et deuxième portes pour la mise en oeuvre d'une opération OR selon le mode de réalisation préféré de la présente invention; la figure 7 est un tableau illustrant toutes les combinaisons possibles des première et deuxième portes pour la mise en oeuvre d'une 2884336 11 opération NAND selon le mode de réalisation préféré de la présente invention; la ligure est un tableau. ._i'nstran: t, Dutes les ccrnb'naiscn s possibles des pre.ière et deuxième portes pour la mise en couvre d'une opération NOR selon le._.-de de réalisation préféré de la présente invention; la figure 9a est un exemple d'une mise en oeuvre logique de la porte non linéaire de la figure la; la figure 9b est une illustration générale de la mise en oeuvre de la porte linéaire de la figure la; et la figure 10 est un exemple d'un circuit de combinaison de deux élévations de porte masquées. Description détaillée des modes de réalisations préférés Avant de décrire les modes de réalisations préférés de la présente invention en détail, le problème des rafales sera formulé de manière abstraite. Ensuite, le modèle de consommation d'énergie de portes CMOS est affiné, en tenant compte du canal latéral des rafales. Sur base de ce modèle est présentée la notion de G-équivariance et il est montré que les modèles de porte et d'énergie indiqués ayant une G-équivariance sont des conditions préférées pour les portes randomisées pour empêcher une attaque par énergie différentielle. Il peut être démontré que, malheureusement, dans une classe de portes qui est préférée pour des raisons de mise en oeuvre, il n'y a aucune porte G-équivariante qui puisse être utilisée pour réaliser une fonction logique non linéaire. Toutefois, pour un modèle préféré avec des conditions affaiblies, il est possible de construire explicitement un ensemble universel de portes semi-G-équivariarites. Les contraintes nécessaires concernant la conception des portes et l'acheminement des signaux sont réalisables dans la pratique et peuvent être remplies à l'aide d'outils standard disponibles. Présentation et Analyse du Problème des Rafales 2884336 12 Dans ce chapitre, le problème de rafales rencontré dans [15] est reformulé de man s re plus théorique et abstraite. Tout d'abord, il est Ica; _ i abstra_ icu de la consommation d'énergie d. une porte unique qui est la cible dune attaque DPA. II est mentionné le modèle d'énergie le plus sis ple, qui est couramment utilisé, et est donné une définition plus générale. Ensuite est décrite l'attaque de base contre une telle porte par des moyens statistiques. Il est donné les définitions des portes randomisées (dans le sens classique) et il est illustré comment une DPA peut encore réussir si la description d'énergie plus générale est applicable. Modèle de Consommation d'Energie Simpliste d'une Porte Une porte g avec n entrées et une sortie sera interprétée comme une fonction g: F," -* F, . Dans une conception synchrone d'une porte (dans un circuit) au début d'un cycle d'horloge, les vieilles valeurs 15.restent pendant un temps très court. Après le bord d'horloge, les valeurs d'entrée commencent à changer, tout comme la valeur de sortie, et se stabilisent à la fin du cycle d'horloge. Pour l'analyse d'énergie, on se concentre sur un rapport entre les valeurs logiques traitées dans cette porte et l'énergie utilisée par ce traitement. C'est le cas, étant donné qu'un agresseur peut ne pas être à même de mesurer une valeur numérique unique, mais plutôt la consommation d'énergie (courant) de la porte pendant cette transition. Habituellement, par exemple dans les CMOS, les valeurs numériques 0 et 1 sont représentées par deux niveaux de tension différents et la commutation entre ces valeurs requiert le plus d'énergie, tandis que la permanence au même niveau ne requiert qu'une petite quantité. Si on suppose qu'un agresseur peut être à même de mesurer l'énergie intégrale requise par une porte pendant un cycle d'horloge, la définition suivante d'une fonction d'énergie d'une porte est évidente: Définition 1. Supposons que g: Fz -* F2 soit une porte. L'entrée au moment to, au moment du ou peu avant le bord ascendant d'un cycle d'horloge, est a = (ai,...an) E F" et l'entrée à t2 au moment du ou _ peu avant le b_ _. ascendant suivant. est x = _ La consommation c 'énerg e de la port: pendant cette transition est alors donnée par le nombre réel Eg(a,x) e R Par conséquent, la fonction d'énergie de la porte g est la mappe Eg:F7 xF2 ----> R(a,x) Eg (a, x) (1) Cette définition est plutôt générale. A noter que la fonction d'énergie d'une porte peut être différente pour les portes individuelles dans un certain circuit, même si elles sont fonctionnellement identiques. Dans un modèle simpliste de consommation d'énergie, on identifie la consommation d'énergie d'une porte par l'énergie nécessaire pour activer la capacité de sortie si la sortie bascule. Par conséquent, la consommation d'énergie d'une porte (pendant un cycle d'horloge) n'est décrite que par son comportement de sortie numérique. Par conséquent, la consommation d'énergie est donnée par la valeur de sortie de g à to et tl et un tuple (Eg0,0,Eg,0,1,Eg,-,0,Eg,moi) E R4. Si à to la valeur de sortie de g est 1 et à t2 elle est 0, l'énergie pour ce cycle d'horloge est Eg,,0. Par conséquent, dans ce modèle, la fonction d'énergie de la porte g est donnée par Eg (a, x) Eg,g(a)-*g(x) (2) Analyse d'Énergie Différentielle sur ce Modèle Supposons un algorithme cryptographique avec un certain secret (clé) mis en oeuvre sous forme de circuit CMOS. Par ailleurs, supposons qu'il y ait une porte g: FZ' --> F, dans ce circuit. Les valeurs d'entrée de g au moment to sont (a,b) E F22 et à un moment ultérieur ti elles sont (x, y) E Fz' . Étant donné qu'un agresseur examinera la consommation d'énergie de cette porte pendant plusieurs exécutions de l'algorithme avec différents messages, ces valeurs peuvent être vues comme étant des variables aléatoires a, b, x, y: ÇÀ F2 sur un certain espace de probabiL_t é (2, A, PL Cela donne l'enchaînement suivant Connaissant la c:.é secrète (ou des parties de celle-ci), qui est appelée ç l'hypothèse, on peut construire une partition de S en deux sousensembles disjoints mesurables A et B de sorte que O.= AU B et 0 = A n B avec la propriété : E(Eg 1 A) E(Eg B) (4) tandis que cette construction réalisée avec une hypothèse erronée donne: E(Eg 1 A) = E(Eg B) Un exemple classique, cf. [13], est la partition de Q en A = {co E S2: g(x(w), y(w)) =1} B = g(x(w), y(w)) = 0} Avec le modèle d'énergie simpliste, on obtient E(Eg 1 A) = aEg,o,, + (1- a)Eg,1,1 E(Eg I B) = ,e g,o->o + (1 /3)Eg,i, o pour a:= P({w E g(a(w),b(w)) = 0} 1 A) et := P({w E S2: g(a(w),b(w)) = 0} B) . En général, ces deux valeurs d'attente ne sont pas égales (si l'hypothèse était correcte). Cela donne lieu à la DPA classique. Remarque 1. Il est évident que, si Eg 0,0 = Eg 0_, = Eg 1,o = Eg,, 1, les deux valeurs d'attente sont en effet toujours égales, que l'hypothèse soit correcte ou erronée. Par conséquent, aucune DPA n'est possible. En termes généraux, si la fonction d'énergie E, : x Fz' -+ F, est constante, (*) (9)cette porte ne laisse pas fuire d'informations et une DPA sur cette porte n'est pas possible. Dans la pratique, ces conditions ne sont remplies que si un type de logique est choisi pour la mise en oeuvre qui garantit la constance de l'énergie, qui fonctionne lui-même. Cela correspond à la deuxième (5) (6) (7) (8) 2884336 15 classe d'approches de l'introduction (par exemple DCVSL ou SABL) et, par conséquent; conduit aux inconvénients précités. cela n est -o R est constante (**) (10) laquelle est une condition plus faible que la première. Toutefois, si l'on veut trouver des portes à usages multiples, il faut remplir cette condition (**) pour chaque a, b, x, y. Malheureusement, cela est toutefois équivalent à la condition (*) dans le modèle d'énergie simpliste. Logique Randomisée En fait, il peut encore être possible que Eg soit constant, même si Eg n'est pas constant. Cela peut être le cas si les variables a, b, x, y obéissent à certaines restrictions. Habituellement, les restrictions de ce type avec seulement deux entrées ne peuvent pas être satisfaites. si la porte fait quelque chose d'utile. Mais cela peut être possible dans la classe de portes randomisées (masquées) qui sera décrite ci-après. Randomiser un signal (dans notre contexte) signifie substituer un signal numérique a a F2 par plusieurs signaux al...an e F2 avec a = ai +.. .+ an de sorte qu'il n'y ait aucune corrélation entre a et chaque ai. Dans une application pratique, on n'a les ressources pour choisir n > 2 que dans très peu de cas. Par conséquent, la description sera limitée au cas n = 2 dans tout ce document. L'une des philosophies consiste à interpréter le signal randomisé (al,a2) comme étant la paire du signal masqué an = ai et son masque ma = a2 (cf. notation par exemple dans [15]). Mais ce n'est que de la terminologie et nous ne l'utiliserons dans notre description que pour présenter les portes randomisées comme dans [15]. Toutefois, ce point de vue a un impact sur la philosophie relative aux portes randomisées (ou masquées): Etant donné que les signaux a, b sont maintenant 2884336 16 divisés en deux parties, il faut substituer la vieille porte F, par une ncu-; elfe porte. Le r choix serais FI x Serte que g(a.h) = g'(a.,a_,?;:.b_I, avec a = a, +a, et b = b, +b,. Mais, étant donné que la sortie doit égaiement être randomisée, une des possibilités serait g' : F, x x F, -* F, , avec la propriété g(a,b)=g'(am,ma,bu,,ma)+ma avec a=a,n+ma et b=bm+mb. Cette propriété définit g' de manière unique. Ci-après, g' est appelé élévation masquée de g, étant donné que la sortie de g' est la sortie de c:= g(a, b) masquée par mc. La figure 1 illustre un exemple d'un circuit utilisant des élévations masquées de portes (esquisse gauche) et une réalisation d'une élévation sur une porte AND [26, 9] (esquisse droite). Un autre choix est d'utiliser deux portes (g1, g,) : F22 x F,z -> FI avec la propriété g(a,b)=g1(a1,a b1,b,)+g,(a1,az,bl,bz). Ici gi et g2 ne sont pas définis uniquement par cette propriété. Mais, bien sûr, si gi est donné, g2 est fixe. La paire (gi, g2) est appelée élévation randomisée de gÉ A l'aide du modèle de consommation d'énergie ci-dessus, c'est-àE,((â,b,ma, ),(x,Y,m))=E \ S i g',g à,b,m,x,y,m,) où (â,b,m,)EF2 xF,zxF, est l'entrée à to, (x,,m,)EF,zxFzxF2 l'entrée à ti avec: les abréviations â = (am,ma) etc., la consommation d'énergie Eg((a,b)),(x,y)) doit être substituée par la valeur d'attente E (Eg. ((a, b, m,) -> ))) (12) dire où â = (am,ma),b = (b,n,mb), mc, x- (x., mx), Y=(Yin,my) mz sont interprétés comme variables aléatoires avec a = am + ma etc. Un agresseur ne sera pas à même de savoir ou de forcer les signaux exacts 2884336 17 (microscopiques) (â, b, m, (i, , m_) mais plutôt uniquement les signaux était f tr:l..resc,.-oiu_:es) b, :.. _ Cela éa l'o=,:t de (2; c, .15ï En effet. t... s. mc,m Q _ sont des variables aléatoires uniformément distribuées, indépendantes par rapport aux variables aléatoires g(a,b), g(x,y), l'élévation 1 masquée g d une porte g ne laisse pas échapper d'informations, c'est-à-dire EIE, â,b, n.'L'> (, m))) ne dépend pas de a, b, x, y. Consommation d' Energie d'une Porte en Présence de Rafales Précédemment, il a été montré qu'il y a des portes g' : F22 x F22 x F2 > F2 telles que, pour tous les signaux (variables aléatoires) am,ma, bm,mb,mc:Q > F, et xm,mx,ym,my,m: S2 --> F la valeur d'attente E(Eg ((â, , m; ))) ne dépende pas des signaux, c'est-à-dire qu'elle est une constante, pour autant que certains signaux présentent certaines propriétés d'indépendance et de distribution. Comme on l'a compris dans [15], dans les mises en oeuvre de CMOS réelles, les différents signaux xm,mx,ym,my,m, peuvent ne pas arriver à la porte en même temps. Dans l'exemple de circuit de la figure 1, le signal dm arrive avec un retard à l'entrée de la porte g '2, par rapport aux signaux md, cm, mc du fait du retard de porte de g'1. Par ailleurs, tous les signaux d'entrée de la porte g'2 ont généralement des contributions de retard additionnels différentes du fait du retard de propagation des capacités de conducteur. Ces retards sont fixés lorsque le circuit est conçu et dépendent de la route du signal. Considérons maintenant l'exemple où les signaux arrivent dans l'ordre distinct y,,, > my > m, > x,,, > mY. Dans ce cas, la valeur de sortie de la porte change non seulement une fois pendant le cycle d'horloge, mais bien cinq fois, conduisant aux transitions de sortie consécutives g (am,mu,b,,m,,mc) g am,ma,Y,,,,Y11h,ma) --> c a , ,,m.i. rr2 i> Q (cZm, .Yn.m. (iS i x;ri.;Yl Zr; c; YYi_ i Par conséquent, la consommation d'énergie sera en fait le total de EgÉ.g a,,, Jr, .',,,.my.m) -->g,),, m,.yi Eg' g (u, me.m) > g (m,) + Eg,g(a,,,, m.F, .m,m,) >g (u m,,,Y,m,) + Eg, ,g(u,n,m,,,Y,,,,my,m,) >g) + Eg, g) > g (x,,,,m,,Y,,,,m, ,m,) Par conséquent, il est requis un nouveau modèle d'énergie tel que (z, , m, soit donné par la somme de ci-dessus. Malheureusement, avec ce modèle, les auteurs de [15] ont démontré que E(Eo, â, b,me)-> (.z, , m, ))) n'est plus' indépendant de a, b, x, y. L'élévation masquée des portes non linéaires telles que AND, OR a cette propriété regrettable, tandis que l'élévation masquée de la porte linéaire XOR a une valeur d'attente constante. Par conséquent, il n'y a aucun ensemble universel de portes dans les élévations masquées de portes (avec n = 2). On peut concevoir une situation encore pire: si un agresseur bien équipé est à même de mesurer les énergies partielles différentes des cinq transitions, les contraintes pour qu'une porte soit résistante à la DPA sont encore plus difficiles à satisfaire. Ci-après est présenté un modèle d'énergie de dimensions supérieures qui est à même de décrire cette situation. L'élévation masquée de la porte g' présente l'inconvénient qu'elle doit être une élévation d'une seule porte normale g. La deuxième approche d'utilisation d'une élévation randomisée (gi,g2) est plus flexible, étant donné que deux portes (gi et g) ensemble doivent réaliser la porte normale g. (14) C'est la stratégie suivie dans les chapitres suivants. L'espace de portes randomisées de la forme g: r_ sera examiné pour t:-cuver des sortes qui sont 'sû es' en présence de rafales. La no d:o__ de "sùr" sera définie avec précision. Ultérieurement, les portes trouvées peuvent_ être combinées pour réaliser des fonctions logiques telles que des portes AND ou OR randomisées. Abstraction Mathématique du Problème Le chapitre précédent a motivé les stratégies et définitions suivantes. Tout d'abord, il sera défini le modèle abstrait des portes ensemble avec leur modèle d'énergie. Finalement, il sera formulé les conditions imposées aux portes, pour garantir qu'une attaque d'énergie différentielle ne puisse être effectuée. Le Modèle de Porte Définition 2. Une porte g avec n entrées est une fonction g: 15 F," -* F, . La fonction de transition g de g est la mappe g: F Z " x F 2 x Map(}l,..., n}, 1,..., n}) -/ F2'1 ou b, = (b;,,... ,b;") e F2" est défini par: a, if çp(j) i b x if 9(j) Remarque 2. L'ordre des signaux (pl est une constante associée pour chaque porte individuelle dans un circuit. Cet ordre est fixé au (â,, )H g(b,)...,g(b,+")) (15) (16) 2884336 20 moment de la conception du circuit et est donné par la profondeur de l arbre logique a chaque entrée de porte et la route précise des signaux. Les de-_Lx facteurs ciéterm_ne__: les moments d àée des signaux dentrée. La Conso mat. n dEEnercie dune Porte clans ce Modèle Etant donné que la porte g peut commuter jusqu'à n fois dans une période d'horloge et étant donné que chaque basculement de la sortie consomme l'énergie Eg,o->o = = Eg,I,o = Eg,11, la notion de la fonction d'énergie doit être généralisée. De même, étant donné que les quatre valeurs parmi celles cidessus peuvent dépendre fortement de la porte individuelle et de sa position dans un circuit, il est raisonnable de traiter ces valeurs comme des indéterminants. Par conséquent, il est naturel d'évaluer la fonction d'énergie non pas en R, mais plutôt dans l'espace de vecteur 4dimensionnel V:=RÉeoo R.eo1 R. e10 R.e11. Pour une certaine mise en oeuvre, on peut enchaîner la fonction d'énergie avec la fonction d'évaluation ev: V -> R,(xooxot,x1o, x11) H; xyEx,r > J J Définition 3. Les fonctions d'énergie partielle (ou locale) d'une 20 porte g: F,n --* F2 sont données par E: Fi x F2n x Map({a,..., n}, {1,. .. , n}) -k V (ci, 0)1-> eg(bi),g(el.i) (17) pour i = 1,...,n et bt comme décrit dans la dernière définition. La fonction d'énergie totale (ou globale) Eg d'une porte g: F, --> F2 est la 25 somme de ses fonctions d'énergie partielle: Eg:=Egt+.+Egn (18) Remarque 3. Cette définition de la consommation d'énergie d'une porte reflète la supposition que la mise en oeuvre d'une telle porte n'a aucun canal latéral interne utilisable. Cela signifie, par exemple, que la ti 2884336 21 porte elle-même est par inhérence exempte de rafales et il n'y a qu'un seul changement de signa_ à la sertie si un signai d'entrée change. De même. le reta de sortie r__ dei, pas dépendre de ia valeur d'entrée. On peut supposer sans risque que ces cc.dirions préalables requises peuvent être réalisées dans la pratique si une cellule logique masquée est formée pour être utilisée dans une bibliothèque. Paires de Signaux Randomisées Randomisation dans notre contexte signifie division d'un signal a en une paire (ai,a2) de signaux de sorte que a = al + a2 et les bits individuels al et a2 soient inconnus, c'est-à-dire aléatoires et uniformément distribués. Étant donné que l'on s'intéresse, tout d'abord, à la réalisation randomisée de portes (macroscopiques) 2-1 telles que AND, OR, etc., on peut limiter les portes possibles à des portes avec deux entrées (ma.croscopiques), a, b, et donc quatre entrées réelles al, a2, bi, b2. La figure lb illustre un circuit de combinaison où deux portes normales gi (a, b) et g2 (d, c) ont été substituées par deux élévations randomisées de portes (g11 (ai, a2, bi, b2), gl2 (ai, a2, bi, b2)) et (g21 (di, d2, ci, c2), g22 (di, d2, cl, c2)) supportant la vieille fonctionnalité du circuit. Les deux définitions suivantes décrivent cette situation: Définition 4. Une paire de signaux randomisée (RSP) est un 4-tuple (ai, a2, b1, b2) de variables aléatoires ai, a2, bi, b2: S2 --* F2 telles que soient remplies les propriétés suivantes: 1. ai, a2, bi, b2 sont uniformément distribués, par exemple, P(ai = 0) = P(ai = 0) = 1/2. 2. La paire de variables ai, bi est indépendante, pour tous i,j = 1, 2. Remarque 4. Les paires ai, a2 et bi, b2 ne peuvent pas être indépendantes! Définition 5. Si l'on définit a: = ai + a2: Q > F, et b: = bi + b2: S2 --> F2, (a, b): S2 F22 est une paire de variables aléatoires et l'on dit que (a- ,b) est une élévation de la paire (a, b), où : = (a,a2) et b: = (b;, Ci-après. 1 intention n'est pas dessayer de trouver une porte individuelle g' qui élève exactement la fonctionnalité de la vieille porte g. Au lieu de cela. l'intention est de suivre la stratégi.. générale pour chercher un ensemble universel de portes élevées. C'est une famille de portes ayant la propriété que l'énergie de la transition macroscopique (a, b) (x, y) ne laisse pas échapper d'informations et pouvant être combinées pour réaliser toutes les fonctions logiques. Ensuite, il est donné une formulation précise des conditions nécessaires pour des portes élevées qui ne laissent pas échapper d'informations, même en présence de rafales. Le Critère d'Equivariance par rapport aux Rafales des Portes Il est maintenant présenté la notion de portes équivariantes par rapport aux rafales. Les portes satisfaisant le critère d'équivariance par rapport aux rafales ne laissent pas échapper d'informations relatives à la transition macroscopique (a, b) -* (x, y), parce qu'elles ne présentent aucun défaut dans le canal latéral de rafales. Sur base du modèle pour la fonction d'énergie d'une porte CMOS masquée, de la définition 3, et de la notion d'une paire de signaux randomisée, de la définition 4, les définitions suivantes décrivent les conditions nécessaires pour la résistance des portes masquées lors d'une attaque DPA en présence de rafales. Définition 6. Une porte g: F22 x Fez -f F, est appelée globalement Géquivariante si pour chaque e Map({1,...,4},{1,...,4}) la valeur d'attente de l'énergie totale E(Eg),ço eV (19) est indépendante de tout choix de paires de signaux randomisées (a,b),(x,Y)É 2884336 23 Une porte g:F22 x F,- --> F, est appelée localement G-équivariante s pour tout c' i 4 4, et i = 1. 2. 3. les valeurs d'attente ces énergies parte1les b (ir.y),1E (20) sont indépendantes de tout choix de paires de signaux randomisées Remarque 5. Évidemment, chaque porte localement G- équivariante est également globalement G-équivariante. Étant donné que la famille des paires de signaux randomisées (â,bl(z,) peut être très grande, on a besoin d'un critère plus simple pour décider si une porte est G-équivariante. Le premier lemme réduit le critère à certaines paires de signaux randomisées. Lemme 1. Une porte g:F22 x F,2 --> F, est globalement G- équivariante si et uniquement si pour chaque cp la valeur 15 E(Eg ((â:In , ), çp)) E V est indépendante de tout choix de paires de signaux randomisées (,(i) qui sont des élévations de paires constantes (a, b), (x, y). Une porte g: F,2 x F,2 > F2 est localement G-équivariante si et uniquement si pour chaque cp et i la valeur E(Eg ((â, b (r, y), ço)) E V est 20 indépendante de tout choix de paires de signaux randomisées (â,b) , (r, ) qui sont des élévations de paires constantes (a, b), (x, y). Le lemme suivant réduit le critère à un, ce qui peut être calculé directement. Lemme 2. Une porte g: F22 x F,2 > FZ est globalement G-équivariante si et uniquement si pour chaque cp les valeurs 24 Eg((a1,a2, b, ,b,),(x1, x2,yi,y2),cp), pour a,b,x,y E F2 (21) ai+a2 _a X1 +X2 =X Yt+Y, =Y sont identiques. Une porte g: g: F,: x F,2 -*F, est localement G-équ_variante si P1. uni: :em _ent si pour ch..iue et _ = 2. 3 4. les valeurs 2' E. ((; ':r, .a,.ti b,.(y, x,v, ,).ç,9), pour a,x, EF2 (22) u. _ x, -.C, !-'!,='! sont identiques. Il est immédiatement évident de la définition de G-équivariances que les portes satisfaisant ce critère surmontent le problème de la fuite du canal latéral par des rafales (au moins l'effet dominant qui est saisi par le modèle défini). C'est une tâche simple que d'effectuer une recherche exhaustive sur les 216 portes possibles g: F,2 x F22 - F2 à l'aide du Lemme 2, pour obtenir une liste complète de toutes les portes localement et globalement G-équivariantes. Il y a 50 portes globalement et localement G-équivariantes. Au Tableau 1 (figure 4a) sont reprises les formes algébriques normales des 50 portes localement G-équivariantes. La constante c peut adopter les valeurs (0, 1) . c+a, +b, c+a, +b, c+a2 +b, c+a2 +b, c+a, ci c+a,b,, c+a, +, c+b, +, c+a, c+a,b c+al +a,b2, c+b, +a,b,, c+b, c+, c+a, +, c+b, +a,b c + b, c + a2b2 c + a, + a,b c + b, + a2b2, c+a, +b, + c+a, +b2 +a,b, c + a2 +b, + a,b, c + a, + b2 + a,b2 (23) Ci-dessous sont mentionnées quelques propriétés cryptographiques de ces fonctions booléennes. Les définitions des propriétés sont bien connues et peuvent être trouvées par exemple dans [20]. Le premier groupe de 8 fonctions est équilibré et immunisé contre la corrélation de premier ordre, c'est-à-dire CI(l), mais ne satisfait pas au critère de propagation (PC) dans quelque mesure que ce soit. Le deuxième groupe de 8 fonctions est équilibré et n'est ni immunisé contre la corrélation ni ne satisfait au PC. Les 34 fonctions restantes ne sont ni équilibrées ni CI ni ne satisfont au PC. Malheureusement, dans l'ensemble de portes localement G - é ui-: aria^tes soit g obalement soit localement, i i n'y a pas deux portes qui peuvent être appariées à une élévation de toute porte no__ li _ ai (telle que AND ou OR. Ii a donc été démontré que: Théorème 1. II r - a aucun ensemble universel de portes masquées de la forme F xFz +F, qui remplisse le critère de G- équivariance. La Famille Logique de Portes Semi-G-Equivariantes Les résultats du chapitre précédent conduisent à la question de 10 savoir si la condition forte de G-équivariance peut être modérée pour la réalisation d'un circuit CMOS masqué dans la pratique. Considérons la substitution de toutes les portes individuelles gi avec entrée ai, bi et sortie ci par des portes, avec entrée = (a;l, a;,) , = (b;l, b;,) et sortie c; = est évident que la paire de signaux corrélés (disons a) d'un signal macroscopique (ai) ont toujours la même profondeur de porte derrière elle, étant donné qu'ils passent toujours par les mêmes portes. La condition requise pour la mise en oeuvre d'une porte masquée gi, que le retard de porte pour les deux sorties, (cil, cr2), doit être identique, peut être satisfaite dans la pratique avec des efforts mineurs. Dans cette condition, le retard de porte cumulatif pour chaque signal d'une paire de signaux corrélés est identique. La source restante pour des temps de propagation différents des deux signaux corrélés est des routes différentes avec des capacités différentes. Toutefois, avec la technologie de routage de nos jours, il est possible de contrôler le routage de sorte que les deux trajets de signaux aient les mêmes capacités. Si ces contraintes de conception et de routage sont satisfaites, chaque paire de signaux corrélés arrive simultanément à la porte d'entrée de la porte suivante. Cet arrangement pratiquement réalisable pour une mise en oeuvre d'un circuit CMOS exclut certaines combinaisons dans l'ordre de Spécifiquement, les conditions dans la Définition 2 peuvent être réduites à toutes les r^ap Jes avec L ' = _ ( 1-1._._ G _ a_) et c = 014, (pour b_,)Dé__ est appelée globalement sema-G- équ1cariar- te si s' pour chaque 4= , fc,-p(t1l' _ ur ci_,.......4) avec v (l) = q(_ et 2(3) = 2(4) la valeur d'attente de l'énergie totale E(F, ((c,d (24) est indépendante de tout choix de paires de signaux randomisées ('èi,n(x,@). Une porte g: F,2 x F2 -* F, est appelée localement semi-G-10 équivariante si pour chaque ç Map({1,...,4},{1,...,4}) avec p(l) = 2(2) et ço(3) = 2(4) la valeur d'attente des énergies partielles E(Eg,(x',A,rp) )EV (25) est indépendante de tout choix de paires de signaux randomisées (â,b),(z,). Ici aussi, une recherche complète sur les 216 portes donne une liste de portes. Il y a 58 portes globalement semi-G-équivariantes. Toutes ces portes sont également localement semi-G-équivariantes. Par conséquent, pour la semi-G-équivariance, les attributs 'local' et 'global' peuvent être omis. La liste de 58 portes comprend les 50 portes du Tableau 1 et, en plus, les 8 portes reprises au Tableau 2 (figure 4b) ci- dessous. c+al +b, +a,b, ++a2b, +a,b2 c+a, +b2 +a,b, +a,b2 +a2b, +a,b2 c+a, + b, ++ a,b, +a,b, +a,b2 c+a2 + b2 + a b, +a,b, +a,b, + a2b2 Ces 8 portes ont les propriétés communes d'être équilibrées, immunisées contre la corrélation de premier ordre, c'est-à-dire CI(l), et de satisfaire au critère de propagation du degré 1, c'est-à-dire PC(1). Les 8 portes semi-G-équivariantes additionnelles autorisent maintenant des appariements à des élévations de portes non linéaires. (26) 2884336 27 Une porte AND semi-G-équivariante peut être réalisée, par exemple, par l'élévation l\D (û, ir b -'' a -0 Cf.D _/' - a_b.7.22) t2 / i à 'aide des premières entrées du Tableau 1 et du Tableau 2. Par conséquent, toutes les autres portes non linéaires oo.ramme t re ses peuvent être dérivées. Ainsi, une fois trouvé un ensemble universel de portes, il est possible de mettre en oeuvre chaque algorithme. Conclusions Il a été mis au point un nouveau modèle d'énergie pour portes CMOS qui fournit une description abstraite du comportement des portes CMOS dans des circuits réalistes. Spécifiquement, ce modèle est à même de détecter la présence de rafales. Les rafales ont récemment été identifiées comme étant un canal latéral qui peut être exploité dans les attaques d'énergie différentielles. Sur base de ce modèle a été présentée la notion de portes G-équivariantes et semi-G-équivariantes. Il a été démontré que, dans les modèles de porte et d'énergie définis, la G- équivariance est une condition nécessaire sur les portes randomisées (dans un circuit CMOS sinon sans contraintes) pour supporter une attaque d'énergie différentielle. Malheureusement, dans la classe de portes n'ayant que quatre entrées (ce qui est préféré pour la mise en oeuvre), il n'y a aucune paire de portes qui réalise une élévation de toute porte non linéaire. Par conséquent, il a été démontré qu'il n'y a aucun ensemble universel de portes G-équivariantes dans cette classe de portes randomisées. Toutefois, en adoptant un modèle plus faible qui impose certaines contraintes sur le routage dans un circuit CMOS, il y a des portes randomisées qui peuvent être utilisées pour concevoir un circuit bien protégé contre la DPA. Il a été construit un ensemble universel de portes semi-G-équivariantes. Les contraintes relatives à la conception de porte et au routage des signaux sont réalisables dans la pratique et peuvent être effectuées à l'aide d'outils standard disponibles. L'avantage important de la solution proposée est que les portes peuvent 2884336 28 être mises en oeuvre à l'aide du type CMOS standard. Il est certes important d'assurer eue - portes semi-G-équivariantes masquées soient tri ses so en évant une fuite 4-.1là (-les noeuds internes. Les portes terri-G-équivariantes permettent toujours la mise en oeuvre Cl.= procédé d'horloge à un seul cycle, tandis que les types de circuit avec une phase de précharge et d'évaluation sont intrinsèquement des procédés à deux cycles. On peut conclure que les circuits cryptographiques utilisant des portes randomisées remplissant le critère de semi-G-équivariance doivent être plus sûrs contre les attaques d'énergie que ceux utilisant les procédés conventionnels de masquage ignorant les rafales. Il y a lieu de noter que le modèle mis au point dans le présent document est inévitablement une abstraction approximative des processus physiques compliqués de la dissipation de l'énergie dans un circuit CMOS à commutation. Les effets d'ordre immédiatement supérieur peuvent se référer au transitoire de la commutation d'une porte CMOS. De tels effets peuvent inclure les oscillations partielles des sorties de portes (si les rafales se recouvrent) ou les couplages croisés entre conducteurs voisins conduisant à la fuite d'informations mutuelles. Toutefois, de tels effets d'ordre supérieur ne sont pas spécifiques aux circuits CMOS, mais affectent également d'autres types de circuit qui sont théoriquement résistants contre la DPA, tels que les types à double rail avec une phase de précharge et d'évaluation. Néanmoins, on espère que les effets d'ordre immédiatement supérieur dans la dissipation d'énergie conduisent à une fuite d'informations beaucoup plus réduite, portant ainsi les efforts pour une DPA réussie au maximum. On ne sait pas actuellement s'il y a des élévations de portes non linéaires qui remplissent le critère de G-équivariance (non seulement de semi-G-équivariance) si on admet plus de deux parts randomisées par 2884336 29 signal d'entrée, ou s'il y a plus de deux signaux d'entrée, c'est-à-dir aortes de la forme --> F. ;n >2,i> . La ligure la illustre un dispositif pour le ca_eu c représentation d'un opérande de résultat d'une opération logique non ç linéaire entre un premier opérande et un deuxième opérande. Le dispositif est indiqué généralement par le numéro de repère 10. En particulier, il est défini que le premier opérande est représenté par un premier opérande auxiliaire et un deuxième opérande auxiliaire, le premier et le deuxième opérande auxiliaire donnant le premier opérande lorsqu'ils sont combinés à l'aide d'une combinaison linéaire. Une telle combinaison linéaire peut être un XOR, un XNOR, ou toute autre combinaison linéaire. Le deuxième opérande est également représenté par un troisième opérande auxiliaire et un quatrième opérande auxiliaire, où le troisième et le quatrième opérande auxiliaire donnent le deuxième opérande, lorsqu'ils sont combinés à l'aide d'une combinaison linéaire telle que XOR, XNOR, ou toute autre combinaison linéaire. Dans le mode de réalisation de la figure la, le premier opérande auxiliaire est indiqué par al, le deuxième opérande auxiliaire est indiqué par a2, le troisième opérande auxiliaire est indiqué par b1, et le quatrième opérande auxiliaire est indiqué par b2. Par ailleurs, le premier opérande est indiqué par a, le deuxième opérande est indiqué par b, et l'opérande de résultat est indiqué par c. Le dispositif de la figure la comprend une première porte logique 12 pour le calcul d'un cinquième opérande auxiliaire ci sur base d'au moins deux opérandes auxiliaires. Les au moins deux opérandes auxiliaires comprennent un opérande auxiliaire parmi le premier et le deuxième opérande auxiliaire et un opérande auxiliaire parmi le troisième et le quatrième opérande auxiliaire. Ainsi, la première porte logique reçoit, comme entrée, al et bl, ou a2 et bi, ou ai et b2, ou a2 et b2. 2884336 30 Toutefois, la deuxième porte logique 14 reçoit tous les opérandes auxiliaires.1; a2 à sen entrée. La @_ ernière ia c x_èr_e porte logique 12. conçues de sorte que le cinquième et le sixième opérande auxiliaire, c'est-à-dire ç C2 donnent, lorsqu' is sont combinés linéairement, l'opérande de résultat c. Ici aussi, la règle de combinaison pour combiner linéairement le cinquième opérande auxiliaire et le sixième opérande auxiliaire peut être un XOR, XNOR, ou toute autre combinaison linéaire. Selon la présente invention, les première et la deuxième portes logiques 12, 14 sont conçues de sorte qu'une consommation d'énergie moyenne de ces portes logiques 12, 14 soit substantiellement identique pour une pluralité de combinaisons d'opérandes auxiliaires au début d'un premier cycle d'opérations et d'opérandes auxiliaires au début d'un deuxième cycle d'opérations, où l'énergie moyenne est dérivable d'une pluralité d'ordres différents d'apparitions des premier au quatrième opérandes auxiliaires. A cet effet, référence est faite à la figure 2a. La figure 2a illustre un schéma de temps du côté de l'entrée de toute porte logique. En particulier, la figure 2a illustre un i-ième cycle d'opérations suivi d'un (i+l)-ième cycle d'opérations. Dans le premier cycle d'opérations à la figure 2a, l'ordre d'apparition des opérandes auxiliaires est a2, al, bi, b2. Dans le cycle d'opérations suivant, l'ordre d'apparition de l'opérande auxiliaire est différent de l'ordre précédent. Plus particulièrement, l'ordre d'apparition est bi, a2, b2, et ai. Ci-après est présentée la situation de sortie de cette porte à la figure 2b. La sortie de la porte peut être calculée à l'aide de la règle logique sur laquelle est basée la porte ou une certaine table de vérité qui est définie pour la porte. Pour des raisons d'exemple, il est supposé une table de vérité qui donne les rafales définies à la figure 2b. Lorsque le deuxième opérande auxiliaire a2 arrive à l'entrée de la porte, il se produit une première rafale de la sortie de porte, comme indiqué par '1' 2884336 31 à la figure 2b. Lorsque le deuxième opérande auxiliaire al arrive, ii n'y a pas de chargem ent d'état. comme indiqué par '2' à la fig re 2d. Puis lorsque le troisième ré:rvn_de a... Ensuite commence le cycle d'opérations suivant. Ici aussi, quatre opérandes auxiliaires arrivent selon un certain ordre cp. L'arrivée de l'opérande auxiliaire bi a pour résultat une première rafale en '5' à la figure 2b. L'arrivée de l'opérande auxiliaire a2 a pour résultat une autre rafale en '6'. L'arrivée de l'opérande auxiliaire suivant b2 a pour résultat une autre rafale en '7', tandis que l'arrivée du dernier opérande auxiliaire ai ne conduit à aucun autre changement d'état de la sortie de porte. La consommation d'énergie de la porte pendant les rafales '5' à '8' est indiquée à la partie droite de la figure 2c. A noter ici que les valeurs de consommation d'énergie Egio, Egoo, Egoi, et Egil auront certaines valeurs pour certaines technologies de circuit. Néanmoins, de telles valeurs réelles ne sont pas nécessaires pour trouver les portes logiques résistantes à la DPA selon l'invention. Ci-après, référence est faite à la figure 3 pour montrer comment peut être effectuée la recherche exhaustive, qui a été décrite plus haut. Comme illustré en 30, on commence par sélectionner une porte, parmi les 216 portes possibles, qui peut être utilisée pour combiner quatre opérandes auxiliaires ai, a2, bi, b2. Puis, on choisit une certaine combinaison d'opérandes auxiliaires au début d'un premier cycle d'opérations et au début d'un deuxième cycle d'opérations. Puis, comme indiqué en 32 à la figure 3, on détermine la consommation d'énergie. c'est-à-dire, les rafales pour cette corn ia sc__ c ope.___r?J aux_liaires particulière au début du premier du deuxième cycle d'opérations, à l'aide de la règle de combinaison de porte sélectionnée à l'étape 30. En outre, les rafales sont déterminées pour chaque constellation cp possible, c'est-à-dire pour chaque ordre possible des opérandes auxiliaires. Ce qui est important, c'est que les différentes constellations des opérandes ne sont pas seulement limitées à toutes les permutations possibles des opérandes auxiliaires aux deux cycles d'opérations, mais qu'elles incluent également le cas où tous les opérandes auxiliaires ou un sous-groupe d'opérandes auxiliaires arrivent à l'entrée de la porte simultanément, c'est-à-dire en même temps. L'étape 32 a pour résultat une représentation de rafale pour chaque constellation de l'apparition d'une certaine combinaison d'opérandes auxiliaires au premier et au deuxième cycle d'opération. Puis, il est déterminé une mesure d'énergie globale telle que déterminée par l'équation 21 ci-dessus. En référence à la figure 2c, cela signifie que tous les paramètres d'énergie Egii sont additionnés, pour obtenir une valeur d'énergie totale pour une constellation d'apparition. Ensuite, les valeurs totales de toutes les constellations différentes sont additionnées, pour obtenir la valeur déterminée par l'équation 21. Cette valeur est la mesure d'énergie globale. Lorsque cette valeur est divisée par le nombre des constellations possibles, on obtient la consommation d'énergie moyenne. Ainsi, la mesure d'énergie globale telle que déterminée par l'étape 34 est dérivée pour une porte sélectionnée à l'étape 30, et pour une combinaison de paramètres auxiliaires et pour une certaine combinaison de paramètres auxiliaires au début du premier et du deuxième cycle d'opérations. Alternativement, ou en outre, l'étape 34 a également pour résultat une mesure d'énergie locale, lorsque l'addition des énergies n'est pas effectuée par cycle complet, mais individuellement par rafale. La mesure d'énergie locale est dérivée comme illustré à l'équation 22. Dans ce cas, il est obtenu une énergie locale par rafale; c'est-à-dire quatre valeurs dans l présent exempe. Puis, à l'étape 36, la procédure des étapes 32 et 34 est répétée e, pour toutes les combinaisons différentes pour la porte sélectionnée l'étape 30. Par ailleurs, les procédures aux étapes 32, 34, et 36 sont effectuées pour chaque autre porte parmi les 216 portes possibles, de sorte que, après l'étape 36, on a une mesure d'énergie globale pour chaque combinaison d'opérandes auxiliaires et pour chaque porte. Ensuite, à l'étape 38, les mesures d'énergie pour chaque porte sont comparées l'une à l'autre. Lorsque les mesures d'énergie pour chaque combinaison d'opérandes auxiliaires sont substantiellement identiques entre elles, cette porte n'a aucun canal latéral en présence de rafales. Toutefois, lorsqu'on découvre que la mesure d'énergie pour une certaine combinaison d'opérandes auxiliaires est différente d'une mesure d'énergie pour une combinaison différente d'opérandes auxiliaires, il a été découvert que cette porte particulière a, en effet, un canal latéral qui pourrait être utilisé pour une attaque par analyse d'énergie différentielle. Bien sûr, on pourrait effectuer l'étape 38 non seulement pour les mesures d'énergie globale, mais également pour les mesures d'énergie locale. Lorsque l'étape 38 est effectuée pour chaque porte, on reçoit, à une sortie, les portes déterminées par les fonctions logiques des figures 4a et 4b. Il y a lieu de noter ici que les portes logiques définies par les figures 4a et 4b sont sécurisées contre une DPA en présence de rafales, indépendamment de certaines valeurs des énergies de transition Egii (i,j peuvent être 0 ou 1). Toutefois, lorsqu'une certaine technologie de circuit est disponible dans laquelle peuvent se présenter d'autres dépendances entre les valeurs Egi, telles que les énergies de transition de 1 à 0 et inversement 2884336 34 soient identiques entre elles, ou que les énergies de transition entre 0 et 0 ou 1 et 1 soient identiques entre elles, le nombre de portes logiques sécurisées _ iit une DPA est encore plus grand cue ceien den- né aux figures 4a et 4b, étant donné que ia consommation d'énergie moyenne des deux portes logiques est substantiellement égale pour une pluralité de combinaisons d'opérandes auxiliaires au début d'un premier cycle d'opérations et au début d'un deuxième cycle d'opérations, l'énergie moyenne étant dérivée d'une pluralité d'ordres différents d'apparitions des premier au quatrième opérandes auxiliaires. De préférence, la première porte logique 12 ne comporte que la combinaison linéaire entre deux opérandes auxiliaires, où deux opérandes auxiliaires comportent un opérande auxiliaire de chaque opérande original. Il a été découvert que, lorsqu'il est effectué des combinaisons linéaires d'opérandes auxiliaires, il n'y a pas de problème de DPA par rapport aux rafales. Toutefois, la deuxième porte logique est construite à l'aide de toute fonction booléenne de la figure 4b. Ci-après est décrite la construction des opérations non linéaires AND, OR, NAND, NOR en référence aux figures 5, 6, 7, et 8. La figure 5 illustre toutes les mises en oeuvre préférées possibles de la première porte logique 12 et de la deuxième porte logique 14 à l'aide des fonctions booléennes de la figure 4b, pour construire une porte AND masquée. La valeur de sortie c 1 déterminée par la règle de porte logique gl, lorsqu'elle est rendue XOR par la valeur de sortie c2 déterminée par la règle de porte g2 donne l'opérande de résultat c. La figure 6 illustre 8 mises en oeuvre possibles d'une porte OR. La figure 6 est différente de la figure 5 en ce que les opérandes d'entrée dans la porte linéaire sont complémentaires aux termes linéaires dans la porte non linéaire. Par exemple, lorsqu'on considère la première porte, il est clair qu'une combinaison OR peut être mise en oeuvre en substituant "al + b1" par le terme "a2 + b2" dans la porte linéaire, tout en ne modifiant pas la porte non linéaire. 2884336 35 Lorsqu'on considère la figure 7 et la figure 8, il est clair que les Portes complémentaires te'_'es que NAND (figure 7; ou NOR (figure 8 soit _ obtenues en. ___'ie_'san _ la sortie ci une porte. L'intiersion de la dune porte est obtenue en rendant XOR la valeur de ' 1", tel que connu dans l'art. Ainsi, lorsqu'on considère la première porte à la figure est clair qu'il n'y a pas de changement de la porte linéaire gi, tandis qu'un " 1" a été rendu XOR à la porte non linéaire correspondante g2 à la figure 5. De manière générale, il ressort clairement des figures 5 à 8 que la porte non linéaire g2 est l'une des portes illustrées à la figure 4b. La figure 9a indique une mise en oeuvre de la règle de porte logique de la figure 4b, où il y a quatre portes AND, une porte XOR recueillant la sortie des portes AND, et une dernière porte XOR ajoutant certains opérandes auxiliaires ou la valeur de "1". La porte linéaire 12 de la figure la peut être mise en oeuvre comme illustré à la figure 9b, où l'utilisation de l'opérande auxiliaire réel est déterminée par la certaine combinaison non linéaire. En ce qui concerne une mise en oeuvre pratique de la première porte logique 12 et de la deuxième porte logique 14 de la figure la, il y a lieu de noter qu'il faut utiliser autant de transistors communs que possible pour les deux portes logiques. Cette mise en oeuvre assure que les contraintes pour la semi-équivariance par rapport aux rafales, telles que les conditions requises de retard de porte et les conditions requises de routage/capacité dans les modes de réalisations préférés soient réalisées aussi exactement que possible. Par ailleurs, il y a lieu de noter que, tel qu'illustré à la figure lb, la présente invention convient particulièrement pour effectuer toutes combinaisons de tous nombres d'opérandes, étant donné que, par exemple, la combinaison de trois opérandes a, b, c, peut être décomposée en une combinaison de deux opérandes pour obtenir les opérandes intermédiaires (di, d2) et une combinaison de ces opérandes intermédiaires, pour obtenir le troisième opérande représenté par ci et c2. Chaque dispositif 10 à la figure lb aura, ici aussi, une première r porte Iraq' ie = - et _--1 et une deuxième porte 10,.:-que ta, _2 et g2,. _7; où. de préférence. IF de. :il r perte ue de chaque cispesitif 10 comporte la règle de porte logique de la figure 4 pour être sécurisée contre une r 5 DPA en présence de rafales. La figure le est un schéma schématisé d'une représentation d'élévation à deux portes logiques d'une opération logique ayant trois opérandes représentés par six opérandes auxiliaires al, a2, bl, b2, cl, c2. La figure 4c illustre un ensemble de règles de définition de porte logique pour les portes logiques gl et g2 de la figure 1c. Chacune des première et deuxième portes logiques est destinée à satisfaire une règle de combinaison obtenue du tableau à la figure 4c ou à satisfaire une règle de combinaison dérivée du tableau de règles de combinaison en échangeant al et a2, en échangeant bl et b2, en échangeant cl et c2, en permutant les trois paires (al, a2), (bl, b2) et (ci, c2), en inversant al ou a2, en inversant bl ou b2, en inversant et ou c2 ou en ajoutant (module 2) "1" au résultat d'une règle de combinaison (résultat de règle). Normalement, un auteur de circuit choisira une certaine opération logique à effectuer par la représentation d'élévation, c'est-à- dire les portes gl et g2. Puis, l'auteur du circuit choisira une règle de porte du tableau ou dérivée du tableau par les opérations susmentionnées comme première porte gl. Puis, l'auteur calculera la règle logique nécessaire pour la deuxième porte g2. Finalement, l'auteur vérifie si la deuxième porte calculée g2 est incluse au tableau ou peut être dérivée du tableau par les opérations susmentionnées. Si la vérification est positive, l'auteur a trouvé une représentation d'élévation résistante aux rafales. Sinon, l'auteur doit recommencer à l'aide d'une règle différente de porte pour la porte gl et répéter la vérification jusqu'à ce qu'il trouve une représentation résistante aux rafales. En fonction de certaines conditions requises de mise en oeuvre des procédés de l'invention, les procédés de l'invention peuvent être réalisés en matériel ou en software. La mise en oeuvre peut être 2884336 37 effectuée à l'aide d'un support d'enregistrement numérique, en particulier un discue. un DVD ou un CD. sur lequel sont enregistrés des signe._,x de commande lisibles eiectro: ic,uei: ent qui coopèrent avec i un système d'ordinateur programmable de sorte que soient effectués les procédés selon ention. De manier- générale, la présente invention est, par conséquent, un programme d'ordinateur avec un code de programme enregistré sur un support lisible en machine, le code de programme étant actif pour effectuer les procédés selon l'invention lorsque le programme d'ordinateur est exécuté sur un ordinateur. Autrement dit, les procédés selon l'invention sont, par conséquent, un programme d'ordinateur ayant un code de programme pour effectuer au moins l'un des procédés selon l'invention lorsque le programme d'ordinateur est exécuté sur un ordinateur. Bien que ce qui précède ait été illustré et décrit plus particulièrement en référence à des modes de réalisations de l'invention particuliers, l'homme de l'art comprendra que différentes autres modifications de forme et de détails peuvent être apportées sans sortir de l'esprit et du cadre de l'invention. Il doit être entendu que différentes modifications peuvent être apportées par l'adaptation à différents modes de réalisation sans sortir des concepts généraux décrits ici et compris dans les revendications qui suivent. Références 1. M.-L. Akkar and C. Giraud: An Implementation of DES and AES, Secure against Some Attacks, Cryptographie Hardware and Embedded Systerns - CHES 2001, (C.K. Koc, D. Naccache, and C. Paar, Eds.), Lecture Notes in Computer Science, vol. 2162, pp. 309-318, Springer, 2001. 2. M.-L. Akkar, R. Sevan, L. Goubin: Two Power Analysis Attacks against One-Mask Methods, 11th International Workshop on Fast Software Encryption - FSE 2004, (B.K. Roy and W. Meier, Eds.), Lecture Notes in Computer Science, vol. 3017, pp. 332-347, Springer, 2004. 3. R. Bevan and E. Knudsen: Ways to Enhance Differential Power Analysis, 1CISC 2002. J. Lee and C.H. L ml, Eds.), Lecture Notes in Computer Science, vol. 2537 1-7.;7 Springer. 2003. 4. J. Bior, .er, T.G. Me.ch, and V. Kru_nmel: Provao Secure 5. Tasking of AES. Select 'd Ar eas in Cr:iptograrl - SAC 2004, Lecture Notes in Computer Science. vol. 3357, pp. 69-83, Springer, 2004. 5. S. Chari, C.S. Jutla, J.R. Rao, and P. Rohatgi: Towards Sound Approaches to Counteract Power-Analysis Attacks, Advances in Cryptology CRYPTO'99, (M.J. Wiener, Ed.), Lecture Notes in Computer Science, vol. 1666, pp. 398-412, Springer, 1999. 6. C. Clavier, J.-S. Coron, and N. Dabbous: Differential Power Analysis in the Presence of Hardware Countermeasures, Cryptographic Hardware and Embedded Systems - CHES 2000, (C.K. Koc and C. Paar, Eds.), Lecture Notes in Computer Science, vol. 1965, pp. 252-263, Springer, 2000. 7. J.-S. Coron: Resistance against Differential Power Analysis for Elliptic Curve Cryptosystems, Cryptographic Hardware and Embedded Systems - CHES 1999, (C.K. Koc and C. Paar, Eds.), Lecture Notes in Computer Science, vol. 1717, pp. 292-302, Springer, 1999. 8. J.D. Golic: DeKaRT: A New Paradigm for Key-Dependent Reversible Circuits, Cryptographic Hardware and Embedded Systems - CHES 2003, (C.D. Walter, C.K. Koc, and C. Paar, Eds.), Lecture Notes in Computer Science, vol. 2779, pp. 98-112, Springer, 2003. 9. J.D. Golic and R. Menicocci: Universal Masking on Logic Gate Level, Electronics Letters 40(9), pp. 526-527 (2004). 10. J.D. Golic and C. Tymen: Multiplicative Masking and Power Analysis of AES, Cryptographic Hardware and Embedded Systems - CHES 2002, (B.S. Kaliski Jr., C.K. Koc, and C. Paar, Eds.), Lecture Notes in Computer Science, vol. 2535, pp. 198-212, Springer, 2003. 11. L. Goubin and J. Patarin: DES and Differential Power Analysis -The Duplication Method, Cryptographic Hardware and 2884336 39 Embedded Systems - CHES 1999, (C.K. Koc and C. Paar, Eds.), Lecture Notes in Computer Science. vol. 1717, p p. 158-172, nager 1999. Y. ish_a2, A. Sa_n_., and D. Wagner: Pr_ aLe Circuits: Sec ng Hardware against Probing Attacks, Advances in Cryptology CRYPTO 2003, (D. Boneh, Ed.), Lecture Notes in Computer Science, vol. 2729, pp. 463-481. Springer, 2003. 13. P.C. Kocher, J. Jaffe, and B. Jun: Differential Power Analysis, Advances in Cryptology - CRYPTO'99, (M.J. Wiener, Ed.), Lecture Notes in Computer Science, vol. 1666, pp. 388-397, Springer, 1999. 14. S. Mangard: Hardware Countermeasures against DPA - A Statistical Analysis of Their Effectiveness, Topics in Cryptology - CTRSA 2004, (T. Okamoto, Ed.), Lecture Notes in Computer Science, vol. 2964, pp. 222-235, Springer, 2004. 15. S. Mangard, T. Popp, B.M. Caramel: Side-Channel Leakage of Masked CMOS Gates, Topics in Cryptology - CT-RSA 2005, (A. Menezes, Ed.), Lecture Notes in Computer Science, vol. 3376, pp. 351-365, Springer, 2005. 16. T.S. Messerges: Securing the AES Finalists Against Power Analysis Attacks, 7th International Workshop on Fast Software Encryption -FSE 2000, (B. Schneier, Ed.), Lecture Notes in Computer Science, vol. 1978, pp. 150-164, Springer, 2001. 17. T.S. Messerges, E.A. Dabbish, and L. Puhl: Method and Apparatus for Preventing Information Leakage Attacks on a Microelectronic Assembly, US Patent 6,295,606, Sept. 25, 2001, available at http://www. uspto.gov/. 18. T.S. Messerges, E.A. Dabbish, and R.H. Sloan: Power Analysis Attacks of Modular Exponentiation in Smartcards, Cryptographie Hardware and Embedded Systems - CHES 1999, (O.K. Koc and C. Paar, Eds.), Lecture Notes in Computer Science, vol. 1717, pp. 144-157, Springer, 1999. 2884336 40 19. T.S. Messerges, E.A. Dabbish, and R.H. S1oan: Examining Smart-Card Securit-,- u_nde, t^e Threa- cf Power Analysis Attacks IEEE Transactions on Ccrr p __te_ s, i 5 pp. 541 2002. 20. B. Preneel. R. Govaerts, J. VandewaI1e: Boolean F:. notions 1i 1.. Satrsfi_g Higher Ortler Propagation Cr teria Advances in Cr - _ _ ptoloEUROCRYPT'91, (D.W. Davier. Bd.), Lecture Notes in Computer Science, vol. 547, pp. 141-152, Springer, 1991. 21. J.M. Rabaey: Digital Integrated Circuits, Prentice Hall, 1996, ISBN 013-178609-1. 22. A. Shamir: Protecting Smart Cards from Passive Power Analysis with Detached Power Supplies, Cryptographic Hardware and Embedded Systems CHES 2000, (C.K. Koc and C. Paar, Eds.), Lecture Notes in Computer Science, vol. 1965, pp. 71-77, Springer, 2000. 23. D. Suzuki, M. Saeki, and T. Ichikawa: Random Switching Logic: A Countermeasure against DPA based on Transition probability, Cryptology ePrint Archive, Report 2004/346 (http://eprint.iacr.org/). 24. K. Tiri and I. Verbauwhede: Securing Encryption Algorithms against DPA at the Logic Level: Next Generation Smart Card Technology, Cryptographic Hardware and Embedded Systems - CHES 2003, (C.D. Walter, C. K, Koc, and C. Paar, Eds.), Lecture Notes in Computer Science, vol. 2779, pp. 137-151, Springer, 2003. 25. K. Tiri and I. Verbauwhede: A Logic Level Design Methodology for a Secure DPA Resistant ASIC or FPGA Implementation, Proc. of Design, Automation and Test in Europe Conference - DATE 2004, IEEE Computer Society, pp. 246-251, 2004. 26. E. Trichina: Combinational Logic Design for AES SubByte Transformation on Masked Data, Cryptology ePrint Archive, Report 2003/236 (http://eprint.iacr.org/). 27. E. Trichina and T. Korkishko: Small Size, Low Power, Side ChannelImmune AES Coprocessor: Design and Synthesis Results, Proc. of the Fourth Conference on the Advanced Encryption Standard (AES), Bonn, Allemagne, mai 2004. 28. E. Trichina, D. De Seta, and L. Germani: Simplified Adaptive Multiplicative Maskin: for AES, Cryptographic Hardware ana EmbedJef. Syste_gis CETE.S 0 (B.S. Kaliski Jr, C.K. _Roc, and C. Paar, Eds.), Lecture Notes in Computer Science, vol. 2535, pp. 187-197, Springer, 2003. REVENDICATIONS 1. Dispositif pour le calcul d'une représentation d'un opérande de résultat d'une opération logique non linéaire entre au moins un premier opérande a et un deuxième opérande b, le premier opérande a étant représenté par un premier opérande al auxiliaire et un deuxième opérande a2 auxiliaire, les premier et le deuxième opérandes al, a2 auxiliaires donnant le premier opérande lorsqu'ils sont combinés à l'aide d'une combinaison linéaire, le deuxième opérande étant représenté par un troisième opérande bi auxiliaire et un quatrième opérande b2 auxiliaire, les troisième et le quatrième opérandes auxiliaires donnant le deuxième opérande lorsqu'ils sont combinés à l'aide d'une combinaison linéaire, comprenant: une première porte (12) logique pour le calcul d'un cinquième opérande auxiliaire sur base d'au moins deux opérandes auxiliaires, les au moins deux opérandes auxiliaires comportant l'un parmi les premier et deuxième opérandes auxiliaires et l'un parmi les troisième et quatrième opérandes auxiliaires; une deuxième porte (14) logique pour le calcul d'un sixième opérande auxiliaire sur base d'au moins les premier au quatrième opérandes auxiliaires, où la première et la deuxième porte (12, 14) logique sont conçues de sorte que les cinquième et sixième opérandes auxiliaires, lorsqu'ils sont combinés linéairement, donnent l'opérande de résultat, et où la première et la deuxième porte (14) logique sont conçues de sorte qu'une consommation d'énergie moyenne de la première porte (12) logique ou une consommation d'énergie moyenne de la deuxième porte (14) logique est substantiellement identique pour une pluralité de combinaisons d'opérandes auxiliaires au début du premier cycle d'opérations et d'opérandes auxiliaires au début d'un deuxième cycle d'opérations, l'énergie moyenne étant dérivable d'une pluralité d'ordres différents d'apparitions des premier au quatrième opérandes auxiliaires. 4' 2. Dispositif selon la revendication 1, dans lequel la première porte logique ne ccmporte que des combinaisons linéaires entre au moins deux opérandes au_ ires, et dans lequel la deuxième porte logique est conçue selon une règle de combinaison logique impliquant des combinaisons non linéaires d'au moins deux opérandes auxiliaires. 3. Dispositif selon la revendication 1, dans lequel la première porte logique et la deuxième porte logique sont mises en oeuvre au niveau transistor, de sorte qu'une pluralité de transistors soient utilisés en commun pour la première porte logique et la deuxième porte logique. 4. Dispositif selon la revendication 2, dans lequel la deuxième porte logique comporte une opération non linéaire entre chacun des premier et deuxième opérandes auxiliaires et chacun des troisième et quatrième opérandes auxiliaires. 5. Dispositif selon la revendication 1, dans lequel la deuxième porte logique comporte une addition XOR de la valeur "1". 6. Dispositif selon la revendication 4, dans lequel la combinaison non linéaire est une combinaison AND. 7. Dispositif selon la revendication 1, dans lequel la combinaison linéaire pour le premier opérande ou le deuxième opérande ou l'opérande de résultat est une combinaison XOR ou XNOR. 8. Dispositif selon la revendication 1, dans lequel l'opération logique non linéaire est une opération AND, OR, NAND ou NOR. 9. Appareil selon la revendication 1, dans lequel la deuxième porte logique est conçue de manière à satisfaire l'une des règles de combinaison suivantes: où c peut être égal à 0 ou égal à 1, où ai est le premier opérande auxiliaire, où a2 est le deuxième opérande auxiliaire, où 131 est le c+alb,, c+a1 +albl, c+b, +alb,, c+a, +b, +albl c + a,b2, c + + a,b2, c + b, + a2b,, c + al + b2 + a,b2 c+a2b1, c+a2 +a2b,, c+b2 +a1b2, c+a2+b, +a2b, c+a,b2, c+a2+a2b2, c+b2+a,b2, c+a2+b2+a2b2 Cl c+al +b1 c+ a1 + b2 c+a2 +bl c+a, + b2 2884336 44 troisième opérande auxiliaire et où b2 est le quatrième opérande auxiliaire, et où "+" est une combinaison XOR. 10. Dispositif selon la revendication 1, dans lequel la deuxième porte logique est conçue de manière à satisfaire l'une des règles de 5 combinaison suivantes: c + al + b, + a, b; + a1 b, + a, b; + a, b, c + a; + b, + + a1b2 + a2b, + a2b, c + a2 + b1 + alb, + a1b2 + a2b, + a,b, c+a, + b2 +alb, +a,b, +a2b1 +a,b, ou c peut etre egal à 0 ou egal à 1, où al est le premier opérande auxiliaire, où a2 est le deuxième bpérarïde auxiliaire, où bl est le troisième opérande auxiliaire et où b2 est le quatrième opérande auxiliaire, et où "+" est une combinaison XOR. 11. Dispositif selon la revendication 1, dans lequel la fonction logique comporte trois opérandes, où le troisième opérande est représenté par un cinquième opérande auxiliaire et un sixième opérande auxiliaire, les cinquième et sixième opérandes auxiliaires donnant le troisième opérande lorsqu'ils sont combinés à l'aide d'une combinaison linéaire, et dans lequel chacune des première et deuxième portes logiques est conçue de manière à satisfaire les règles de combinaison suivantes: a2+b2+a2*b2+ c2+ a2*c2+b2*c2+a2*b2*c2 a2+a2*b2+a2*c2+a2*b2*c2 b2+c2+b2*c2 a2+b2+a2*c2+ b2*c2 a2*b2+c2+a2*b2+c2 a2+a l *b 1 +a2 *b 1 +b2+a l *b2+a2*b2+a2*c2+a 1 *b 1 *c2+â2 *b 1 *c2+b2 *c2+a 1 +b2*c2+a2*b2*c2.a2*b2+a2*b2*c2 a2+b2+c2+ a2*c2+b2*c2 a2+a2*c2 b2+a2*b2+c2+b2*c2+a2*b2*c2 a2+b2+a2*b2+a2*c2+b2*c2+ a2*b2+c2 c2 a2+b2+c2+a2*b2*c2 a2*b2+a2*c2+b2*c2 25 30 2884336 45 al+b2+ al*b2+cl+al*cl+a2*cl+b2*cl+al*b2*cl+a2*b2*cl+al*c2 +a2*c2+b2*c2+al*b2*c2+ a2*b2*c2 al +b2+a1 *b2+a1 *c1 +b2*c1 +a1 *b2*cl+a2*b2*c1 +c2+al*c2+b2*c2+ al*b2*c2+a2*b2+c2 a2*b2+a2*c2 a2+b2+c2+b2*c2+a2*b2+c2 a2+a2*b2*c2 b2+ a2*b2+c2+a2*c2+b2*c2 b2+a2*c2+b2*c2+a2*b2*c2 a2+a2*b2+c2 a_2+b2+a.2*b2+ b2*c2 c2+a2*c2+a2+b2+c2 a2*b2+a2*b I*cl+a2*b2*cl+a2*c2+a2*bl*c2+a2*b2*c2 a2+a2*b2+a2*cl+b2*c1+c2+a2*c2+b2*c2 a2+a2*b2+c1+a2*cl+a2*c2 a2+a2*b2+ a2*cl+b2*c1+al*b2*cl+a2*b2*cl+c2+a2*c2+b2*c2+al* b2*c2+a2*b2*c2 b2+c2 a2+ a2*b2+a2*c2+b2*c2+a2*b2*c2 a2+b2+a2*b2+c2+a2*c2+a2*b2*c2 b2*c2 b2+bl*cl+ b2*cl+c2+bl*c2+b2*c2 al+bl+al*bl+al*cl+bl*cl+al*bl*cl+a2*b2*cl+c2+al*c2+ bl*c2 +a1*bl*c2+a2*b2*c2 a2+a2*bl+cl+a2*cl+a2*bl*cl+a2*b2*cl+a2*c2+ a2*bl*c2+a2*b2* c2 a2+a2*bl+a.2*cl+a2*bl*cl+b2*cl+al*b2*cl+c2+a2*c2+ a2*bl*c2+ b2*c2+al*b2*c2 a2*b2+a2*c2+b2+c2+a2+b2*c2 a2+b2+c2 a2+b2*c2 b2+ a2+b2+c2+a2*c2+a2*b2*c2 a2+b2+a2*b2+a2*b2*c2 c2+a2*c2+b2*c2 a2+b2+al*b1 *c1 +a2*b1 *c1 +al*b2*c1 +a2*b2*c1+c2+al*b1 *c2+a2* bl*c2+al*b2*c2+a2*b2* c2 a2+b2+b1 *cl+b2*cl+c2+b1 *c2+b2*c2 a2*b2+c2+a2*c2+b2*c2 a2+b2+a2*b2*c2 a2+c2+bl*c2-a2*b2*c2 b2+a2*b2-a2+c2 a2+b2+a24-b2+c2 a2*c2+b2+c2+a2*b2*c2 a2+b2+a2*b2+c1+b2*c1+b2*c2 a2+b2+a2*b2+a2*cl+b2*cl+c2+a2*c2+b2*c2 2884336 46 a2+b2+al*cl+a2*cl+bl*cl+b2*cic2+al*c2+a2*c2+bl*c2+b2*c2 a2+b2+a2 *b2+ c2+a2*c2+b2*c2 ^' c2 a2-al*bi-a.t bl-b2 1* 2-a2*b2talcl+a2 c1+bi*._-b2 C1c2 5 a *c2+a2*c2+b l*c2+b2* c2 où c 1 est le cinquième opérande auxiliaire, où c2 est le sixième, opérande auxiliaire, où a est le premier opérande auxiliaire, où a2 est le deuxième opérande auxiliaire, où bl est le troisième opérande auxiliaire, et où b2 est le quatrième opérande auxiliaire, et où "+" est une combinaison XOR, et où * est une opération AND, ou dans lequel chacune des première et deuxième portes logiques est conçue de manière à satisfaire une règle de combinaison obtenue du tableau de règles de combinaison par l'une des opérations suivantes ou une combinaison arbitraire des règles de combinaison suivantes: échange de al et a2, échange de bl et b2, échange de cl et c2, permutation des trois paires (al, a2), (bl, b2) et (cl, c2), 20 inversion de al ou a2, inversion de bl ou b2, inversion de cl ou c2, et addition de 1 au résultat de règle. 12. Dispositif selon la revendication 1, dans lequel la première porte logique est conçue de sorte qu'une consommation d'énergie moyenne de la première porte logique soit substantiellement identique pour une pluralité de combinaisons d'opérandes auxiliaires au début du premier cycle d'opérations et d'opérandes auxiliaires au début d'un deuxième cycle d'opérations, l'énergie moyenne étant dérivable d'une pluralité d'ordres différents d'apparitions des premier au quatrième opérandes auxiliaires, et dans lequel la deuxième porte logique est conçue de sorte qu'une consommation d'énergie moyenne de la deuxième porte logique soit substantiellement identique pour une 2884336 47 pluralité de combinaisons d'opérandes auxiliaires au début du premier cycle d'opérations et d'opérandes auxiliaires au début d'un deuxième cycle d'opérations, l'énergie moyenne étant dérivable d une pluralité d'ordres différents d'apparitions des premier au quatrième opérandes auxiliaires. 13. Dispositif selon la revendication 1, dans lequel la première et la deuxième porte logique sont mises en oeuvre au niveau transistor de manière à avoir substantiellement la même charge capacitive. 14. Dispositif selon la revendication 1, dans lequel la première et la deuxième porte logique sont mises en oeuvre au niveau transistor de manière à avoir substantiellement le même retard de porte. 15. Dispositif selon la revendication 1, dans lequel la première et la deuxième porte logique sont conçues au niveau transistor de manière à avoir substantiellement les mêmes temps de propagation pour le premier et le deuxième opérande auxiliaire, ou pour le troisième et le quatrième opérande auxiliaire. 16. Dispositif selon la revendication 1, dans lequel la première ou deuxième porte logique est conçue au niveau transistors de sorte que la paire des premier et deuxième opérandes auxiliaires ou la paire des troisième et quatrième opérandes auxiliaires aient la même profondeur de porte dans les portes logiques. 17. Dispositif selon la revendication 1, dans lequel la première et la deuxième porte logique sont conçues selon une technologie de circuit CMOS. 18. Dispositif selon la revendication 1, dans lequel la première porte logique est mise en oeuvre à l'aide de l'une des règles de combinaison suivantes: al + bl + c al+b2+c a2+bl+c a2 + b2 + c 2884336 48 où al est le premier paramètre auxiliaire, où a2 est le deuxième paramètre auxiliaire, cù b1 est le troisième paramètre auxiliaire, et où b2 est le quatrième paramètre auxiliaire, et où c est égal à C ou égal à î; et où "+ " est une combinaison XOR. 19. Procédé de calcul d'une représentation d'un opérande de résultat d'une opération logique non linéaire entre au moins un premier opérande et un deuxième opérande, le premier opérande étant représenté par un premier opérande auxiliaire et un deuxième opérande auxiliaire, les premier et deuxième opérandes auxiliaires donnant le premier opérande lorsqu'ils sont combinés à l'aide d'une combinaison linéaire, le deuxième opérande étant représenté par un troisième opérande auxiliaire et un quatrième opérande auxiliaire, les troisième et quatrième opérandes auxiliaires donnant le deuxième opérande lorsqu'ils sont combinés à l'aide d'une combinaison linéaire, comprenant: calculer un cinquième opérande auxiliaire sur base d'au moins deux opérandes auxiliaires à l'aide d'une première porte logique, lesdits au moins deux opérandes auxiliaires comportant l'un parmi les premier et deuxième opérandes auxiliaires et l'un parmi les troisième et quatrième opérandes auxiliaires; calculer un sixième opérande auxiliaire sur base d'au moins les premier au quatrième opérandes auxiliaires à l'aide d'une deuxième porte logique, où la première et la deuxième porte logique sont conçues de sorte que les cinquième et sixième opérandes auxiliaires, lorsqu'ils sont combinés linéairement, donnent l'opérande de résultat, et où la première et la deuxième porte logique sont conçues de sorte qu'une consommation d'énergie moyenne de la première ou une consommation d'énergie moyenne de la deuxième porte logique soit substantiellement identique pour une pluralité de combinaisons d'opérandes auxiliaires au début du premier cycle d'opérations et d'opérandes auxiliaires au début d'un deuxième cycle d'opérations, 2884336 49 l'énergie moyenne étant dérivable d'une pluralité d'ordres différents d'apparitions des premier au quatrième opérandes auxiliaires. 20. Programme d'ordinateur présentant un code de programme pour effectuer le procédé de calcul d'une représentation d'un opérande de résultat d'une opération logique non linéaire entre un premier opérande et un deuxième opérande, le premier opérande étant représenté par un premier opérande auxiliaire et un deuxième opérande auxiliaire, les premier et deuxième opérandes auxiliaires donnant le premier opérande lorsqu'ils sont combinés à l'aide d'une combinaison linéaire, le deuxième opérande étant représenté par un troisième opérande auxiliaire et un quatrième opérande auxiliaire, les troisième et quatrième opérandes auxiliaires donnant le deuxième opérande lorsqu'ils sont combinés à l'aide d'une combinaison linéaire, lorsque le programme d'ordinateur est exécuté sur un ordinateur, le procédé comprenant: calculer un cinquième opérande auxiliaire sur base d'au moins deux opérandes auxiliaires à l'aide d'une première porte logique, les au moins deux opérandes auxiliaires comprenant l'un parmi les premier et deuxième opérandes auxiliaires et l'un parmi les troisième et quatrième opérandes auxiliaires; calculer un sixième opérande auxiliaire sur base des premier au quatrième opérandes auxiliaires à l'aide d'une deuxième porte logique, où la première et la deuxième porte logique sont conçues de sorte que les cinquième et sixième opérandes auxiliaires, lorsqu'ils sont combinés linéairement, donnent l'opérande de résultat, et où la première et la deuxième porte logique sont conçues de sorte qu'une consommation d'énergie moyenne de la première ou de la deuxième porte logique soit substantiellement identique pour une pluralité de combinaisons d'opérandes auxiliaires au début du premier cycle d'opérations et d'opérandes auxiliaires au début d'un deuxième cycle d'opérations, l'énergie moyenne étant dérivable d'une pluralité 2884336 50 d'ordres différents d'apparitions des premier au quatrième opérandes auxiliaires.