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.
Nom : Sans titre.png
Affichages : 1081
Taille : 28,2 Ko
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:
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;}
       }
mais toujours le même problème des valeurs indéfinies à cause du fameux infini .
quelqu'un aurait une idée sur la solution de mon probléme??
merci d'avance de l'aide