Brevet FR3086417A1 — publié le 20200327

Arrière-plan de l'invention L'invention se rapporte au domaine général des télécommunications et plus particulièrement de la cryptographie. Elle concerne un procédé cryptographique de comparaison sécurisée de deux données détenues respectivement par deux entités distinctes et maintenues secrètes par celles-ci. Autrement dit, aucune des entités n'est en possession des deux données pour procéder directement à leur comparaison, par exemple bit à bit. L'invention s'applique à de nombreux domaines, tels que par exemple la santé ou la cybersécurité, qui font appel de plus en plus à des algorithmes d'apprentissage automatique (ou « machine learning » en anglais) utilisant des techniques de classification permettant d'automatiser le traitement des données. L'une des tâches les plus importantes devant être réalisée lors de la classification de données est la comparaison des données. Or, il arrive que les données à comparer soient des données sensibles, telles que par exemple des données bancaires ou de santé récupérées auprès de clients, que ces derniers peuvent ne pas souhaiter rendre publiques, ce qui rend difficiles leur comparaison directe. La cryptographie permet de concilier efficacement ces intérêts divergents grâce à des techniques de calcul multi-parties sécurisé offrant la possibilité de comparer deux entiers entre eux. De manière générale, ces techniques considèrent deux entités distinctes A et B, détenant respectivement des données secrètes x et y se présentant sous la forme de nombres entiers, et cherchant à évaluer une certaine fonction de x et de y sans révéler ces données pour comparer ces données. Ce problème, complexe à résoudre, est connu sous le nom de « problème des millionnaires » : deux millionnaires Alice et Bob disposent chacun respectivement d'une somme x et d'une somme y, et cherchent à savoir lequel d'entre eux est le plus riche sans dévoiler à l'autre la somme dont ils disposent. Différents algorithmes cryptographiques ont été proposés pour résoudre ce problème. Une première catégorie d'algorithmes s'appuie sur des circuits dits brouillés ou « garbled circuits ». L'approche retenue consiste à décomposer les deux données secrètes x et y selon une représentation binaire et à comparer de manière sécurisée ces représentations au moyen d'un circuit booléen. Ces algorithmes souffrent d'une complexité importante, notamment en termes d'interactions requises. Une deuxième catégorie d'algorithmes, moins complexes à mettre en oeuvre, s'appuie sur des techniques de chiffrement homomorphe. Un exemple d'un tel algorithme est décrit dans le document de Carlton et al. intitulé « Threshold Properties of Prime Power Subgroups with Application to Secure Integer Comparisons », CT-RSA 2018, pages 137-156, March 2018. Cet algorithme repose sur quatre passes entre les entités A et B conduisant à l'échange entre les deux entités de différents résultats de calculs utilisant deux algorithmes de chiffrement homomorphe distincts, et permettant à l'une d'elle, via un ultime test d'égalité, de déterminer laquelle des deux 2 données secrètes x ou y est supérieure à l'autre. L'avantage de cet algorithme est qu'il ne nécessite pas de comparer bit à bit les données secrètes x et y contrairement aux algorithmes utilisant des circuits brouillés. Il reste toutefois assez complexe, requérant quatre passes entre les entités A et B, l'utilisation de deux algorithmes de chiffrement homomorphe différents, et de 5 coûteux calculs de logarithmes discrets. Objet et résumé de l'invention L'invention propose un procédé de comparaison sécurisée de deux données secrètes entières entre deux entités moins complexe que les schémas précités de l'état de la technique. 10 Plus particulièrement, elle concerne un procédé cryptographique de comparaison sécurisée de deux données secrètes entières x et y détenues respectivement par un premier dispositif de calcul et par un deuxième dispositif de calcul, ce procédé comprenant : - une étape de génération, par le premier dispositif de calcul, d'un module RSA (Rivent Shamir Adleman) noté N ; 15 - une étape de calcul, par le premier dispositif de calcul, d'un nombre C égal à ex Itl où g est un élément d'un sous-groupe G de 4, d'ordre bd, h1 est un élément d'un sous-groupe H de 2, d'ordre f, et a, b, d, et f désignent des entiers tels que b et f sont premiers entre eux et les données x et y sont inférieures à dia ; - une étape d'envoi par le premier dispositif de calcul du nombre C au deuxième dispositif de 20 calcul ; - une étape de calcul par le deuxième dispositif de calcul d'au moins : o un nombre D égal à Cui'd-nY(gh3)°h2 où u et 't désignent deux entiers aléatoires, et h2 et h3 des éléments du sous-groupe H ; et o d'une première empreinte de (g h3)° calculée en utilisant une fonction de hachage ; 25 - une étape d'envoi par le deuxième dispositif de calcul au premier dispositif de calcul du nombre D et de la première empreinte ; - une étape de calcul par le premier dispositif de calcul du nombre (.0!)!' où f' est l'inverse de f modulo bd ; une étape d'obtention par le premier dispositif de calcul, à partir du nombre (DO!' calculé, 30 d'une deuxième empreinte en utilisant la fonction de hachage ; et une étape de détermination, par le premier dispositif de calcul, que x est supérieure ou égale à y ou que x est inférieure à y en fonction du résultat d'une comparaison entre la première empreinte et la deuxième empreinte. De façon connue, un module RSA est un nombre entier N produit de deux nombres 35 entiers premiers p et q. L'invention s'appuie donc sur un ensemble d'étapes mises en oeuvre par le premier dispositif de calcul et le deuxième dispositif de calcul. 3 Elle vise ainsi également un procédé de détermination, destiné à être mis en oeuvre par un premier dispositif de calcul, détenant et maintenant secrète une donnée entière x, ce procédé de détermination comprenant : une étape de génération d'un module RSA noté N ; 5 une étape de calcul d'un nombre C égal à gbaxh1 où g est un élément d'un sous-groupe G de ZN d'ordre bd, hl est un élément d'un sous-groupe H de ZN d'ordre f, et a,b,d, et f désignent des entiers tels que b et f sont premiers entre eux, et la donnée x est inférieure d/a ; une étape d'envoi du nombre C à un deuxième dispositif de calcul détenant et maintenant secrète une donnée entière y, la donnée y étant inférieure d/a ; 10 une étape de réception en provenance du deuxième dispositif de calcul d'au moins : o un nombre D égal à cu.6d-aY(gh3)°12 où u et v désignent deux entiers aléatoires, et h2 et h3 des éléments du sous-groupe H ; et o d'une première empreinte de (gh3)vcalculée en utilisant une fonction de hachage ; une étape de calcul par le premier dispositif de calcul du nombre (Df )f' où f' est l'inverse de f 15 modulo bd ; une étape d'obtention par le premier dispositif de calcul, à partir du nombre (DOP calculé, d'une deuxième empreinte en utilisant la fonction de hachage ; et une étape de détermination, par le premier dispositif de calcul, que x est supérieure ou égale à y ou que x est inférieure à y en fonction du résultat d'une comparaison entre la première 20 empreinte et la deuxième empreinte. Corrélativement, l'invention vise aussi un dispositif de calcul, dit premier dispositif de calcul, détenant et maintenant secrète une donnée entière x, ce premier dispositif de calcul comprenant : - un module de génération, configuré pour générer un module RSA noté N ; 25 - un premier module de calcul, configuré pour calculer un nombre C égal à geht où g est un élément d'un sous-groupe G de 71N d'ordre bd, hi est un élément d'un sous-groupe H de ZN d'ordre f, et a, b, d, et f désignent des entiers tels que b et f sont premiers entre eux et la donnée x est inférieure d/a ; un module d'envoi, configuré pour envoyer le nombre C à un deuxième dispositif de calcul 30 détenant et maintenant secrète une donnée entière y, la donnée y étant inférieure d/a ; un module de réception, apte à recevoir du deuxième dispositif de calcul au moins : o un nombre D égal à Cad-'''(gh3)Ph2 où u et v désignent deux entiers aléatoires, et h2 et h3 des éléments du sous-groupe H ; et o une première empreinte de (gh3)vcalculée en utilisant une fonction de hachage ; 35 - un deuxième module de calcul, configuré pour calculer un nombre (0f)f' où f' est l'inverse de f modulo bd ; 4 un module d'obtention, configuré pour obtenir à du nombre (DO» calculé une deuxième empreinte en utilisant la fonction de hachage ; et un module de détermination, configuré pour déterminer que x est supérieure ou égale à y ou que x est inférieure à y en fonction du résultat d'une comparaison entre la première empreinte 5 et la deuxième empreinte. L'invention concerne également un procédé de calcul, destiné à être mis en oeuvre par un dispositif de calcul dit deuxième dispositif de calcul, détenant et maintenant secrète une donnée entière y, ce procédé de calcul comprenant : une étape de réception en provenance d'un premier dispositif de calcul détenant et maintenant 10 secrète une donnée entière x, d'un nombre C égal à gbae hl où g est un élément d'un sous- groupe G de 4 d'ordre bd, hl est un élément d'un sous-groupe H de 4 d'ordre f, et a, b, d, et f désignent des entiers tels que b et f sont premiers entre eux et les données x et y sont inférieures à d/a ; - une étape de calcul d'au moins : 15 o un nombre D égal à Cui'd-aY(gh3)uh2 où u et y désignent deux entiers aléatoires, et h2 et h3 des éléments du sous-groupe H ; et o d'une empreinte de (gh3)"calculée en utilisant une fonction de hachage ; une étape d'envoi au premier dispositif de calcul du nombre D et de l'empreinte calculée, pour permettre au premier dispositif de calcul de déterminer sans connaître y si x est supérieure ou 20 égale ou inférieure à y. Corrélativement, l'invention vise également un dispositif de calcul, dit deuxième dispositif de calcul, détenant et maintenant secrète une donnée entière y, ce deuxième dispositif de calcul comprenant : un module de réception, apte à recevoir d'un premier dispositif de calcul détenant et 25 maintenant secrète une donnée entière x, un nombre C égal à eaxhl où g est un élément d'un sous-groupe G de 4, d'ordre bd, hl est un élément d'un sous-groupe H de 4 d'ordre f, et a, b, d, et f désignent des entiers tels que b et f sont premiers entre eux et les données x et y sont inférieures à d/a ; un module de calcul, configuré pour calculer au moins : 30 o un nombre D égal à Cumd-aY (gh3)97.2 où u et v désignent deux entiers aléatoires, et h2 et h3 des éléments du sous-groupe H ; et o une empreinte de (gh3)v calculée en utilisant une fonction de hachage ; un module d'envoi, configuré pour envoyer au premier dispositif de calcul le nombre D et l'empreinte calculée, pour permettre au premier dispositif de calcul de déterminer sans 35 connaître y si x est supérieure ou égale ou inférieure à y. L'invention concerne encore un système cryptographique apte à comparer deux données secrètes x et y et comprenant : 5 - un premier dispositif de calcul selon l'invention, détenant et maintenant la donnée x secrète ; et - un deuxième dispositif de calcul selon l'invention, détenant et maintenant la donnée y secrète. Optionnellement, en fonction notamment de la valeur de l'élément h3 et/ou de la 5 nature secrète ou publique de l'élément g, le deuxième dispositif de calcul peut en outre calculer un nombre Dl qu'il envoie au premier dispositif de calcul et qui est utilisé par celui-ci pour obtenir la deuxième empreinte. L'invention propose donc un nouveau crypto-système permettant à deux entités (dispositifs de calcul au sens de l'invention) de comparer deux données x et y sans les révéler, qui 10 s'appuie sur un unique algorithme de chiffrement homomorphe (auquel le calcul du nombre C peut être assimilé) et bénéficie des mêmes avantages que l'algorithme de Canton et al. cité précédemment. Ce nouveau crypto-système ne requiert avantageusement que deux passes entre les deux dispositifs de calcul détenant les données secrètes x et y (chaque passe correspondant à un envoi de données par l'un des dispositifs à l'autre dispositif), et ne nécessite aucun calcul 15 coûteux de logarithme discret contrairement à l'algorithme de Carlton et al. Il présente une complexité réduite par rapport à l'algorithme de Carlton et al. tout en assurant une sécurité semblable. Ceci est permis par la construction de deux nombres C et D qui revêtent une forme avantageuse permettant de limiter les interactions entre les deux entités pour décider quelle 20 donnée est supérieure ou égale à l'autre. Plus précisément, les nombres C et D calculés conformément à l'invention par le premier et le deuxième dispositif de calcul respectivement, contiennent les données secrètes x et y sous une forme masquée (par un ou plusieurs masques hl, (gh3)" et h2), ce qui permet aux deux dispositifs de calcul de garder leurs données secrètes l'un à l'égard de l'autre. Ces masques sont 25 choisis judicieusement dans des sous-groupes dont l'ordre est connu du premier dispositif de calcul et exploité par celui-ci pour obtenir à partir du nombre D fourni par le deuxième dispositif (et éventuellement d'un nombre complémentaire Dl), une deuxième empreinte qui, comparée à la première empreinte, permet de déduire directement si x est supérieure ou égale à y ou au contraire si x est inférieure à y. L'utilisation d'empreintes générées en utilisant une fonction de 30 hachage participe à la sécurisation du procédé, et permet, grâce à sa propriété de de résistance aux collisions, de déterminer l'ordre des données secrètes x et y via une simple comparaison de la première et de la deuxième empreinte, la probabilité que deux empreintes calculées à partir de données distinctes soient identiques étant négligeable. La sécurisation du procédé de comparaison est en outre renforcée par l'utilisation par 35 le deuxième dispositif de calcul, d'aléas u et v qui ont à ce titre vocation à rester inconnus du premier dispositif de calcul. Ces aléas permettent avantageusement d'éviter une recherche exhaustive simple menée sur les données secrètes x et y, à laquelle sont sensibles les calculs d'empreintes. L'aléa u introduit dans le calcul de D permet de se prémunir contre une telle attaque 6 sans pour autant nuire au bon fonctionnement du protocole proposé par l'invention. L'aléa v quant à lui permet de masquer parfaitement l'ordre de (D9f'dont le premier dispositif de calcul pourrait déduire des informations sur le secret y du deuxième dispositif de calcul. Comme mentionné précédemment, l'invention permet en deux passes seulement entre 5 le premier et le deuxième dispositif de calcul de conclure comment sont positionnées les données x et y l'une par rapport à l'autre. En effet, compte tenu de la forme choisie des éléments C et D, le premier dispositif de calcul peut se ramener, moyennant quelques manipulations mathématiques sur le nombre D lui permettant en exploitant l'ordre des éléments hl, h2 et h3 qu'il connaît de supprimer du nombre D les éléments du sous-groupe H, à un nombre (Of)» dans lequel seul reste 10 l'élément g élevé à la puissance u. b"ax-aY + y. On voit bien dès lors que si x est supérieure ou égale à y, g étant un élément d'ordre bd, e'bd+ax-eY+P = gy. En exploitant cette propriété, l'invention permet au premier dispositif de calcul, à partir de ce que lui a transmis le deuxième dispositif de calcul (i.e. du nombre D, de l'empreinte de (g. h3)" et éventuellement du nombre Dl), de calculer une nouvelle empreinte exploitable et comparable en quelque sorte à l'empreinte reçue 15 du deuxième dispositif de calcul dans le sens où elle lui permet de déduire directement (c'est-à- dire sans nouvel échange avec le deuxième dispositif de calcul) en cas d'égalité, que x est supérieure ou égale à y (grâce notamment à la propriété de fonction à sens unique de la fonction de hachage). Il n'y a donc pas besoin de passes supplémentaires entre le premier dispositif de calcul et le deuxième dispositif de calcul pour être en mesure de classer les données secrètes x et 20 y l'une par rapport à l'autre. On note que selon les cas de figure, l'élément g peut être public (et donc partagé entre les premier et deuxième dispositifs de calcul) ou au contraire être maintenu secret par le premier dispositif de calcul à l'égard du deuxième dispositif de calcul. Le choix de garder l'élément g secret ou non résulte comme détaillé davantage ultérieurement d'un compromis entre sécurité, 25 tailles des données pouvant être comparées et complexité de calcul. A titre d'exemple, dans un mode particulier de réalisation : - g est un élément public ; - h3 1 ; - la deuxième empreinte est obtenue en appliquant la fonction de hachage au nombre (DO» 30 calculé. En effet, comme mentionné ci-avant, si x est supérieure ou égale à y, le nombre (Df)f' est alors égal à gy. La deuxième empreinte obtenue en appliquant la fonction de hachage directement au nombre (Df)Ppermet donc dans ce cas, en cas d'égalité entre les empreintes, de déduire que x est supérieure ou égale à y, ou que x est inférieure à y dans le cas contraire. 35 Dans un autre mode de réalisation dans lequel g est un élément maintenu secret par le premier dispositif de calcul (et donc inconnu du deuxième dispositif de calcul) : 7 h3 = h4e où e est un entier maintenu secret par le premier dispositif de calcul et h4 désigne un élément du sous-groupe H ; le premier dispositif de calcul envoie au deuxième dispositif de calcul un nombre h' = g. h3, ce nombre étant utilisé par le deuxième dispositif de calcul pour calculer la première empreinte ; 5 le nombre Dl calculé par le deuxième dispositif de calcul et envoyé au premier dispositif de calcul est égal à he ; et la deuxième empreinte est obtenue en appliquant la fonction de hachage au nombre (DO" calculé multiplié par Dle . L'envoi par le deuxième dispositif de calcul du nombre Dl au premier dispositif et la 10 connaissance qu'a le premier dispositif du secret e permettent à celui-ci de calculer, sans connaître l'aléa v utilisé par le deuxième dispositif, un nombre qui, pour des raisons similaires à celles exposées ci-avant, est égal à (gh3)° lorsque x est supérieure ou égale à y. La deuxième empreinte obtenue en appliquant la fonction de hachage au nombre (Df)f'multiplié par Dle permet ainsi dans ce cas, en cas d'égalité entre les empreintes, de déduire que x est supérieure ou égale à y, 15 ou que x est inférieure à y dans le cas contraire. Différentes valeurs peuvent être choisies pour les entiers a, b, d, et f, ainsi que pour les aléas u et v, en fonction du niveau de sécurité désiré. Par exemple, dans un mode particulier de réalisation, l'entier a est choisi inférieur ou égal à l'entier Ti, et bu>22 où z désigne un paramètre de sécurité prédéterminé. 20 Le paramètre z permet ainsi d'ajuster le niveau de sécurité souhaité. Par exemple, le paramètre z peut être choisi égal à 128, pour se conformer aux recommandations actuelles en terme de sécurité préconisées notamment dans le document intitulé « Recommendation for Key Management », NIST Special Publication 800-57 Part 1 Revision 4. Par ailleurs, pour renforcer encore davantage la sécurité, dans un mode particulier de 25 réalisation, l'entier u est choisi aléatoirement dans l'intervalle [0; bu-1] et l'entier v est choisi aléatoirement dans l'intervalle [0; bu-1]. Les intervalles définis pour les aléas u et v dans ce mode de réalisation permettent avantageusement de rendre négligeable la probabilité qu'un tiers mal intentionné devine les valeurs des aléas u et v. 30 Dans un mode particulier de réalisation, h1 = h'1, h2 = h'2 où rl est un entier aléatoire et r2 est un entier aléatoire choisi dans l'intervalle [0;_ ] z désignant un paramètre de sécurité prédéterminé. L'ajout des aléas rl et r2 permet encore de renforcer davantage la sécurité du cryptosystème proposé. 35 Dans un mode particulier de réalisation, les différentes étapes du procédé de détermination et/ou du procédé de calcul sont déterminées par des instructions de programmes d'ordinateurs. 8 En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en oeuvre dans un dispositif de calcul (premier ou deuxième dispositif de calcul au sens de l'invention) ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre des étapes 5 d'un procédé de de détermination et/ou d'un procédé de calcul tel que décrit 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 cade 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 ou d'enregistrement lisible par un 10 ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci- dessus. Le support d'informations ou d'enregistrement 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 15 encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy disc) ou un disque dur. D'autre part, le support d'informations ou d'enregistrement 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 20 particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'informations ou d'enregistrement 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. On peut également envisager, dans d'autres modes de réalisation, que le procédé de 25 comparaison, le procédé de calcul, le procédé de détermination, le premier et le deuxième dispositif de calcul et le système cryptographique selon l'invention présentent en combinaison tout ou partie des caractéristiques précitées. grève description des dessins 30 D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures : - la figure 1 représente, de façon schématique, un système cryptographique conforme à l'invention, dans un mode particulier de réalisation ; 35 - la figure 2 illustre schématiquement l'architecture matérielle d'un premier dispositif de calcul et d'un deuxième dispositif de calcul du système cryptographique de la figure 1, conformes à l'invention, dans un mode particulier de réalisation ; 9 la figure 3 représente sous forme de diagramme de flux les principales étapes d'un procédé de comparaison selon l'invention tel qu'il est mis en oeuvre par le système cryptographique de la figure 1, dans un premier mode de réalisation ; et la figure 4 représente sous forme de diagramme de flux les principales étapes d'un procédé de 5 comparaison selon l'invention tel qu'il est mis en oeuvre par le système cryptographique de la figure 1, dans un deuxième mode de réalisation. Description détaillée de l'invention La figure 1 représente, dans son environnement, un système cryptographique 1 10 conforme à l'invention, dans un mode particulier de réalisation. Le système cryptographique 1 est conçu de sorte à permettre la réalisation de deux données entières x et y détenues respectivement par deux entités distinctes 2 et 3 tout en permettant à chacune de ces entités de maintenir secrète la donnée qu'elle détient à l'égard de l'autre entité. Autrement dit, les données secrètes peuvent être comparées grâce au système 15 cryptographique 1 sans que l'entité 2 n'ait besoin de divulguer à l'entité 3 la donnée x et inversement, sans que l'entité 3 n'ait besoin de divulguer à l'entité 2 la donnée y. Les deux entités 2 et 3 sont ici des dispositifs de calcul conformes à l'invention. Dans l'exemple illustré à la figure 1, l'entité 2 est un « premier » dispositif de calcul au sens de l'invention, dans le sens où c'est elle qui détermine le résultat de la comparaison des deux données 20 secrètes x et y, et l'entité 3 est un « deuxième » dispositif de calcul au sens de l'invention. Aucune limitation n'est attachée au contexte dans lequel le système cryptographique 1 et corrélativement, les deux entités 2 et 3, sont amenés à réaliser cette comparaison. Comme mentionné précédemment, la comparaison de deux données secrètes entières est une tâche que l'on retrouve dans de nombreux algorithmes utilisés dans divers domaines (santé, cybersécurité, 25 finance, etc.), et notamment dans les algorithmes d'apprentissage automatique (« machine learning ») qui s'appuient sur des techniques de classification requérant la comparaison d'entiers de manière sécurisée. D'autres types d'algorithmes font également appel à la comparaison d'entiers, comme par exemple des algorithmes utilisés dans certaines systèmes de vote électronique (lorsqu'on souhaite notamment déterminer qui est le vainqueur d'une élection sans 30 révéler les scores respectifs des différents candidats), ou d'enchères électroniques secrètes (les offres des enrichisseurs sont alors chiffrées pour rester secrètes, et on veut déterminer celui qui a fait la meilleure offre mais sans avoir à révéler les offres des autres enrichisseurs), etc. Dans l'exemple envisagé à la figure 1, les dispositifs de calcul 2 et 3 sont des ordinateurs, dont l'architecture est illustrée schématiquement à la figure 2. 35 Chaque dispositif de calcul comprend notamment un processeur 4, une mémoire morte 5, une mémoire vive 6, une mémoire non volatile 7 (dans laquelle est stockée par exemple la donnée secrète x pour le dispositif de calcul 2 et y pour le dispositif de calcul 3) et des moyens de communication 8. Les moyens de communication 8 permettent aux dispositifs 2 et 3 de 10 communiquer entre eux, pour s'échanger divers éléments, comme décrit plus en détail ultérieurement. Ils peuvent comprendre indifféremment une interface sans fil ou Flaire, etc. La mémoire morte 5 du dispositif de calcul 2, respectivement du dispositif de calcul 3, constitue un support d'enregistrement conforme à l'invention, lisible par le processeur 4 et sur 5 lequel est enregistré un programme d'ordinateur PROG2, respectivement PROG3, conforme à l'invention, comportant respectivement, pour le dispositif de calcul 2, des instructions pour l'exécution des étapes du procédé de détermination selon l'invention et pour le dispositif de calcul 3, des instructions pour l'exécution des étapes du procédé de calcul selon l'invention. Plus précisément, le programme d'ordinateur PROG2 définit via ses instructions des 10 modules fonctionnels du dispositif de calcul 2 aptes à mettre en oeuvre les étapes du procédé de détermination et s'appuyant sur les éléments matériels 4-8 du dispositif de calcul 2. Ces modules fonctionnels comprennent notamment, dans le mode de réalisation décrit ici, comme illustré à la figure 1, un module de génération 2A, un premier module de calcul 28, un module d'envoi 2C, un module de réception 2D, un deuxième module de calcul 2E, un module d'obtention 2F, et un 15 module de détermination 2G. De façon similaire, le programme d'ordinateur PROG3 définit via ses instructions des modules fonctionnels du dispositif de calcul 3 aptes à mettre en oeuvre les étapes du procédé de calcul et s'appuyant sur les éléments matériels 4-8 du dispositif de calcul 3. Ces modules fonctionnels comprennent notamment, dans le mode de réalisation décrit ici, comme illustré à la 20 figure 1, un module de réception 3A, un module de calcul 3B et un module d'envoi 3C. Les fonctions des différents modules du dispositif de calcul 2 et du dispositif de calcul 3 sont précisées davantage ultérieurement. Dans un autre mode de réalisation, l'un et/ou l'autre des dispositifs de calcul 2 et 3 intègrent une puce en silicium et des moyens de communication avec les autres dispositifs du 25 système cryptographique 1 notamment. La puce en silicium comprend des transistors adaptés pour constituer des portes logiques d'une logique câblée non programmable pour l'exécution des étapes du procédé de détermination et/ou du procédé de calcul selon l'invention. Nous allons maintenant décrire, en référence aux figures 3 et 4, les principales étapes du procédé cryptographique de comparaison selon l'invention, dans deux modes particuliers de 30 réalisation. Ce procédé cryptographique s'appuie sur les étapes du procédé de détermination mis en oeuvre par le dispositif de calcul 2 (référencées dans la suite de la description par Bor ou Exx') et sur les étapes du procédé de calcul mis en oeuvre par le dispositif de calcul 3 (référencées dans la suite de la description par Fxx ou Fxx'). Il permet, comme souligné précédemment, au dispositif de calcul 2 de déterminer le positionnement des données secrètes x et y l'une par rapport à l'autre 35 sans que le dispositif de calcul 2 et le dispositif de calcul 3 n'aient à divulguer la donnée secrète x ou y qu'il détient, et ce en deux passes uniquement d'échanges entre ces deux dispositifs. Les deux modes de réalisation illustrés sur les figures 3 et 4 correspondent à deux déclinaisons différentes du procédé cryptographique de comparaison qui tiennent compte du 11 caractère public ou secret de l'un des paramètres du procédé, et plus particulièrement de l'élément g décrit davantage ultérieurement. Ainsi, la figure 3 représente les principales étapes du procédé cryptographique de comparaison selon l'invention dans un premier mode de réalisation dans lequel l'élément g est S public. Conformément à l'invention, le dispositif de calcul 2, via son module de génération 2A, génère un module RSA noté N (étape E10), produit de deux entiers naturels (i.e. appartenant à l'ensemble N des entiers positifs ou nuls) p et q premiers et que le dispositif de calcul 2 garde secret. Par « secret » on entend dans cette description que le dispositif de calcul 2 ne rend pas 10 l'élément en question public et en particulier, que le dispositif de calcul 3 n'en a pas la connaissance (et inversement lorsqu'un élément est maintenu secret par le dispositif de calcul 3). Dans le premier mode de réalisation décrit ici, le dispositif de calcul 2, par exemple par l'intermédiaire de son module de génération 2A, choisit en outre des entiers naturels notés a, b, d, et f vérifiant ici les conditions suivantes (étape E20) : 15 a 22 où z désigne un paramètre de sécurité prédéterminé. Par exemple, z=128 pour se conformer aux recommandations en termes de sécurité préconisées dans le document intitulé « Recommendation for Key Management », NIST Special Publication 800-57 Part 1 Revision 4 ; les données x et y à comparer sont inférieures à d/a; et 20 - f est premier avec b. On note que la première condition est optionnelle et vise à garantir un niveau de sécurité donné à la comparaison sécurisée effectuée grâce à l'invention (correspondant à la valeur du paramètre z choisi). On suppose que le module RSA N ainsi que les entiers a, b, et d sont rendus publics 25 par le dispositif de calcul 2 (et donc en particulier partagés avec le dispositif de calcul 3). L'entier f est en revanche maintenu secret par le dispositif de calcul 2. On note qu'il est toujours possible de se ramener à des données à comparer inférieures à 1. Si ce n'est pas le cas des données initialement considérées, celles-ci peuvent être a segmentées en plusieurs blocs représentant chacun un entier inférieur à Id par exemple de façon 30 similaire ou identique à ce qui est décrit dans le document de Carlton et al. cité précédemment. La comparaison des données initiales est alors réalisée en comparant deux à deux les données correspondant à chaque bloc conformément à l'invention. En variante, les entiers a, b, et ci peuvent être choisis par une autre entité que le dispositif de calcul 2 et être rendus publics par cette entité pour que les dispositifs de calcul 2 et 3 35 en aient la connaissance. Le dispositif de calcul 2 sélectionne également, toujours par l'intermédiaire ici de son module de génération 2A, un élément g d'un sous-groupe G de 71N d'ordre bd et un élément h d'un 12 sous-groupe G de ZN d'ordre f (étape E30). Ainsi, par définition, les éléments g et h vérifient les égalités suivantes : gmod N = 1 hf mod N = 1 où mod signifie modulo. Dans le premier mode de réalisation décrit ici, comme mentionné précédemment, 5 l'élément g est public, et donc partagé par le dispositif de calcul 2 avec le dispositif de calcul 3. L'élément h est en revanche maintenu secret par le dispositif de calcul 2 à l'égard notamment du dispositif de calcul 3. Il permet au premier dispositif de calcul 2 de masquer sa donnée secrète x, comme détaillé ci-après. Le dispositif de calcul 2 calcule alors, au moyen de son premier module de calcul 2B, 10 un nombre C défini par (étape E40) : C = gbaxhl où hl est un élément du sous-groupe H (par conséquent d'ordre f). On note que comme la donnée secrète x est par définition Inférieure à d/a, le nombre C est assuré de ne pas valoir un, ce qui permet d'assurer un bon fonctionnement du protocole. 15 Dans l'exemple envisagé ici, le premier module de calcul 2B choisit hl égal à hrioù ri est un entier naturel choisi de manière aléatoire par le premier module de calcul 2B. Bien entendu cet exemple n'est donné qu'à titre illustratif. L'entier aléatoire rl est maintenu secret par le dispositif de calcul 2 à l'égard du dispositif de calcul 3. On note qu'à cet effet, il peut être tout simplement effacé de la mémoire du dispositif de calcul 2 juste après avoir servi au calcul du 20 nombre C. Le dispositif de calcul 2 envoie ensuite, via son module d'envoi 2C et ses moyens de communication 8, le nombre C ainsi calculé au dispositif de calcul 3 (étape E50). Sur réception du nombre C via son module de réception 3A et ses moyens de communication 8 (étape F10), le dispositif de calcul 3 calcule, par l'intermédiaire de son module de 25 calcul 3B, un nombre D égal à (étape F20) : D = cu.bd-aY cg, n.5)eit2 où u et v désignent deux entiers naturels aléatoires, et h2 et h3 des éléments du sous-groupe H. Dans le premier mode de réalisation décrit ici, h3 = 1 et h2 = hr2 où r2 est un entier naturel aléatoire choisi dans l'intervalle [0; b4z-1]. On note toutefois que cet exemple pour le choix de h2 et h3 n'est donné qu'à titre illustratif, et n'est pas limitatif en soi. En particulier, dans le 30 premier mode de réalisation, compte tenu de la nature publique de l'élément g, en prenant h3 = 1, 13 on choisit de ne pas masquer cet élément par souci de simplification. Toutefois, cette hypothèse n'est pas limitative en soi et d'autres stratégies peuvent être envisagées. On note que le choix de l'intervalle [0; b4z-1] pour sélectionner l'aléa r2 n'est pas limitatif en soi et d'autres intervalles peuvent être considérés. Cet intervalle permet toutefois de 5 garantir une certaine sécurité au procédé de comparaison, compatible avec les recommandations préconisées dans le document « Recommendation for Key Management », cité précédemment. Les entiers aléatoires u, v, et r2 sont maintenus secrets par le dispositif de calcul 2 à l'égard du dispositif de calcul 3. On note qu'à cet effet, comme l'aléa rl précédemment, ils peuvent être tout simplement effacés de la mémoire du dispositif de calcul 3 juste après avoir servi au 10 calcul du nombre D. Dans le premier mode de réalisation décrit ici où l'élément g est public et h3 = 1, le nombre D calculé par le module de calcul 38 est donc défini de manière équivalente par : D = Cu.ba-"gvhr2 Le module de calcul 3B calcule également, lors de l'étape F20, une empreinte notée El (première empreinte au sens de l'invention) du nombre (gh3)r = e en utilisant, de façon connue 15 en soi, une fonction de hachage notée HASH. Une telle fonction est connue de l'homme du métier, et n'est pas décrite plus en détail ici. Des exemples de fonctions de hachage sont les fonctions SHA 256 et SHA 512 telles que définies dans le document « Secure Nash Standard », FIPS PUB 180-4 publié en août 2015 par le NIST. Plus particulièrement, pour calculer l'empreinte El, le module de calcul 3B applique ici 20 directement la fonction de hachage HASH sur le nombregv, soit : E1 = HASH(9v) Puis le dispositif de calcul 3 envoie, via son module d'envoi 3C et ses moyens de communication 8, le nombre D et l'empreinte El au dispositif de calcul 2 (étape F30). On note que les étapes d'envoi E50 et F30 constituent respectivement une première et une deuxième passe entre les dispositifs de calcul 2 et 3 du procédé de comparaison selon 25 l'invention. Sur réception du nombre D et de l'empreinte El via son module de réception 2D et ses moyens de communication 8 (étape E60), le dispositif de calcul 2 procède à différentes manipulations mathématiques sur le nombre D via son deuxième module de calcul 2E pour calculer une empreinte E2 (deuxième empreinte au sens de l'invention), qu'il peut comparer à l'empreinte 30 E1 fournie par le deuxième dispositif de calcul 3 pour déterminer si x est supérieure ou égale à y ou si x est inférieure à y. Plus spécifiquement, le deuxième module de calcul 2E élève tout d'abord le nombre D à la puissance f, f désignant pour mémoire l'ordre des éléments du sous-groupe de H (étape E70). Il obtient alors : DI = (c..bd-aY 9v hrzy 14 soit en remplaçant C pargbaxel et en notant que (e1)n2 = g n1 n2 = (gri2,111 ) si n1 et n2 désignent deux nombres : Df = (g! )ubd+"-anv (hr)rlubd-aY+rz L'élément h étant d'ordre f cela signifie que hr = 1, autrement dit, à l'issue de l'étape de calcul E70, le deuxième module de calcul 2E obtient le nombre DT qui peut s'écrire sous la 5 forme : Df = cgfrbd+ux-aY+v L'élévation à la puissance f du nombre D permet ainsi au deuxième module de calcul 2E d'éliminer les termes en h dans le nombre D, ou plus généralement tous les éléments contenus dans le nombre D appartenant au sous-groupe H. En d'autres mots ici, il supprime du nombre D tous les éléments en h élevés à une certaine puissance en s'appuyant sur sa connaissance de 10 l'ordre f des éléments du sous-groupe H. On note que l'ordre f des éléments du sous-groupe H peut, de façon connue, être obtenu à partir des nombres premiers p et q du module RSA N (et plus précisément de la factorisation de p-1 et q-1). Le deuxième module de calcul 2E élève ensuite le résultat obtenu pour le calcul de Df à la puissance f' où f' désigne l'inverse de f modulo bd (étape E80). Autrement dit : f f = 1 mod bd 15 Il obtient alors un résultat qui se peut s'écrire sous la forme : (Df)f, = (cgoubefinx-cw (9f.p)ubd+ax-aY+v = guei+,2"--Y+u Puis le module d'obtention 2F du dispositif de calcul 2 calcule une empreinte, notée E2 du résultat obtenu en utilisant la fonction de hachage HASH (étape E90), soit : E2 = HASI-1( (D f qui peut s'écrire de manière équivalente sous la forme : E2 = HASE' (gubd+nx-ax+v) (1) 20 On note que l'étape de calcul E80 peut être réalisée indifféremment par le module de calcul 2E ou par le module d'obtention 2F du dispositif de calcul 2. En s'appuyant sur la relation (1) ci-dessus, le module de comparaison 2G du dispositif de calcul 2 compare les empreintes El et E2 (étape E100), et en fonction du résultat de la comparaison détermine comment se situe la donnée secrète x par rapport à la donnée secrète y 25 sans que le premier et le deuxième dispositif n'aient besoin de se révéler les données x et y. Plus précisément, le module de comparaison 2G détermine ici, avec les conventions adoptées, que : x est supérieure ou égale à y si El = E2 ; ou que x est inférieure à y si El E2. En effet, en partant de la relation (1), il apparaît que si x est supérieure ou égale à y, 30 alors d + ax - ay > d et le terme gubd+ax-Y" se réduit à gi , g étant d'ordre bd. Calculer 15 l'empreinte E2 revient donc à calculer l'empreinte de g", qui par définition, correspond à l'empreinte El calculée et transmise par le dispositif de calcul 3. A l'inverse, la relation (1), si x est inférieure à y, on ne peut pas conclure que gubd+anY = 1. Mais la propriété de résistance aux collisions des fonctions de hachage, qui assure 5 que deux empreintes de valeurs distinctes ont une probabilité négligeable d'être égales, permet en revanche de conclure que si El * E2, cela signifie que x est bien inférieure à y. Dans le premier mode de réalisation décrit ici, nous avons supposé que l'élément g sélectionné par le dispositif de calcul 2 est public, et connu du dispositif de calcul 3. La figure 4 représente les principales étapes du procédé cryptographique de comparaison selon l'invention 10 dans un deuxième mode de réalisation dans lequel l'élément g est gardé secret par le dispositif de calcul 2 et n'est donc pas connu du dispositif de calcul 3. Sur la figure 4, les étapes du deuxième mode de réalisation qui sont identiques à celles du premier mode de réalisation sont associées à la même référence et ne sont pas décrites de nouveau dans le détail. Dans le deuxième mode de réalisation comme dans le premier mode de réalisation, le 15 dispositif de calcul 2, via son module de génération 2A, génère un module RSA noté N (étape E10), produit de deux entiers naturels p et q premiers entre eux et que le dispositif de calcul 2 garde secret. Le dispositif de calcul 2 choisit en outre des entiers naturels notés a, b, cl, et j vérifiant les hypothèses suivantes (étape E20) : 20 - a s d et ba>22 où z désigne un paramètre de sécurité (entier) prédéterminé. Par exemple, z=128 pour se conformer aux recommandations en termes de sécurité préconisées dans le document intitulé « Recommendation for Key Management », NET Special Publication 800-57 Part 1 Revision 4 ; - les données x et y à comparer sont inférieures à dia; et 25 - f est premier avec b. Le module RSA N et les entiers a, b, et cl sont rendus publics par le dispositif de calcul 2 et l'entier f est maintenu secret. Le dispositif de calcul 2 sélectionne également, toujours par l'intermédiaire ici de son module de génération 2A, un élément g d'un sous-groupe G de ZN d'ordre bd et un élément h d'un 30 sous-groupe G de ZN d'ordre f (étape E30). Par définition, les éléments g et h vérifient les égalités suivantes : gbdmod N = 1 hf mod N = 1 où mod signifie modulo. 16 Dans le deuxième mode de réalisation, l'élément g est gardé secret par le dispositif de calcul 2 tout comme l'élément h. Pour tenir compte de cette contrainte, le dispositif de calcul 2, via par exemple son module de génération 2A, génère à partir de l'élément g un élément h' vérifiant la relation suivante (étape E35') : h' = 9h4' 5 où h4 est un élément du sous-groupe H, et e désigne un entier sélectionné et maintenu secret par le dispositif de calcul 2. Dans l'exemple envisagé ici, par souci de simplification, le module de génération 2A prend h4 = h, mais cet exemple n'est donné qu'à titre illustratif. Puis, le dispositif de calcul 2 calcule, au moyen de son premier module de calcul 2B, comme dans le premier mode de réalisation, le nombre C défini par (étape E40) : C = gbeShi 10 où hl est un élément du sous-groupe H (par conséquent d'ordre f). Dans l'exemple envisagé ici, le premier module de calcul 2B choisit h1 égal à hnoù ri est un entier naturel choisi aléatoirement. L'entier aléatoire rl est maintenu secret par le dispositif de calcul 2 à l'égard du dispositif de calcul 3 (par exemple en étant tout simplement effacé de sa mémoire après son utilisation pour calculer C). 15 Le dispositif de calcul 2 envoie alors via son module d'envoi 2C et ses moyens de communication 8, le nombre C et le nombre h' au dispositif de calcul 3 (étape E50'). Sur réception des nombres C et h'via son module de réception 3A et ses moyens de communication 8 (étape F10'), le dispositif de calcul 3 calcule comme dans le premier mode de réalisation, par l'intermédiaire de son module de calcul 3B, un nombre D défini par (étape F20') : D = (gh3, )v h2 20 où u et v désignent deux entiers naturels aléatoires, et h2 et h3 des éléments du sous-groupe H. Plus particulièrement, dans le deuxième mode de réalisation décrit ici, par souci de simplification, le module de calcul 3B choisit h3 = h4e(ce qui lui permet de réutiliser directement tereçu du dispositif de calcul 2) et h2 = e2 où r2 est un entier aléatoire choisi dans l'intervalle [0; b4e-1]. On note que la condition selon laquelle la donnée y est inférieure à d/a garantit que le 25 dispositif de calcul 3 est toujours capable de calculer l'élément D. Les entiers aléatoires u, y, et r2 sont maintenus secrets par le dispositif de calcul 2 à l'égard du dispositif de calcul 3 comme dans le premier mode de réalisation. Dans le deuxième mode de réalisation décrit ici où l'élément g est secret et donc non connu du dispositif de calcul 3, le nombre D calculé par le module de calcul 3B est donc défini de 30 manière équivalente par : DCu.bd-°Y(gh4e)vhr2 Par ailleurs, dans le deuxième mode de réalisation, le module de calcul 3B calcule également lors de l'étape F20 une empreinte notée El' (première empreinte au sens de l'invention) 17 du nombre (gh3)" = (ghe)" en utilisant une fonction de hachage HASH. Plus particulièrement, le module de calcul 3B calcule l'empreinte El' en appliquant directement la fonction de hachage HASH sur le nombre(gh4e)v qu'il a reçu du dispositif de calcul 2, soit : E1' = HASH((ph4e)v) Dans ce deuxième mode de réalisation, pour « compenser » le fait que l'élément g est 5 maintenu secret par le dispositif de calcul 2, le dispositif de calcul 3 calcule un nombre additionnel, noté Dl. Comme il est décrit plus en détail ultérieurement, ce nombre Dl est destiné à permettre au dispositif de calcul 2 de calculer une deuxième empreinte comparable à l'empreinte El' sans connaître l'aléa v qui lui permet de déterminer l'ordre des données secrètes x et y. Plus précisément, dans l'exemple envisagé ici où h3 = h4e , le nombre Dl est défini par : Dl = h4v ; 10 Puis le dispositif de calcul 3 envoie, via son module d'envoi 3C et ses moyens de communication 8, les nombres D et Dl, et l'empreinte El' au dispositif de calcul 2 (étape F30'). Sur réception des nombres D et Dl ainsi que de l'empreinte E1 via son module de réception 2D et ses moyens de communication 8 (étape E60'), le dispositif de calcul 2 procède à différentes manipulations mathématiques sur le nombre D via son deuxième module de calcul 2E 15 pour calculer une empreinte E2' (deuxième empreinte au sens de l'invention), qu'il peut comparer à l'empreinte El' fournie par le deuxième dispositif de calcul 3 pour déterminer si x est supérieure ou égale à y ou si x est inférieure à y. Plus spécifiquement, le deuxième module de calcul 2E élève tout d'abord le nombre D à la puissance f, f désignant pour mémoire l'ordre des éléments du sous-groupe de H (étape 20 E70'). Il obtient alors : Df (Cu"bd "CgMerhr2)f soit en remplaçant C par gbexhvi et en notant que (er)t2 = gttl.n2 = (e2)"1 Si n1 et n2 désignent deux nombres entiers : Df = cg frbd+ax-ay+i, (hf)rl ubd-aY+rz+ev L'élément h étant d'ordre f cela signifie que hf = 1, autrement dit, à l'issue de l'étape de calcul E70, le deuxième module de calcul 2E obtient le nombre Df qui peut s'écrire sous la 25 forme : Df = Cgf)"d+ax-ay+, L'élévation à la puissance f du nombre D permet ainsi au deuxième module de calcul 2E d'éliminer les termes en h dans le nombre D, ou plus généralement tous les éléments contenus dans le nombre D appartenant au sous-groupe H. Comme dans le premier mode de réalisation, le deuxième module de calcul 2E élève 30 ensuite le résultat obtenu pour le calcul de Df à la puissance f' où f' désigne l'inverse de f modulo bd (étape E80'). Autrement dit : f f' = 1 mod bd 18 Il obtient alors un résultat qui se peut s'écrire sous la forme : (Dof, (crbd+ax-ax+vy' = (9 f Tbd+ar-aY +v = gubd+ax-aY+v Puis le deuxième module de calcul 2E multiplie le résultat obtenu pour (Df )fipar le nombre (D1)e (étape E90'). Cette multiplication permet au dispositif de calcul 2 de compenser la méconnaissance par le dispositif de calcul 3 de l'élément g et de tenir compte de l'empreinte 5 calculée par celui-ci de ce fait non plus sur l'élément g' comme dans le premier mode de réalisation, mais sur l'élément (gh4e)v= (ghe)°. Puis le module d'obtention 2F du dispositif de calcul 2 calcule une empreinte, notée E2 en appliquant la fonction de hachage HASH sur le résultat obtenu (étape E95'), soit : E2 = HASH((Df)f(D1)e) qui peut s'écrire de manière équivalente sous la forme : 10 E2 = HASH ((gubdienYhe)v) (2) En s'appuyant sur la relation (2) ci-dessus, le module de comparaison 2G du dispositif de calcul 2 compare les empreintes El' et E2' (étape E100'), et en fonction du résultat de la comparaison détermine comment se situe la donnée secrète x par rapport à la donnée secrète y sans que le premier et le deuxième dispositif n'aient besoin de se révéler les données x et y. Plus 15 précisément, le module de comparaison 2G détermine ici, avec les conventions adoptées, que : - x est supérieure ou égale à y si El' = E2' ; ou que - x est inférieure à y si El' * E2'. En effet, en partant de la relation (2), il apparaît que si x est supérieure ou égale à y, alors d + ax - ay > d et le terme gUed+nx- "Y se réduit à 1, g étant d'ordre bd. Calculer l'empreinte 20 E2' revient donc à calculer l'empreinte de (ghe)v, qui par définition, correspond à l'empreinte El' calculée et transmise par le dispositif de calcul 3. A l'inverse, la relation (2), si x est inférieure à y, on ne peut pas conclure que rd+ax-aY = 1. Mais la propriété de résistance aux collisions des fonctions de hachage, qui assure que deux empreintes de valeurs distinctes ont une probabilité négligeable d'être égales, permet en 25 revanche de conclure que si Et * E2', cela signifie que x est bien inférieure à y. Dans la description précédente, on a envisagé deux modes de réalisation selon si l'élément g est maintenu ou non secret par le dispositif de calcul 2. On note que le choix de maintenir ou non g secret peut avoir des conséquences sur les différents paramètres du procédé de comparaison et sur son efficacité. 30 A titre illustratif, dans le premier mode de réalisation où l'élément g est public, la garantie d'un certain niveau de sécurité, typiquement celui préconisé par les recommandations citées précédemment, peut imposer certaines conditions dans le choix des paramètres. Ainsi, par exemple, il est préférable de s'assurer que bd REVENDICATIONS1. Procédé cryptographique de comparaison sécurisée de deux données secrètes x et y entières, détenues respectivement par un premier dispositif de calcul (2) et par un deuxième dispositif de calcul (3), ledit procédé comprenant : une étape de génération (E10), par le premier dispositif de calcul, d'un module RSA noté N ; une étape de calcul (E40), par le premier dispositif de calcul, d'un nombre C égal à gbaxhl où g est un élément d'un sous-groupe G de ZN d'ordre bd, hi est un élément d'un sous-groupe H de 4, d'ordre f, et a, b, d, et f désignent des entiers tels que b et f sont premiers entre eux, et les données x et y sont inférieures à d/a ; une étape d'envoi (E50,E50') par le premier dispositif de calcul du nombre C au deuxième dispositif de calcul ; - une étape de calcul (F20,F20')) par le deuxième dispositif de calcul d'au moins : o un nombre D égal à Cdbd-aY(gh3)dh2 où u et v désignent deux entiers aléatoires, et h2 et h3 des éléments du sous-groupe H ; et o d'une première empreinte (El) de (gh3)° calculée en utilisant une fonction de hachage ; une étape d'envoi (F30,F30') par le deuxième dispositif de calcul au premier dispositif de calcul du nombre D et de la première empreinte ; une étape de calcul (E70,E80,E70',E80') par le premier dispositif de calcul du nombre (.91-)1' où f' est l'inverse de f modulo bd ; - une étape d'obtention (E90,E90',E95') par le premier dispositif de calcul, à partir du nombre (Of )f.' calculé, d'une deuxième empreinte (E2) en utilisant la fonction de hachage ; et - une étape de détermination (E100,E100'), par le premier dispositif de calcul, que x est supérieure ou égale à y ou que x est inférieure à y en fonction du résultat d'une comparaison entre la première empreinte et la deuxième empreinte. 2. Procédé cryptographique selon la revendication 1 comprenant en outre le calcul par le deuxième dispositif de calcul d'un nombre Dl qu'il envole au premier dispositif de calcul et qui est utilisé par celui-ci pour obtenir la deuxième empreinte. 3. Procédé cryptographique selon la revendication 1 dans lequel : g est un élément public ; h3 = 1 ; - la deuxième empreinte est obtenue en appliquant la fonction de hachage au nombre (D')f, calculé. 21 4. Procédé cryptographique selon la revendication 2 dans lequel : g est un élément maintenu secret par le premier dispositif de calcul et h3 = h4e où e est un entier maintenu secret par le premier dispositif de calcul et h4 désigne un élément du sous-groupe H ; 5 le premier dispositif de calcul envoie au deuxième dispositif de calcul un nombre h' = g. h3, ce nombre étant utilisé par le deuxième dispositif de calcul pour calculer la première empreinte ; le nombre Dl calculé par le deuxième dispositif de calcul et envoyé au premier dispositif de calcul est égal à he ; et la deuxième empreinte est obtenue en appliquant la fonction de hachage au nombre (DO)» 10 calculé multiplié par Dle. 5. Procédé cryptographique selon l'une quelconque des revendications 1 à 4 dans lequel l'entier a est choisi inférieur ou égal à l'entier d, et ba>2z où z désigne un paramètre de sécurité prédéterminé. 15 6. Procédé cryptographique selon l'une quelconque des revendications 1 à 5 dans lequel l'entier u est choisi aléatoirement dans l'intervalle [0:ba-1] et l'entier v est choisi aléatoirement dans l'intervalle [0; bd-1]. 20 7. Dispositif de calcul (2), dit premier dispositif de calcul, détenant et maintenant secrète une donnée entière x, ledit premier dispositif de calcul comprenant : un module de génération (2A), configuré pour générer un module 125A noté N ; un premier module de calcul (2B), configuré pour calculer un nombre C égal à g" hloù g est un élément d'un sous-groupe G de ZN d'ordre bd, h1 est un élément d'un sous-groupe H de 71N 25 d'ordre f, et (1, b, d, et f désignent des entiers tels que b et f sont premiers entre eux et la donnée x est inférieure à d/a ; un module d'envoi (2C), configuré pour envoyer le nombre C à un deuxième dispositif de calcul détenant et maintenant secrète une donnée entière y, la donnée y étant inférieure à d/a ; un module de réception (2D), apte à recevoir du deuxième dispositif de calcul au moins : 30 o un nombre D égal à ce-ed"(8h3)eh2 où u et v désignent deux entiers aléatoires, et h2 et h3 des éléments du sous-groupe H ; et o une première empreinte de (gh3)vcalculée en utilisant une fonction de hachage ; un deuxième module de calcul (2E), configuré pour calculer un nombre (DOP où f' est l'inverse de f modulo bd ; 35 un module d'obtention (2F), configuré pour obtenir à du nombre (DO!' calculé une deuxième empreinte en utilisant la fonction de hachage ; et 22 un module de détermination (2G), configuré pour déterminer que x est supérieure ou égale à y ou que x est inférieure à y en fonction du résultat d'une comparaison entre la première empreinte et la deuxième empreinte. 5 8. Dispositif de calcul (3), dit deuxième dispositif de calcul, détenant et maintenant secrète une donnée entière y, ledit deuxième dispositif de calcul comprenant : un module de réception (3A), apte à recevoir d'un premier dispositif de calcul détenant et maintenant secrète une donnée entière x, un nombre C égal à gbaxhl où g est un élément d'un sous-groupe G de ZN d'ordre bd, hi est un élément d'un sous-groupe H de 24 d'ordre f. 10 et a, b, d, et f désignent des entiers tels que b et f sont premiers entre eux et les données x et y sont inférieures à d/a ; un module de calcul (3B), configuré pour calculer au moins : o un nombre D égal à CU'bd-aY (g h3)° h2 où u et v désignent deux entiers aléatoires, et h2 et h3 des éléments du sous-groupe H ; et 15 o une empreinte de (gh3)°calculée en utilisant une fonction de hachage ; un module d'envoi (3C), configure pour envoyer au premier dispositif de calcul le nombre D et l'empreinte calculée, pour permettre au premier dispositif de calcul de déterminer sans connaître y si x est supérieure ou égale à y ou si x est inférieure à y. 20 9. Procédé de détermination, destiné à être mis en oeuvre par un premier dispositif de calcul, détenant et maintenant secrète une donnée entière x, ledit procédé de détermination comprenant une étape de génération d'un module RSA noté N ; une étape de calcul d'un nombre C égal à gbaxhi où g est un élément d'un sous-groupe G de 25 e d'ordre bd, h1 est un élément d'un sous-groupe H de ZN d'ordre f, et a, b, d, et f désignent des entiers tels que b et f sont premiers entre eux et la donnée x est inférieure à d/a; une étape d'envoi du nombre C à un deuxième dispositif de calcul détenant et maintenant secrète une donnée entière y, la donnée y étant inférieure à d/a ; une étape de réception en provenance du deuxième dispositif de calcul d'au moins : 30 o un nombre D égal à Cuba-"(gh3f h2 où u et v désignent deux entiers aléatoires, et h2 et h3 des éléments du sous-groupe H ; et o d'une première empreinte de (gh3)bcalculée en utilisant une fonction de hachage ; une étape de calcul par le premier dispositif de calcul du nombre (.9f)P où f' est l'inverse de f modulo bd ; 35 une étape d'obtention par le premier dispositif de calcul, à partir du nombre (DOP calculé, d'une deuxième empreinte en utilisant la fonction de hachage ; et 23 une étape de détermination, par le premier dispositif de calcul, que x est supérieure ou égale à y ou que x est inférieure à y en fonction du résultat d'une comparaison entre la première empreinte et la deuxième empreinte. 5 10. Procédé de calcul, destiné à être mis en oeuvre par un dispositif de calcul dit deuxième dispositif de calcul, détenant et maintenant secrète une donnée entière y, ledit procédé de calcul comprenant : une étape de réception en provenance d'un premier dispositif de calcul détenant et maintenant secrète une donnée entière x, d'un nombre C égal à gbaxh1 où g est un élément d'un sous- 10 groupe G de 7Z d'ordre bd, h1 est un élément d'un sous-groupe H de ZN d'ordre f, et a, b, d, et f désignent des entiers tels que b et f sont premiers entre eux et les données x et y sont inférieures à d/a ; - une étape de calcul d'au moins : o un nombre D égal à cu.bd-aY (g h3)v h2 où u et v désignent deux entiers aléatoires, et 15 h2 et h3 des éléments du sous-groupe H ; et o d'une empreinte de (gh3)1) calculée en utilisant une fonction de hachage ; une étape d'envoi au premier dispositif de calcul du nombre D et de l'empreinte calculée, pour permettre au premier dispositif de calcul de déterminer sans connaître y si x est supérieure ou égale à y ou si x est inférieure à y. 20 11. Programme d'ordinateur (PROG2,PROG3) comportant des instructions pour l'exécution des étapes d'un procédé de détermination selon la revendication 9 ou d'un procédé de calcul selon la revendication 10 lorsque ledit programme est exécuté par un ordinateur. 25 12. Système cryptographique (1) apte à comparer deux données secrètes entières x et y et comprenant : un premier dispositif de calcul (2) selon la revendication 7, détenant et maintenant la donnée x secrète ; et - un deuxième dispositif de calcul (3) selon la revendication 8, détenant et maintenant la donnée 30 y secrète.