Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 02-12-2021 14: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 22: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
Pages : 1