Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR GENERATING PARAMETERS CHARACTERIZING A CRYPTOGRAPHIC PROTOCOL
Document Type and Number:
WIPO Patent Application WO/2018/007645
Kind Code:
A1
Abstract:
The present invention relates to a method for generating at least one parameter characterizing a cryptographic protocol, the method comprising the step of: - initializing a counter, - for each parameter, obtaining a value, a value being obtained by: - calculating an operation applied to a chosen text and the value of the counter, so as to obtain a result, - applying a cryptographic hash function to the result so as to obtain a value, the operation and the cryptographic hash function being specific to the parameter, - testing the compliancy of each value obtained with a criterion, when a value does not comply with the criterion, incrementing the counter and repeating the obtaining and testing steps, and otherwise, generating the parameters such that the value of each parameter is the value which complies with the said at least one criterion.

Inventors:
DUBOIS RENAUD (FR)
BERNARD OLIVIER (FR)
Application Number:
PCT/EP2017/067248
Publication Date:
January 11, 2018
Filing Date:
July 10, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
THALES SA (FR)
International Classes:
H04L9/30
Foreign References:
EP2800299A12014-11-05
Other References:
DANIEL J BERNSTEIN ET AL: "How to manipulate curve standards: a white paper for the black hat", INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH,, vol. 20150927:155915, 27 September 2015 (2015-09-27), pages 1 - 44, XP061019522
THOMAS BAIGNÈRES ET AL: "Trap Me If You Can Million Dollar Curve With a Little Help from our Friends [3]", 1 February 2016 (2016-02-01), XP055353828, Retrieved from the Internet
BOS; COSTELLO; NAEHRIG; STEBILA: "Post-quantum key exchange for the TLS protocol from the ring learning with errors problem", PROCEEDINGS DE LA CONFÉRENCE IEEE SYMPOSIUM ON SECURITY AND PRIVACY (S&P, 2015
Attorney, Agent or Firm:
HABASQUE, Etienne et al. (FR)
Download PDF:
Claims:
REVENDICATIONS

1 . - Procédé de génération d'au moins un paramètre, ledit au moins un paramètre caractérisant un protocole cryptographique, le procédé comprenant au moins l'étape de :

- choix d'un texte,

- initialisation de la valeur d'un compteur à une valeur initiale,

- pour chaque paramètre, obtention d'une valeur pour le paramètre, au moins une valeur pour le paramètre étant obtenue par mise en œuvre des étapes suivantes :

- calcul d'une opération appliquée sur le texte et la valeur du compteur, pour obtenir un résultat,

- application d'une fonction de hachage cryptographique sur le résultat pour obtenir une valeur pour le paramètre, l'opération et la fonction de hachage cryptographique étant spécifiques dudit au moins un paramètre,

- test de la conformité de chaque valeur de paramètre obtenue avec au moins un critère,

lorsqu'au moins une valeur n'est pas conforme avec ledit au moins un critère, incrémentation de la valeur du compteur par ajout d'un nombre entier et itération des étapes d'obtention et de test, et

lorsque chaque valeur est conforme avec le critère, génération des paramètres tels que chaque paramètre a pour valeur la valeur conforme avec ledit au moins un critère.

2. - Procédé selon la revendication 1 , dans lequel le protocole cryptographique est choisi dans le groupe constitué d'une courbe elliptique, d'une courbe appartenant à une famille de courbes paramétrée par au moins un paramètre et d'un protocole d'échanges de clés.

3. - Procédé de génération selon la revendication 1 , dans lequel les paramètres sont les paramètres d'une courbe elliptique, les paramètres étant un module (p), un premier coefficient (d) et un ordre (q), dans lequel :

- une valeur pour le module (p) est obtenue par mise en œuvre d'une étape de calcul d'une première opération (d) appliquée sur le texte et la valeur du compteur, pour obtenir un premier résultat (R1 ) et d'une étape d'application d'une première fonction de hachage cryptographique (H1 ) sur le premier résultat (R1 ) pour obtenir la valeur pour le module (p), - une valeur pour le premier coefficient (d) est obtenue par mise en œuvre d'une étape de calcul d'une deuxième opération (02) appliquée sur le texte et la valeur du compteur, pour obtenir un deuxième résultat (R2) et d'une étape d'application d'une deuxième fonction de hachage cryptographique (H2) sur le deuxième résultat (R2) pour obtenir la valeur pour le premier coefficient (d), et

- une valeur de l'ordre (q) est obtenue par mise en œuvre d'une étape de détermination à partir des valeurs du module (p) et du premier coefficient (d),

chaque opération (01 ; 02) comportant de préférence une concaténation du texte. 4.- Procédé de génération selon la revendication 1 , dans lequel les paramètres sont les paramètres d'une courbe elliptique, les paramètres étant un module (p), un premier coefficient (a), un deuxième coefficient (b) et un ordre (q), dans lequel :

- une valeur pour le module (p) est obtenue par mise en œuvre d'une étape de calcul d'une première opération (d) appliquée sur le texte et la valeur du compteur, pour obtenir un premier résultat (R1 ) et d'une étape d'application d'une première fonction de hachage cryptographique (H1 ) sur le premier résultat (R1 ) pour obtenir la valeur pour le module (p),

- une valeur pour le premier coefficient (a) est obtenue par mise en œuvre d'une étape de calcul d'une deuxième opération (02) appliquée sur le texte et la valeur du compteur, pour obtenir un deuxième résultat (R2) et d'une étape d'application d'une deuxième fonction de hachage cryptographique (H2) sur le deuxième résultat (R2) pour obtenir la valeur pour le premier coefficient (a),

- une valeur pour le premier coefficient (a) est obtenue par mise en œuvre d'une étape de calcul d'une troisième opération (03) appliquée sur le texte et la valeur du compteur, pour obtenir un troisième résultat (R3) et d'une étape d'application d'une troisième fonction de hachage cryptographique (H3) sur le troisième résultat (R3) pour obtenir une valeur pour le deuxième coefficient (b), et

- une valeur de l'ordre (q) est obtenue par mise en œuvre d'une étape de détermination à partir des valeurs du module (p), du premier coefficient (a) et du deuxième coefficient (b),

chaque opération (01 ; 02, 03) comportant de préférence une concaténation du texte.

5.- Procédé selon l'une quelconque des revendications 1 à 4, dans lequel, le texte vérifie au moins l'une des propriétés suivantes :

- une première propriété selon laquelle le texte comporte plus de 16 caractères, - une deuxième propriété selon laquelle le texte comporte une date.

6.- Procédé selon l'une quelconque des revendications 1 à 5, dans lequel, à l'étape de test de conformité, il est mis en œuvre une factorisation d'un premier nombre en nombres premiers pour vérifier au moins un critère, la factorisation étant mise en œuvre sur l'ensemble des facteurs premiers inférieurs à un seuil, le critère étant vérifié lorsque le quotient du premier nombre par le produit de l'ensemble des facteurs premiers inférieurs au seuil est premier. 7.- Procédé de transmission d'une courbe elliptique, la courbe elliptique étant caractérisée par des paramètres générés par le procédé de génération selon la revendication 3 ou 4, dans lequel le procédé de transmission comporte uniquement soit la transmission de la valeur du compteur et de la valeur de l'ordre (q) soit la transmission de la valeur du compteur et de la valeur de la trace de la courbe donnée par la différence entre le module (p) et l'ordre (q) à laquelle est ajoutée le nombre 1 .

8. - Procédé de cryptage ou de décryptage utilisant un protocole cryptographique, le protocole cryptographique étant caractérisé par des paramètres générés par le procédé de génération selon l'une quelconque des revendications 1 à 6.

9. - Produit programme d'ordinateur comportant un support lisible d'informations, sur lequel est mémorisé un programme d'ordinateur comprenant des instructions de programme, le programme d'ordinateur étant chargeable sur une unité de traitement de données et adapté pour entraîner la mise en œuvre d'un procédé selon l'une quelconque des revendications 1 à 8 lorsque le programme d'ordinateur est mis en œuvre sur l'unité de traitement des données.

10. - Support lisible d'informations sur lequel est mémorisé un programme d'ordinateur comprenant des instructions de programme, le programme d'ordinateur étant chargeable sur une unité de traitement de données et adapté pour entraîner la mise en œuvre d'un procédé selon l'une quelconque des revendications 1 à 8 lorsque le programme d'ordinateur est mis en œuvre sur l'unité de traitement des données.

Description:
Procédé de génération des paramètres caractérisant un protocole cryptographique

La présente invention concerne un procédé de génération des paramètres caractérisant un protocole cryptographique. La présente invention se rapporte également à un procédé de transmission d'une courbe elliptique, un procédé de cryptage et un procédé de décryptage utilisant le procédé de génération. La présente invention concerne aussi un produit programme d'ordinateur et un support lisible d'informations associés.

La présente invention se rapporte au domaine de la cryptographie. La cryptographie est scindée en deux parties distinctes : la cryptographie symétrique et la cryptographie asymétrique.

La cryptographie asymétrique permet de réaliser des protocoles d'échange de clés ou de signature électronique. Le chiffrement RSA (nommé par les initiales de ses trois inventeurs) est un algorithme de cryptographie asymétrique qui est lent et gourmand en temps de calcul.

Notamment pour remédier à un tel inconvénient, les courbes elliptiques ont été développées pour les protocoles d'échange. De fait, les courbes elliptiques sont intéressantes pour la cryptographie par l'existence sur le groupe (E(F p ),+) d'une loi d'addition et de multiplication par un scalaire. La loi de multiplication par un scalaire définit le problème dit du logarithme discret sur courbes elliptiques, consistant à retrouver le scalaire k à partir de [k]P et P. Ce problème est calculatoirement difficile, c'est-à-dire que sa résolution n'est pas polynomiale en la taille en bits des éléments.

Pour assurer que le problème soit effectivement difficile, il convient que la courbe elliptique considérée vérifie un certain nombre de critères de sûreté.

Une courbe elliptique est considérée comme sûre si la courbe est insensible à une attaque générique du type rho de Pollard, à une attaque de type transfert, aux attaques utilisant des endomorphismes issus de la multiplication complexe, à une attaque sur la courbe associée par le phénomène de retournement (aussi désigné par le terme anglais de « twist ») et considérée comme rigide, c'est-à-dire que le procédé de génération est complètement explicite et ne comporte aucune étape arbitraire.

La génération d'une courbe elliptique sûre est donc difficile puisque de nombreux critères sont à vérifier ; en particulier la propriété de complète rigidité est très difficile à garantir.

Il existe donc un besoin pour un procédé de génération des paramètres d'une courbe elliptique, et plus généralement d'un protocole cryptographique, qui permette d'obtenir de manière totalement rigide une courbe elliptique sûre, respectivement un protocole cryptographique sûr. A cet effet, il est proposé un procédé de génération d'au moins un paramètre, ledit au moins un paramètre caractérisant un protocole cryptographique, le procédé comprenant au moins l'étape de choix d'un texte, d'initialisation de la valeur d'un compteur à une valeur initiale. Le procédé comprend au moins pour chaque paramètre, l'obtention d'une valeur pour le paramètre, au moins une valeur pour le paramètre étant obtenue par mise en œuvre des étapes suivantes de calcul d'une opération appliquée sur le texte et la valeur du compteur, pour obtenir un résultat, et d'application d'une fonction de hachage cryptographique sur le résultat pour obtenir une valeur pour le paramètre, l'opération et la fonction de hachage cryptographique étant spécifiques dudit au moins un paramètre. Le procédé comprend au moins l'étape de test de la conformité de chaque valeur de paramètre obtenue avec au moins, un critère, et lorsqu'au moins une valeur n'est pas conforme avec ledit au moins un critère, Γ étape d'incrémentation de la valeur du compteur par ajout d'un nombre entier et d'itération des étapes d'obtention et de test, et lorsque chaque valeur est conforme avec le critère, une étape de génération des paramètres tels que chaque paramètre a pour valeur la valeur conforme avec ledit au moins un critère.

Suivant des modes de réalisation particuliers, le procédé de génération comprend une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les combinaisons techniquement possibles :

- le protocole cryptographique est choisi dans le groupe constitué d'une courbe elliptique, d'une courbe appartenant à une famille de courbes paramétrée par au moins un paramètre et d'un protocole d'échanges de clés.

- les paramètres sont les paramètres d'une courbe elliptique, les paramètres étant un module, un premier coefficient et un ordre, une valeur pour le module étant obtenue par mise en œuvre d'une étape de calcul d'une première opération appliquée sur le texte et la valeur du compteur, pour obtenir un premier résultat et d'une étape d'application d'une première fonction de hachage cryptographique sur le premier résultat pour obtenir la valeur pour le module, une valeur pour le premier coefficient étant obtenue par mise en œuvre d'une étape de calcul d'une deuxième opération appliquée sur le texte et la valeur du compteur, pour obtenir un deuxième résultat et d'une étape d'application d'une deuxième fonction de hachage cryptographique sur le deuxième résultat pour obtenir la valeur pour le premier coefficient, et une valeur de l'ordre de la courbe étant obtenue par mise en œuvre d'une étape de détermination à partir des valeurs du module et du premier coefficient, chaque opération comportant de préférence une concaténation du texte. - les paramètres sont les paramètres d'une courbe elliptique, les paramètres étant un module, un premier coefficient, un deuxième coefficient et un ordre, une valeur pour le module étant obtenue par mise en œuvre d'une étape de calcul d'une première opération appliquée sur le texte et la valeur du compteur, pour obtenir un premier résultat et d'une étape d'application d'une première fonction de hachage cryptographique sur le premier résultat pour obtenir la valeur pour le module, une valeur pour le premier coefficient étant obtenue par mise en œuvre d'une étape de calcul d'une deuxième opération appliquée sur le texte et la valeur du compteur, pour obtenir un deuxième résultat et d'une étape d'application d'une deuxième fonction de hachage cryptographique sur le deuxième résultat pour obtenir la valeur pour le premier coefficient, une valeur pour le deuxième coefficient étant obtenue par mise en œuvre d'une étape de calcul d'une troisième opération appliquée sur le texte et la valeur du compteur, pour obtenir un troisième résultat et d'une étape d'application d'une troisième fonction de hachage cryptographique sur le troisième résultat pour obtenir une valeur pour le deuxième coefficient, et une valeur de l'ordre de la courbe étant obtenue par mise en œuvre d'une étape de détermination à partir des valeurs du module, du premier coefficient et du deuxième coefficient, chaque opération comportant de préférence une concaténation du texte.

- le texte vérifie au moins l'une des propriétés suivantes : une première propriété selon laquelle le texte comporte plus de 16 caractères, une deuxième propriété selon laquelle le texte comporte une date.

- à l'étape de test de conformité, il est mis en œuvre une factorisation d'un premier nombre en nombres premiers pour vérifier au moins un critère, la factorisation étant mise en œuvre sur l'ensemble des facteurs premiers inférieurs à un seuil, le critère étant vérifié lorsque le quotient du premier nombre par le produit de l'ensemble des facteurs premiers inférieurs au seuil est premier.

La présente description concerne aussi un procédé de transmission d'une courbe elliptique, la courbe elliptique étant caractérisée par des paramètres générés par le procédé de génération tel que décrit précédemment, dans lequel le procédé de transmission comporte uniquement soit la transmission de la valeur du compteur et de la valeur de l'ordre de la courbe soit la transmission de la valeur du compteur et de la valeur de la trace de la courbe donnée par la différence entre le module et l'ordre de la courbe à laquelle est ajoutée le nombre 1 .

La présente description se rapporte également à un procédé de cryptage ou de décryptage utilisant un protocole cryptographique, le protocole cryptographique étant caractérisé par des paramètres générés par le procédé de génération tel que décrit précédemment.

Il est aussi proposé un produit programme d'ordinateur comportant un support lisible d'informations, sur lequel est mémorisé un programme d'ordinateur comprenant des instructions de programme, le programme d'ordinateur étant chargeable sur une unité de traitement de données et adapté pour entraîner la mise en œuvre d'un procédé tel que décrit précédemment lorsque le programme d'ordinateur est mis en œuvre sur l'unité de traitement des données.

Il est également proposé un support lisible d'informations sur lequel est mémorisé un programme d'ordinateur comprenant des instructions de programme, le programme d'ordinateur étant chargeable sur une unité de traitement de données et adapté pour entraîner la mise en œuvre d'un procédé tel que décrit précédemment lorsque le programme d'ordinateur est mis en œuvre sur l'unité de traitement des données.

D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui suit de modes de réalisation de l'invention, donnée à titre d'exemple uniquement et en référence aux dessins qui sont :

- figure 1 , une vue schématique d'un exemple de système permettant la mise en œuvre des procédés, et

figure 2, un ordinogramme d'un exemple de mise en œuvre d'un procédé de génération des paramètres d'une courbe elliptique et de transmission d'une courbe elliptique.

Un système 10 et un produit programme d'ordinateur 12 sont représentés à la figure 1 . L'interaction du produit programme d'ordinateur 12 avec le système 10 permet de mettre en œuvre un procédé de génération des paramètres d'un protocole cryptographique.

Le système 10 est un ordinateur.

Plus généralement, le système 10 est un calculateur électronique propre à manipuler et/ou transformer des données représentées comme des quantités électroniques ou physiques dans des registres du système 10 et/ou des mémoires en d'autres données similaires correspondant à des données physiques dans des mémoires, des registres ou d'autres types de dispositifs d'affichage, de transmission ou de mémorisation.

Le système 10 comporte un processeur 14 comprenant une unité de traitement de données 16, des mémoires 18 et un lecteur 20 de support d'informations. Le système 10 comprend également un clavier 22 et une unité d'affichage 24. Le produit programme d'ordinateur 12 comporte un support lisible d'informations 20.

Un support lisible d'informations 20 est un support lisible par le système 10, usuellement par l'unité de traitement de données 14. Le support lisible d'informations 20 est un médium adapté à mémoriser des instructions électroniques et capables d'être couplé à un bus d'un système informatique.

A titre d'exemple, le support lisible d'informations 20 est une disquette ou disque souple (de la dénomination anglaise de « floppy disk »), un disque optique, un CD-ROM, un disque magnéto-optique, une mémoire ROM, une mémoire RAM, une mémoire EPROM, une mémoire EEPROM, une carte magnétique ou une carte optique.

Sur le support lisible d'informations 20 est mémorisé un programme d'ordinateur comprenant des instructions de programme.

Le programme d'ordinateur est chargeable sur l'unité de traitement de données 14 et est adapté pour entraîner la mise en œuvre d'un procédé de génération des paramètres d'une courbe elliptique lorsque le programme d'ordinateur est mis en œuvre sur l'unité de traitement des données 14.

Le fonctionnement du système 10 en interaction avec le produit programme d'ordinateur 12 est maintenant décrit en référence à la figure 2 qui illustre un exemple de mise en œuvre d'un procédé de génération des paramètres d'une courbe elliptique.

Les courbes elliptiques utilisées en cryptographie sont généralement données sous forme de Weierstrass. Ce sont l'ensemble des points d'un corps fini F p vérifiant l'équation suivante :

Y 2 =X 3 +aX+b mod p

Où :

· X et Y sont des éléments du corps fini F p ,

• p est le module,

• a est le premier coefficient, et

• b est le deuxième coefficient.

Pour chacune des courbes, un ensemble de paramètres permet de connaître la courbe.

De manière simple, les paramètres sont le module p, le premier coefficient a et le deuxième coefficient b.

Ces trois paramètres suffisent à caractériser une courbe elliptique.

Pour pouvoir échanger des informations sur un canal dit public, il est également utilisé dans le cadre de la cryptographie d'autres paramètres parmi lesquels les coordonnées du point de base de la courbe notées (x, y), l'ordre de la courbe q ou le cofacteur h. Par définition, le cofacteur est le rapport entre l'ordre q et l'ordre du groupe engendré par le point de base (x,y) ; le point de base est choisi de telle sorte que ce cofacteur soit très petit.

Le procédé de génération comporte une phase de fourniture 50, une phase de calcul 60 et une phase de test 62 schématiquement représentées sur la figure 2.

La phase de fourniture 50 comporte une étape de choix d'un texte et d'initialisation de la valeur d'un compteur à une valeur initiale.

De préférence, le texte choisi comporte plus de 16 caractères.

Selon un exemple particulier, le texte est un texte propriétaire de la personne générant les paramètres, par exemple, un extrait d'une licence d'un produit vendu par cette personne. Cette licence est schématisée par un cadre avec un numéro de référence 54.

Afin de garantir la rigidité du processus proposé, il est recommandé que le texte choisi soit intelligible et permette d'identifier celui qui en revendique la propriété ou le contexte d'utilisation.

Selon une variante, le texte comporte également des données relatives à la date de mise en œuvre du procédé. Ces données sont schématisées par un cadre avec un numéro de référence 56.

Par exemple, il est possible de concaténer une partie du texte et une date.

Selon un autre exemple, le texte lui-même comporte la date. A titre d'illustration, le texte est « Cette courbe a été générée à telle date ».

Le compteur est, par ailleurs, initialisé à une valeur initiale, par exemple 1 (voir le cadre avec un numéro de référence 52).

La phase de calcul 60 comporte une pluralité d'étapes de calcul, d'application et une étape de détermination.

A la première étape de calcul, une première opération d est appliquée sur le texte et la valeur du compteur, pour obtenir un premier résultat R1 .

Selon l'exemple décrit, la première opération d est une concaténation du texte, de la valeur du compteur et d'une première constante Ci . Une concaténation consiste à mettre bout à bout deux chaînes de caractère.

A la deuxième étape de calcul, une deuxième opération 0 2 est appliquée sur le texte et la valeur du compteur, pour obtenir un deuxième résultat R2 distinct d'un premier résultat R1 .

Selon l'exemple décrit, la deuxième opération 0 2 est une concaténation du texte, de la valeur du compteur et d'une deuxième constante C 2 distincte de la première constante Ci . A la troisième étape de calcul, une troisième opération 0 3 est appliquée sur le texte et la valeur du compteur, pour obtenir un troisième résultat R3.

Selon l'exemple décrit, la troisième opération 0 3 est une concaténation du texte, de la valeur du compteur et d'une troisième constante C 3 distincte de la première constante Ci et distincte de la deuxième constante C 2 .

Dans chacun des exemples décrits, il apparaît que chaque opération d , 0 2 et 0 3 comporte une concaténation du texte, de la valeur du compteur et d'une constante spécialisant de manière unique chaque sortie.

A la première étape d'application, il est appliqué une première fonction de hachage cryptographique H1 sur le premier résultat R1 pour obtenir une valeur pour le module p.

Une fonction de hachage est une fonction particulière qui, à partir d'une donnée fournie en entrée, calcule une empreinte servant à identifier rapidement, bien qu'incomplètement, la donnée initiale.

Selon l'exemple proposé, la fonction de hachage H1 est la fonction SHA-1 .

Dans le cas illustré, la valeur obtenue pour le module p est égale à la valeur en hexadécimal du résultat obtenu par application de la première fonction de hachage cryptographique H1 sur le premier résultat R1 .

A la deuxième étape d'application, il est appliqué une deuxième fonction de hachage cryptographique H2 sur le deuxième résultat R2 pour obtenir une valeur pour le premier coefficient a.

Selon l'exemple illustré, la première fonction de hachage cryptographique H1 et la deuxième fonction de hachage cryptographique H2 sont identiques.

En outre, similairement à la première étape d'application, la valeur obtenue pour le premier coefficient a est égale à la valeur en hexadécimal du résultat obtenu par application de la deuxième fonction de hachage cryptographique H2 sur le deuxième résultat R2.

A la troisième étape d'application, il est appliqué une troisième fonction de hachage cryptographique H3 sur le troisième résultat R3 pour obtenir une valeur pour le deuxième coefficient b.

Selon l'exemple illustré, la première fonction de hachage cryptographique H1 et la troisième fonction de hachage cryptographique H3 sont identiques.

En outre, similairement à la première étape d'application, la valeur obtenue pour le deuxième coefficient b est égale à la valeur en hexadécimal du résultat obtenu par application de la troisième fonction de hachage H3 sur le troisième résultat R3. Lors de l'étape de détermination, il est déterminé la valeur de l'ordre q correspondante aux valeurs du module p, du premier coefficient a et du deuxième coefficient b.

Une telle valeur de l'ordre q est déterminée, par exemple, par utilisation de l'algorithme de Schoof ou sa version améliorée par Elkies et Atkin (également appelée algorithme SEA).

Lors de la phase de test 62, un test de conformité des valeurs du module p, du premier coefficient a, du deuxième coefficient b et de l'ordre q est mis en œuvre.

Les valeurs du module p, du premier coefficient a, du deuxième coefficient b et de l'ordre q sont considérées comme conformes si les valeurs du module p, du premier coefficient a, du deuxième coefficient b et de l'ordre q vérifient un critère.

Par exemple, le critère est choisi pour que la courbe elliptique obtenue à partir des valeurs du module p, du premier coefficient a, du deuxième coefficient b et de l'ordre q soit sûre.

Selon un mode de réalisation particulier, le critère de sûreté précédent est rempli dès que les valeurs du module p, du premier coefficient a, du deuxième coefficient b et de l'ordre q vérifient une pluralité de sous-critères.

Selon un premier sous-critère, la courbe elliptique est insensible à une attaque du rho de Pollard.

Par exemple, selon le premier sous-critère, la taille du sous-groupe q est supérieure à deux fois le niveau de sécurité.

Le niveau de sécurité dépend de l'application visée et constitue un objectif à atteindre. Concrètement, le niveau de sécurité correspond au logarithme du nombre minimal d'opérations qu'il est nécessaire de faire pour casser le système. A titre d'exemple, pour les applications civiles, 128 bits de sécurité sont recommandés.

Selon un deuxième sous-critère, la courbe elliptique est insensible à un transfert additif et un transfert multiplicatif. Par exemple, une expression du deuxième sous-critère est que p k = 1 [q] implique que k est un nombre entier supérieur ou égal à 30. Le nombre k est appelé degré de plongement de la courbe considérée.

Selon un troisième sous-critère, la courbe elliptique est insensible à une attaque utilisant des endomorphismes issus de la multiplication. Par exemple, une expression du troisième sous-critère est d'imposer que le discriminant soit supérieur à une valeur seuil.

Par discriminant, il est entendu ici la valeur absolue de la partie sans facteurs carrés de

((p+1 -q) * p).

Selon un troisième sous-critère, la courbe elliptique est insensible à une attaque qui consiste à injecter une faute dans l'exécution du calcul pour forcer le calcul à converger vers la courbe « twist » de la courbe initiale. L'équation de la courbe « twist » est donnée par :

dY 2 =X 3 +aX+b mod p

où d est un élément du corps fini F p n'admettant pas de racine carrée.

En variante, le critère de sûreté précédent est rempli dès que les valeurs du module p, du premier coefficient a, du deuxième coefficient b et de l'ordre q vérifient toute combinaison des sous-critères évoqués précédemment.

Selon une variante, l'étape de test de conformité implique une factorisation d'un premier nombre en nombres premiers pour vérifier au moins un critère. Selon une variante, la factorisation peut être mise en œuvre que sur l'ensemble des facteurs premiers inférieurs à un seuil, le critère étant vérifié lorsque le quotient du premier nombre par le produit de l'ensemble des facteurs premiers inférieurs au seuil est premier.

Par exemple, pour tester que l'ordre de la courbe twist comporte au moins un facteur premier supérieur à 2 100 , on commence par extraire tous les facteurs premiers jusqu'à 2 80 par la méthode ECM (aussi appelée factorisation de Lenstra pour les courbes elliptiques). Si le résidu est premier et vérifie le critère, la courbe est déclarée sûre vis-à- vis du critère, sinon, si le résidu est composite ou inférieur au seuil, la courbe est rejetée.

Selon l'exemple décrit, le critère est vérifié si l'ensemble des sous-critères suivants est vérifié :

· le module p est un nombre premier et est compris entre2 et 2' ;

• l'ordre q est un nombre premier et est compris entre 2 M et 2' ;

• le degré de plongement de la courbe et le degré de plongement de la courbe twist sont supérieurs à 2 100 ;

• l'ordre de la courbe twist comporte au moins un facteur premier supérieur à 2 100 , et

• le discriminant de la courbe est supérieur à 2 100 .

Comme visible sur la figure 2, deux cas existent et sont représentés schématiquement par les flèches 64 et 66.

Selon la flèche 64, les valeurs du module p, du premier coefficient a, du deuxième coefficient b et de l'ordre q ne sont pas conformes avec le critère.

Dans ce cas, la valeur du compteur est incrémentée par ajout d'un nombre entier.

Par exemple, le nombre entier est égal à 1 .

La phase de calcul 60 et la phase de test 62 sont alors itérées.

Selon la flèche 66, les valeurs du module p, du premier coefficient a, du deuxième coefficient b et de l'ordre q sont conformes avec le critère. Dans ce cas, des paramètres sont générés, les paramètres étant tels que le module p, le premier coefficient a, le deuxième coefficient b et l'ordre q ont pour valeur les valeurs du module p, du premier coefficient a, du deuxième coefficient b et de l'ordre q conformes avec le critère.

Autrement formulé, la phase de calcul 60 et la phase de test 62 sont itérées tant que les valeurs du module p, du premier coefficient a, du deuxième coefficient b et de l'ordre q ne sont pas conformes au critère.

Les paramètres générés à l'issue du procédé de génération sont les premières valeurs du module p, du premier coefficient a, du deuxième coefficient b et de l'ordre q vérifiant le critère.

Une fois le module p, le premier coefficient a, le deuxième coefficient b et l'ordre q générés par le procédé précédent, le point de base peut être choisi comme étant le point de coordonnées (x,y) de la courbe d'abscisse x la plus petite et d'ordonnée y paire tel que l'ordre du point de coordonnées (x,y) est q.

De préférence, le point est choisi de manière non arbitraire.

La demanderesse a effectué des tests montrant que le calcul converge avec de l'ordre de quelques fois I 2 itérations. Plusieurs courbes ont ainsi été générées grâce à ce procédé, et pour différents niveaux de sécurité. Ceci valide le procédé.

Le procédé permet de générer de multiples courbes elliptiques sûres de manière prouvée complètement rigide.

En outre, les courbes sont reliées à un texte qui permet d'authentifier la courbe, ce qui permet d'envisager facilement un changement périodique des courbes, par exemple par un changement périodique du texte.

Dans le cas illustré, le changement périodique est appliqué sur les données relatives à la date.

Cela permet également d'éviter son rejeu. Cela signifie qu'un attaquant ne peut pas forcer l'actualisation avec une courbe obsolète (passée pour légitime), puisqu'il ne contrôle pas la date, qui est dérivée d'une horloge de confiance.

En outre, l'unicité obtenue par la génération permet la compression de la transmission des paramètres, de sorte qu'il suffit de transmettre la valeur du compteur et la valeur de l'ordre q pour obtenir la courbe elliptique.

Ceci apparaît schématiquement dans le deuxième espace E2 de la figure 2 (l'espace E1 correspondant à l'espace de génération).

A l'étape 68, sont transmis la valeur du compteur et la valeur de l'ordre q.

A l'étape 70, le texte est fourni. Ainsi que l'illustrent schématiquement les étapes 72 et 74, il est réappliqué les mêmes étapes qu'à la construction, sauf qu'ici la bonne valeur du compteur est connue. Ainsi, les opérations 01 , 02 et 03 sont appliquées pour obtenir des résultats intermédiaires à l'étape 72, puis les fonctions de hachages cryptographiques H1 , H2 et H3 sont appliquées aux résultats intermédiaires pour obtenir le module p, le premier coefficient a et le deuxième coefficient b.

La transmission est ainsi plus aisée puisque seules la valeur du compteur et la valeur de l'ordre q sont transmises. Il est à noter que la transmission de q évite simplement au récepteur de recalculer l'ordre de la courbe (ce qui ne serait pas raisonnable).

En outre, selon un mode de réalisation plus élaboré, il suffit de transmettre, en sus de la valeur du compteur, la trace de la courbe définie comme la quantité (p+1 -q), sur seulement I/2 bits.

De fait, en exploitant la borne de Hasse, il apparaît que la différence entre (p+1 ) et q est bornée en valeur absolue par deux fois la racine de p. Ainsi, la valeur du compteur permet d'obtenir le module p, et les I/2 bits de la trace permettent de déduire tous les bits de l'ordre q.

Dans un tel mode de réalisation, la transmission de l'intégralité des paramètres de courbes du concepteur vers l'utilisateur en I/2 + 48 bits, I étant la longueur en bits de l'ordre q et 48 le nombre de bits associés à la valeur du compteur.

La courbe elliptique ainsi générée via la génération des paramètres est utilisable pour de multiples applications cryptographiques, comme les postes de radio ou les systèmes de repérage.

Chacun des procédés proposés peut être mis en l'œuvre à l'aide d'un ordinateur quelconque ou tout autre type de dispositif. De multiples systèmes peuvent être utilisés avec des programmes mettant en œuvre les procédés précédents mais il est également envisageable d'utiliser des appareils dédiés à la mise en œuvre des procédés précédents, ceux-ci pouvant s'insérer dans les dispositifs propres à mesurer les données fournies. De plus, les modes de réalisation proposés ne sont pas reliés à un langage de programmation particulier. Incidemment, cela implique que de multiples langages de programmation peuvent être utilisés pour mettre en œuvre un des procédés précédemment détaillés.

En outre, le procédé proposé est utilisable pour tout type de protocole cryptographique reposant sur au moins un paramètre aléatoire.

Plus précisément, le procédé proposé s'applique pour la génération d'au moins un paramètre caractérisant un protocole cryptographique. Dans un tel cas, le procédé comporte l'étape de choix, l'étape d'initialisation, une étape d'obtention d'une valeur pour chaque paramètre caractérisant le protocole cryptographique et l'étape de test.

Pour au moins un paramètre, l'étape d'obtention comporte la mise en œuvre d'une étape de calcul d'une opération appliquée sur le texte et la valeur du compteur, pour obtenir un résultat et d'application d'une fonction de hachage cryptographique sur le résultat pour obtenir une valeur pour le paramètre, l'opération et la fonction de hachage cryptographique étant spécifique dudit au moins un paramètre.

Plusieurs exemples particuliers d'un tel usage du procédé sont décrits dans ce qui suit.

Par exemple, le procédé est applicable également pour générer des courbes présentées sous d'autres modèles que le modèle de Weierstrass, et nécessitant une ou plusieurs constantes aléatoires. Par exemple, le procédé est utilisé pour générer des courbes sous forme d'Edwards, de Jacobi, de Montgomery ou de Hessiennes. Typiquement, dans la formulation d'Edwards, au lieu de générer les deux coefficients a et b, il est généré un seul coefficient usuellement noté d selon laquelle une courbe elliptique s'écrit sous la forme x 2 + y 2 = 1 +d * x 2* y 2 .

Selon un autre exemple, le procédé est appliqué pour la génération de paramètres caractérisant des courbes appartenant à une famille paramétrée par un ou plusieurs éléments aléatoires. A titre d'illustration, les courbes de la famille Barreto-Naehrig sont générées par l'évaluation de plusieurs polynômes en une seule variable aléatoire, la variable étant obtenue par mise en œuvre du procédé.

Selon encore un autre exemple, le procédé est appliqué à un protocole d'échanges de clés quantiques comme le protocole décrit par les auteurs Bos, Costello, Naehrig et Stebila dans le document intitulé « Post-quantum key exchange for the TLS protocol from the ring learning with errors problem » issue d'un proceedings de la conférence IEEE Symposium on Security and Privacy (S&P) 2015. Un tel protocole implique une constante a, dont il faut pouvoir prouver que la génération n'a pas été dictée par des intentions malicieuses.

Les procédés et modes de réalisations décrits ci-dessus sont aptes à être combinés les uns aux autres, totalement ou partiellement, pour donner lieu à d'autres modes de réalisation de l'invention.