FR 3045883 A1 20170623 FR 1562801 A 20151218 1 DOMAINE TECHNIQUE AUQUEL SE RAPPORTE L'INVENTION La présente invention concerne le domaine de la cryptographie. Elle concerne plus particulièrement un procédé de traitement cryptographique de données, ainsi qu'un programme d'ordinateur et une entité électronique associés. L'invention s'applique particulièrement avantageusement dans le cas où l'on souhaite mettre en oeuvre un processus de détermination de l'inverse dans un 10 corps fini dans une entité électronique comprenant des moyens de mémorisation de taille limitée. ARRIERE-PLAN TECHNOLOGIQUE Certains algorithmes de traitement cryptographique de données prévoient d'associer chaque octet de données à un élément d'un corps fini à 256 15 éléments (couramment noté F256) de sorte que le traitement des données (par exemple pour le chiffrement ou le déchiffrement des données) puisse ainsi être effectué au moyen d'opérations dans ce corps fini. Certains traitements ainsi effectués impliquent la mise en oeuvre d'un processus de détermination de l'inverse pour la multiplication (ou inversion) d'un 20 tel élément dans le corps fini F256, comme c'est le cas par exemple pour l'application des fonctions dites boîtes-S (en anglais : "S-box") dans certaines implémentations de l'algorithme AES ou de l'algorithme SEED. OBJET DE L'INVENTION Dans ce contexte, la présente invention propose un procédé de 25 traitement cryptographique de données, dans lequel un octet de données est associé à un premier élément (noté x) d'un corps fini à 256 éléments (noté F256 dans la suite) et dans lequel un traitement dudit octet utilise un processus de détermination de l'inverse (ou inversion) du premier élément dans ledit corps fini à 256 éléments, caractérisé en ce que le processus de détermination de l'inverse 30 comprend les étapes suivantes : - détermination d'un second élément du corps fini à 256 éléments égal au premier élément élevé à la puissance 17 (soit : x17) dans le corps fini à 256 éléments ; - détermination d'un élément d'un corps fini (noté F16 dans la suite) à 16 3045883 2 éléments associé au second élément par une bijection (notée (f) dans la suite) ; - détermination de l'inverse du second élément en fonction de l'élément du corps fini à 16 éléments ; - obtention de l'inverse du premier élément sur la base de l'inverse du 5 second élément. On a en effet remarqué (comme cela est expliqué plus en détail dans la description ci-dessous) que le second élément (égal à x17) fait partie d'un sous-ensemble E du corps fini F256 ne comprenant que 16 éléments, dont chacun peut donc être associé à un élément du corps fini F16 au moyen de la bijection (p. L'inverse du second élément ne peut donc avoir que 16 valeurs possibles dans F256 et l'étape de détermination de l'inverse du second élément peut donc être mise en oeuvre par des moyens très simple, comme par exemple la lecture dans une table de correspondance à une position donnée par l'élément susmentionné du corps fini F16. On peut prévoir en outre que l'étape de détermination du second élément comprend une étape de détermination d'un troisième élément égal au premier élément élevé à la puissance 16 (c'est-à-dire égale à x16) et/ou que l'étape d'obtention de l'inverse du premier élément comprend une étape de détermination du produit (par multiplication) du troisième élément et de l'inverse du second élément, ce qui permet de réutiliser dans la quatrième étape du processus défini ci-dessus un résultat obtenu au cours de la première étape de ce processus. En effet, le produit du troisième élément (égal à x16) et de l'inverse du second élément (cet inverse valant (x17)-1 = (x17)14 comme expliqué plus loin) vaut x16.(x17)14=x254=x-1 (ces calculs s'entendant dans le corps fini F256 comme expliqué dans la suite) ; ce produit permet donc bien d'aboutir à l'inverse du premier élément x. Le procédé cryptographique peut en outre comporter une ou plusieurs des caractéristiques optionnelles listées ci-dessous : - l'octet est traité sous forme masquée (par exemple par masquage au moyen de l'application d'une fonction de "Ou exclusif') ; - le procédé comprend une étape de tirage d'un nombre aléatoire parmi un sous-ensemble (noté E ci-dessus) du corps fini à 256 éléments formé d'éléments égaux à un élément quelconque élevé à la puissance 17 (c'est-à-dire un sous-ensemble formé d'éléments z tels que z=y17 avec y un élément 3045883 3 quelconque du corps fini F256) - le procédé comprend une étape de masquage du second élément au moyen du nombre aléatoire ; - l'inverse du premier élément est obtenu sous forme masquée ; 5 - le traitement dudit octet est mis en oeuvre au cours d'un tour d'algorithme cryptographique ; - l'algorithme cryptographique est de type SEED ou AES ; - le processus de détermination de l'inverse fait partie des opérations utilisées pour mettre en oeuvre une boîte-S prévue dans l'algorithme 10 cryptographique ; - l'algorithme cryptographique est un algorithme de chiffrement ou un algorithme de déchiffrement. L'invention propose également un programme d'ordinateur comprenant des instructions exécutables par un processeur et adaptées à mettre en oeuvre un 15 procédé tel que proposé ci-dessus lorsque ces instructions sont exécutées par le processeur. L'invention propose en outre une entité électronique de traitement cryptographique de données, comprenant un module de traitement d'un octet de données associé à un premier élément d'un corps fini à 256 éléments, le module 20 de traitement étant conçu pour mettre en oeuvre un processus de détermination de l'inverse du premier élément dans ledit corps fini à 256 éléments, caractérisé en ce que le module de traitement comprend une unité de détermination d'un second élément du corps fini à 256 éléments égal au premier élément élevé à la puissance 17 dans le corps fini à 256 éléments ; une unité de détermination d'un 25 élément d'un corps fini à 16 éléments associé au second élément par une bijection ; une unité de détermination de l'inverse du second élément en fonction de l'élément du corps fini à 16 éléments ; et une unité d'obtention de l'inverse du premier élément sur la base de l'inverse du second élément. Une telle entité électronique peut comprendre une ou plusieurs des 30 caractéristiques optionnelles mentionnées ci-dessus en termes de procédé. Lorsque l'entité électronique comprend un processeur, le module de traitement et les unités précitées peuvent en pratique être réalisés par une combinaison d'éléments matériels et d'éléments logiciels. Ainsi, pour chaque module ou unité, l'entité électronique mémorise par exemple des instructions de 3045883 4 logiciel exécutables par le processeur de l'entité électronique afin d'utiliser un élément matériel (par exemple une mémoire) et de mettre ainsi en oeuvre la fonctionnalité offerte par le module de traitement ou l'unité concernée. DESCRIPTION DETAILLEE D'UN EXEMPLE DE REALISATION 5 La description qui va suivre en regard des dessins annexés, donnés à titre d'exemples non limitatifs, fera bien comprendre en quoi consiste l'invention et comment elle peut être réalisée. Sur les dessins annexés : - la figure 1 représente schématiquement les éléments principaux d'une 10 entité électronique au sein de laquelle est mise en oeuvre l'invention ; - la figure 2 représente un exemple de procédé dans lequel l'entité électronique applique un algorithme cryptographique à des données ; et - la figure 3 représente un procédé de détermination de l'inverse utilisé au cours d'une étape de la figure 2. 15 La figure 1 représente schématiquement les éléments principaux d'une entité électronique 1 au sein de laquelle est mise en oeuvre l'invention. Cette entité électronique est par exemple une carte à microcircuit, par exemple une carte à circuit intégré universelle (ou UICC pour "Universal Integrated Circuit Card'). En variante, il pourrait s'agir d'un élément sécurisé (ou SE pour "Secure Element") - 20 par exemple un microcontrôleur sécurisé, d'un dispositif électronique portatif (ou "hand-held electronic device" selon l'appellation anglo-saxonne) - par exemple un terminal de communication ou un passeport électronique, ou d'un ordinateur. L'entité électronique 1 comprend un processeur 2 (ici un microprocesseur), une mémoire vive 4 et une mémoire non-volatile réinscriptible 6 25 (par exemple de type EEPROM pour "Electrically Erasable and Programmable Read-Only Memory"). L'entité électronique 1 pourrait éventuellement comprendre en outre une mémoire morte. La mémoire vive 4 et la mémoire non-volatile réinscriptible 6 (ainsi que le cas échéant la mémoire morte) sont chacune liées au processeur 2 de sorte que le processeur 2 peut lire ou écrire des données dans 30 chacune de ces mémoires. Une de ces mémoires, par exemple la mémoire non-volatile réinscriptible 6, mémorise des instructions de programme d'ordinateur qui permettent la mise en oeuvre de l'un au moins des procédés décrits ci-dessous en référence aux figures 2 et 3 lorsque ces instructions sont exécutées par le processeur 2. 3045883 5 Les mémoires 4, 6 stockent également des données représentatives de valeurs utilisées lors de la mise en oeuvre des procédés décrits ci-dessous. Par exemple, la mémoire non-volatile réinscriptible 6 mémorise une clé cryptographique K. 5 La mémoire vive 4 mémorise par ailleurs, par exemple au sein de variables, des données traitées au cours des procédés décrits ci-dessous. L'entité électronique 1 comprend en outre une interface de communication 8 avec des dispositifs électroniques externes. Dans le cas décrit ici où l'entité électronique 1 est une carte à microcircuit, l'interface de communication 10 8 comprend par exemple des contacts affleurant sur une face de la carte à microcircuit. En variante, l'interface de communication 8 pourrait être réalisée par un module de communication sans contact. De manière générale, l'interface de communication 8 peut être un module de communication (filaire ou sans fil) avec une autre entité électronique. 15 Le processeur 2 peut ainsi recevoir des données d de l'autre entité électronique via l'interface de communication 8 et émettre d'autres données, par exemple un résultat d'application d'un algorithme cryptographique (tel que celui décrit ci-dessous en référence à la figure 2) aux données d, à l'autre entité électronique via l'interface de communication 8. 20 Dans l'exemple qui suit, l'algorithme cryptographique appliqué est de type SEED. En variante, il pourrait par exemple s'agir d'un algorithme de type AES. La figure 2 représente, sous forme de logigramme, un exemple de procédé d'application d'un algorithme cryptographique à des données reçues d. 25 Le procédé de la figure 2 débute à l'étape E2 par la réception de données d par l'entité électronique 1 (précisément par le processeur 2), via l'interface de communication 8, par exemple en provenance de l'autre entité électronique précitée. Comme déjà indiqué, on décrit ici en tant qu'exemple un algorithme 30 cryptographique de type SEED et on considère dans la suite que les données d ont une longueur égale à 128 bits. Lorsque les données reçues ont une longueur supérieure à 128 bits, ces données sont traitées par blocs de 128 bits, chaque bloc étant traité comme décrit ci-dessous. L'entité électronique 1 (c'est-à-dire par exemple le processeur 2, ou en 3045883 6 variante un crypto-processeur distinct) procède alors (étape E4) à la génération d'un nombre aléatoire ao (c'est-à-dire précisément à la mémorisation dans une variable ao d'un nombre obtenu par tirage aléatoire ou pseudo-aléatoire). Dans l'exemple décrit ici, ce nombre aléatoire ao a une longueur égale à 128 bits. 5 Le processeur 2 peut ainsi procéder à l'étape E6 au masquage de la donnée reçue d au moyen du nombre aléatoire ao, en combinant ces nombres au moyen d'une opération de "ou exclusif' (également dénommée XOR ou "addition booléenne"), notée ici par le symbole On note d' la donnée masquée obtenue à l'étape E6 : d' = d 10 Le procédé de traitement de la donnée d reçue se poursuit ainsi comme décrit ci-dessous en manipulant (au moyen notamment d'opérations dans le corps fini F256) la donnée masquée d' de sorte que, même avec une donnée d'entrée d constante, les valeurs manipulées au cours du traitement varient d'une exécution de l'algorithme à l'autre afin de lutter contre les attaques par canal auxiliaire (en 15 anglais : "side channel attacks"). On remarque à cet égard que l'entité électronique 1 mémorise en permanence (ici dans la mémoire vive 4) le masque courant appliqué à la donnée traitée afin de pouvoir retirer ce masque en fin de traitement (cf. étape E24), comme expliqué ci-dessous. 20 Le processeur 2 initialise ensuite (étape E8) à la valeur 1 un indice i désignant le tour (en anglais "round') courant. Le processeur 2 détermine alors (étape E10) la sous-clé Ki relative au tour courant i, par exemple par dérivation à partir de la clé cryptographique K mémorisée dans la mémoire non-volatile 6 comme déjà indiqué. En pratique, la 25 sous-clé Ki relative au tour i est par exemple obtenue à partir de la sous-clé Km relative au tour précédent (i-1), la sous-clé K1 relative au premier tour (i=1) étant quant à elle obtenue à partir de la clé cryptographique K (ou, autrement dit, en posant Ko = K). Le processeur 2 applique à l'étape E12 le tour i (parfois dénommé 30 "ronde" sur la base de l'expression anglaise "round') de l'algorithme cryptographique (ici l'algorithme SEED) à la donnée masquée d', en utilisant la sous-clé : le processeur 2 détermine le résultat G(Ki,d') de l'application d'une fonction G (correspondant aux opérations effectuées au cours d'un tour) à la sous-clé Ki et à la donnée masquée d'. illk IMF ao. 3045883 7 Comme représenté en figure 2, le résultat G(Ki,d') est ici mémorisé dans la variable d' avec écrasement afin de limiter l'espace mémoire nécessaire au traitement effectué. Le processeur 2 effectue également au cours de l'étape E12 un 5 traitement du masque courant de sorte que le masque courant permette constamment de retrouver la donnée attendue d à partir de la donnée masquée d'. Autrement dit, si on note a1_1 le masque en entrée d'un tour i et ai le masque en sortie (le masque appliqué en entrée du premier tour étant effectivement ao), les traitements appliqués au masque sont tels que : 10 ai G(Ki,d') = G(Ki, d' IP Lorsque les traitements appliqués à la donnée (ici la donnée masquée d') sont linéaires par rapport à l'addition booléenne, il suffit ainsi d'appliquer les mêmes traitements au masque courant. En revanche, pour un traitement non-linéaire par rapport à l'addition booléenne, un traitement particulier est nécessaire, 15 comme cela est expliqué ci-dessous en référence à la figure 3 pour l'opération (non-linéaire) d'inversion. Le processeur 2 détermine alors à l'étape E14 si l'indice i a atteint la valeur 15. Dans la négative (flèche N), l'indice i est incrémenté à l'étape E16 et le 20 procédé boucle à l'étape E10 pour effectuer le tour suivant de l'algorithme cryptographique. Dans l'affirmative à l'étape E14 (flèche P), on procède au dernier tour comme suit. La sous-clé K16 relative au dernier tour est dérivée à l'étape E18, de 25 manière similaire à ce qui a été fait pour les autres sous-clés à l'étape E10. Le processeur 2 applique alors à l'étape E20 le dernier tour de l'algorithme cryptographique, ici en appliquant une fonction H à la donnée masquée d' au moyen de la sous-clé K16. Le résultat H(K16,d') du dernier tour est mémorisé dans la variable d' 30 avec écrasement. Le processeur 2 traite par ailleurs au cours de l'étape E20 le masque courant a15, de manière comparable à ce qui a été expliqué plus haut à l'étape E12 : le masque ale, en sortie du dernier tour est tel que : a16 /h H(K16,d') = H(K16, d' 0a-15)- 3045883 8 Après ce dernier tour, la variable d' contient le résultat de l'algorithme cryptographique, à ceci près que ce résultat est masqué par le masque courant (noté a16 en sortie du dernier tour). Le processeur 2 procède à l'étape E22 au démasquage du résultat en 5 appliquant le masque courant a16 au résultat masqué d' au moyen d'une opération de "ou exclusif', ce qui permet d'obtenir le résultat e de l'algorithme cryptographique : e = d' 4 a16. Le processeur 2 peut alors procéder à l'étape E24 à l'émission du résultat e via l'interface de communication 8, par exemple à destination de l'autre 10 entité électronique précitée. On décrit à présent en référence à la figure 3 un procédé de détermination de l'inverse (ou inversion) d'un élément x dans le corps fini à 256 éléments F256, cet élément étant traité sous forme masquée comme expliqué ci-après. 15 Un tel procédé d'inversion fait partie des opérations sur le corps fini F256 effectuées lors du traitement prévu au cours d'un tour d'algorithme cryptographique (par exemple de type SEED ou AES) tel que décrit ci-dessus à l'étape E12 ou E20. Précisément, un tel procédé d'inversion fait par exemple partie des opérations utilisées pour mettre en oeuvre les boîtes-S prévues dans de 20 tels algorithmes cryptographiques. De telles opérations remplacent l'utilisation de tables de correspondance (en anglais "Look-Up Tables") lorsque l'on souhaite restreindre la taille mémoire nécessaire à la mise en oeuvre de l'algorithme cryptographique. Avant de décrire le procédé d'inversion proposé, on rappelle quelques 25 éléments d'algèbre sur un corps fini à 2n éléments, en particulier sur le corps fini à 256 éléments F256. Comme déjà indiqué, on note ilk l'addition sur le corps fini (qui correspond à l'addition booléenne, ou opération de "ou exclusif', ou encore XOR) et "." la multiplication sur le corps fini. 30 On note par ailleurs ici 7 la fonction élevant un élément y du groupe fini F256 à la puissance 16 : u(y) = y16. La fonction 7 est linéaire par rapport à l'addition : Tr(y z) = (y Z)16 -_ y16 Z16 = 1T(y) -rr(z). Illk Il/ illIk (On rappelle en effet que, dans ce type de corps, (x 2_ 2 car 3045883 9 les autres termes du développement s'annulent : x.y y.x = x.y 0 x.y = 0 par commutativité de la multiplication et du fait des propriétés de l'addition booléenne). On remarque par ailleurs que l'ensemble E des éléments de F256 de la forme [y.Tr(y)] (avec y élément de F256) est un corps fini à 16 éléments. 5 En effet, tout élément z de cet ensemble E s'écrit [y.Tr(y)] et on a donc : z15 = [y.TT(y)]15 = y15.y240 = y255 = 1F où 1F est l'élément neutre pour la multiplication dans F256. Il est donc possible de construire une bijection cp entre cet ensemble E et le corps fini à 16 éléments F16 et une fonction INV du corps fini F16 vers le corps 10 fini F256 telles que pour tout élément z de l'ensemble E: INV(cp[z]) = z (avec z = z14 puisque z15 = 1F). La bijection cp correspond par exemple à la décomposition d'un élément z de l'ensemble E sur une base (ui, u2, u3, u4) de cet ensemble E. Précisément, l'écriture binaire 134p3pe1 de (p(z) est telle que z = 131u1+ 131u2+ 131u3+ P1u4, où [34 15 est le bit de poids fort. (Autrement dit, chaque bit pi de l'élément cp(z) est la projection de z sur l'élément u; de la base.) Pour ce faire, on peut par exemple en pratique choisir une base (ui, u2, u3, u4) telle que, pour chaque élément u; de la base, il existe au moins une valeur j telle que : u; & 2 = 2j et uk & 2 = 0 pour k différent de i (où & est l'opérateur ET 20 logique, en anglais "AND"). La projection d'un élément z de l'ensemble E sur un élément u; de la base est alors simplement obtenue en effectuant l'opération logique : z & 2i (où j est la valeur associée à l'élément u; comme indiqué au paragraphe précédent). Dans le cas de l'algorithme SEED (du fait du polynôme minimal utilisé 25 pour construire le corps fini F256 dans cet algorithme), on peut choisir par exemple : u1 = 0x01, u2 = 0x12, u3 = 0x66, u4 = 0x84 (la notation Ox indiquant que le nombre qui suit est exprimé sous forme hexadécimale). Dans ce cas, la fonction INV est définie comme suit : INV(0x0) = 0x00, INV(0x1) = 0x01, INV(0x2) = OxE3, INV(0x3) = 0x85, 30 INV(0x4) = 0x75, INV(0x5) = 0x97, INV(0x6) = 0x96, INV(0x7) = 0x66, INV(0x8) = OxE2, INV(0x9) = 0x13, INV(OxA) = 0)(74, INV(OxB) = 0x67, INV(OxC) = 0x84, INV(OxD) = 0x12, INV(OxE) = OxF1, INV(OxF) = OxFO. Les seize valeurs que peut prendre la fonction INV (comme il vient d'être indiqué pour l'exemple considéré ici) sont par exemple mémorisées (dans la 3045883 10 mémoire non-volatile 6) dans l'ordre au sein d'une table de correspondance (de taille très réduite : seulement 16 octets). L'application de la fonction INV à un élément z consistera alors simplement à la lecture de l'élément en position z dans la table de correspondance. 5 On propose ici de déterminer l'inverse y-1 d'un élément y quelconque du corps fini F256 en utilisant la bijection (19, la fonction INV et l'égalité suivante : y-i = y254 = y16.(y.y16)14, c'est-à-dire de déterminer l'inverse d'un élément y comme suit : = Tr(Y). INVMY.Tr(Y)l). 10 Dans les modes de réalisation où un masquage des valeurs manipulées est utilisé, comme dans le procédé décrit ci-dessous en référence à la figure 3, on prévoit en outre que la fonction INV intègre un masquage de la valeur obtenue en sortie par un masque r: INV((p[z]) = z-1 = Z14 Pour ce faire en pratique, on peut par exemple, dès que r est connu, 15 calculer et mémoriser en mémoire vive 4 une table de correspondance modifiée pour tenir compte de la valeur courante de la variable r (sur la base de la table de correspondance précitée). En variante, on peut mémoriser dans la mémoire non-volatile 6 une pluralité de tables de correspondance (précisément 256 tables) qui définissent 20 chacune la fonction INV respectivement pour toutes les valeurs possible du masque r. Le procédé de la figure 3 décrit à présent utilise cette solution pour déterminer l'inverse d'un élément x masqué en entrée par un masque r. On décrit le processus d'inversion sous la forme d'un sous-programme 25 mis en oeuvre par le processeur 2. Le processus d'inversion débute ainsi à l'étape E50 par la réception d'un élément x' du corps fini F256 correspondant à un octet de donnée sous forme masquée et d'un élément r de F256 correspondant au masque courant. L'élément dont on cherche à déterminer l'inverse est ainsi l'élément x tel que : x = x' r. 30 Le processeur 2 procède alors à l'étape E52 à la génération de deux nombres aléatoires m, m' sur 8 bits, le nombre aléatoire m étant en outre élément de l'ensemble E mentionné plus haut. Pour obtenir en pratique le nombre aléatoire m dans l'ensemble E, on peut par exemple tirer un nombre aléatoire p dans l'ensemble F256, puis calculer p17 (qui est nécessairement dans l'ensemble E 3045883 11 comme déjà expliqué). En variante, on peut tirer un nombre aléatoire sur 4 bits et utiliser ces 4 bits pour construire un élément de E, par exemple au moyen de la base (u1, u2, u3, u4) mentionnée plus haut. Le processeur 2 calcule ensuite à l'étape E54 la valeur r.-rr(re m') et 5 mémorise cette valeur dans une variable p. Le processeur 2 initialise à l'étape E56 une variable To à la valeur ^Ilk 11/ '). Le processeur 2 initialise à l'étape E58 une variable T1 à la valeur To.x'. Selon une variante de mise en oeuvre possible pour les étapes E56 et 10 E58, la valeur de la variable T1 à l'issue de l'étape E58 peut être obtenue comme suit en utilisant des tables log et alog comme décrit par exemple dans le document "A Fast and Provably Secure High-Order Masking of AES S-Box", de H. Kim, S. Hong et J. Lim, in Cryptographic Hardware and Embedded Systems - CHES 2011, LNCS, vol. 6917, pp. 95-107 : 15 To = SWAP[log(x T2 = log(x') T1 = alog(To+T2+1-ro+-r2mod 255 REVENDICATIONS1. Procédé de traitement cryptographique de données, dans lequel un octet de données est associé à un premier élément d'un corps fini à 256 éléments et dans lequel un traitement dudit octet utilise un processus de détermination de l'inverse du premier élément dans ledit corps fini à 256 éléments, caractérisé en ce que le processus de détermination de l'inverse comprend les étapes suivantes : - détermination (E56, E58, E68, E70, E72) d'un second élément du corps fini à 256 éléments égal au premier élément élevé à la puissance 17 dans le corps fini à 256 éléments ; - détermination (E74) d'un élément d'un corps fini à 16 éléments associé au second élément par une bijection ((p) ; - détermination (E76) de l'inverse du second élément en fonction de l'élément du corps fini à 16 éléments ; - obtention (E84, E86) de l'inverse du premier élément sur la base de l'inverse du second élément. 2. Procédé de traitement cryptographique selon la revendication 1, dans lequel l'étape de détermination du second élément comprend une étape de détermination (E56) d'un troisième élément égal au premier élément élevé à la puissance 16 et dans lequel l'étape d'obtention de l'inverse du premier élément comprend une étape de détermination (E84) du produit du troisième élément et de l'inverse du second élément. 3. Procédé de traitement cryptographique selon la revendication 1 ou 2, dans lequel l'octet est traité sous forme masquée. 4. Procédé de traitement cryptographique selon l'une des revendications 1 à 3, comprenant en outre les étapes suivantes : - tirage (E52) d'un nombre aléatoire (m) parmi un sous-ensemble du corps fini à 256 éléments formé d'éléments égaux à un élément quelconque élevé à la puissance 17 ; - masquage (E72) du second élément au moyen du nombre aléatoire (m). 5. Procédé de traitement cryptographique selon l'une des revendications 1 à 4, dans lequel l'inverse du premier élément est obtenu sous forme masquée. 6. Procédé de traitement cryptographique selon l'une des revendications 3045883 16 1 à 5, le traitement dudit octet est mis en oeuvre au cours d'un tour (E12) d'algorithme cryptographique. 7. Procédé de traitement cryptographique selon la revendication 6, dans lequel l'algorithme cryptographique est de type SEED ou AES. 5 8. Procédé de traitement cryptographique selon la revendication 6 ou 7, dans lequel le processus de détermination de l'inverse fait partie des opérations utilisées pour mettre en oeuvre une boîte-S prévue dans l'algorithme cryptographique. 9. Procédé de traitement cryptographique selon l'une des revendications 10 6 à 8, dans lequel l'algorithme cryptographique est un algorithme de chiffrement ou un algorithme de déchiffrement. 10. Programme d'ordinateur comprenant des instructions exécutables par un processeur et adaptées à mettre en oeuvre un procédé selon l'une des revendications 1 à 9 lorsque ces instructions sont exécutées par le processeur. 15 11. Entité électronique (1) de traitement cryptographique de données, comprenant un module de traitement (2, 4, 6) d'un octet de données associé à un premier élément d'un corps fini à 256 éléments, le module de traitement (2, 4, 6) étant conçu pour mettre en oeuvre un processus de détermination de l'inverse du premier élément dans ledit corps fini à 256 éléments, 20 caractérisé en ce que le module de traitement comprend : - une unité de détermination d'un second élément du corps fini à 256 éléments égal au premier élément élevé à la puissance 17 dans le corps fini à 256 éléments ; - une unité de détermination d'un élément d'un corps fini à 16 éléments 25 associé au second élément par une bijection ; - une unité de détermination de l'inverse du second élément en fonction de l'élément du corps fini à 16 éléments ; - une unité d'obtention de l'inverse du premier élément sur la base de l'inverse du second élément. 30