Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 05-12-2011 19:03:24

allopopo
Membre
Inscription : 05-12-2011
Messages : 1

Addition de points sur les courbes elliptiques (co. jacobienne)

Bonsoir,

Je suis entrain d'écrire un petit projet de crytographie sur les courbes elliptiques en C.
Le programme marche très bien si j'utilise le système de coordonnées affines dans lequel chaque point sur la courbe est représenté par 2 coordonnées [tex](x,y)[/tex].

Maintenant je compte remplacer les coordonnées affines par les coordonnées jacobiennes. c'est-à-dire que chaque point est représenté par 3 coordonnées [tex](X,Y,Z)[/tex].

J'aimerais savoir comment  transformer des coordonnées affines aux coordonnées jacobiennes ? Je sais qu'il faut utiliser les formules ci-dessous :
[tex]x = \frac{X}{Z^{2}}, y = \frac{Y}{Z^{3}}[/tex]
Mais je ne sais pas comment gérer la coordonnée [tex]Z[/tex].

Pour l'instant dans mon programme, j'utilise une solution que j'ai trouvé dans un papier : lorsque l'on transforme les coordonnées affines d'un point aux coordonnées jacobiennes, la coordonnée [tex]Z[/tex] est toujours égale à 1 :
[tex](x,y) \longrightarrow (x,y,1)[/tex]
Mais je ne suis pas sûr si c'est correct.

Et pour additionner 2 points sur la courbe [tex]P(X_{1},Y_{1},Z_{1}) + Q(X_{2},Y_{2},Z_{2})=R(X_{3},Y_{3},Z_{3})[/tex], j'ai utilisé les formules ci-dessous :
[tex]U_{1} = X_{1}Z_{2}^{2}, U_{2} = X_{2}Z_{1}^{2}, S_{1} = Y_{1}Z_{2}^{3}, S_{2} = Y_{2}Z_{1}^{3}, H = U_{2} - U_{1}, R = S_{2} - S_{1}[/tex]
[tex]X_{3} = R^{2} - h^{3} - 2U_{1}H^{2}, Y_{3} = R(U_{1}H^{2} - X_{3}) - S_{1}H^{3}, Z_{3} = Z_{1}Z_{2}H[/tex]

Mais après le calcul, le programme me renvoie des coordonnées négatives e.g. [tex](-2854978200,-5344897546224,578)[/tex]. J'essaie de les convertir en coordonnées affines, il me renvoie [tex](-8545, -27679)[/tex]. La coordonnée x est en effet [tex]-8545.689 \dots[/tex] car elle n'est pas divisible par [tex]Z^{2}[/tex].

Donc j'aimerais savoir aussi ce qu'il faut faire si les coordonnées ne sont pas des nombres entier ? Et si elles sont négatives ? J'ai essayé de calculer le modulo de la taille du corps de la courbe, mais le résultat est toujours différent de celui obtenu en utilisant les coordonnées affines.

Merci d'avance et bonne soirée.

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quatre-vingt plus vingt sept
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums