Brevet FR3105684A1 — publié le 20210625

Un procédé de traitement cryptographique transformant un multiplet d’entrée en un multiplet de sortie comprend les étapes suivantes : - conversion d’une pluralité de mots, comprenant chacun au moins un bit du multiplet d’entrée, en cryptogrammes d’entrée par application, à chacun desdits mots, d’une fonction de chiffrement homomorphe d’un premier groupe vers un second groupe muni d’une opération ; - obtention de cryptogrammes de sortie en fonction des cryptogrammes d’entrée, cette étape d’obtention incluant au moins un traitement au cours duquel ladite opération est appliquée à deux cryptogrammes intermédiaires, ce traitement produisant un cryptogramme image par la fonction de chiffrement homomorphe d’un mot incluant une combinaison logique booléenne de deux bits compris respectivement dans deux mots antécédents, pour la fonction de chiffrement homomorphe, desdits deux cryptogrammes intermédiaires ; - détermination de bits du multiplet de sortie en appliquant respectivement aux cryptogrammes de sortie une fonction inverse de la fonction de chiffrement homomorphe. Un dispositif électronique et un programme d’ordinateur associés sont également proposés. Figure pour l’abrégé : Fig. 2 Procédé de traitement cryptographique, dispositif électronique et programme d’ordinateur associés La présente invention concerne le domaine technique de la cryptographie. Elle concerne plus particulièrement un procédé de traitement cryptographique, ainsi qu’un dispositif électronique et un programme d’ordinateur associés. Lorsqu’un algorithme cryptographique est mis en œuvre au moyen d’un logiciel exécuté dans un environnement non sécurisé, des mesures particulières doivent être prises pour éviter qu’un attaquant puisse avoir accès à des données secrètes (par exemple des clés cryptographiques) en prenant simplement le contrôle de cet environnement. La recherche de techniques permettant de sécuriser la mise en œuvre d’un algorithme cryptographique dans un environnement non sécurisé est connue sous le nom de cryptographie en boîte blanche (en anglais : " w hite b ox c ryptograp h y "). L’article " White Box Cryptography and an AES implementation ", de S. Chow et al. in, Post-Proceedings of the 9th Annual Workshop on Selected Areas in Cryptography (SAC'02), 15-16 août 2002 propose par exemple une technique pour produire des algorithmes de type AES adaptés chacun à une clé cryptographique particulière. Dans les solutions généralement proposées dans ce cadre, l’algorithme cryptographique est décomposé en une série de traitements élémentaires et des tables de correspondance (en anglais : " Look-Up Tables ") associées respectivement à ces traitements élémentaires sont utilisées pour manipuler des données masquées. Ces solutions sont particulièrement consommatrices de mémoire du fait de l’utilisation de ces nombreuses tables de correspondance. Dans ce contexte, l’invention propose un procédé de traitement cryptographique transformant un multiplet d’entrée en un multiplet de sortie, caractérisé par les étapes suivantes : - conversion d’une pluralité de mots, comprenant chacun au moins un bit du multiplet d’entrée, en cryptogrammes d’entrée par application, à chacun desdits mots, d’une fonction de chiffrement homomorphe d’un premier groupe vers un second groupe muni d’une opération ; - obtention de cryptogrammes de sortie en fonction des cryptogrammes d’entrée, cette étape d’obtention incluant au moins un traitement au cours duquel ladite opération est appliquée à deux cryptogrammes intermédiaires, ce traitement produisant un cryptogramme image par la fonction de chiffrement homomorphe d’un mot incluant une combinaison logique booléenne de deux bits compris respectivement dans deux mots antécédents, pour la fonction de chiffrement homomorphe, desdits deux cryptogrammes intermédiaires ; - détermination de bits du multiplet de sortie en appliquant respectivement aux cryptogrammes de sortie une fonction inverse de la fonction de chiffrement homomorphe. L’opération appliquée aux deux cryptogrammes intermédiaires revient à effectuer une addition ou une multiplication de mots correspondants (au sens de la fonction de chiffrement homomorphe) et ainsi, avec peu ou pas de manipulation supplémentaire au sein du traitement précité, une combinaison logique booléenne de deux bits respectifs de ces mots correspondants. Les manipulations supplémentaires (en sus de l’application de l’opération précitée) étant limitées, le nombre de tables de correspondance nécessaires est moins important que dans les solutions classiques. L’étape de conversion peut être appliquée par exemple à des mots comprenant chacun un premier bit égal à un bit du multiplet d’entrée et un second bit, de poids immédiatement supérieur au premier bit, ayant une valeur prédéfinie (telle que la valeur nulle). Le procédé peut éventuellement comprendre une étape de détermination par tirage aléatoire d’un mot binaire comprenant au moins un bit ; l’étape de conversion peut dans ce cas être appliquée à des mots comprenant chacun ledit mot binaire et un bit donné égal à un bit du multiplet d’entrée. Le bit de poids le plus faible issu du mot binaire peut alors par exemple être de poids immédiatement supérieur au poids du bit donné, ou être seulement de poids supérieur au poids du bit donné (un bit de valeur prédéfinie, par exemple de valeur nulle, pouvant dans ce dernier cas être intercalé entre ledit mot binaire et le bit donné égal au bit du multiplet d’entrée). L’étape de conversion peut être appliquée en pratique à des mots comprenant chacun une pluralité de bits du multiplet d’entrée. Le traitement susmentionné peut comprendre dans certains cas la lecture d’un cryptogramme associé, dans une table de correspondance, au résultat de l’opération appliquée aux deux cryptogrammes intermédiaires. Cette lecture fournit par exemple le cryptogramme image (par la fonction de chiffrement homomorphe) d’un mot obtenu par une manipulation particulière (tel qu’un décalage d’un bit vers la droite) à partir d’un antécédent (au sens de la fonction de chiffrement homomorphe) dudit résultat de l’opération. L’étape de conversion peut comprendre en outre une étape d’application de l’opération à un cryptogramme d’entrée et à un masque. Ce masque est par exemple déterminé aléatoirement au préalable et mémorisé dans un module de mémorisation. L’étape d’obtention peut comprendre une étape de combinaison de deux cryptogrammes d’entrée par une fonction de recombinaison selon le théorème des restes chinois. Les cryptogrammes ainsi combinés pourront être traités simultanément, ce qui réduit le nombre d’opération du second groupe à effectuer. L’opération est par exemple une multiplication ; le second groupe peut être en pratique un corps fini. Le second groupe peut d’ailleurs être distinct du premier groupe. L’invention propose également un dispositif électronique comprenant un processeur et une mémoire stockant des instructions de programme d’ordinateur conçues pour mettre en œuvre les étapes suivantes lorsque ces instructions sont exécutées par le processeur : - conversion d’une pluralité de mots, comprenant chacun au moins un bit d’un multiplet d’entrée, en cryptogrammes d’entrée par application, à chacun desdits mots, d’une fonction de chiffrement homomorphe d’un premier groupe vers un second groupe muni d’une opération ; - obtention de cryptogrammes de sortie en fonction des cryptogrammes d’entrée, cette étape d’obtention incluant au moins un traitement au cours duquel ladite opération est appliquée à deux cryptogrammes intermédiaires, ce traitement produisant un cryptogramme image par la fonction de chiffrement homomorphe d’un mot incluant une combinaison logique booléenne de deux bits compris respectivement dans deux mots antécédents, pour la fonction de chiffrement homomorphe, desdits deux cryptogrammes intermédiaires ; - détermination de bits d’un multiplet de sortie en appliquant respectivement aux cryptogrammes de sortie une fonction inverse de la fonction de chiffrement homomorphe. L’invention propose enfin un programme d’ordinateur comprenant des instructions conçues pour mettre en œuvre les étapes suivantes lorsque ces instructions sont exécutées par un processeur : - conversion d’une pluralité de mots, comprenant chacun au moins un bit d’un multiplet d’entrée, en cryptogrammes d’entrée par application, à chacun desdits mots, d’une fonction de chiffrement homomorphe d’un premier groupe vers un second groupe muni d’une opération ; - obtention de cryptogrammes de sortie en fonction des cryptogrammes d’entrée, cette étape d’obtention incluant au moins un traitement au cours duquel ladite opération est appliquée à deux cryptogrammes intermédiaires, ce traitement produisant un cryptogramme image par la fonction de chiffrement homomorphe d’un mot incluant une combinaison logique booléenne de deux bits compris respectivement dans deux mots antécédents, pour la fonction de chiffrement homomorphe, desdits deux cryptogrammes intermédiaires ; - détermination de bits d’un multiplet de sortie en appliquant respectivement aux cryptogrammes de sortie une fonction inverse de la fonction de chiffrement homomorphe. Bien entendu, les différentes caractéristiques, variantes et formes de réalisation de l'invention peuvent être associées les unes avec les autres selon diverses combinaisons dans la mesure où elles ne sont pas incompatibles ou exclusives les unes des autres. De plus, diverses autres caractéristiques de l'invention ressortent de la description annexée effectuée en référence aux dessins qui illustrent des formes, non limitatives, de réalisation de l'invention et où : représente schématiquement un dispositif électronique conforme à l’invention, et est un logigramme montrant les étapes principales d’un procédé conforme à l’invention. La figure 1 représente schématiquement un dispositif électronique 2 comprenant un processeur 4 (par exemple un microprocesseur), un module de mémorisation 6, une mémoire vive 8 et un module de communication 10. Le module de mémorisation 6 mémorise des instructions de programme d’ordinateur conçues pour mettre en œuvre un procédé de traitement cryptographique tel que celui décrit ci-dessous en référence à la figure 2 lorsque ces instructions sont exécutées par le processeur 4. Le module de mémorisation 6 est par exemple en pratique un disque dur ou une mémoire non-volatile (éventuellement réinscriptible). La mémoire vive 8 peut quant à elle mémoriser certains au moins des éléments (notamment les multiplets et cryptogrammes) manipulés lors des différents traitements effectués au cours du procédé de la figure 2. Le module de communication 10 est relié au processeur 4 de manière à permettre au processeur 4 de recevoir des données en provenance d’un autre dispositif électronique (non représenté) et/ou d’émettre des données à destination d’un autre dispositif électronique (non représenté). Selon une possibilité de réalisation, les instructions de programme d’ordinateur mémorisées dans le module de mémorisation 6 ont par exemple été reçues (par exemple d’un ordinateur distant) lors d’une phase de fonctionnement du dispositif électronique 2 antérieure au procédé décrit ci-dessous en référence à la figure 2. L’invention s’applique en particulier lorsque le dispositif électronique 2 n’est pas sécurisé et qu’un attaquant peut donc avoir accès au fonctionnement interne du dispositif électronique 2, et ainsi aux traitements effectués par le processeur 4 et aux données manipulées lors de ces traitements. (C’est le cadre de la cryptographie en boîte blanche mentionnée en introduction.) La figure 2 montre les étapes principales d’un procédé de traitement cryptographique conforme à l’invention. Ce procédé de traitement cryptographique est ici mis en œuvre par le dispositif électronique 2 (du fait de l’exécution des instructions de programme d’ordinateur mémorisées dans le module de mémorisation 6 comme indiqué ci-dessus). Un tel procédé permet de transformer un multiplet d’entrée I en un multiplet de sortie O au moyen d’opérations logiques booléennes, comme décrit par exemple dans l’article " A new combinational logic minimization technique with applications to cryptology ", de J. Boyar et R. Peralta, in International Symposium on Experimental Algorithms, Springer, Berlin, Heidelberg, 2010. On note I i les bits du multiplet d’entrée I. Ce multiplet d’entrée I s’écrit donc sous forme binaire : (I N-1 || I N-2 || …|| I 1 || I 0 ), où || est l’opérateur de concaténation, N est le nombre de bits du multiplet d’entrée I (ici : N = 8), I N-1 le bit de poids fort du multiplet d’entrée I et I 0 le bit de poids faible du multiplet d’entrée I. (Dans d’autres applications, N peut avoir une valeur différente de 8, par exemple N = 128 dans le cadre d’un algorithme AES. N est par exemple compris entre 8 et 256.) Le procédé de la figure 2 débute par une étape E2 à laquelle le processeur 4 convertit une pluralité de mots M i en une pluralité respective de cryptogrammes d’entrée C i au moyen d’une fonction de chiffrement homomorphe B. Chacun des mots M i comprend au moins un bit I j du multiplet d’entrée I et constitue un élément d’un premier groupe (fini) G. Ce premier groupe G est un groupe additif dans l’exemple décrit ici mais pourrait en variante être un groupe multiplicatif, comme expliqué à nouveau ci-dessous. On peut prévoir en pratique que chaque mot M i comprenne un premier bit égal à un bit I j du multiplet d’entrée I et un second bit, de poids immédiatement supérieur au premier bit, ayant une valeur prédéfinie (ici : 0 ; en variante : 1). Selon le mode de réalisation décrit ici, chaque mot M i comprend exactement (par exemple en tant que bit de poids faible) un bit I i du multiplet d’entrée I. L’étape de conversion E2 utilise donc ici N mots M i respectivement associés aux N bits I i du multiplet d’entrée I. La valeur prédéfinie susmentionnée valant ici 0, chaque mot M i s’écrit dans le cas présent : M i = (0 || I i ). Chaque mot M i s’écrit dans ce cas sur 2 bits. On pourrait prévoir en outre de compléter chaque mot M i par des bits aléatoires s i (déterminés par exemple aléatoirement lors de l’étape E2). Dans ce cas, chaque mot M i s’écrit : M i = (s σ || … || s 1 || 0 || I i ), où σ est le nombre de bits aléatoires utilisés. En variante, chaque mot M i pourrait être construit comme suit (le bit 0 pouvant être intercalé lors de l’étape de nettoyage E4 décrite ci-dessous) : M i = (s σ || … || s 1 || I i ). Selon un autre mode de réalisation envisageable, chaque mot M i pourrait comprendre plusieurs bits I j du multiplet d’entrée I. Ainsi, chaque mot M i pourrait par exemple comprendre deux bits I j du multiplet d’entrée I et s’écrire : M i = (0 || I 2i +1 || 0 || I 2 i ). Dans ce dernier cas, l’étape E2 utilise N/2 mots M i . La fonction de chiffrement homomorphe B est une fonction du premier groupe G vers un second groupe G’ muni d’une opération (ici notée par le symbole ".") et qui peut être distinct du premier groupe G. Le caractère homomorphe de la fonction B implique que, quels que soient les éléments a et b au sein du premier groupe G, B(a).B(b) = B(a+b). On utilise par exemple pour fonction de chiffrement homomorphe B une fonction de Benaloh modifiée du type : B(a) = y a u r mod p, où p est un nombre premier, y et u sont des nombres entiers compris entre 1 et p-1, et r est de la forme r = 2 k (k étant supérieur ou égal à 2, de préférence supérieur ou égal à la taille en bits des mots M i appliqués en entrée de la fonction B), r divisant en outre l’ordre du second groupe G’. Ce type de fonction est décrit dans l’article " Dense probabilistic encryption ", Josh Benaloh, in Proceedings of the Workshop on selected areas of Cryptography , 1994. On peut prévoir à cet égard que l’ordre du nombre y ne soit pas égal à l’ordre du second groupe G’ divisé par r. La longueur du nombre p exprimé en bits (soit log² p) est par exemple comprise en 4 bits et 32 bits (c’est-à-dire que, avec le bit de poids fort à 1 pour des raisons de sécurité, p est par exemple compris entre 2 3 et 2 32 -1). Selon une possibilité de réalisation, grâce aux propriétés de la fonction de Benaloh utilisée ici, on peut utiliser différentes valeurs du nombre u pour les différentes applications de la fonction de chiffrement homomorphe B aux différents mots M i . Les valeurs images B(a) sont donc comprises entre 1 et p-1 et le second groupe G’ est donc ici un groupe fini à (p-1) éléments (l’opération notée "." étant la multiplication dans ( Z /p Z )*). On utilise par exemple des mots M i ayant une longueur en bits égale à la longueur du nombre p exprimé sous forme de bits (soit log² p, où log² est le logarithme en base 2). Dans le cas où des bits aléatoires sont utilisés comme décrit ci-dessus, on prend alors par exemple σ = (log² p - 1) ou σ = (log² p - 2). On remarque que l’on choisit de préférence r de telle façon qu’il divise (p-1). En pratique, l’étape E2 est par exemple mise en œuvre au moyen d’au moins une première table de correspondance T1, mémorisée par exemple dans le module de mémorisation 6. Cette première table de correspondance mémorise, pour chaque élément a du premier groupe G (c’est-à-dire pour chaque valeur possible de a), la valeur image de cet élément a par la fonction de chiffrement homomorphe B, c’est-à-dire la valeur B(a). Dans ce cas, l’étape E2 comprend, pour chaque mot M i , la lecture du cryptogramme d’entrée C i associé à ce mot M i dans la première table de correspondance T1. En variante, on peut prévoir d’utiliser une pluralité de premières tables de correspondances T1 i pour traitement des différents mots M i , respectivement. Ainsi, dans le cas décrit ici où on utilise N mots M i , on peut utiliser N premières tables de correspondance M i . Les différentes premières tables de correspondance T1 i sont par exemple formées en utilisant des valeurs différentes de u dans la formule définissant la fonction B ci-dessus (et/ou des bits aléatoires s 1 ,…, s σ différents dans les variantes où de tels bits aléatoires sont utilisés, comme expliqué ci-dessus). Autrement dit, dans ce cas, chaque première table de correspondance T1 i mémorise, pour chaque élément a du premier groupe G, la valeur y a u i r mod p, les valeurs de u i étant différentes deux à deux pour i variant de 0 à N-1. Dans ce cas, l’étape E2 comprend, pour chaque mot M i d’indice i, la lecture du cryptogramme d’entrée C i associé à ce mot M i dans la première table de correspondance T1 i d’indice i. Selon une autre variante envisageable, la première table de correspondance T1 peut directement convertir un bit I i du multiplet d’entrée I en l’image B(M i ) du mot M i (associé à ce bit I i ) par la fonction de chiffrement homomorphe B. (Comme indiqué ci-dessus, le mot M i peut être de la forme M i = (0 || I i ), M i = (s σ || … || s 1 || I i ) ou M i = (s σ || … || s 1 || 0 || I i ).) Dans ce cas également, on peut utiliser plusieurs premières tables de correspondance T1 i respectivement pour les différents bits I i du multiplet d’entrée I (les différentes premières tables de correspondance T1 i pouvant être construites avec des bits aléatoires s 1 ,…, s σ différents, comme expliqué ci-dessus, lorsque de tels bits aléatoires sont utilisés). Selon une autre variante encore, dans le cas où les mots M i sont de la forme M i = (0 || I 2i +1 || 0 || I 2 i ), la première table de correspondance T1 peut convertir une pluralité de bits (ici 2 bits I 2i +1 , I 2 i ) du multiplet d’entrée en l’image B(M i ) du mot M i (associé à ces bits I 2i +1 , I 2 i ) par la fonction de chiffrement homomorphe B. Dans ce cas également, on peut utiliser plusieurs premières tables de correspondance T1 i respectivement pour les différents ensembles bits (ici couples de bits I 2i +1 , I 2 i ) du multiplet d’entrée I (les différentes premières tables de correspondance T1 i pouvant être construites avec des bits aléatoires s 1 ,…, s σ différents, comme expliqué ci-dessus, lorsque de tels bits aléatoires sont utilisés). Selon une autre variante envisageable, la première table de correspondance T1 peut associer, à tout multiplet (ici octet) de la forme e 7 e 6 …e 0 (où les e j sont les bits de ce multiplet), la valeur B(e 7 || e 6 || …|| e 1 || 0 || e 0 ) ou la valeur B e7…e3 (e 2 || e 1 || 0 || e 0 ), avec B e7…e3 la fonction de Benaloh proposée ci-dessus dans laquelle le nombre u est défini en fonction des bits e 7 e 6 …e 3 . Dans ce cas, lors de l’étape E2, pour chaque bit I i du multiplet d’entrée I, le processeur 4 détermine de manière aléatoire une séquence de bits (ici une séquence de 7 bits) α 1 , …, α 7 et lit, dans la première table de correspondance T1, le cryptogramme d’entrée C i associé au multiplet (α 7 ||…|| α 1 || I i ) comprenant les bits α 1 , …, α 7 déterminés de manière aléatoire et le bit I i concerné du multiplet d’entée I. Après l’étape E2, le procédé de la figure 2 comprend une boucle (étapes E4 à E8) qui permet un nombre prédéterminé de passages aux étapes E4, E5 et E6. Ces passages successifs aux étapes E4, E5 et E6, décrits ci-dessous visent, à chaque passage, à réaliser l’une des opérations logiques booléennes prévues comme indiqué ci-dessus, chacune de ces opérations logiques booléennes devant être appliquée à un bit I i du multiplet d’entrée I (pour les premières opérations logiques booléennes effectuées), ou à un bit intermédiaire a i obtenu par une opération booléenne précédente, en utilisant éventuellement en outre des bits prédéfinis (tels que des bits d’une clé cryptographique que l’on souhaite appliquer, au moyen d’un algorithme cryptographique, au multiplet d’entrée I). Comme expliqué à présent, chacune de ces opérations logiques booléennes est réalisée au moyen d’une application de l’opération "." (opération du second groupe G’) à des cryptogrammes A i (chacun de ces cryptogrammes A i étant soit un cryptogramme d’entrée C i obtenu à l’étape E2, soit un cryptogramme intermédiaire dérivé des cryptogrammes d’entrée C i par des opérations précédentes). Ainsi, pour mettre en œuvre une opération logique booléenne entre un premier bit a i et un second bit b i , le processeur 4 effectue à l’étape E5 l’opération A i .B i entre l’image, par la fonction de chiffrement homomorphe B, d’un premier mot, ici (0 || a i ), comprenant le premier bit a i , et l’image, par la fonction de chiffrement homomorphe B, d’un second mot, ici (0 || b i ), comprenant le second bit b i (c’est-à-dire A i = B(0 || a i ) et B i = B(0 || b i )). Comme déjà indiqué, les images A i , B i impliquées dans cette opération sont soit les cryptogrammes d’entrée C i obtenus à l’étape E2, soit les résultats de passages précédents aux étapes E4 à E6, soit des cryptogrammes mémorisés dans le module de mémorisation 6 (et qui représentent respectivement les bits prédéfinis susmentionnés, par exemple des bits d’une clé cryptographique). En effet, les inventeurs ont remarqué que, grâce à la propriété d’homomorphisme, on a quels que soient a i et b i : B(0 || a i ).B(0 || b i ) = B[(0 || a i ) + (0 || b i )] = B(a i AND b i ||a i XOR b i ), où AND et XOR sont respectivement les opérations logiques booléennes " et " et " ou exclusif ". (Cette observation reste valable dans la variante décrite ci-dessus où les mots M i comprennent plusieurs bits I j du multiplet d’entrée I du fait que : B(0||a i+1 ||0||a i ).B(0||b i+1 ||0||b i )=B(a i+1 ANDb i+1 || a i+1 XORb i+1 || a i ANDb i || a i XORb i ). De même, cette observation reste valable dans les variantes où les cryptogrammes sont générés à l’étape E2 en utilisant des bits de poids forts aléatoires puisque ces bits de poids forts n’interviennent pas dans les opérations entre bits de poids faibles qui sont réalisées comme il vient d’être décrit.) On explique dans la suite quel traitement appliquer (éventuellement) au produit ainsi obtenu pour sélectionner, en tant que valeur à utiliser dans la suite du traitement (selon l’opération logique booléenne à effectuer par le passage courant aux étapes E4 à E6), soit la valeur (a i AND b i ) , soit la valeur (a i XOR b i ). Le traitement de l’étape E5 produit ainsi un cryptogramme A i .B i = B(a i AND b i ||a i XOR b i ) qui est l’image par la fonction de chiffrement homomorphe B d’un mot incluant la combinaison logique booléenne (ici par " et " ou par " ou exclusif ") de deux bits a i , b i compris respectivement dans deux mots (0 || a i ) et (0 || b i ) antécédents, pour la fonction de chiffrement homomorphe B, desdits deux cryptogrammes intermédiaires A i , B i . On remarque que les bits a i , b i ne sont jamais manipulés en tant que tels, mais toujours par le biais de l’opération du second groupe G’ (notée ici ".") sur les cryptogrammes intermédiaires A i , B i qui représentent ces bits a i , b i . Selon l’opération logique à effectuer (sur les bits a i , b i ) lors du passage courant aux étapes E4 à E6, le processeur 4 met par ailleurs éventuellement en œuvre des étapes additionnelles, à savoir ici une étape E4 de nettoyage des cryptogrammes A i , B i (correspondant respectivement aux bits a i , b i à traiter) et une étape E6 de mise en forme du cryptogramme A i .B i obtenu à l’étape E5. Dans certains cas en effet, aucune étape additionnelle E4, E6 n’est nécessaire ; les cryptogrammes A i , B i peuvent être directement traités à l’étape E5 et le cryptogramme produit A i .B i obtenu peut être directement utilisé pour traitement ultérieur, c’est-à-dire soit pour réaliser une nouvelle opération booléenne à l’étape E5, soit pour générer le multiplet de sortie à l’étape E10 (décrite plus bas). Dans l’exemple décrit ici, aucun traitement n’est mis en œuvre aux étapes additionnelles E4, E6 lorsque l’opération logique booléenne à réaliser par l’itération courante (c’est-à-dire le passage courant aux étapes E4 à E6) est une opération de " ou exclusif ". En effet, comme expliqué ci-dessus, le bit de poids faible de l’antécédent (a i AND b i ||a i XOR b i ) du cryptogramme A i .B i vaut dans ce cas (a i XOR b i ) et le cryptogramme A i .B i obtenu à l’étape E5 peut donc être utilisé comme représentant d’un nouveau bit intermédiaire, égal à a i XOR b i , lors d’un passage ultérieur à l’étape E5 (ou lors de la génération du multiplet de sortie à l’étape E10). On remarque en outre à cet égard que, dans l’exemple décrit ici, il n’est pas nécessaire, avant d’effectuer l’étape E5 pour réaliser une opération logique booléenne de " ou exclusif ", de s’assurer que les antécédents des cryptogrammes A i , B i traités lors de cette étape E4 soient de la forme (0 || a i ), (0 || b i ). En effet, quelles que soient les valeurs de x et de y, on a : (x || a i ) + (y || b i ) = (z || a i XOR b i ), où z dépend quant à lui de x et de y. En revanche, lorsque l’itération courante des étapes E4 à E6 vise à réaliser une opération logique booléenne " et ", il convient d’appliquer aux cryptogrammes A i , B i , A i .B i les traitements suivants : - une étape de nettoyage E4, antérieure à l’étape E5, qui vise à s’assurer que, pour chaque cryptogramme A i , B i à traiter, l’antécédent de ce cryptogramme est de la forme (0 || a i ), (0 || b i ), où comme précédemment a i et b i sont les bits pour lesquels on souhaite calculer l’opération booléenne " et " et qui sont respectivement représentés par les cryptogrammes A i et B i ; - une étape de mise en forme E6, postérieure à l’étape E5, qui permet de replacer le bit (a i AND b i ) en tant que bit de poids faible du cryptogramme représentant ce nouveau bit intermédiaire (a i AND b i ), de manière à pouvoir utiliser ce cryptogramme comme décrit ci-dessus lors d’un passage ultérieur aux étapes E4 à E6. L’étape de nettoyage E4 vise donc à conserver tout cryptogramme A i , B i qui peut s’écrire B(0 || d i ), c’est-à-dire tout cryptogramme qui est l’image par la fonction de chiffrement homomorphe d’un mot dont le bit de poids fort a la valeur prédéfinie (ici 0), et à transformer en un nouveau cryptogramme B(0 || d i ) tout cryptogramme A i , B i qui peut s’écrire B(1 || d i ), c’est-à-dire tout cryptogramme qui est l’image par la fonction de chiffrement homomorphe d’un mot dont le bit de poids fort n’a pas la valeur prédéfinie. L’étape de nettoyage E4 est par exemple mise en œuvre au moyen d’une seconde table de correspondance T2 qui, pour tout d i , associe à tout cryptogramme de la forme B(0 || d i ) un cryptogramme de la forme B(0 || d i ), éventuellement identique au cryptogramme en entrée de la seconde table de correspondance T2, et à tout cryptogramme de la forme B(1 || d i ) un cryptogramme de la forme B(0 || d i ). Cette seconde table de correspondance T2 est par exemple mémorisée dans le module de mémorisation 6. Dans ce cas, lorsque l’on souhaite traiter par l’opération logique booléenne concernée (ici " et ") un bit a i représenté en entrée par un cryptogramme A i et un bit b i représenté en entrée par un cryptogramme B i , le processeur 4 lit à l’étape de nettoyage E4 un cryptogramme A’ i associé au cryptogramme A i dans la seconde table de correspondance T2, et un cryptogramme B’ i associé au cryptogramme B i dans la seconde table de correspondance T2. Les cryptogrammes A’ i et B’ i ainsi obtenus en sortie de l’étape E4 sont ceux utilisés pour traitement par l’opération "." au cours de l’étape E5 comme décrit ci-dessus. L’étape de mise en forme E6 vise comme indiqué plus haut à transformer le cryptogramme B(a i AND b i || a i XOR b i ) (obtenu au moyen de l’étape E5 comme indiqué ci-dessus) en un cryptogramme B(x || a i AND b i ), où x est un bit quelconque. Autrement dit, l’étape de mise en forme E6 revient à appliquer au cryptogramme concerné l’inverse de la fonction de chiffrement homomorphe, à décaler d’un bit vers la droite le mot obtenu, et à appliquer à nouveau la fonction de chiffrement homomorphe. En pratique, l’étape de mise en forme E6 peut être mise en œuvre au moyen d’une troisième table de correspondance T3 qui à tout cryptogramme de la forme B(d i || z i ) (c’est-à-dire à tout cryptogramme ayant un antécédent de bit de poids fort d i par la fonction de chiffrement homomorphe B) associe un cryptogramme de la forme B(x || d i ) (c’est-à-dire un cryptogramme ayant un antécédent, par la fonction de chiffrement homomorphe B, de bit de poids faible d i ). Cette troisième table de correspondance T3 est par exemple mémorisée dans le module de mémorisation 6. Dans ce cas, à l’étape de mise en forme E6, le processeur 4 lit, dans la troisième table de correspondance T3, le cryptogramme associé au cryptogramme obtenu à l’étape E5, le cryptogramme lu étant utilisé pour représenter le nouveau bit intermédiaire (a i AND b i ) dans la suite du traitement. Après l’étape de mise en forme E6, le processeur 4 détermine à l’étape E8 si le traitement effectué implique au moins une autre opération logique booléenne (mise en œuvre ici au moyen de l’application de l’opération "." à des cryptogrammes). On rappelle que le processeur 4 est programmé pour réaliser une séquence d’opérations logiques booléennes, comme décrit par exemple dans l’article " A new combinational logic minimization technique with applications to cryptology " précité. S’il reste au moins une opération logique booléenne à réaliser, le procédé boucle à l’étape E4 pour mise en œuvre d’une nouvelle itération des étapes E4 à E6. Si toutes les opérations logiques booléennes ont été réalisées, le procédé se poursuit à l’étape E10 décrite à présent. A l’étape E10, le processeur 4 génère le multiplet de sortie O sur la base de cryptogrammes intermédiaires obtenus lors de précédents passages aux étapes E4 à E6 et qui représentent respectivement les différents bits O i du multiplet de sortie O. Les cryptogrammes intermédiaires utilisés en tant que cryptogramme de sortie C’ i , c’est-à-dire pour représenter les bits O i du multiplet de sortie O, sont déterminés d’après la séquence d’opérations logiques booléennes que l’on souhaite mettre en œuvre (chaque cryptogramme intermédiaire représentant un bit intermédiaire manipulé au cours de cette séquence d’opérations logiques booléennes). Le processeur 4 détermine les bits O i du multiplet de sortie O en appliquant respectivement à ces cryptogrammes de sortie C’ i une fonction B -1 inverse de la fonction de chiffrement homomorphe B. En pratique, l’application de cette fonction inverse peut être mise en œuvre au moyen d’une quatrième table de correspondance T4, mémorisée par exemple dans le module de mémorisation 6. Cette quatrième table de correspondance T4 mémorise, pour chaque valeur possible Z pour un cryptogramme, le mot B -1 (Z), c’est-à-dire l’antécédent de Z par la fonction de chiffrement homomorphe B. Le processeur 4 détermine dans ce cas chaque bit O i du multiplet de sortie O par lecture, dans la quatrième table de correspondance T4, du mot B -1 (C’ i ) associé au cryptogramme de sortie C’ i concerné, le bit O i du multiplet de sortie O étant un bit prédéfini (ici le bit de poids faible) du mot B -1 (C’ i ). En variante, la quatrième table de correspondance T4 pourrait associer directement, à chaque valeur possible Z pour un cryptogramme, le bit de poids faible du mot B -1 (Z) antécédent de cette valeur Z par la fonction de chiffrement homomorphe B. Selon une autre variante encore, la première table de correspondance T1 pourrait être utilisée par le processeur 4 pour appliquer la fonction inverse B -1 aux cryptogrammes de sortie C’ i . Dans l’exemple qui vient d’être décrit, le premier groupe G est un groupe additif utilisant un cryptosystème de type Benaloh pour définir la fonction de chiffrement homomorphe B. Toujours dans le cas d’un premier groupe additif, on peut utiliser en variante un cryptosystème de type Paillier, comme introduit dans l’article " Public-key cryptosystems based on composite degree residuosity classes ", Pascal Paillier, in International Conference on the Theory and Application of Cryptographic Techniques , Springer, Berlin, Heidelberg, 1999. Selon une autre variante, le premier groupe G peut être un groupe multiplicatif. Dans le cadre de cette variante, on utilise par exemple une fonction de chiffrement homomorphe (notée E dans cette variante) basée sur un cryptosystème de type ElGamal, décrit dans l’article " A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms ", Taher ElGamal, in Crypto , Springer, 1984. Grâce à la propriété d’homomorphisme de ce type de fonction de chiffrement, on a, quels que soient les bits a, b : E(1 || a).E(1 ||b) = E(a XOR b || a AND b) ; on peut donc dans cette variante également réaliser l’une ou l’autre des deux opérations logiques booléennes " et " et " ou exclusif " au moyen d’une opération (ici également de multiplication) au sein du second groupe G’. Selon une autre variante, éventuellement combinable avec celles décrites précédemment, les cryptogrammes manipulés sont masqués par un masque aléatoire t (ici multiplicatif). Ce masque aléatoire est par exemple déterminé (par tirage aléatoire) au cours d’une phase de préparation du dispositif électronique 2 et mémorisé dans le module de mémorisation 6. Pour ce faire, lors de l’étape E2, le processeur applique le masque aléatoire t aux cryptogrammes C i au moyen de l’opération ".". Les étapes suivantes sont alors appliquées au cryptogramme ainsi masqué, à savoir t.C i . Selon une possibilité de réalisation, une pluralité de masques aléatoires t i ( a priori distincts deux à deux) peuvent être respectivement appliqués aux différents cryptogrammes C i produits lors de l’étape E2. Dans les deux cas, l’application du masque t, t i peut être réalisée, en même temps que l’application de la fonction de chiffrement homomorphe B, au moyen de la première table de correspondance T1. Autrement dit, la première table de correspondance T1 mémorise dans ce cas, pour chaque valeur possible au sein du premier groupe G, le cryptogramme associé t.B(a). Les autres tables de correspondance T2, T3, T4 sont par ailleurs adaptées (avant leur mémorisation dans le module de mémorisation 6) pour tenir compte du masque appliqué. On peut prévoir dans ce cas que des secondes et troisièmes tables de correspondance T2, T3 soient prévues respectivement pour chaque opération booléenne mise en œuvre au moyen de l’opération "." afin de tenir compte du masque t utilisé. On décrit à présent une autre variante selon laquelle les cryptogrammes d’entrée C i sont combinés deux à deux au moyen d’une fonction de recombinaison selon le théorème des restes chinois. Dans ce cas, certains cryptogrammes (par exemple ceux correspondant aux bits de rang pair du multiplet d’entrée I, ces cryptogrammes étant notés de ce fait C 2i ) sont obtenus comme indiqué précédemment en appliquant la fonction de chiffrement homomorphe B, à valeurs dans le second groupe G’ à (p-1) éléments, au mot correspondant (0 || I 2i ). D’autres cryptogrammes (par exemple ceux correspondant aux bits de range impair du multiplet d’entrée, ces cryptogrammes étant notés de ce fait C 2i+1 ) sont obtenus en appliquant une autre fonction de chiffrement homomorphe B’, à valeurs dans un troisième groupe G’’ à (q-1) éléments, au mot correspondant (0 || I 2i+1 ), avec q un nombre premier différent de p. La fonction B’ est par exemple définie par : B’(b) = y b .u r mod q. Les cryptogrammes d’entrée sont alors combinés deux à deux au moyen d’une fonction de recombinaison selon le théorème des restes chinois (en anglais CRT pour " Chinese Remainder Theorem "). Ici, on combine les cryptogrammes d’entrée C 2i et C 2i +1 comme suit : A i = CRT(C 2i , C 2i +1 ) = C 2i .q.i q + C 2i +1 .p.i p où i p et i q sont tels que q.i q = 1 mod p et p.i p = 1 mod q (et on a q.i q = 0 mod q et p.i p = 0 mod p). Les cryptogrammes A i obtenus par cette combinaison sont ceux qui sont manipulés lors des passages successifs aux étapes E4 à E6. Ainsi, le produit A i .B i de deux cryptogrammes A i , B i (A i représentant les cryptogrammes X et X’ : A i = CRT(X, X’) et B i représentant les cryptogrammes Y et Y’ : B i = CRT(Y, Y’)) permet d’effectuer des opérations sur les deux bits représentés par chacun de ces cryptogrammes A i , B i . En effet : A i .B i mod p = (X.q.i q + X’.p.i p ) . (Y.q.i q + Y’.p.i p ) mod p = X.Y . De même : A i .B i mod q = (X.q.i q + X’.p.i p ) . (Y.q.i q + Y’.p.i p ) mod q = X’.Y’ . On peut ainsi retrouver les produits X.Y et X’.Y’ (correspondant à ceux obtenus à l’étape E5 dans le mode de réalisation décrit ci-dessus) en déterminant respectivement le reste modulo p et le reste module q du produit A i .B i . Procédé de traitement cryptographique transformant un multiplet d’entrée en un multiplet de sortie, caractérisé par les étapes suivantes : - conversion (E2) d’une pluralité de mots, comprenant chacun au moins un bit du multiplet d’entrée, en cryptogrammes d’entrée par application, à chacun desdits mots, d’une fonction de chiffrement homomorphe d’un premier groupe vers un second groupe muni d’une opération ; - obtention de cryptogrammes de sortie en fonction des cryptogrammes d’entrée, cette étape d’obtention incluant au moins un traitement au cours duquel ladite opération (E5) est appliquée à deux cryptogrammes intermédiaires, ce traitement produisant un cryptogramme image par la fonction de chiffrement homomorphe d’un mot incluant une combinaison logique booléenne de deux bits compris respectivement dans deux mots antécédents, pour la fonction de chiffrement homomorphe, desdits deux cryptogrammes intermédiaires ; - détermination (E10) de bits du multiplet de sortie en appliquant respectivement aux cryptogrammes de sortie une fonction inverse de la fonction de chiffrement homomorphe. Procédé selon la revendication 1, dans lequel l’étape de conversion (E2) est appliquée à des mots comprenant chacun un premier bit égal à un bit du multiplet d’entrée et un second bit, de poids immédiatement supérieur au premier bit, ayant une valeur prédéfinie. Procédé selon la revendication 1 ou 2, comprenant une étape de détermination par tirage aléatoire d’un mot binaire comprenant au moins un bit, dans lequel l’étape de conversion (E2) est appliquée à des mots comprenant chacun ledit mot binaire et un bit donné égal à un bit du multiplet d’entrée,. Procédé selon l’une des revendications 1 à 3, dans lequel l’étape de conversion (E2) est appliquée à des mots comprenant chacun une pluralité de bits du multiplet d’entrée. Procédé selon l’une des revendications 1 à 4, dans lequel le traitement comprend la lecture d’un cryptogramme associé, dans une table de correspondance, au résultat de l’opération appliquée aux deux cryptogrammes intermédiaires. Procédé selon l’une des revendications 1 à 5, dans lequel l’étape de conversion (E2) comprend une étape d’application de l’opération à un cryptogramme d’entrée et à un masque. Procédé selon l’une des revendications 1 à 6, dans lequel l’étape d’obtention comprend une étape de combinaison de deux cryptogrammes d’entrée par une fonction de recombinaison selon le théorème des restes chinois. Procédé selon l’une des revendications 1 à 7, dans lequel l’opération est une multiplication et dans lequel le second groupe est un corps fini. Dispositif électronique comprenant un processeur et une mémoire stockant des instructions de programme d’ordinateur conçues pour mettre en œuvre les étapes suivantes lorsque ces instructions sont exécutées par le processeur : - conversion d’une pluralité de mots, comprenant chacun au moins un bit d’un multiplet d’entrée, en cryptogrammes d’entrée par application, à chacun desdits mots, d’une fonction de chiffrement homomorphe d’un premier groupe vers un second groupe muni d’une opération ; - obtention de cryptogrammes de sortie en fonction des cryptogrammes d’entrée, cette étape d’obtention incluant au moins un traitement au cours duquel ladite opération est appliquée à deux cryptogrammes intermédiaires, ce traitement produisant un cryptogramme image par la fonction de chiffrement homomorphe d’un mot incluant une combinaison logique booléenne de deux bits compris respectivement dans deux mots antécédents, pour la fonction de chiffrement homomorphe, desdits deux cryptogrammes intermédiaires ; - détermination de bits d’un multiplet de sortie en appliquant respectivement aux cryptogrammes de sortie une fonction inverse de la fonction de chiffrement homomorphe. Programme d’ordinateur comprenant des instructions conçues pour mettre en œuvre les étapes suivantes lorsque ces instructions sont exécutées par un processeur : - conversion d’une pluralité de mots, comprenant chacun au moins un bit d’un multiplet d’entrée, en cryptogrammes d’entrée par application, à chacun desdits mots, d’une fonction de chiffrement homomorphe d’un premier groupe vers un second groupe muni d’une opération ; - obtention de cryptogrammes de sortie en fonction des cryptogrammes d’entrée, cette étape d’obtention incluant au moins un traitement au cours duquel ladite opération est appliquée à deux cryptogrammes intermédiaires, ce traitement produisant un cryptogramme image par la fonction de chiffrement homomorphe d’un mot incluant une combinaison logique booléenne de deux bits compris respectivement dans deux mots antécédents, pour la fonction de chiffrement homomorphe, desdits deux cryptogrammes intermédiaires ; - détermination de bits d’un multiplet de sortie en appliquant respectivement aux cryptogrammes de sortie une fonction inverse de la fonction de chiffrement homomorphe.