Brevet FR2997772A1 — publié le 20140509

Procédé de comparaison de données, produit programme d'ordinateur et dispositif correspondants 1. DOMAINE DE L'INVENTION Le domaine de l'invention est celui de la cryptographie. Plus précisément, l'invention concerne une technique de comparaison de valeurs stockées dans des dispositifs de stockage d'un composant électronique technique qui soit résistante aux attaques par canaux cachés. L'invention a de nombreuses applications, telles que par exemple dans le domaine des cartes à puces où les différents acteurs du marché cherchent à renforcer le niveau de sécurité offert aux utilisateurs finaux. Plus généralement, elle peut s'appliquer dans tous les cas où la notion de protection contre des attaques par canaux cachés fait sens. 2. ARRIÈRE-PLAN TECHNOLOGIQUE Les dispositifs électroniques, sont, de par leurs natures, sensibles aux attaques par canaux cachés. Le document intitulé « Power Analysis Attacks, revealing the secrets of smart cards » de S. Mangard et al., publié par l'éditeur Springer Verlag présente un aperçu relativement complet des attaques par canaux cachés, ainsi que des techniques de protection qu'il est possible de mettre en oeuvre pour empêcher la mise en oeuvre de telles attaques. Cependant, selon les opérations ou fonctions devant être exécutées par un dispositif électronique, il est parfois difficile d'appliquer une technique de protection optimale en appliquant les solutions connues de l'homme du métier. Par exemple, lorsqu'on utilise, dans un procédé cryptographique, des techniques de masquage consistant à protéger des données sensibles via l'utilisation d'un masque (soit via une opération booléenne, soit via une opération arithmétique), il s'avère nécessaire de comparer la valeur d'une donnée masquée stockée dans un dispositif de stockage [par exemple un registre, une zone mémoire pouvant être une portion de RAM (pour « Random Access Memory »), de ROM (pour « Read Only Memory »), d'EEPROM (pour « Electrically-Erasable Programmable Read-Only Memory ») ou encore de FLASH] avec la valeur du masque ayant été utilisé pour déterminer la donnée masquée stockée, elle même stockée dans un autre dispositif de stockage. Or, il n'est pas possible de réaliser une opération consistant simplement à soustraire ces deux valeurs, afin de détecter ou non la présence d'une retenue dans un dispositif de stockage, car une telle opération serait sensible à une attaque par canaux cachés. Ceci est dû au fait que le résultat d'une telle opération de soustraction est dépendant d'une donnée sensible. Dès lors, lorsque l'homme du métier souhaite comparer ces deux valeurs de manière sécurisée, il utilise une technique consistant à déterminer et à stocker des tables de comparaisons pour des ensembles de données. Ainsi, la comparaison entre les deux valeurs précitées revient à lire de manière sécurisé dans une table la valeur d'un bit (1 ou 0) déterminant le résultat de la comparaison. Un inconvénient de la solution connue est que celle-ci nécessite de stocker en mémoire des tables pouvant atteindre des tailles (en octet) importantes lorsque la taille de la donnée sensible augmente. Par exemple, pour une donnée sensible de 4 bits, il est nécessaire de stocker une table de 32 octets. Pour une donnée sensible de 8 bits, il est nécessaire de stocker une table de 8,32 kilo-octets. Et, pour une donnée sensible de 16 bits, il est nécessaire de stocker une table de 536 Méga-octets. De plus, un autre inconvénient de la solution connue est que celle-ci, lorsqu'elle est mise en oeuvre à la volée, nécessite un temps de calcul important. L'homme du métier cherchant une solution alternative, aurait pu tenter de sécuriser une opération de soustraction en utilisant la méthode des compléments, consistant à remplacer l'opération de soustraction de deux nombres A et B par une opération d'addition consistant à réaliser l'addition suivante : A + D + 1 où D est le complémentaire de la représentation binaire du nombre B, et à détecter l'occurrence d'une retenue non nulle. Cependant, une telle technique est elle aussi sensible aux attaques par canaux cachés. 3. EXPOSÉ DE L'INVENTION Dans un mode de réalisation particulier de l'invention, il est proposé un procédé de comparaison du contenu de deux registres d'un dispositif électronique, lesdits deux registres comprenant respectivement une première donnée physique et une deuxième donnée physique, chacune desdites première et deuxième données physiques pouvant être associée à une représentation binaire. Un tel procédé est remarquable en ce qu'il comprend : - une étape d'obtention d'un résultat d'une opération de ou exclusif entre des représentations binaires desdites première et deuxième données physiques ; - une étape de détection d'un indice précisant une position du bit de poids fort d'une représentation binaire dudit résultat; - une étape de détermination d'une valeur d'un bit, positionné audit indice, de ladite représentation binaire de l'une quelconque desdites première et deuxième donnée physique ou d'une représentation binaire complémentée de l'une quelconque desdites première et deuxième donnée physique, ladite valeur étant une information de comparaison permettant de déterminer une hiérarchie du contenu desdits deux registres par rapport à une relation d'ordre. Le principe général de l'invention consiste donc à permettre de réaliser une comparaison de valeurs stockées dans des dispositifs de stockage, sans utiliser de tables, ni d'opération de soustraction, et qui soit, de par la nature des opérations utilisées et des données manipulées résistante aux attaques par canaux cachés (i.e que l'observation de l'évolution de paramètres physiques (consommation de courant, émanation électromagnétique, etc...), provenant de l'exécution d'un tel procédé, et le traitement de données obtenues suite à une telle observation, ne permettent pas l'obtention d'information relative à des données sensibles), ou qui rendent la mise en oeuvre de telles attaques plus difficile. Ainsi, un tel procédé de comparaison peut être mis en oeuvre dans des dispositifs électronique comprenant peu de ressources mémoires, contrairement aux techniques de l'art antérieur. Selon un aspect particulier, un tel procédé est remarquable en ce que, lorsque ladite valeur dudit bit de ladite représentation binaire de ladite deuxième donnée physique est égale à un, ou lorsque ladite valeur dudit bit de ladite représentation binaire complémentée de ladite première donnée physique est égale à un, ladite information de comparaison indique que ladite première donnée physique est inférieure, en valeur, à ladite deuxième donnée physique. Selon un aspect particulier, un tel procédé est remarquable en ce que, lorsque ladite valeur dudit bit de ladite représentation binaire de ladite première donnée physique est égale à un, ou lorsque ladite valeur dudit bit de ladite représentation binaire complémentée de ladite deuxième donnée physique est égale à un, ladite information de comparaison indique que ladite première donnée physique est supérieure, en valeur, à ladite deuxième donnée physique. Selon un aspect particulier, un tel procédé est remarquable en ce que ladite étape de détection d'un indice est exécutée de manière concomitante avec ladite étape d'obtention dudit résultat d'une opération de ou exclusif. Ainsi, en réalisant de manière simultanée l'étape de détection et l'étape d'obtention, on accélère le temps d'exécution du procédé, tout en reforcant la sécurité de celui-ci en imbriquant des opérations de chacune des étapes. Selon un aspect particulier, un tel procédé est remarquable en ce que ladite étape d'obtention dudit résultat d'une opération de ou exclusif est réalisée par un traitement itératif bit à bit, selon un sens de parcours du bit de poids fort au bit de poids faible. Ainsi, en choisissant un tel sens de parcours pour le traitement itératif, on réduit le nombre d'opérations effectuées pour réaliser le procédé. Selon un aspect particulier, le procédé de comparaison est remarquable en ce que ladite étape d'obtention dudit résultat d'une opération de ou exclusif est réalisée par un traitement itératif bit à bit, selon un sens de parcours du bit de poids faible au bit de poids fort. Selon un aspect particulier, un tel procédé est remarquable en ce que lorsque ledit indice est détecté par ladite étape de détection, ladite étape d'obtention dudit résultat comprend une étape de modification des résultats pour des bits positionnés à des indices postérieurs audit indice, selon ledit sens de parcours, et ce, conformément à ladite étape de détection. Ainsi, en ne réalisant qu'une partie de l'obtention du résultat de l'opération de ou exclusif, comprenant une information nécessaire à la détermination de l'indice susmentionné, la vitesse d'exécution du procédé de comparaison s'en trouve accélérée. Selon un aspect particulier, un tel procédé est remarquable en ce qu'il comprend une étape d'obtention d'un bit aléatoire, ledit bit aléatoire étant utilisé lors de l'exécution desdites étapes de détection et d'obtention. Ainsi, en utilisant un bit aléatoire, les différentes étapes du procédé sont modifiées régulièrement. Un attaquant doit donc acquérir plus de données pour essayer de mettre en oeuvre une attaque par canaux cachés. Selon un aspect particulier, un tel procédé est remarquable en ce que lesdits deux registres ont une taille identique, chaque registre permettant de stocker une donnée physique pouvant être associée à une représentation binaire comprenant k- bits, avec k un entier naturel supérieur ou égal à un. Selon un aspect particulier, un tel procédé est remarquable en ce que ladite première donnée physique correspondant au résultat d'une opération arithmétique entre une donnée utile et un masque, et ladite deuxième donnée physique correspondant audit masque. Ainsi, lorsque dans le traitement cryptographique, on a une donnée masquée de manière arithmétique, et que l'on cherche à déterminer si la valeur de la donnée masquée est plus grande ou plus petite que la valeur du masque utilisée, un tel procédé est particulièrement efficace. Selon un aspect particulier, un tel procédé est remarquable en ce que ladite opération arithmétique est une opération d'addition modulaire. Selon un aspect particulier, un tel procédé est remarquable en ce que ladite opération arithmétique est une opération de soustraction modulaire. Le procédé de comparaison précité peut être mis en oeuvre dans un procédé de traitement cryptographique de conversion de masque tel que décrit dans l'article « Switching Blindings with a view towards IDEA » de J. Pulkus et al., publié dans les annales de la conférence CHES 2004. Ainsi, un tel procédé permet de s'affranchir de la réalisation d'une étape de détermination de tables comme mentionnée précédemment. Notamment, suite à la réception de données d'entrée par des moyens de réception compris dans le dispositif électronique, un tel procédé de comparaison peut être mise en oeuvre lors de la réalisation d'un procédé de traitement cryptographique (par exemple un algorithme cryptographique symétrique tel que le DES ou l'AES) visant à chiffrer les données d'entrée, et dans lequel une technique de masquage de données est utilisée. En sortie, le dispositif électronique transmet, via des moyens d'émission des données de sortie correspondant, par exemple, aux données chiffrées obtenues via la réalisation du procédé de traitement cryptographique et du procédé de comparaison précité. Dans un autre mode de réalisation de l'invention, il est proposé un produit programme d'ordinateur qui comprend des instructions de code de programme pour la mise en oeuvre du procédé précité (dans l'un quelconque de ses différents modes de réalisation), lorsque ledit programme est exécuté sur un ordinateur. Dans un autre mode de réalisation de l'invention, il est proposé un composant électronique comportant des moyens adaptés à la mise en oeuvre du procédé précité (dans l'un quelconque de ses différents modes de réalisation). Plus précisément, selon une implémentation préférée, les différentes étapes du procédé selon l'invention sont mises en oeuvre par un logiciel ou programme d'ordinateur, ce logiciel comprenant des instructions logicielles destinées à être exécutées par un processeur de données d'un module relais selon l'invention et étant conçu pour commander l'exécution des différentes étapes de ce procédé. En conséquence, l'invention vise aussi un programme, susceptible d'être exécuté par un ordinateur ou par un processeur de données, ce programme comportant des instructions pour commander l'exécution des étapes d'un procédé tel que mentionné ci-dessus. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. L'invention vise aussi un support d'informations lisible par un processeur de données, et comportant des instructions d'un programme tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy disc) ou un disque dur. D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. Selon un mode de réalisation, l'invention est mise en oeuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, le terme "module" peut correspondre dans ce document aussi bien à un composant logiciel, qu'à un composant matériel ou à un ensemble de composants matériels et logiciels. Un composant logiciel correspond à un ou plusieurs programmes d'ordinateur, un ou plusieurs sous-programmes d'un programme, ou de manière plus générale à tout élément d'un programme ou d'un logiciel apte à mettre en oeuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit ci-dessous pour le module concerné. Un tel composant logiciel est exécuté par un processeur de données d'une entité physique (terminal, serveur, etc) et est susceptible d'accéder aux ressources matérielles de cette entité physique (mémoires, supports d'enregistrement, bus de communication, cartes électroniques d'entrées/sorties, interfaces utilisateur, etc). De la même manière, un composant matériel correspond à tout élément d'un ensemble matériel (ou hardware) apte à mettre en oeuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit ci-dessous pour le module concerné. Il peut s'agir d'un composant matériel programmable ou avec processeur intégré pour l'exécution de logiciel, par exemple un circuit intégré, une carte à puce, une carte à mémoire, une carte électronique pour l'exécution d'un micrologiciel (firmware), un élément de sécurité (ou « secure element » en anglais) utilisé dans le contexte de communication en champ proche (pour « Near Field Communication » en anglais), etc. Dans un autre mode de réalisation de l'invention, il est proposé un dispositif électronique comprenant des moyens de comparaison du contenu de deux registres, lesdits deux registres étant compris dans ledit dispositif électronique et comprenant respectivement une première donnée physique et une deuxième donnée physique, chacune desdites première et deuxième données physiques pouvant être associée à une représentation binaire. Un tel dispositif électronique est remarquable en ce que les moyens de comparaison comprennent : - des moyens d'obtention d'un résultat d'une opération de ou exclusif entre des représentations binaires desdites première et deuxième données physiques ; - des moyens de détection d'un indice précisant une position du bit de poids fort d'une représentation binaire dudit résultat; - des moyens de détermination d'une valeur d'un bit, positionné audit indice, de ladite représentation binaire de l'une quelconque desdites première et deuxième donnée physique ou d'une représentation binaire complémentée de l'une quelconque desdites première et deuxième donnée physique, ladite valeur étant une information de comparaison permettant de déterminer une hiérarchie du contenu desdits deux registres par rapport à une relation d'ordre. 4. LISTE DES FIGURES D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante, donnée à titre d'exemple indicatif et non limitatif, et des dessins annexés, dans lesquels : - la figure 1 présente, sous la forme d'un organigramme, les différentes étapes d'un procédé de comparaison selon un mode de réalisation de l'invention; - la figure 2 présente, sous la forme d'un organigramme, les différentes étapes d'un procédé de comparaison selon un autre mode de réalisation de l'invention; - la figure 3 présente, sous la forme d'un organigramme, les différentes étapes d'un procédé de comparaison selon un autre mode de réalisation de l'invention; - la figure 4 présente, sous la forme d'un organigramme, les différentes étapes d'un procédé de comparaison selon un autre mode de réalisation de l'invention; La figure 5(a) représente, schématiquement, un dispositif de traitement de données dans lequel la présente invention est mise en oeuvre; La figure 5(b) représente une carte à microcircuit qui constitue un exemple de dispositif de traitement de données conforme à l'invention tel que représenté à la figure 5(a). 5. DESCRIPTION DÉTAILLÉE Sur toutes les figures du présent document, les éléments et étapes identiques sont désignés par une même référence numérique. La figure 1 présente, sous la forme d'un organigramme, les différentes étapes d'un procédé de comparaison selon un mode de réalisation de l'invention. Plus précisément, au cours d'un traitement cryptographique exécuté au sein d'un dispositif électronique, il peut être nécessaire de devoir comparer le contenu de registres, comprenant des données physiques, chacune des données physiques étant associée à une représentation binaire, et donc à un nombre. Le but d'une telle comparaison étant de déterminer une hiérarchie entre de tels nombres (i.e on cherche à déterminer si le nombre « stocké » (par abus de langage) dans un premier registre est plus grand, plus petit ou égal au nombre « stocké » dans un deuxième registre). Ainsi, selon un mode de réalisation de l'invention, lorsque deux registres R1 et R2, compris dans un dispositif électronique, stockent respectivement un premier nombre A et un deuxième nombre M, chacun d'une taille de k bits (de par la taille identique des registres), le procédé de comparaison comprend une étape 101 d'obtention d'un résultat d'une opération de ou exclusif entre les représentations binaires du premier et du deuxième nombre. Ainsi, l'étape 101 permet d'obtenir le nombre U tel que U = A 0M, où U = Uk-1 --- -U1/i02 en représentation binaire, avec ui = 1 ou 0, pour i E [[k - 1..0]] . Ainsi, la représentation en base 10 du nombre U correspond à la valeur suivante : U = ui2i. Classiquement, on dit que les S bits de poids forts d'une représentation binaire sont les S bits situés à gauche (i.e en l'occurrence, les bits uk_1,(S-1)- L'étape 102 correspond à une étape de détection d'un indice w E [[k - 1..01 précisant une position du bit de poids fort (non nul) de la représentation binaire du nombre U obtenu lors de la réalisation de l'étape 101. Ainsi, l'indice w précise la position du premier bit de poids fort non nul, i.e le premier bit non nul en partant de la gauche de la représentation binaire d'un nombre (ainsi u, = 1). Ainsi, si k = 8, et que le nombre U = 010110112 =u7 ....u1u02 , l'indice w est égal à 6. Il convient de noter que lorsque les nombres A et M sont égaux (étape 103), un tel indice w n'existe pas (puisque A 0M correspond au nombre zéro). Il convient de noter que la détection du premier bit de poids fort non nul, peut être réalisée en effectuant un traitement itératif sur les bits de la représentation binaire de U, consistant à parcourir la représentation binaire de U, soit en partant du bit le plus à gauche de la représentation binaire de U en allant vers le bit le plus à droite, soit en partant du bit le plus à droite vers le bit le plus à gauche. Il convient de noter que suivant l'architecture du dispositif électronique, un registre stocke la représentation binaire d'un nombre U (et de tous les autres nombres) soit dans le sens suivant uk_i .... /Liu°, soit dans ce sens : u0 ....uiuk_i . Par la suite, nous supposerons qu'un registre stocke la représentation binaire selon le sens suivant uk_i .... /Liu°. Une fois qu'un tel indice w est détecté par l'étape 102, une étape de détermination d'une valeur d'un bit, positionné audit indice, de ladite représentation binaire de la deuxième donnée physique (stockée dans le registre R2) ou de ladite représentation binaire complémentée de ladite première donnée physique (ladite première donnée physique étant stockée dans le registre R1) permet de comparer les nombres A et M. En effet, il suffit soit de déterminer, dans une étape 104, la valeur du bit, à l'indice w, du nombre stocké dans le deuxième registre (à savoir la valeur du bit m, , lorsque M = mk_i ....m1nt02 , soit de déterminer la valeur du bit, à l'indice w, du complémentaire du nombre stocké dans le premier registre (à savoir la valeur complémentaire du bit aw , lorsque A = ak-1 --- - aicto2 ), et de comparer l'une quelconque de ces valeurs (qui sont identiques) avec le nombre 1 dans une étape 105. S'il y a égalité avec le nombre 1, cela signifie que le nombre A est inférieur au nombre M (i.e A M), information transmise par une étape 106. Selon une variante, non représentée, on détermine soit la valeur du bit, à l'indice w, du nombre stocké dans le premier registre (à savoir la valeur du bit av' , lorsque A= ak-1 --- - ct1ct02 ), soit la valeur du bit, à l'indice w, du complémentaire du nombre stocké dans le deuxième registre (à savoir la valeur complémentaire du bit Mv', lorsque M = mk_i ....m1nt02 ), et on compare l'une quelconque de ces valeurs avec le nombre 1. S'ils sont égaux, cela signifie que le nombre A est supérieur au nombre M (i.e A>M). Si le résultat provenant de l'étape de détermination correspond au nombre 0, cela signifie que le nombre A est inférieur au nombre M (i.e A Dans une étape 301, on procède à l'obtention d'un bit aléatoire qui est stocké dans un registre b du dispositif électronique. On détermine ensuite, en fonction de la valeur du bit aléatoire 6, l'affectation des nombres A et B, dans deux registres Co et C1. Plus précisément, dans une étape 302, on affecte le nombre A au registre C8. Puis dans une étape 303, on affecte le nombre M, au registre C. Dans une étape 304, on initialise à zéro un des deux registres D1 et Do compris dans le dispositif électronique, en fonction de la valeur du bit aléatoire 6. Plus précisément, on initialise à zéro le registre D. Un tel registre permettra de stocker une information relative à l'indice w mentionné précédemment dans la description. Dans une étape 305, on affecte à une variable j , stockée dans un registre, une valeur correspondant à k-1, où le nombre k correspond au nombre de bits de la représentation de A et M. Ensuite, dans une étape 306, on réalise une étape de détection d'un indice, telle que décrite précédemment, de manière concomitante avec une étape d'obtention du résultat d'une opération de ou exclusif, par un traitement bit à bit. Ainsi, l'étape 306 vise à déterminer la valeur du bit résultant de l'opération suivante : (c0); eb e(c1)1, où la notation (C0)1 correspond au bit d'indice j de la représentation binaire de la donnée stockée dans le registre Co, et la notation (C1)1 correspond au bit d'indice] de la représentation binaire de la donnée stockée dans le registre C1. La valeur de ce bit est stockée dans une variable en mémoire notée index. L'étape 307 consiste à affecter la valeur de la variable], dans le registre D index (i.e soit dans le registre Do, soit dans le registre D1 en fonction de la valeur du résultat de l'étape 306). Ainsi, dès qu'une différence dans la représentation binaire des nombres A et M est présente, cela signifie que l'indice w mentionné précédemment est détecté. En effet, du fait que l'on ait (C0)1 9 b eD(C1)1 = b lorsque les bits ai et mj sont égaux, ou (C0)1 9 b 0(C1)1 = E lorsque les bits ai et mj sont différents, on a le registre D8 qui stocke la valeur de la variable j lorsque les bits ai et mj sont égaux, et le registre /3., qui stocke la valeur de la variable j lorsque les bits ai et mj sont différents. L'étape 308 consiste à affecter au registre C8 le contenu du registre Cind'. Ainsi, en réalisant une telle affectation, on cherche à modifier la détermination de U, une fois l'indice d'intérêt w déterminé et stocké dans le registre D. En effet, suite à la détection de l'indice w, on ne réalise plus la détermination des autres bits de la représentation binaire de U. Ceci est du au fait que l'on affecte au registre C8 la valeur du registre C8 lorsque les bits ai et mj sont égaux, et que l'on affecte au registre C8 la valeur du registre C lorsque les bits ai et mj sont différents. L'étape 309 vise à comparer la valeur de la variable] avec la valeur nulle (i.e avec zéro). Si les valeurs comparées ne sont pas égales, alors le procédé exécute l'étape 310 et suivantes. En revanche, si les valeurs comparées sont égales, alors l'étape 311 est exécutée. L'étape 310 consiste à décrémenter de un la valeur de la variable j. L'étape 311 consiste, dans un mode de réalisation, à déterminer la valeur résultant de l'opération M & 2/).7, et à comparer si cette valeur est différente ou non de zéro. Si le résultat est différent de zéro, alors, on peut conclure que A M. Ainsi, un tel procédé de comparaison a une complexité (en nombre d'opérations) relativement faible au vu des techniques de l'art antérieur. En effet, le procédé de comparaison comprend 2.k opérations. Dans un autre mode de réalisation, l'étape 311 peut être modifiée en fonction des enseignements de la description de la figure 1 et de la figure 2. La figure 4 présente, sous la forme d'un organigramme, les différentes étapes d'un procédé de comparaison selon un autre mode de réalisation de l'invention. Plus précisément, un tel procédé de comparaison vise à comparer les nombres A et M stockés dans les registres R1 et R2, de k bits chacun. Ainsi, un tel procédé permet de comparer les nombres A = ak-1 --- - a1a02 et M = m1%2 qui sont stockés dans des registres, et ce, sans utiliser une opération de soustraction. Dans une étape 401, on procède à l'obtention d'un bit aléatoire qui est stocké dans un registre b du dispositif électronique. Puis, dans une étape 402, on procède à la détermination de la valeur -6 qui est stockée dans un registre B du dispositif électronique. Si le bit est égal à zéro, alors le registre B contient lui aussi la valeur zéro. Si le bit est égal à un, alors tous les bits du registre B sont à un (par exemple, si le registre B contient 8 bits, alors la valeur contenue dans le registre B est OxFF (en hexadécimal)). On détermine ensuite, en fonction de la valeur du bit aléatoire 6, l'affectation des nombres A et B, dans deux registres Co et C1. Plus précisément, dans une étape 403, on affecte le nombre A au registre C8. Puis dans une étape 404, on affecte le nombre M, au registre C. Dans une étape 405, on initialise à zéro un des deux registres D1 et Do, en fonction de la valeur du bit aléatoire 6. Plus précisément, on initialise à zéro le registre D. Dans une étape 406, on affecte à une variable j , stockée dans un registre, une valeur correspondant à 2k. Puis dans une étape 407, on affecte à un registre T du dispositif électronique de k-bits , la valeur mettant tous les bits de ce registre à un. Puis dans une étape 408, on divise par 2 la valeur de la variable j (via une opération de décalage binaire vers la droite). Ensuite, dans une étape 409, on réalise une étape de détection d'un indice, telle que décrite précédemment, de manière concomitante avec une étape d'obtention du résultat d'une opération de ou exclusif, par un traitement bit à bit. Ainsi, l'étape 409 vise à déterminer si l'opération suivante : ((come B + T génère une retenue. La valeur de cette retenue est stockée dans une variable en mémoire notée index. L'étape 410 consiste à affecter la valeur de la variable], dans le registre Dindex (i.e soit dans le registre Do, soit dans le registre D1 en fonction de la détection ou non d'une retenue suite à la réalisation de l'étape 409). L'étape 411 consiste à affecter au registre C8 le contenu du registre Cind'. L'étape 412 vise à comparer la valeur de la variable] avec la valeur nulle (i.e avec zéro). Si les valeurs comparées ne sont pas égales, alors le procédé exécute l'étape 408 et suivantes. En revanche, si les valeurs comparées sont égales, alors l'étape 413 est exécutée. L'étape 413 consiste, dans un mode de réalisation, à déterminer la valeur résultant de l'opération R2 & 13.,, et à comparer si cette valeur est différente ou non de zéro. Si le résultat est différent de zéro, alors, on peut conclure que A M. Ainsi, un tel procédé de comparaison a une complexité (en nombre d'opérations) relativement faible au vu des techniques de l'art antérieur. En effet, le procédé de comparaison comprend k rotations, 2.k opérations de ou logique, et 2.k + / opérations de et logique. Dans un autre mode de réalisation, l'étape 413 peut être modifiées en fonction des enseignements de la description de la figure 1 et de la figure 2. Enfin, dans un autre mode de réalisation de l'invention, la détection d'un indice w est réalisée non plus en initiant le procédé en partant des bits positionnés les plus à gauche des représentations binaires (comme effectué dans les techniques décrites en lien avec les figures 3 et 4), mais en initiant le procédé en partant des bits positionnés les plus à droite des représentations binaires. La figure 5(a) représente, schématiquement, un dispositif de traitement de données 540 dans lequel la présente invention est mise en oeuvre. Ce dispositif 540 comprend un microprocesseur 510, auquel est associée d'une part une mémoire vive 560, par exemple au moyen d'un bus 570, et d'autre part une mémoire non volatile 520 (par exemple du type EEPROM), par exemple à travers un bus 550. Le dispositif de traitement de données 540, et précisément le microprocesseur 510 qu'il incorpore, peuvent échanger des données avec des dispositifs extérieurs au moyen d'une interface de communication 530. On a schématiquement représenté sur la figure 5(a) la transmission d'une donnée d'entrée X reçue d'un dispositif extérieur (non représenté) et transmise de l'interface de communication 530 au microprocesseur 510. De manière similaire, on a représenté la transmission d'une donnée de sortie Y du microprocesseur 510 vers l'interface de communication 530 à destination d'un dispositif extérieur. Cette donnée de sortie Y est issue d'un traitement de données par le microprocesseur 510, généralement sur la donnée ou une partie de la donnée d'entrée X à l'aide d'une donnée secrète 580 interne au système. Le traitement de données ainsi réalisé peut comprendre une exécution du procédé de comparaison selon la présente invention. Les données d'entrée X sont par exemple des commandes APDU, et les données de sortie Y peuvent être des réponses APDU, pouvant comprendre une donnée chiffrée, une signature, un nombre aléatoire, etc issue du traitement de données susmentionné. Bien que, pour l'illustration, les données d'entrée et les données de sortie figurent sur deux flèches différentes, les moyens physiques qui permettent la communication entre le microprocesseur 510 et l'interface 530 pourront être réalisés par des moyens uniques, par exemple un port de communication série ou un bus. Le microprocesseur 510 est apte à exécuter un logiciel (ou programme d'ordinateur) qui permet au dispositif de traitement de données 540 d'exécuter un procédé conforme à l'invention dont des exemples sont donnés en regard des figures 3 et 4. Ce procédé est par exemple exécuté par 540 sur réception des données d'entrée X. Les données du procédé selon l'invention peuvent être obtenus à partir des données d'entrée ou, pour certains paramètres comme une liste de nombre premiers à partir de la mémoire non volatile 520. Les données de sorties sont par exemple obtenues à partir du résultat du procédé selon l'invention. Le logiciel est composé d'une série d'instructions de commande du microprocesseur 510 qui sont par exemple stockées dans la mémoire 520. Dans une variante, l'ensemble microprocesseur 510 - mémoire non-volatile 520 - mémoire vive 560 peut être remplacé par un circuit à application spécifique qui comprend alors des moyens de mise en oeuvre des différentes étapes du procédé de traitement de données. Plus généralement, le dispositif de traitement est un circuit intégré. La figure 5(b) représente une carte à microcircuit qui constitue un exemple de dispositif de traitement de données conforme à l'invention tel que représenté à la figure 5(a). L'interface de communication 530 est dans ce cas réalisée au moyen des contacts de la carte à microcircuit ou bien d'une antenne logée dans le corps de carte. La carte à microcircuit incorpore un microprocesseur 510, une mémoire vive 560 et une mémoire non volatile 520 comme cela est représenté sur la figure 5(a). Cette carte à microcircuit est par exemple conforme à la norme ISO 7816 et munie d'un microcontrôleur sécurisé qui regroupe le microprocesseur (ou CPU) 520 et la mémoire vive 560. Les données d'entrée X sont par exemple des commandes APDU, et les données de sortie Y des réponses APDU. Dans une variante, le dispositif de traitement de données peut être une clé USB, un document ou un support d'informations papier comportant dans l'une de ses feuilles un microcircuit associé à des moyens de communication sans contact. Il s'agit de manière préférée d'une entité électronique portable ou de poche. Le dispositif est par exemple sécurisé. Par exemple, le dispositif comporte des moyens aptes à le protéger contre des attaques visant à obtenir frauduleusement les données secrètes qu'il mémorise (par exemple, une clé cryptographique) telle que les attaques par fautes et/ou par analyse de canaux cachés (en anglais , « side channel attacks »). En particulier, le dispositif est conforme à la norme FIPS ou aux critères communs. REVENDICATIONS1. Procédé de comparaison du contenu de deux registres d'un dispositif électronique, lesdits deux registres comprenant respectivement une première donnée physique et une deuxième donnée physique, chacune desdites première et deuxième données physiques pouvant être associée à une représentation binaire, ledit procédé étant caractérisé en ce qu'il comprend : - une étape d'obtention (101; 306; 409) d'un résultat d'une opération de ou exclusif entre des représentations binaires desdites première et deuxième données physiques ; - une étape de détection (102; 201; 306, 307; 409, 410) d'un indice précisant une position du bit de poids fort d'une représentation binaire dudit résultat; - une étape de détermination (104; 202; 311; 413) d'une valeur d'un bit, positionné audit indice, de ladite représentation binaire de l'une quelconque desdites première et deuxième donnée physique ou d'une représentation binaire complémentée de l'une quelconque desdites première et deuxième donnée physique, ladite valeur étant une information de comparaison permettant de déterminer une hiérarchie du contenu desdits deux registres par rapport à une relation d'ordre. 2. Procédé selon la revendication 1, caractérisé en ce que, lorsque ladite valeur dudit bit de ladite représentation binaire de ladite deuxième donnée physique est égale à un, ou lorsque ladite valeur dudit bit de ladite représentation binaire complémentée de ladite première donnée physique est égale à un, ladite information de comparaison indique que ladite première donnée physique est inférieure, en valeur, à ladite deuxième donnée physique. 3. Procédé selon la revendication 1, caractérisé en ce que, lorsque ladite valeur dudit bit de ladite représentation binaire de ladite première donnée physique est égale à un, ou lorsque ladite valeur dudit bit de ladite représentation binaire complémentée de ladite deuxième donnée physique est égale à un, ladite information de comparaison indique que ladite première donnée physique est supérieure, en valeur, à ladite deuxième donnée physique. 4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ladite étape de détection d'un indice est exécutée de manière concomitante avec ladite étape d'obtention dudit résultat d'une opération de ou exclusif. 5. Procédé selon la revendication 4, caractérisé en ce que ladite étape d'obtention dudit résultat d'une opération de ou exclusif est réalisée par un traitement itératif bit à bit, selon un sens de parcours du bit de poids fort au bit de poids faible. 6. Procédé selon la revendication 4, caractérisé en ce que ladite étape d'obtention dudit résultat d'une opération de ou exclusif est réalisée par un traitement itératif bit à bit, selon un sens de parcours du bit de poids faible au bit de poids fort. 7. Procédé selon la revendication 5, caractérisé en ce que lorsque ledit indice est détecté par ladite étape de détection, ladite étape d'obtention dudit résultat comprend une étape de modification (306, 307, 308; 409, 410, 411) des résultats pour des bits positionnés à des indices postérieurs audit indice, selon ledit sens de parcours, et ce, conformément à ladite étape de détection. 8. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'il comprend une étape d'obtention (301; 401) d'un bit aléatoire, ledit bit aléatoire étant utilisé lors de l'exécution desdites étapes de détection et d'obtention. 9. Procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce que lesdits deux registres ont une taille identique, chaque registre permettant de stocker une donnée physique pouvant être associée à une représentation binaire comprenant k-bits, avec k un entier naturel supérieur ou égal à un. 10. Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce que ladite première donnée physique correspondant au résultat d'une opération arithmétique entre une donnée utile et un masque, et ladite deuxième donnée physique correspondant audit masque. 11. Procédé selon la revendication 10, caractérisé en ce que ladite opération arithmétique est une opération d'addition modulaire. 12. Procédé selon la revendication 10, caractérisé en ce que ladite opération arithmétique est une opération de soustraction modulaire. 13. Produit programme d'ordinateur, comprenant des instructions de code de programme pour la mise en oeuvre du procédé selon au moins une des revendications 1 à 12, lorsque ledit programme est exécuté sur un ordinateur. 14. Médium de stockage lisible par ordinateur et non transitoire, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par unordinateur ou un processeur pour mettre en oeuvre le procédé selon au moins une des revendications 1 à 12. 15. Dispositif électronique comprenant des moyens de comparaison du contenu de deux registres, lesdits deux registres étant compris dans ledit dispositif électronique et comprenant respectivement une première donnée physique et une deuxième donnée physique, chacune desdites première et deuxième données physiques pouvant être associée à une représentation binaire, le dispositif électronique étant caractérisé en ce que les moyens de comparaison comprennent : - des moyens d'obtention d'un résultat d'une opération de ou exclusif entre des représentations binaires desdites première et deuxième données physiques ; - des moyens de détection d'un indice précisant une position du bit de poids fort d'une représentation binaire dudit résultat; - des moyens de détermination d'une valeur d'un bit, positionné audit indice, de ladite représentation binaire de l'une quelconque desdites première et deuxième donnée physique ou d'une représentation binaire complémentée de l'une quelconque desdites première et deuxième donnée physique, ladite valeur étant une information de comparaison permettant de déterminer une hiérarchie du contenu desdits deux registres par rapport à une relation d'ordre.