Witam,
zrobiłem taki kod ale nie mam już pojecia dlaczego nie działa jak należy, podaje w nim stałą e i on ma wyliczyć mi zmienna d. To jest mi potrzebne do szyfrowania RSA. Poza tym wszystko działa. Gdy podam sztywno e i d to szyfruje i odszyfrowuje. A jak podam tylko e to stoi w miejscu, losuje mi duże liczby ujemne. Wynik powinien wyjść d= 230701, p,q mam stałe p=659, q=571. Będę wdzieczny za wszelką pomoc :)
class Program
{
static void Main(string[] args)
{
klucz_d zm_d = new klucz_d();
int e = 118801;
int d = zm_d.licz_klucz_d(e);
Console.WriteLine("\nZmienna d: " + d);
}
}
public class klucz_d
{
klucz_e e = new klucz_e(); //potrzebne do pobrania e.liczba_p_q() z innej klasy
public int licz_klucz_d(int klucz_e)
{
int e1 = klucz_e;
int[] zmienna_d = new int[1];
for (int x = 0; ; x++)
{
int licz = x * e1;
int licz1 = licz % e.liczba_p_q();
if (licz == 1)
{
zmienna_d[0] = x;
break;
}
}
return zmienna_d[0];
}
}