Brevet FR3160834A1 — publié le 20251003

Compression masquée La présente description concerne un procédé comprenant : - le masquage, sur la base d’un algorithme numérique, par un dispositif de traitement (102, 104), d’une donnée sensible, le masquage comprenant la division de la donnée en un nombre supérieur ou égal à 2 de parts, telles que leur somme arithmétique, modulo un entier associé à l’algorithme numérique, est égale à la valeur de la donnée ; - l’application d’une opération compression de chacune des parts de données, comprenant : l’application d’une opération d’arrondi sur chacune des parts de données, résultant en valeurs d’arrondi entières ; et l’application d’une opération pseudo-fractionnaire, sur chacune des parts de données, résultant en valeurs pseudo-fractionnaires ; et - la génération de parts de donnée compressées corrigées en appliquant une opération de correction sur chacune des valeurs d’arrondi, sur la base des valeurs pseudo-fractionnaires. Figure pour l'abrégé : Fig. 1 Compression masquée La présente description concerne de façon générale le domaine de la cryptographie et en particulier le domaine de la compression de données chiffrées. Une attaque par canaux auxiliaires (en anglais « Side Channel Attack ») menée lors d’une opération cryptographique faisant intervenir une donnée sensible, telle que par exemple une clef de chiffrement, peut permettre à une entité extérieure de déduire la valeur de la donnée sensible. Une protection contre ces attaques consiste à masquer les données sensibles en les divisant en plusieurs parts (en anglais « shares »). Cependant, dans certains cas, il est aussi souhaitable de compresser les données sensibles, par exemple lors d’opérations d’encapsulation ou de décapsulation. Néanmoins, les opérations de masquage ne sont pas compatibles avec les opérations de compression et la combinaison d’opérations de masquages et compressions n’est pas efficace dans la mesure où elle ne permet pas d’obtenir un résultat sans faire beaucoup d’opérations. Il existe un besoin de rendre compatibles les opérations de masquage et les opérations de compressions. Un mode de réalisation prévoit un procédé comprenant : - le masquage, sur la base d’un algorithme numérique, par un dispositif de traitement, d’une donnée sensible, le masquage comprenant la division de la donnée sensible en un nombre de parts, étant un nombre entier égal ou supérieur à 2, telles que leur somme arithmétique, modulo un entier associé à l’algorithme numérique, est égale à la valeur de la donnée sensible ; - l’application d’une première opération compression de chacune des parts de données, la première opération de compression comprenant : l’application d’une opération d’arrondi sur chacune des parts de données, résultant en valeurs d’arrondi entières ; et l’application d’une opération pseudo-fractionnaire, sur chacune des parts de données, résultant en valeurs pseudo-fractionnaires ; et - la génération de parts de donnée compressées corrigées en appliquant une opération de correction sur chacune des valeurs d’arrondi, sur la base des valeurs pseudo-fractionnaires. Selon un mode de réalisation, la somme arithmétique, modulo un entier associé à l’algorithme numérique, entre les parts correspond à la donnée sensible compressée, sur la base d’une deuxième opération de compression, associée à l’algorithme numérique, la deuxième opération de compression étant basée sur un calcul d’une valeur d’arrondi ou de troncature de forme , où la valeur est un nombre entier associé à l’algorithme numérique, valeur est un nombre entier correspondant à une plage de la forme attendue pour le résultat de la deuxième opération de compression et la valeur entière est un terme définissant l’opération de compression, l’entier étant, par exemple : - égal à 0 lorsque la deuxième opération de compression associée à l’algorithme numérique est une opération de troncature ; - égal à lorsque la deuxième opération de compression associée à l’algorithme numérique est une opération d’arrondi. Selon un mode de réalisation, - l’opération d’arrondi, sur une part de la donnée sensible, correspond au calcul de l’entier , où est un terme de troncature associé à la part et est l’opération de troncature vers l’entier égal ou immédiatement inférieur ; et - l’opération pseudo-fractionnaire, sur la part correspond au calcul de la valeur . Selon un mode de réalisation, la somme des termes de troncature est égale à l’entier . Selon un mode de réalisation, les termes de troncature sont générés par un générateur de nombres aléatoires du premier dispositif. Selon un mode de réalisation, l’opération de correction comprend : - la détermination d’un entier tel que soit égal à la valeur , lorsque la somme des valeurs pseudo-fractionnaires appartient à l’intervalle ; - la génération d’un vecteur de correction, de taille , telles que la somme arithmétique modulo des composantes du vecteur de correction soit égale à l’entier c ; et - pour chaque indice , l’ajout de la i-ème composante du vecteur de correction à la valeur d’arrondi de la i-ème part. Selon un mode de réalisation, le dispositif de traitement est configuré pour commander l’effacement des valeurs pseudo-fractionnaires suite au calcul du vecteur de correction. Selon un mode de réalisation, l’algorithme numérique est un schéma cryptographique et le dispositif de traitement est un processeur cryptographique ou un coprocesseur cryptographique. Selon un mode de réalisation, le schéma cryptographique est un schéma d’encapsulation basé sur un réseau. Selon un mode de réalisation, le réseau est un réseau de type ML-KEM, un réseau de type ML-DSA, un réseau de type Kyber ou un réseau de type NewHope. Selon un mode de réalisation, le nombre est égal à 2. Selon un mode de réalisation, le procédé ci-dessus comprend en outre le traitement, par le dispositif de traitement, des parts de donnée compressées corrigées, le traitement faisant par exemple partie d’une opération de décapsulation. Un autre mode de réalisation prévoit un dispositif comprenant un dispositif de traitement configuré pour : - appliquer un masquage, sur la base d’un algorithme numérique, sur une donnée sensible, le masquage comprenant la division de la donnée sensible en un nombre de parts, étant un nombre entier égal ou supérieur à 2, telles que leur somme arithmétique, modulo un entier associé à l’algorithme numérique, est égale à la valeur de la donnée sensible ; - appliquer une opération de compression sur chacune des parts de données, l’opération de compression comprenant : l’application d’une opération d’arrondi sur chacune des parts de données, résultant en valeurs d’arrondi entières ; et l’application d’une opération pseudo-fractionnaire, sur chacune des parts de données, résultant en valeurs pseudo-fractionnaires ; et - générer parts de donnée compressées corrigées en appliquant une opération de correction sur chacune des valeurs d’arrondi, sur la base des valeurs pseudo-fractionnaires. Selon un mode de réalisation, le dispositif de traitement est configuré pour appliquer l’opération de correction en faisant : - la détermination d’un entier tel que soit égal à la valeur , lorsque la somme des valeurs pseudo-fractionnaires appartient à l’intervalle . ; - la génération d’un vecteur de correction, de taille n, telles que la somme arithmétique modulo p des n composantes du vecteur de correction soit égale à l’entier c ; et - pour chaque indice , l’ajout de i-ème composante du vecteur de correction à la valeur d’arrondi de la i-ème part. Selon un mode de réalisation, le dispositif de traitement est configuré pour commander l’effacement des valeurs pseudo-fractionnaires suite au calcul du vecteur de correction. Selon un mode de réalisation, le dispositif de traitement est en outre configuré pour traiter les parts de donnée compressées corrigées, par exemple dans une opération de décapsulation. Selon un mode de réalisation, l’algorithme numérique est un schéma cryptographique et le dispositif de traitement est un processeur cryptographique ou un coprocesseur cryptographique. Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la FIG. 1 représente, de façon schématique, un exemple d’un dispositif électronique du type auquel s’appliquent les modes de réalisation décrits ; la FIG. 2 est un schéma par bloc illustrant une opération de compression d’une donnée masquée, selon une mode de réalisation de la présente description ; et la FIG. 3 est un organigramme illustrant des étapes d’une procédé de compression de données masquées, selon un mode de réalisation de la présente description. De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques. Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. En particulier, les opérations de cryptographie basée sur des réseaux ne sont pas décrites en détail et sont connus par la personne du métier. De même, les opérations d’encapsulation et de décapsulation ne sont pas décrites en détail. Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés (en anglais "coupled") entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés par l'intermédiaire d'un ou plusieurs autres éléments. Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures. Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % ou à 10° près, de préférence à 5 % ou à 5° près. La FIG. 1 illustre schématiquement un dispositif 100 selon un mode de réalisation. Le dispositif 100 est par exemple un ordinateur, un téléphone mobile ou encore une carte à puce. Le dispositif 100 comprend, par exemple un processeur principal 102 (MAIN PROCESSOR), qui est par exemple un processeur hôte du dispositif 100 et un coprocesseur cryptographique 104 (CRYPTOGRAPHIC COPROCESSOR). Le dispositif 100 comprend en outre une mémoire 106 (MEMORY) stockant des instructions 108 (INSTRUCTIONS) de commande du processeur principal 102 et du coprocesseur cryptographique 104. Une interface de communication 110 (COMMUNICATIONS INTERFACE) est, par exemple, couplée au processeur principal 102, et permet, par exemple, des communications sans fil par l’intermédiaire d’un réseau de communication sans fil, et/ou des communications filaires, par exemple par un LAN (de l’anglais "Local Area Network" – réseau local, non illustré). Le dispositif 100, et notamment le coprocesseur cryptographique 104, est par exemple adapté à réaliser des opérations cryptographiques. A titre d’exemple, le dispositif 100 comprend en outre un générateur de nombres aléatoire 112 (RN GENERATOR) relié au coprocesseur cryptographique 104. Dans un autre exemple, le coprocesseur cryptographique 104 est lui-même configuré pour effectuer des opérations de génération de nombres aléatoires. Le coprocesseur cryptographique 104 est par exemple configuré pour effectuer des opérations d’encapsulation, par exemple sur la base d’une clef aléatoire, générée par le générateur de nombre 112. A titre d’exemple, les opérations d’encapsulation, exécutées par le coprocesseur cryptographique 104, sont réalisée sur la base d’une clef de chiffrement publique, par exemple stockée dans la mémoire 106. Dans d’autres exemples, la clef de chiffrement publique est stockée de manière sécurisée dans le coprocesseur cryptographique 104. Le coprocesseur cryptographique 104 est par exemple configuré pour chiffrer des données sur la base d’un algorithme de chiffrement cryptographique, appelé ici « schéma cryptographique ». A titre d’exemple, un schéma cryptographique est, en outre, un algorithme cryptographique distribué entre plusieurs dispositifs, par exemple configurés pour effectuer des opérations d’encapsulation et de décapsulation sur la base d’une paire de clefs asymétriques. A titre d’exemple, le schéma cryptographique est un schéma basé sur un réseau, tel que : - un schéma ML-KEM, de l’anglais « Module-Lattice-Based Key-Encapsulation Mechanism », décrit dans la publication : NIST, Module-Lattice-Based Key-Encapsulation Mechanism Standard, FIPS 203 (Initial Public Draft), August 2023, doi:10.6028/NIST.FIPS.203.ipd; - un schéma ML-DSA : NIST, Module-Lattice-Based Digital Signature Standard, FIPS 204 (Initial Public Draft), August 2023, doi:10.6028/NIST.FIPS.204.ipd ; - un schéma Kyber : Roberto Avanzi, Joppe Bos, Léo Ducas, Eike Kiltz, Tancrède Lepoint, Vadim Lyubashevsky, John M. Schanck, Peter Schwabe, Gregor Seiler, and Damien Stehlé, CRYSTALS-Kyber Algorithm Specifications And Supporting Documentation (version 3.02), 2021, https://pq-crystals.org/kyber/data/kyber-specification-round3-20210804.pdf ; ou - un schéma NewHope : Erdem Alkim, Roberto Avanzi, Joppe Bos, Léo Ducas, Antonio de la Piedra, Thomas Pöppelmann, Peter Schwabe, Douglas Stebila, Martin R. Albrecht, Emmanuela Orsini, Valery Osheter, Kenneth G. Paterson, Guy Peer, Nigel P. Smart, NewHope Algorithm Specifications and Supporting Documentation (version 1.1), 2020, https://newhopecrypto.org/data/NewHope_2020_04_10.pdf. De manière générale, le schéma cryptographique inclut une opération de compression de données entières. Le coprocesseur cryptographique 104 est en outre configuré pour effectuer des opérations de masquage. A titre d’exemple, l’opération de masquage intervient avant que le dispositif 100 transmette, par exemple par l’intermédiaire de l’interface 110, une donnée native, par exemple la clef aléatoire chiffrée, vers un autre dispositif. La donnée native est par exemple une donnée sensible et il n’est pas souhaitable que sa valeur soit par exemple connue par d’autre dispositifs que le dispositif 100. En particulier, il est important d’assurer une protection contre les attaques par canaux auxiliaires aux données dites sensibles manipulées par le coprocesseur cryptographique 104. L’opération de masquage d’une donnée native correspond à sa division en un nombre de parts (en anglais « shares »), étant un nombre entier. A titre d’exemple, est égal à 2. Dans un autre exemple, le nombre est au moins égal à 3. En particulier, les parts de données sont générées aléatoirement, de sorte que leur somme soit égale à la donnée native. En particulier, chaque valeur d’une part de donnée est indépendante de la valeur de la donnée native. Ainsi, les observations des valeurs de parts de données, par exemple lors d’une attaque par canaux auxiliaire, ne révèlent aucune information sur la valeur de la donnée native. Un masquage de type booléen utilise l’opération OU-exclusif, noté , pour diviser une valeur en valeurs aléatoires , telles que . Un masquage de type arithmétique utilise une opération d’addition modulo un nombre arbitraire . La valeur de la donnée et des parts sont telles que . Le type de masquage effectué est par exemple choisi en fonction des calculs devant être effectués sur une donnée native, conformément au schéma cryptographique implémenté. Les opérations de masquage sont stables par transformation linéaire, la linéarité étant entendue selon l’opération d’addition choisie dans le masquage. C’est à dire qu’un masquage de la donnée à laquelle est appliquée une transformation linéaire, correspond à l’application de cette même transformation linéaire à chaque part , . Cependant, les opérations de masquage ne sont pas stables par transformation non-linéaire. Les différents types de masquage, ainsi que leurs implémentations sont connues par la personne du métier. Le coprocesseur cryptographique 104 est en outre configuré pour effectuer des opérations de compressions, par exemple, sur des données chiffrées. Les opérations de compressions sont, par exemple, effectuées dans le but de réduire la taille de la donnée avant de, par exemple, la transmettre vers un autre dispositif. Cependant, les opérations de compressions usuelles correspondent à un calcul d’une valeur d’arrondi. Les opérations d’arrondis sont des opérations non-linéaires et ne sont par conséquent pas compatibles avec les opérations de masquage. En particulier, pour une opération de compression définie comme étant le calcul d’une valeur d’arrondi ou de troncature sur la base d’une valeur de donnée, la valeur compressée n’est pas égale à la somme des valeurs compressées de chaque part. Ainsi, lorsqu’un dispositif reçoit, du dispositif 100, les valeurs compressées , , il ne peut reconstruire la valeur compressée . A titre d’exemple, une opération de compression est telle que, pour une valeur de donnée , , où l’opération est la troncature vers la valeur entière égale ou immédiatement inférieure. La valeur est un nombre entier associé au schéma cryptographique utilisé. A titre d’exemple, la valeur du nombre est choisie en amont, par exemple par le fabriquant du coprocesseur cryptographique 104 ou plus généralement du dispositif 100. La valeur est un nombre entier correspondant à la plage, de la forme , attendue pour le résultat de l’opération de compression effectuée. A titre d’exemple, la valeur de l’entier est choisie en amont, par exemple par le fabriquant du coprocesseur cryptographique 104 ou plus généralement du dispositif 100. La valeur entière est un terme définissant l’opération de compression. En particulier, si est égal à 0, alors l’opération de compression correspond à une troncature et si est égal à l’opération de compression correspond à un arrondi. Selon un mode de réalisation, le coprocesseur cryptographique 104 est configuré pour réaliser des opérations de compressions, par exemple en exécutant les instructions 108, compatibles avec les opérations de masquage. Ainsi, la somme des valeurs compressées, par le coprocesseur cryptographique 104, de chaque part , , correspond à la valeur compressée de la donnée . La FIG. 2 est un schéma par bloc illustrant une opération de compression d’une donnée masquée, selon un mode de réalisation de la présente description. L’opération de compression est par exemple implémentée de manière logicielle. A titre d’exemple, les instructions 108 sont configurées pour être exécutées par le coprocesseur cryptographique 104 afin de générer, sur la base de parts , d’une donnée , un nombre de parts compressées et corrigées . Dans l’exemple illustré par la figure 2, le nombre de parts est égal à 2. A titre d’exemple, les parts , sont générées, par le coprocesseur cryptographique 104, suite à une opération de masquage, par exemple en utilisant un masquage de type arithmétique sur la donnée . Selon un mode de réalisation, pour chacune des parts , , une valeur d’arrondi ainsi qu’une valeur pseudo-fractionnaire sont calculées par le coprocesseur cryptographique 104. Les valeurs d’arrondi et les valeurs pseudo-fractionnaires sont par exemple calculées par application d’une fonction de séparation 200 (SPLIT). Selon un mode de réalisation, pour une part , , la fonction de séparation appliquée est une fonction telle que , où [Math 1] et [Math 2] et où l’opération est la troncature vers la valeur entière égale ou immédiatement inférieur. La valeur est le nombre entier associé au schéma cryptographique utilisé et correspond en particulier à la valeur utilisée pour le masquage arithmétique des parts . En particulier, la valeur est la même que celle définie en relation avec l’opération . De même, la valeur est la même que celle définie en relation avec l’opération . La valeur entière est un terme de troncature, associé à la part . Les termes de troncature sont tels que leur somme modulo est par exemple égale à la valeur , définie en relation avec l’opération . A titre d’exemple, dans le cas où et où , les termes et sont tels que et , dans un autre exemple, est une valeur paire et les termes et sont tels que , etc. Dans le cas général, où l’entier est supérieur ou égal à 2, un des termes de troncature est par exemple égal à et tous les autres sont nuls, dans un autre exemple, est une valeur divisible par et tous les termes sont égaux à , etc. De manière générale, n’importe quelles valeurs sont envisageables pour les termes , du moment que leur somme soit égale à la valeur . En particulier, lorsque la valeur est égale à 0, les termes sont, par exemple, tous nuls. Dans un autre exemple, leur somme modulo est égale à 0. Dans d’autres exemples, les termes , , sont générés aléatoirement, par exemple par le générateur de nombres aléatoires 112. A titre d’exemple, les termes sont générés à la volée, suite à chaque commande d’exécution des instructions 108. Ainsi, pour deux données et différentes, les termes de troncature associés aux parts et varient. Cette génération aléatoire des termes de troncature offre une protection supplémentaire contre les attaques par canaux auxiliaires. Les valeurs pseudo-fractionnaires , appartiennent chacune à l’ensemble . Selon un mode de réalisation, le coprocesseur cryptographique 104 est en outre configuré pour calculer valeurs de correction , , sur la base des valeurs pseudo-fractionnaires . A titre d’exemple, le calcul des valeurs de corrections est effectué par application d’une opération de correction 202 (CORRECT) sur les valeurs pseudo-fractionnaires. Selon un mode de réalisation, les valeurs de corrections , , sont des valeurs entières appartenant à l’ensemble et constituent des parts arithmétiques modulo d’un entier appartenant à l’ensemble . En d’autres termes, . En particulier, l’entier est égal à la valeur , lorsque la somme des valeurs pseudo-fractionnaires appartient à l’intervalle . A titre d’exemple, lorsque , une implémentation de la fonction de correction comprend le calcul d’un vecteur correspondant à la somme des valeurs pseudo-fractionnaires, diminuée de la valeur , sous masquage arithmétique modulo un nombre supérieur ou égal à . A titre d’exemple, le vecteur est égal à . Dans un autre exemple, le vecteur est égal à . Le calcul des valeurs de correction comprend en outre le calcul d’un vecteur de signe . Par exemple, le vecteur est égal au complémentaire du vecteur booléen , où l’opération correspond à la sélection du bit le plus significatif de chaque élément du vecteur fourni et où l’opération correspond à la conversion d’un masquage arithmétiques, modulo un nombre supérieur ou égale à , vers un masquage booléen. Les valeurs de correction sont ensuite obtenues par conversion du vecteur booléen vers un masquage arithmétique modulo . Autrement dit, un vecteur de correction , ayant pour composantes les valeurs de correction, est tel que , où l’opération est la conversion de valeurs booléennes vers arithmétiques. La personne du métier saura adapter l’implémentation de la fonction de correction dans le cas où est strictement supérieur à 2 à partir des indications fonctionnelles de la présente description, telles que les valeurs de corrections mentionnées ci-dessus. A titre d’exemple, une fois le vecteur de correction calculé, le coprocesseur cryptographique 104 est configuré pour supprimer les valeurs pseudo-fractionnaires , par exemple stockées dans une mémoire tampon du coprocesseur 104. Selon un mode de réalisation, le coprocesseur cryptographique 104 est en outre configuré pour calculer, pour tout , une part compressée corrigée en ajoutant (+) la valeur de correction à la valeur d’arrondi , l’addition étant considérée modulo . Les parts compressées corrigées , sont alors telles que leur somme modulo correspond à la donnée compressée, c’est à dire à . La FIG. 3 est un organigramme illustrant des étapes d’une procédé de compression de données masquées, selon un mode de réalisation de la présente description. Dans une étape 300 (GENERATE MASKED SECRET), une donnée sensible est, par exemple manipulée, par le coprocesseur cryptographique 104. A titre d’exemple, la donnée sensible est une variable intermédiaire d’un schéma cryptographique. A titre d’exemple, la donnée sensible est une valeur faisant suite à un re-chiffrement dans une étape de vérification d’intégrité et/ou d’authenticité d’une donnée. En particulier, la donnée sensible est une donnée masquée selon un masquage arithmétiques modulo . La donnée sensible comprend par exemple un nombre de parts . Dans un autre exemple, la donnée sensible est une donnée non masquée. Le coprocesseur cryptographique 104 est alors configuré pour appliquer un masquage arithmétique modulo à cette valeur, en générant, par exemple par l’intermédiaire du générateur de nombres aléatoires 112, nombres aléatoires entre 0 et . Le coprocesseur cryptographique 104 est ensuite configuré pour générer la part telle que . De manière générale, le coprocesseur cryptographique 104 est configuré pour générer parts de la donnée telles que . Dans une étape 301 (SPLIT), le coprocesseur cryptographique 104 est configuré pour appliquer l’opération de séparation 200 à chacune des parts , . Les valeurs d’arrondis et les valeurs pseudo-fractionnaires , , telles que décrites en relation avec la FIG. 2 sont alors obtenues. A titre d’exemple, le coprocesseur cryptographique 104 est configuré, en outre, pour stocker, par exemple dans une mémoire tampon, les valeurs d’arrondi et les valeurs pseudo-fractionnaires. Dans une étape 302 (CORRECT), le coprocesseur cryptographique 104 est configuré pour calculer les valeurs de correction , , en calculant par exemple le vecteur de correction , tel que décrit en relation avec la figure 2. A titre d’exemple, suite au calcul du vecteur , les valeurs pseudo-fractionnaires sont supprimées de la mémoire dans laquelle elles étaient stockées. Le coprocesseur cryptographique 104 est en outre configuré pour, lors de la réalisation de l’étape 302, générer les parts compressées corrigées , , en ajoutant à chaque valeur d’arrondi , la valeur de correction modulo . Dans une étape 303 (USE COMPRESSED SECRET), le coprocesseur cryptographique 104 est par exemple configuré pour utiliser les parts de données compressées corrigées , . A titre d’exemple, le coprocesseur cryptographique 104 est configuré pour utiliser les parts de données compressées corrigées dans une suite d’opérations comprises dans le schéma cryptographique afin de générer une donnée de sortie, par exemple chiffrée. A titre de variante, lorsque le schéma cryptographique est un schéma ML-KEM ou de Kyber, le coprocesseur cryptographique 104 est configuré pour comparer, dans une étape de décapsulation, les parts de données compressées corrigées avec une donnée chiffrée, par exemple transmise par un autre dispositif et de générer un signal de sortie indiquant le résultat de cette comparaison. Il serait également possible de transmettre les données compressées corrigées vers un autre dispositif, par exemple après chiffrage dans le cas de données sensibles. Dans un autre exemple, le coprocesseur cryptographique 104 est configuré pour sommer, modulo , les parts de données compressées corrigées afin de générer et fournir en sortie un résultat non masqué de la valeur compressée. La valeur compressée est par exemple ensuite utilisée dans une suite d’opérations comprises dans le schéma cryptographique afin de générer une donnée de sortie. Un avantage des modes de réalisation décrits est qu’ils permettent de compresser des données masquées, sans altérer la valeur de la donnée native. En particulier, les modes de réalisations décrits permettent la génération de parts de donnée compressées et corrigées dont la somme modulo une valeur correspond à la donnée compressée. La combinaison des opérations de masquages et de compressions a pour avantage d’apporter une protection supplémentaire contre les attaques par canaux auxiliaires. Un autre avantage des modes de réalisations décrits est que les opérations de séparation et de corrections décrites en relation avec la FIG. 2 sont compatibles avec différents schémas cryptographiques. Divers modes de réalisation et variantes ont été décrits. La personne du métier comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d’autres variantes apparaîtront à la personne du métier. En particulier, pour ce qui est du choix des termes de troncature, toute combinaison de valeurs positives, ou nulles, est envisageable, sous la condition que leur somme soit égale à la valeur , définie dans l’opération de compression . De même, le calcul du vecteur de correction peut prendre plusieurs formes, sous la condition de correspondre à un masquage arithmétique modulo de la valeur lorsque la somme des valeurs pseudo-fractionnaires appartient à l’intervalle . Enfin, la mise en œuvre pratique des modes de réalisation et variantes décrits est à la portée de la personne du métier à partir des indications fonctionnelles données ci-dessus. En particulier, pour ce qui est du schéma cryptographique utilisé. De plus, bien que des opérations d’encapsulation et de décapsulation aient été décrites, les opérations de séparations et de corrections décrites en relation avec la FIG. 2 s’appliquent dans tout contextes où il est souhaitable de protéger la valeur d’une donnée contre des attaques par canaux auxiliaires. A titre d’exemple, ces opérations s’appliquent également dans des opérations de couches d’un réseau de neurones, par exemple dans des opérations de sous-échantillonnages. Dans des applications non cryptographiques comme des calculs sécurisés sur des réseaux de neurones, il sera possible de remplacer le schéma cryptographique par un autre type d’algorithme numérique, et d’omettre le coprocesseur cryptographique, le masquage étant réalisé par exemple par un dispositif de traitement, tel que le processeur principal 102. Procédé comprenant : - le masquage, sur la base d’un algorithme numérique, par un dispositif de traitement (102, 104), d’une donnée sensible ( ), le masquage comprenant la division de la donnée sensible en un nombre de parts ( ), étant un nombre entier égal ou supérieur à 2, telles que leur somme arithmétique, modulo un entier associé à l’algorithme numérique, est égale à la valeur de la donnée sensible ; - l’application d’une première opération compression de chacune des parts de données, la première opération de compression comprenant : l’application d’une opération d’arrondi sur chacune des parts de données, résultant en valeurs d’arrondi entières ( ) ; et l’application d’une opération pseudo-fractionnaire, sur chacune des parts de données, résultant en valeurs pseudo-fractionnaires ( ) ; et - la génération de parts de donnée compressées corrigées ( ) en appliquant une opération de correction sur chacune des valeurs d’arrondi, sur la base des valeurs pseudo-fractionnaires. Procédé selon la revendication 1, dans lequel la somme arithmétique, modulo un entier associé à l’algorithme numérique, entre les parts ( ) correspond à la donnée sensible ( ) compressée, sur la base d’une deuxième opération de compression ( , associée à l’algorithme numérique, la deuxième opération de compression étant basée sur un calcul d’une valeur d’arrondi ou de troncature de forme , où la valeur est un nombre entier associé à l’algorithme numérique, valeur est un nombre entier correspondant à une plage de la forme attendue pour le résultat de la deuxième opération de compression et la valeur entière est un terme définissant l’opération de compression, l’entier étant, par exemple : - égal à 0 lorsque la deuxième opération de compression associée à l’algorithme numérique est une opération de troncature ; - égal à lorsque la deuxième opération de compression associée à l’algorithme numérique est une opération d’arrondi. Procédé selon la revendication 2, dans lequel : - l’opération d’arrondi, sur une part de la donnée sensible, correspond au calcul de l’entier , où est un terme de troncature associé à la part et est l’opération de troncature vers l’entier égal ou immédiatement inférieur ; et - l’opération pseudo-fractionnaire, sur la part correspond au calcul de la valeur . Procédé selon la revendication 3, dans lequel la somme des termes de troncature ( ) est égale à l’entier . Procédé selon la revendication 4, dans lequel les termes de troncature ( ) sont générés par un générateur de nombres aléatoires (112) du premier dispositif (100). Procédé selon l’une quelconque des revendications 2 à 5, dans lequel l’opération de correction (202) comprend : - la détermination d’un entier tel que soit égal à la valeur , lorsque la somme des valeurs pseudo-fractionnaires appartient à l’intervalle ; - la génération d’un vecteur de correction ( ), de taille , telles que la somme arithmétique modulo des composantes du vecteur de correction soit égale à l’entier c ; et - pour chaque indice , l’ajout de la i-ème composante ( ) du vecteur de correction à la valeur d’arrondi de la i-ème part ( ). Procédé selon la revendication 6, dans lequel le dispositif de traitement (102, 104) est configuré pour commander l’effacement des valeurs pseudo-fractionnaires suite au calcul du vecteur de correction. Procédé selon l’une quelconque des revendications 1 à 7, dans lequel l’algorithme numérique est un schéma cryptographique et le dispositif de traitement est un processeur cryptographique ou un coprocesseur cryptographique. Procédé selon la revendication 8, dans lequel le schéma cryptographique est un schéma d’encapsulation basé sur un réseau. Procédé selon la revendication 9, dans lequel le réseau est un réseau de type ML-KEM, un réseau de type ML-DSA, un réseau de type Kyber ou un réseau de type NewHope. Procédé selon l’une quelconque des revendications 1 à 10, dans lequel le nombre est égal à 2. Procédé selon l’une quelconque des revendications 1 à 11, comprenant en outre le traitement, par le dispositif de traitement (102, 104), des parts de donnée compressées corrigées ( ), le traitement faisant par exemple partie d’une opération de décapsulation. Dispositif (100) comprenant un dispositif de traitement (102, 104) configuré pour : - appliquer un masquage, sur la base d’un algorithme numérique, sur une donnée sensible ( ), le masquage comprenant la division de la donnée sensible en un nombre de parts ( ), étant un nombre entier égal ou supérieur à 2, telles que leur somme arithmétique, modulo un entier associé à l’algorithme numérique, est égale à la valeur de la donnée sensible ; - appliquer une opération de compression sur chacune des parts de données, l’opération de compression comprenant : l’application d’une opération d’arrondi sur chacune des parts de données, résultant en valeurs d’arrondi entières ( ) ; et l’application d’une opération pseudo-fractionnaire, sur chacune des parts de données, résultant en valeurs pseudo-fractionnaires ( ) ; et - générer parts de donnée compressées corrigées ( ) en appliquant une opération de correction (202) sur chacune des valeurs d’arrondi, sur la base des valeurs pseudo-fractionnaires. Dispositif selon la revendication 13, dans lequel le dispositif de traitement (102, 104) est configuré pour appliquer l’opération de correction en faisant : - la détermination d’un entier tel que soit égal à la valeur , lorsque la somme des valeurs pseudo-fractionnaires appartient à l’intervalle . ; - la génération d’un vecteur de correction ( ), de taille n, telles que la somme arithmétique modulo p des n composantes du vecteur de correction soit égale à l’entier c ; et - pour chaque indice , l’ajout de i-ème composante ( ) du vecteur de correction à la valeur d’arrondi de la i-ème part ( ). Dispositif selon la revendication 13 ou 14, dans lequel le dispositif de traitement (102, 104) est configuré pour commander l’effacement des valeurs pseudo-fractionnaires suite au calcul du vecteur de correction. Dispositif selon l’une quelconque des revendications 13 à 15, dans lequel le dispositif de traitement (102, 104) est en outre configuré pour traiter les parts de donnée compressées corrigées ( ), par exemple dans une opération de décapsulation. Dispositif selon l’une quelconque des revendications 13 à 16, dans lequel l’algorithme numérique est un schéma cryptographique et le dispositif de traitement est un processeur cryptographique ou un coprocesseur cryptographique.