Owkay ik weet niet of dit hier hoort maar ik wist niet precies waar het hoorde
Dit gaat over het RSA versleutelingsalgoritme
Ik moet 1 getal berekenen. Dit is bijv $D. De formule voor $D moet hieruit blijken
$P == een random priemgetal
$Q == een random priemgetal
$Z == ($P-1)*($Q-1)
$E == relatief priem tov ($P-1)*($Q-1)
Op dit moment bereken ik $D als volgt:
Ik probeer dus gewoon alle D's uit. Echter volgens mij moet dit makkelijk met een ander algoritme kunnen. Ik heb nu dit algoritme:
$E == relatief priem tov ($P-1*($Q-1) == (($P-1)*($Q-1))-1 is altijd relatief priem
Wat ik nu doe is het relatief priem getal in het kwadraat. Als je dit deelt door $Z krijg je altijd 1. Echter om er wat variatie in te brengen (anders weet je gelijk met de public key wat de private key is) moet hij maal een getal. Proef ondervindelijk heb ik gevonden dat als je $E^2 vermenigvuldigt met (een random getal maal $Z +1), dat je dan ook altijd 1 als rest overhoudt.
Nou vraag ik me af, zit er een grote fout in dit algoritme? En het belangrijkste, kan iemand dit THEORETISCH uitleggen
Superveel dank, en sorry voor de lap tekst
Persoonlijk lijkt me deze manier van $D generen niet snel te cracken omdat je $P*$Q weggeeft in je public key en ($P-1)*($Q-1) moeilijk te achterhalen is
            Dit gaat over het RSA versleutelingsalgoritme
Ik moet 1 getal berekenen. Dit is bijv $D. De formule voor $D moet hieruit blijken
code:
1
 | ($D*$E) mod ($P-1)*($Q-1);  | 
$P == een random priemgetal
$Q == een random priemgetal
$Z == ($P-1)*($Q-1)
$E == relatief priem tov ($P-1)*($Q-1)
Op dit moment bereken ik $D als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 | function inv_mod($E, $Z){
    
    $D=1;
      // $Z == ($P-1)*($Q-1)
    while(TRUE){
        if(($D*$E) % $Z ==1){
            return($D);
        }
        $D++;
    }
    
} | 
Ik probeer dus gewoon alle D's uit. Echter volgens mij moet dit makkelijk met een ander algoritme kunnen. Ik heb nu dit algoritme:
$E == relatief priem tov ($P-1*($Q-1) == (($P-1)*($Q-1))-1 is altijd relatief priem
code:
1
2
3
4
5
6
7
8
9
10
11
12
 | function inv_mod($E, $Z){
    
      define("Multiplier_MIN",1);
      define("Multiplier_MAX",<waarde>); 
      
    $multiplier = mt_rand(Multiplier_MIN, Multiplier_MAX);
     //(($multiplier*$Z)+1)*$E*$E) % $Z ==1
      $D = (($multiplier*$Z)+1);
      return($D);
    
} | 
Wat ik nu doe is het relatief priem getal in het kwadraat. Als je dit deelt door $Z krijg je altijd 1. Echter om er wat variatie in te brengen (anders weet je gelijk met de public key wat de private key is) moet hij maal een getal. Proef ondervindelijk heb ik gevonden dat als je $E^2 vermenigvuldigt met (een random getal maal $Z +1), dat je dan ook altijd 1 als rest overhoudt.
Nou vraag ik me af, zit er een grote fout in dit algoritme? En het belangrijkste, kan iemand dit THEORETISCH uitleggen
Superveel dank, en sorry voor de lap tekst
Persoonlijk lijkt me deze manier van $D generen niet snel te cracken omdat je $P*$Q weggeeft in je public key en ($P-1)*($Q-1) moeilijk te achterhalen is