Salut les développeurs help !!!
Je réalise une petite application java qui sert à générer la clé de cryptage dans le cas du protocole ECC.
je commence par la multiplication scalaire tout d'abord
L’algorithme que j’implémente est ci-joint.
Et voila ce que j’ai implémenté
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Point multiScalaire(Point p, int a, int k){ //p point a additionner //k combien de fois l'aditionner //Q point resultant Point Q; int j = 0,n; String S; ConvertDecimal c=new ConvertDecimal(); S=c.convert(k, 2); double inf=Double.POSITIVE_INFINITY; Q=new Point(inf, inf); for(int i=0;i<S.length();i++){ if(S.charAt(i)=='1'){ //addition de deux point définie a part testée et fiable Q= addition(p, Q); } //addition de deux point égaux définie a part testée et fiable p=doublement(p, a); return Q;} }
Le problème c’est que j’ai des valeur du x et y de mon point Q indéfini parce que dans mon implémentation l’infini n’est pas considéré comme l’élément neutre par rapport à l’addition.
j'ai trouvé pour solution:
mais toujours le même problème des valeurs indéfinies à cause du fameux infini .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Point multiScalaire(Point p, int a, int k){ //p point a additionner //k combien de fois l'aditionner //Q point resultant Point Q; int j = 0,n; String S; ConvertDecimal c=new ConvertDecimal(); S=c.convert(k, 2); double inf=Double.POSITIVE_INFINITY; Q=new Point(inf, inf); for(int i=0;i<S.length();i++){ if(S.charAt(i)=='1' && Q.getX=Infinity && Q.getY=Infinity){ Q=p; //premiére addition de l'algorithme donne comme résultat p puisque Q=p+Q; ET Q et infini et l'infini et l'element neutre par rapport a l'addition } if(S.charAt(i)=='1' && Q.getX!=Infinity && Q.getY!=Infinity){ //addition de deux point définie a part testée et fiable Q= addition(p, Q); } //addition de deux point égaux définie a part testée et fiable p=doublement(p, a); return Q;} }
quelqu'un aurait une idée sur la solution de mon probléme??
merci d'avance de l'aide
Partager