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 02-12-2021 13:59:59

ange007
Membre
Inscription : 02-12-2021
Messages : 1

calcul sur les courbes elliptique

J'ai un petit soucis concernant les courbes elliptique.

Dans cette activité Alice doit envoyer un message confidentiel ? à Bob en utilisant ECC.
Pour cela Bob et Alice se mettent d’accord sur la courbe elliptique
E(100,100, ℤ⁄1009ℤ) et le point P = [12,1] de cette courbe.

1- Comment montrer que le point P appartient a la courbe E.

2- Apres, Alice demande à Bob de lui transmettre sa clé publique. Bob génère aléatoirement y = 17 et
envoie sa clé publique calculée à Alice. Déterminer la clé publique reçue par Alice.

Au fait je cherche une methode de calcul des points en cryptographie sur les courbes elliptiques.

Hors ligne

#2 05-12-2021 21:18:30

Rossignol
Membre
Inscription : 19-06-2015
Messages : 290

Re : calcul sur les courbes elliptique

Bonsoir,

Pour le calcul des points d'une courbe elliptique, il faut d'abord se placer dans le plan $\mathbb{R}^2$. 
On considère la courbe elliptique $\mathcal{C}$ d'équation $y^2 = x^3+ax+b$ de discriminant $4a^3+27b^2\neq 0$. 
$\mathcal{C}$ est clairement symétrique par rapport à l'axe des abscisses.

Le principe général d'addition des points $P_1$ et $P_2$ consiste à trouver le troisième point d'intersection $P$ de la droite$(P_1P_2)$ avec $\mathcal{C}$. Par définition, la somme de $P_1$ et $P_2$ est le point $P_3$ symétrique de $P$ par rapport à l'axe des abscisses.
Si $P_1=P_2$ on prend la tangente à $\mathcal{C}$ au point $P_1$.

Tout se passe bien tant que la sécante ou la tangente n'est pas "verticale" (parallèle à l'axe des ordonnées) car alors il n'y a pas de troisième point d'intersection. Dans ce cas on dit que le point d'intersection est le point à l'infini noté $\mathcal{O}$. 
Toutes les droites "verticales" passent par $\mathcal{O}$.

L'ensemble des points de $\mathcal{C}$ est donc
$$\mathcal{E} = \left\{ (x, y) \in \mathbb{R}^2 ~~|~~ y^2 = x^3+ax+b\right\} \cup \{\mathcal{O}\}$$
L'addition sur $\mathcal{E}$ est définie de la manière suivante :
Soient $P_1$ et $P_2$ des points de $\mathcal{E}$.
* si $P_1 = \mathcal{O}$, alors $P_1 + P_2 = P_2$
* sinon, si $P_2 = \mathcal{O}$, alors $P_1 + P_2 = P_1$
* sinon on a $P_1 = (x_1, y_1)$ et $P_2 = (x_2, y_2)$
    * si $x_1=x_2$ et $y_1=-y_2$ alors $P_1 + P_2 = \mathcal{O}$
    * sinon on calcule la pente $m$ de la droite :
        * $m = \frac{y_2-y_1}{x_2-x_1}$ si $P_1\neq P_2$ (pente de la sécante)
        * $m = \frac{3x_1^2+a}{2y_1}$ si $P_1= P_2$ (pente de la tangente) 
        alors $x_3 = m^2-x_1-x_2$ et $y_3=m(x_1-x_3)-y_1$ 
        et $P_1 + P_2 =(x_3, y_3)$

Ces formules ne sont pas très difficiles à trouver. Ce qui est difficile, c'est de montrer que $(\mathcal{E}, +)$ est un groupe abélien d'élément neutre $\mathcal{O}$.

Il est remarquable que le calcul de $P_1 + P_2$ ne fasse intervenir que les quatre opérations du corps $\mathbb{R}$.

On peut donc remplacer $\mathbb{R}$ par un corps quelconque (de caractéristique $\neq2$, faut pas exagérer quand même).

En cryptographie on utilise le corps $\mathbb{Z}/p\mathbb{Z}$ avec $p$ premier.

J'ai écrit un petit IPython Notebook (sans prétention) là-dessus

@+

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 quatorze plus vingt trois
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