FR 2949887 A1 20110311 FR 0956053 A 20090904 La présente invention concerne un procédé de traitement cryptographique de données, en particulier pour les protéger contre les attaques par analyse par canal auxiliaire, appelées �SCA � (de l'anglais � sicle channel analysis �), notamment l'attaque appelée �DPA � (de l'anglais � differential power analysis �), ainsi qu'un dispositif associé. Elle s'applique, en particulier, à la protection de contenus à maintenir secrets ou de circuits électroniques et de cartes à microcircuit. Dans certains procédés de traitement de données, en particulier dans le cadre du traitement cryptographique de données, on utilise, au sein des algorithmes de traitement, des données qui doivent rester secrètes (telles que par exemple des clés cryptographiques) pour assurer le fonctionnement du système avec la sécurité requise. Ce type de procédé est dès lors la cible d'attaques de la part d'utilisateurs malveillants qui cherchent à déjouer la sécurité du système. Quand un algorithme cryptographique est implémenté matériellement ou dans un programme embarqué, de l'information peut � fuir � à propos de variables intermédiaire en cours de traitement. Cette information peut être présente dans la consommation électrique les émanations électromagnétiques ou des caractéristiques temporelles. La classe d'attaques appelée SCA tente d'exploiter ces fuites pour retrouver l'information secrète (généralement une clé secrète ou des bits de clé). La DPA est une attaque qui permet d'obtenir des informations sur la clé secrète (contenue dans une carte à puce par exemple), en effectuant une analyse statistique des enregistrements de consommation électrique, mesurés sur un grand nombre de calculs avec la même clé. Cette attaque ne requiert aucune connaissance sur la consommation électrique individuelle de chaque instruction, ni sur la position dans le temps de chacune de ces instructions. Elle s'applique exactement de la même manière dès que l'attaquant connaît les sorties de l'algorithme et les courbes de consommation correspondantes. On connaît une contre-mesure générique consistant à séparer toutes les variables intermédiaires (Suresh Chari, Charantjit S. Jutla, Josyula R. Rao et Pankaj Rohatgi, � Towards Sound Approaches to Counteract Power-Analysis Attacks � , Proceedings of Advances in Cryptology- CRYPTO'99, Springer-Verlag, 1999, pages. 398-412.). Or cette méthode générale augmente fortement les ressources nécessaires, quantité de mémoire et/ou temps de calcul. De plus, les étapes intermédiaires peuvent aussi être attaquées par DPA, si bien que la séparation des variables doit être effectuée sur toutes les étapes de l'algorithme. Cela rend d'autant plus important le problème de la consommation de ressources supplémentaire, en particulier pour des systèmes embarqués tels que les cartes à puce. Une contre-mesure générale consiste à masquer toutes les entrées et sorties de chaque opération élémentaire exécutée par le microprocesseur, c'est-à-dire à les combiner avec un masque m. Pour se protéger contre les attaques appelées SCA (pour � side channel analysis � ou analyse par canal auxiliaire), notamment l'attaque DPA (� differential power analysis �), on connaît ainsi la mise en oeuvre d'un masquage additif dont l'équation est X XORm Où X est dans le champ de Gallois GF(28)16, XOR est la fonction � ou exclusif � qui associe à une couple (0,0) la valeur 0, au couple (0,1), la valeur 1, au couple (1,0), la valeur 1 et au couple (1,1), la valeur 0 et m est un nombre aléatoire. On note que, lorsqu'un bit de m vaut 1, la valeur du bit correspondant de X est inversée lors du masquage et que, lorsqu'un bit de m vaut 0, la valeur du bit correspondant de X est conservée lors du masquage. Ce qui revient à dire que (X XOR m) XOR m = X. Le démasquage est ainsi effectué avec la même opération que le masquage. Si la source de nombres aléatoires est distribuée uniformément, les données résultant du masquage le sont aussi et ne dépendent plus de la clé secrète. L'article de J.-S. Coron � A new DPA contermeasure based on permutation tables � dans l'ouvrage � Security and cryptography for networks �, 6ème conférence internationale SCN 2008, volume 5229 de � Lecture notes in Computer science �, pages 278, 292, Springler 2008 propose une contre-mesure utilisant des tables de permutation. Cette proposition peut être vue comme une généralisation de l'approche classique, le masquage ne se faisant plus par une translation aléatoire mais par une permutation aléatoire. Comme dans le masquage classique, la contremesure par tables de permutation nécessite une chaîne de données aléatoire, qui est utilisée au début de l'algorithme pour générer une permutation P. Dans le cas de l'algorithme de chiffrement, la permutation P est appliquée à la fois au message X à chiffrer et à la clé secrète K, pour produire P(X) et P(K). Ce sont ces variables permutées qui sont utilisées par l'algorithme de chiffrement. A chaque étape de l'algorithme de chiffrement, les opérations cryptographiques doivent être modifiées pour que toutes les variables intermédiaires restent dans la forme permutée décrite par la permutation P. Dans le contexte AES, les variables intermédiaires sont des mots de huit bits. La permutation P comporte deux permutations de quatre bits, PI et P2 et opère sur une variable X de huit bits, ou octets, selon la formule : P(X) = P2(Xh) I I PI (Xi) Dans laquelle Xh et X, représentent respectivement le quadruplet de poids forts et le quadruplet de poids faibles de l'octet X et � Il � représente la concaténation. A chaque invocation de l'algorithme, les permutations PI et P2 sont choisies aléatoirement dans un ensemble de permutations défini sur F24, ensemble des quadruplets binaires, aussi noté GF(2)4. Dans la suite de la description, on suppose que la variable aléatoire PI (respectivement P2) associée à la génération aléatoire de pl (respectivement p2) satisfait la condition selon laquelle la probabilité de l'événement PI = pl est égale à 2-4d (respectivement la probabilité que P2 = p2 est égale à 2-4d) d étant un entier (typiquement d = 4) pour chaque valeur de p1 (respectivement p2). Le standard AES est un algorithme de chiffrement par blocs bien connu. La fonction de ronde AES pour le chiffrement fonctionne sur des éléments de 16 octets, référencés a; avec i allant de 0 à 15, et consiste en quatre transformations, AddRoundKey, SubBytes, ShiftRows et MixColumns. Dans la suite, on appelle l'utilisation des permutations dans le contexte d'AES, �randomised AES �, le terme � randomised � ajouté en tête d'une opération ou transformation indiquant qu'elle travaille sur des données permutées. Après que la permutation aléatoire ait été générée, elle est appliquée à chaque octet du message et de la clé. Pour chaque octet x, on note u = P(x) la représentation de x par la permutation P. Chaque valeur permutée est traitée par la fonction de ronde AES, dans laquelle elle est l'objet des transformations indiquées ci-dessus. Chacune des transformations AES doit être minutieusement implémentée pour que : - les variables sensibles apparaissent toujours dans leur forme permutée par P et - la sortie de chaque transformation est une forme permutée. On donne, ci-dessous, des implémentations de AddRoundKey et 20 MixColumns : - randomised AddRoundKey prend deux octets u = P(x) et v = P(y) comme entrées et fournit, en sortie P(x XOR y) ou XOR représente l'opération � ou exclusif �. A cet effet, deux tables d'entrées sur 8 bits et de sorties sur 4 bits sont définies, pour (u,, v,) et (uh, vh) dans 25 (F24)2 : XT41(ui II vi) = p1(p1-1(ui) XOR p1-1(vi)) XT42(Uh II Vh) = p2(p2 1(Uh) XOR p2 1(Vh)). Les tables XT41 et XT42 sont calculées en même temps que P et stockées en mémoire. Une fonction XOR sur huit bits, notée XT8, est alors 30 calculée à l'aide de tables de correspondance, ou LUT (de l'anglais look-up table) pour u et v dans F28. XT8(u,v) = XT42(uh II vh) Il XT41(ul Il - Randomised MixColumns est calculé comme une combinaison d'opérations de multiplication par deux et XOR. Pour calculer randomised MixColumns à partir de P(a;), la représentation permutée par P des octets, les opérations XOR sont calculées, en utilisant la fonction XT8. Pour l'opération de multiplication par deux, une fonction D2 est définie telle que, lorsqu'elle est appliquée à u = P(x), on obtient D2(P(x)) = P( La quantité de mémoire nécessaire au traitement des données est beaucoup plus réduite avec le traitement séparé des parties des données que si les données étaient traitées du fait de l'utilisation courante de tables de correspondances pour implémenter les opérations. Par exemple, le traitement de deux octets nécessiterait une table de correspondance à 216 entrées binaires, ce qui n'est pas compatible avec les quantités de mémoire disponibles, notamment dans les entités électroniques portables. Selon des caractéristiques particulières, l'étape de permutation comporte : - une première étape de permutation au cours de laquelle on 15 applique une même permutation aux différentes données et - une deuxième étape de permutation au cours de laquelle on applique des permutations différentes aux différentes données. Selon des caractéristiques particulières, l'étape de permutation comporte : - une première étape de permutation des données au cours de laquelle on applique une première permutation à une première partie de chacune des données, et une deuxième permutation, différente de la première permutation, à une deuxième partie de chacune des données, les première et deuxième permutation étant différentes et - une deuxième étape de permutation, au cours de laquelle applique la deuxième permutation après la permutation inverse de la première permutation à la première partie de l'une des données, et la première permutation après la permutation inverse de la deuxième permutation à la deuxième partie de ladite donnée. 20 25 30 Ainsi, on ne met en oeuvre qu'un faible nombre de permutations et de tables de correspondance et on réduit ainsi les ressources (temps de traitement et espace mémoire) nécessaires à la mise en oeuvre de la présente invention. Selon des caractéristiques particulières lesdites permutations sont statistiquement indépendantes. Grâce à ces dispositions, on élimine les vulnérabilités d'ordre 1 évoquées plus haut. Selon des caractéristiques particulières, au moins une opération cryptographique comporte une étape de concaténation des parties de données. On restaure ainsi les données de sortie des opérations cryptographique à partir des parties de ces données de sorties. Selon des caractéristiques particulières, au moins une opération cryptographique met en oeuvre une table de correspondance pour chaque partie des données, dont les entrées reçoivent ladite partie de deux données permutées et fournit ladite partie d'une donnée de sortie. L'utilisation de tables de correspondance permet, à la fois, un traitement plus rapide, une simple lecture de leurs sorties fournissant le résultat des calculs et une réduction des vulnérabilités du fait qu'il n'y a pas d'étapes intermédiaires qui risqueraient de donner des informations à un attaquant. Selon des caractéristiques particulières, au moins une opération cryptographique appliquée aux données permutées est une opération comportant une opération � ou exclusif �. Selon des caractéristiques particulières, au moins une opération 25 cryptographique appliquée aux données permutées est une opération d'un algorithme de chiffrement. Selon des caractéristiques particulières, au moins une opération cryptographique appliquée aux données permutées est une opération d'un algorithme de chiffrement AES. 30 La présente invention s'applique ainsi, en particulier, au codage AES (Advanced Encryption Standard) et permet d'en exploiter les avantages, notamment en termes de consommation de ressources, avec des modifications limitées à celles nécessaires pour implémenter l'algorithme randomised AES. Selon un deuxième aspect, la présente invention vise un dispositif de traitement cryptographique de données secrètes, caractérisé en ce qu'il comporte : - un moyen de permutation adapté à effectuer une permutation des données élémentaires de chaque donnée et - au moins un moyen d'opération adapté à effectué au moins une opération cryptographique appliquée aux données permutées, caractérisé en ce que le moyen de permutation est adapté à appliquer une permutation différentes auxdites données. Un tel dispositif peut être une entité électronique de poche, telle qu'une carte à microcircuit, par exemple conforme à la norme ISO7816 ; en variante, il peut s'agir d'un autre type d'entité électronique, comme par exemple un ordinateur (tel un ordinateur personnel) ou une clé USB. Les procédés et dispositifs évoqués ci-dessus sont typiquement mis en oeuvre au moyen de l'exécution des instructions d'un programme d'ordinateur par un microprocesseur. L'exécution des instructions permet ainsi le traitement par le microprocesseur des données mémorisées dans le dispositif, par exemple au sein d'une mémoire vive de celui-ci. D'autres modes de réalisation pourront toutefois être envisagés, comme par exemple l'utilisation d'un circuit à application spécifique apte à mettre en oeuvre les étapes des procédés envisagés ci-dessus. Dans ces différents contextes, les données d'entrée peuvent être des données reçues par le dispositif de traitement d'un dispositif extérieur, par exemple au moyen d'une interface de communication du dispositif de traitement. Il peut toutefois s'agir également de données mémorisées dans le dispositif (par exemple en mémoire non-volatile) ou de données intermédiaires obtenues à partir des données de résultat d'une autre transformation. De même, au moins une des données de résultat peut être une donnée à émettre en sortie du dispositif, par exemple à destination du dispositif extérieur au moyen de l'interface de communication. Les données de résultat peuvent toutefois n'être que des données intermédiaires, éventuellement utilisées par le dispositif dans des processus (par exemple de calcul) ultérieurs. Chacun des algorithmes cryptographiques mentionnés ci-dessus permet par exemple de réaliser, au moins en partie, une opération de chiffrement, de déchiffrement, de signature, d'échange de clé cryptographique ou de génération de clé cryptographique. Dans ce type d'application, les données d'entrée sont par exemple un message (ou une partie d'un message) reçu du dispositif extérieur et qui est crypté (ou décrypté) au sein dispositif de traitement au moyen du ou des algorithmes cryptographiques précités, puis ré-émis en sortie du dispositif de traitement à travers l'interface de communication. Selon un troisième aspect, la présente invention vise un programme d'ordinateur comportant des instructions permettant la mise en oeuvre du procédé objet de la présente invention lorsque lesdites instructions sont exécutées par un processeur. Selon un quatrième aspect, la présente invention vise un support d'information comportant des instructions permettant la mise en oeuvre du procédé objet de la présente invention lorsque lesdites instructions sont exécutées par un processeur. Les avantages, buts et caractéristiques particulières de ce dispositif, de ce programme d'ordinateur et de ce support d'information étant similaires à ceux du procédé objet de la présente invention, ils ne sont pas repris ici. D'autres avantages, buts et caractéristiques particulières de la présente invention ressortiront de la description qui va suivre faite, dans un but explicatif et nullement limitatif, en regard des dessins annexés, dans lesquels : - la figure 1 représente schématiquement les éléments principaux d'une forme de réalisation possible pour une carte à microcircuit ; - la figure 2 représente l'allure physique générale de la carte à 30 microcircuit de la figure 1 ; - la figure 3 illustre schématiquement l'algorithme randomised AES de l'état de la technique ; - la figure 4 représente, sous forme d'un logigramme, des étapes pour la mise en oeuvre d'un premier mode de réalisation particulier du procédé objet de la présente invention et - la figure 5 représente, sous forme d'un logigramme, des étapes pour la mise en oeuvre d'un deuxième mode de réalisation particulier du procédé objet de la présente invention. La figure 1 représente, schématiquement, un dispositif de traitement de données 40 dans lequel la présente invention est mise en oeuvre. Ce dispositif 40 comprend un microprocesseur 10, auquel est associée d'une part une mémoire vive 60, par exemple au moyen d'un bus 70, et d'autre part une mémoire non volatile 20 (par exemple du type EEPROM), par exemple à travers un bus 50. Le dispositif de traitement de données 40, et précisément le microprocesseur 10 qu'il incorpore, peuvent échanger des données avec des dispositifs extérieurs au moyen d'une interface de communication 30. On a schématiquement représenté sur la figure 1 la transmission d'une donnée d'entrée X reçue d'un dispositif extérieur (non représenté) et transmise de l'interface de communication 30 au microprocesseur 10. De manière similaire, on a représenté la transmission d'une donnée de sortie S du microprocesseur 10 vers l'interface de communication 30 à destination d'un dispositif extérieur. Cette donnée de sortie Y est issue d'un traitement de données par le microprocesseur 10, généralement sur la donnée d'entrée X à l'aide d'une donnée secrète 80 interne au système, par exemple une clé privée. Bien que, pour l'illustration, les données d'entrée et les données de sortie figurent sur deux flèches différentes, les moyens physiques qui permettent la communication entre le microprocesseur 10 et l'interface 30 pourront être réalisés par des moyens uniques, par exemple un port de communication série ou un bus. Le microprocesseur 10 est apte à exécuter un logiciel (ou programme d'ordinateur) qui permet au dispositif de traitement de données 40 d'exécuter un procédé conforme à l'invention dont des exemples sont donnés en regard des figures 3 à 5. Le logiciel est composé d'une série d'instructions de commande du microprocesseur 10 qui sont par exemple stockées dans la mémoire 20. En variante, l'ensemble microprocesseur 10 - mémoire non-volatile 20 - mémoire vive 60 peut être remplacé par un circuit à application spécifique qui comprend alors des moyens de mise en oeuvre des différentes étapes du procédé de traitement de données. La figure 2 représente une carte à microcircuit qui constitue un exemple de dispositif de traitement de données conforme à l'invention tel que représenté à la figure 1. L'interface de communication 30 est dans ce cas réalisée au moyen des contacts de la carte à microcircuit. La carte à microcircuit incorpore un microprocesseur 10, une mémoire vive 60 et une mémoire non volatile 20 comme cela est représenté sur la figure 1. Cette carte à microcircuit est par exemple conforme à la norme ISO 7816 et munie d'un microcontrôleur sécurisé qui regroupe le microprocesseur (ou CPU) 20 et la mémoire vive 60. En variante, le dispositif de traitement de données peut être une clef USB, un document ou un support d'informations papier comportant dans l'une de ses feuilles un microcircuit associé à des moyens de communication sans contact. Il s'agit de manière préférée d'une entité électronique portable ou de poche. En référence aux figures 3 et 4, on décrit maintenant un exemple de procédé selon l'invention appliqué à un traitement cryptographique symétrique de type AES, au cours duquel le microprocesseur 10 chiffre un message X en un message crypté Y. La figure 3 illustre schématiquement l'algorithme randomised AES qui prend en entrée un bloc de 16 octets du message à traiter: X = (xi)i=0...15 E GF(28)16. L'algorithme randomised AES exécute une séquence de rondes, généralement 10, 12 ou 14, comprenant les transformations individuelles représentées sur la figure 3. L'algorithme AES, sur lequel se base l'algorithme randomised AES, est un algorithme de chiffrement symétrique, qui prend, en entrée, un message X, sous forme d'un bloc de 128 bits (16 octets), et une clé de 128, 192 ou 256 bits. Les quatre étapes principales d'une ronde de l'algorithme AES sont : - l'opération non linéaire (selon l'addition bit à bit) SubByte 110 de substitution de chaque octet x; à l'aide d'une boîte S-Box, - l'opération linéaire ShiftRows 120 de transposition cyclique, - l'opération linéaire MixColumns 130 de produit matriciel et - l'opération linéaire AddRoundKey 140 de combinaison de chaque octet avec une clé de ronde. Ainsi, les 16 octets en entrée sont permutés selon une table préalablement définie au cours de la transformation SubByte 110. Ces octets sont ensuite placés dans une matrice de 4x4 éléments et ses lignes subissent une rotation vers la droite d'un incrément variable en fonction de la ligne, au cours de la transformation ShiftRows 120. Une transformation linéaire MixColumns 130 est ensuite appliquée sur la matrice, sous la forme d'une multiplication binaire de chaque élément de la matrice avec des polynômes issus d'une matrice auxiliaire, cette multiplication étant soumise à des règles spéciales selon le Groupe de Galois GR(28), ou corps fini. Puis, une fonction XOR effectuée entre la matrice et une autre matrice liée à la clé de ronde permet d'obtenir une matrice intermédiaire. Ces opérations sont répétées plusieurs fois et définissent une � ronde �. Pour une clé de 128, 192 ou 256 bits, AES nécessite respectivement 10, 12 ou 14 rondes. Les opérations SubByte 110 et ShiftRows 120 peuvent toutefois être inversées, par rapport à l'ordre de la figure 3, sans impacter l'algorithme. Ces étapes sont définies à la norme AES et ne seront par conséquent pas décrites en détail au-delà de ce qui intéresse la présente invention. Dans la version randomised AES, chacune de ces étapes est modifiée pour tenir compte d'une permutation aléatoire. Ces différentes étapes modifiées sont définies dans l'article de J.-S. Coron cité plus haut. Comme dans le masquage classique, la contre-mesure par tables de permutation nécessite une chaîne de données aléatoire, obtenue au cours d'une étape 101, qui est utilisée au début de l'algorithme pour générer une permutation P au cours d'une étape 102. Dans le cas de l'algorithme de chiffrement, la permutation P est, au cours d'une étape 104, appliquée à la fois au message X à chiffrer et à la clé secrète K, pour produire P(X) et P(K). Ce sont ces variables permutées qui sont utilisées par l'algorithme de chiffrement. Au cours des étapes suivantes de l'algorithme de chiffrement, les opérations cryptographiques sont modifiées pour que toutes les variables intermédiaires restent dans la forme permutée décrite par la permutation P. Dans le contexte AES, les variables intermédiaires sont des mots de huit bits. La permutation P comporte deux permutations de quatre bits, PI et P2 et opère sur une variable X de huit bits, ou octets, selon la formule : P(X) = P2(Xh) I I PI (Xi) formule dans laquelle Xh et X, représentent respectivement le quadruplet de poids forts et le quadruplet de poids faibles de l'octet X et � II � 20 représente la concaténation. A chaque invocation de l'algorithme, les permutations PI et P2 sont choisies aléatoirement dans un ensemble de permutations défini sur F24. Dans la suite de la description, on suppose que la variable aléatoire PI (respectivement P2) associée à la génération aléatoire de pl (respectivement 25 P2) satisfait la condition selon laquelle la probabilité de l'événement PI = pi est égale à 2-4d (respectivement la probabilité que P2 = p2 est égale à 2-4d) d étant un entier (typiquement d = 4) pour chaque valeur de pl (respectivement p2). Après que la permutation aléatoire ait été générée, elle est appliquée à chaque octet du message et de la clé. Pour chaque octet x, on note 30 u = P(x) la représentation de x par la permutation P. Chaque valeur permutée est traitée par la fonction de ronde AES, dans laquelle elle est l'objet des transformations 110, 120, 130 et 140 indiquées ci-dessus. Chacune des transformations AES doit être minutieusement implémentée pour que : - les variables sensibles apparaissent toujours dans leur forme permutée par P et - la sortie de chaque transformation est une forme permutée. On donne, ci-dessous, des implémentations de randomised AddRoundKey 140 et randomised MixColumns 130, à titre d'exemple, étant entendu que SubByte et ShiftRows peuvent aussi être adaptés pour mettre en oeuvre la présente invention avec des niveaux de vulnérabilités diminués, voire éliminés. Randomised AddRoundKey 140 prend deux octets u = P(x) et v = P(y) comme entrées et fournit, en sortie P(x XOR y) ou XOR représente l'opération � ou exclusif �. A cet effet, deux tables, XT41 et XT42 d'entrées sur 8 bits et de sorties sur 4 bits sont définies, pour (u,, v,) et (uh, vh) dans (F24)2 : XT41(ui II vi) = p1(p1-1(ui) XOR p1-1(vi)) XT42(uh II Vh) = p2(p2 1(Uh) XOR p2 1(vh)) Les tables XT41 et XT42 sont calculées parallèlement à P, au cours d'une étape 131 (voir la description de Randomised MixColumns, ci-dessous) et stockées en mémoire. Une fonction XOR sur huit bits, notée XT8, est alors calculée, au cours d'une étape 145 à l'aide de tables de correspondance, ou LUT (de l'anglais look-up table) pour u et v dans F28. XT8(u,v) = XT42(uh II vh) II XT41(ul II Randomised MixColumns 130 est calculé comme une combinaison d'opérations de multiplication par deux et XOR. Pour calculer randomised MixColumns à partir de P(a;), la représentation permutée par P des octets, les opérations XOR sont calculées, en utilisant la fonction XT8, au cours d'une étape 132. Une fonction D2 est définie, au cours d'une étape 134 telle que, lorsqu'elle est appliquée à u = P(x) au cours de l'étape 136 de multiplication par deux, on obtient D2(P(x)) = P( A la fin de la dernière ronde, la permutation inverse P-' est appliquée à chaque octet du résultat courant, au cours d'une étape 150, pour révéler le message chiffré. Comme illustré en figure 4, la contre-mesure objet de la présente invention consiste en une nouvelle implémentation de la fonction XT8, sécurisée. Comme dans l'état de l'art exposé ci-dessus, deux tables XT4' et XT42 de huit bits vers quatre bits, différentes de celles décrites en regard de la figure 3, sont mises en oeuvre. Cependant, avant de les appliquer aux quadruplets des données u(=P(x)) et v(=P(y)) à combiner par usage de la fonction XOR, au cours d'étapes préliminaires 205 à 220, on change la représentation permutée P de y, P(y), en une autre, P*(y). Ce changement est effectué en accédant à la table de correspondance pour la fonction P* o P-'. Comme la permutation P, la permutation P* est définie par deux permutations pi* et p2* telles que P*(x) = p2*(xh) Il pi*(x,). Pour des raisons de sécurité, pi* et p2* doivent être indépendantes de pi et p2, respectivement. Les deux nouvelles tables XT4' et XT42 sont définies, au cours d'une étape 231 qui remplace l'étape 131 décrite en figure 3, par : XT41(ui, vi) = pi(pi'(ui) XOR pl*'(vi)) XT42(Uh, Vh) = p2(p21(Uh) XOR p2*-1(vh)) Ainsi, la nouvelle fonction XOR à huit bits XT8 est définie en références à ces tables de telle manière que, pour u et v dans F28 : XT8(u,v) = XT42(Uh,Vh) II XT4'(ui,vi) En conséquence, on utilise l'implémentation sécurisée suivante de P(x XOR y) à partir des représentations permutées u = P(x) et v = P(y) : Au cours d'une étape 205, on calcule v* = P* o P-' [v]. Au cours d'une étape 210, on traite q, = XT4' (u,,v,*). Au cours d'une étape 215, on traite qh = XT42 (uh, vh*). Au cours d'une étape 220, on calcule XT8 (u,v) = qh II qi. Puisque p1 et P2 sont des permutations statistiquement indépendantes, on peut choisir P* = p1 Il P2 sans perdre de sécurité contre une attaque SCA d'ordre 1. En particulier, p* peut être simplement définie à partir de P = p2 Il pi en inversant les rôles de p1 et p2. Avec une telle construction, la méthode de sécurisation de la présente invention ne requiert pas de permutation aléatoire supplémentaire, autre que celles participant déjà à la définition de la permutation P. De plus, calculer P* o P-' [v] consiste, dans ce cas, à traiter p1 o p2-'(vh) et p2 o p1_'(v,). En comparaison à l'implémentation de XT8 proposée dans l'état de la technique, l'implémentation sécurisée objet de la présente invention requiert un unique accès additionnel à une table de correspondance (en anglais � look-up table �) et à deux tables additionnelles de 16 octets qui conservent les fonctions p2 o p1-' et p1 o p21 . De plus, ces tables additionnelles permettent, sans utilisation de mémoire supplémentaire, d'effectuer l'optimisation entre temps de traitement et mémoire consommée dans l'implémentation randomised AES décrite dans le document d'art antérieur cité ci-dessus. En effet, p2 o p1-' et p1 o p2' sont les tables p21 et p12 proposées dans ce document pour calculer des fonctions non-linéaires appelées � boîtes � S � dans la fonction MIT. En conséquence, aucun espace additionnel de mémoire n'est nécessaire pour la mise en oeuvre conjointe de ce mode de réalisation particulier de la présente invention et de cette optimisation. La présente invention ne se limite pas aux transformations de l'algorithme cryptographique symétrique AES, mais peut être appliquée à tout type d'algorithme, incluant DES et IDEA NXT (également connu sous l'appellation FOX). De façon similaire à AES, FOX réalise plusieurs rondes d'opérations, incluant une opération non linéaire muX. Comme illustré en figure 5 représente, dans un deuxième mode de réalisation particulier, le procédé de traitement cryptographique de données u et v objet de la présente invention comporte : - une étape 320 de permutation, au cours de laquelle on effectue une permutation des données élémentaires de chaque donnée u et v en appliquant des permutations différentes aux données élémentaires de u et aux données élémentaires de v et préférentiellement statistiquement indépendantes et - au moins une opération cryptographique 350 appliquée aux données permutées. On note ici que le terme de � données élémentaires � concerne préférentiellement des données binaires, ou bits, mais peut aussi représenter des n-uples de bits, pas nécessairement consécutifs dans les données, par exemple des couples de bits, des triplets ou des quadruplets, chaque donnée comportant une pluralité de données élémentaires. Dans des modes de réalisation, par exemple celui illustré en figure 4, le procédé comporte, en outre, une étape 305 de décomposition de chacune des données en parties de donnée, chaque partie de données comportant une pluralité de données élémentaires. Dans l'exemple représenté en figure 4, ces parties de données sont des quadruplets de bits de poids forts et de bits de poids faible. Dans ce cas, préférentiellement, au cours de l'étape de permutation 320, on effectue une permutation différente pour les mêmes parties des données u et v, par exemple pl et p2 pour les parties de u et p2 et pl pour les parties correspondante de v. En ce qui concerne les parties de v, cette permutation est effectuée par le biais de et p2 o pl-' et pl o p2-'. Ainsi, dans le mode préférentiel exposé en regard de la figure 4, l'étape de permutation comporte : - une première étape de permutation des données u et v au cours de laquelle on applique une première permutation pi à une première partie de chacune des données u et v, et une deuxième permutation p2, différente de la première permutation pi, à une deuxième partie de chacune des données u et v, les première et deuxième permutation étant différentes et, préférentiellement, statistiquement indépendantes et - une deuxième étape de permutation de P(v) en v*, au cours de laquelle applique la deuxième permutation P2 après la permutation inverse de la première permutation, pi-1, à la première partie de la donnée v, et la première permutation pl après la permutation inverse de la deuxième permutation p2-' à la deuxième partie de la donnée v. Plus généralement, au cours de l'étape 320, la permutation peut comporter : - une première étape de permutation au cours de laquelle on applique une même permutation aux différentes données et - une deuxième étape de permutation au cours de laquelle on applique des permutations différentes aux différentes données. Dans des modes de réalisation, au moins une opération cryptographique 350 comporte une étape de concaténation des parties de données. Dans des modes de réalisation, au moins une opération cryptographique met en oeuvre une table de correspondance (les deux tables XT41 et XT42 dans le mode de réalisation illustré en figure 4) pour chaque partie des données, dont les entrées reçoivent ladite partie de deux données permutées et fournit ladite partie d'une donnée de sortie. Dans des modes de réalisation, notamment celui illustré en figure 4, au moins une opération cryptographique appliquée aux données permutées est une opération comportant une opération � ou exclusif �, ou XOR. Dans des modes de réalisation, notamment celui illustré en figure 4, au moins une opération cryptographique appliquée aux données permutées est une opération d'un algorithme de chiffrement. Dans des modes de réalisation, notamment celui illustré en figure 4, au moins une opération cryptographique appliquée aux données permutées est une opération d'un algorithme de chiffrement AES. REVENDICATIONS1 - Procédé de traitement cryptographique de données, qui comporte : - une étape de permutation, au cours de laquelle on effectue une permutation des données élémentaires de chaque donnée et - au moins une opération cryptographique appliquée aux données permutées, caractérisé en ce que, au cours de ladite étape de permutation, on applique une permutation différentes auxdites données. 2 - Procédé selon la revendication 1, caractérisé en ce qu'il comporte, en outre, une étape de décomposition de chaque dite donnée en parties de donnée, chaque partie de donnée comportant une pluralité de données élémentaires, et au cours de l'étape de permutation, on effectue des permutations différentes pour les mêmes parties des dites données. 3 ù Procédé selon l'une quelconque des revendications 1 ou 2, caractérisé en ce que l'étape de permutation comporte : - une première étape de permutation au cours de laquelle on applique une même permutation aux différentes données et - une deuxième étape de permutation au cours de laquelle on applique des permutations différentes aux différentes données. 4 ù Procédé selon l'une quelconque des revendications 2 ou 3, caractérisé en ce que l'étape de permutation comporte : - une première étape de permutation des données (u et v) au cours de laquelle on applique une première permutation (pi) à une première partie de chacune des données, et une deuxième permutation (P2), différente de la première permutation, à une deuxième partie de chacune des données, les première et deuxième permutation étant différentes et - une deuxième étape de permutation, au cours de laquelle applique la deuxième permutation après la permutation inverse de la premièrepermutation (p1-') à la première partie de l'une des données (v), et la première permutation après la permutation inverse de la deuxième permutation (p2-1) à la deuxième partie de ladite donnée. û Procédé selon l'une quelconque des revendications 1 à 4, 5 caractérisé en ce que lesdites permutations sont statistiquement indépendantes. 6 û Procédé selon l'une quelconque des revendications 2, 4 ou 5, caractérisé en ce qu'au moins une opération cryptographique comporte une étape de concaténation des parties de données. 7 û Procédé selon l'une quelconque des revendications 2 ou 4 à 6, caractérisé en ce qu'au moins une opération cryptographique met en oeuvre une table de correspondance pour chaque partie des données, dont les entrées reçoivent ladite partie de deux données permutées et fournit ladite partie d'une donnée de sortie. 8 û Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'au moins une opération cryptographique appliquée aux données permutées est une opération comportant une opération � ou exclusif �. 9 û Procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce qu'au moins une opération cryptographique appliquée aux données permutées est une opération d'un algorithme de chiffrement. 10 û Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce qu'au moins une opération cryptographique appliquée aux données permutées est une opération d'un algorithme de chiffrement AES. 11 - Dispositif de traitement cryptographique de données secrètes, caractérisé en ce qu'il comporte : - un moyen de permutation adapté à effectuer une permutation des données élémentaires de chaque donnée et - au moins un moyen d'opération adapté à effectué au moins une 30 opération cryptographique appliquée aux données permutées, caractérisé en ce que le moyen de permutation est adapté à appliquer une permutation différentes auxdites données.12 ù Dispositif selon la revendication 11 constituant une entité électronique de poche, telle qu'une carte à microcircuit. 13 ù Dispositif selon la revendication 12, conforme à la norme IS07816.