Ładny brzuch
Bardziej by to pasowalo do dzialu 'matematyka & algorytmy' ale takowego tu nie ma, a ze jest to powiazane z RSA to tu tez pasuje ;). Moze mi ktos wyjasnic jak sie robi dzialanie x^y mod z bez podnoszenia x do potegi y? Znalazlem rozpisane takie dzialanie, ale niestety nie jestem w stanie stwierdzic co tam sie dzieje :(.
19^17 mod 143= =((1*19) mod 143)*((19^2) mod 143)^(17 div 2)= =(19*(75^8)) mod 143= =((75^2) mod 143)^(8 div 2)= =(19*(48^4)) mod 143= =((48^2) mod 143)^(4 div 2)= =(19*(16^2)) mod 143= =((16^2) mod 143)^(2 div 2)= =(19*(113^1)) mod 143= =((19*113) mod 143)*((113^2) mod 143)^(1 div 2)= =(2*(42^0)) mod 143= =2
P.S> oczywiscie x^y to jest x do potegi y ;).
Przesstawie Ci caly algorytm bo analizowanie linijka po linijce nic tutaj nie da.
rozwazmy wyrazenie g^e mod n
a <- 1 while e <> 0 do if e mod 2 > 0 then a <- a * g; a <- a mod n; e <- e div 2; if e <> 0 then g <- g * g; g <- g mod n;
W co drugiej lini tego co wkleiles jest blad.
Wezmy np. linie druga:
=((1*19) mod 143)*((19^2) mod 143)^(17 div 2)= 19 mod 143 * (361 mod 143) ^ 8 = 19 * (75) ^ 8 > 2
druga linia powinna wygladac:
=(((1*19) mod 143)*((19^2) mod 143)^(17 div 2))[b]mod 143[/b] =
Uytkownik osiara edytowa ten post 26 sierpie 2006, 21:21
Przesstawie Ci caly algorytm bo analizowanie linijka po linijce nic tutaj nie da.
rozwazmy wyrazenie g^e mod n
a <- 1 while e <> 0 do if e mod 2 > 0 then a <- a * g; a <- a mod n; e = e div 2; if e <> 0 then g <- g * g; g <- g mod n;
Troche nie rozumiem kodu :/. A dokladniej operatora "<-" - co on oznacza? Rozumiem ze intstrukcje warunkowe obejmuja wyrazenia o szerokosci danego wciecia, tak?
Standardowo znaczek <- oznacza przypisanie.
czyli a = 1; w C i a := 1; w Pascalu.
Standardowo znaczek <- oznacza przypisanie.
czyli a = 1; w C i a := 1; w Pascalu.
Wielkie dzieki! Tak podejrzewalem ale "e = e div 2;" zbilo mnie z tropu :).
Wielkie dzieki! Tak podejrzewalem ale "e = e div 2;" zbilo mnie z tropu :).
Juz poprawiam :)
BTW. Piszesz szyfrator RSA ?? JEzeli tak to w jakim jezyku, w Delphi ?
Juz poprawiam :)
BTW. Piszesz szyfrator RSA ?? JEzeli tak to w jakim jezyku, w Delphi ?
Tak. Na razie w delphi. Jestem w fazie testow - sprawdzam co gdzie i jak dziala, wiec operuje na malych liczbach (32 bity) ale jak juz opanuje ta maszynerie to jakiegos dll'a zrobie chyba (z obsluga duzo wiekszych liczb oczywiscie). A jak sie uda to moze i w C napisze conieco :).
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
19^17 mod 143= =((1*19) mod 143)*((19^2) mod 143)^(17 div 2)= =(19*(75^8)) mod 143= =((75^2) mod 143)^(8 div 2)= =(19*(48^4)) mod 143= =((48^2) mod 143)^(4 div 2)= =(19*(16^2)) mod 143= =((16^2) mod 143)^(2 div 2)= =(19*(113^1)) mod 143= =((19*113) mod 143)*((113^2) mod 143)^(1 div 2)= =(2*(42^0)) mod 143= =2
P.S> oczywiscie x^y to jest x do potegi y ;).
Przesstawie Ci caly algorytm bo analizowanie linijka po linijce nic tutaj nie da.
rozwazmy wyrazenie g^e mod n
a <- 1 while e <> 0 do if e mod 2 > 0 then a <- a * g; a <- a mod n; e <- e div 2; if e <> 0 then g <- g * g; g <- g mod n;
W co drugiej lini tego co wkleiles jest blad.
Wezmy np. linie druga:
=((1*19) mod 143)*((19^2) mod 143)^(17 div 2)= 19 mod 143 * (361 mod 143) ^ 8 = 19 * (75) ^ 8 > 2
druga linia powinna wygladac:
=(((1*19) mod 143)*((19^2) mod 143)^(17 div 2))[b]mod 143[/b] =
Uytkownik osiara edytowa ten post 26 sierpie 2006, 21:21
Przesstawie Ci caly algorytm bo analizowanie linijka po linijce nic tutaj nie da.
rozwazmy wyrazenie g^e mod n
a <- 1 while e <> 0 do if e mod 2 > 0 then a <- a * g; a <- a mod n; e = e div 2; if e <> 0 then g <- g * g; g <- g mod n;
Troche nie rozumiem kodu :/. A dokladniej operatora "<-" - co on oznacza? Rozumiem ze intstrukcje warunkowe obejmuja wyrazenia o szerokosci danego wciecia, tak?
Standardowo znaczek <- oznacza przypisanie.
czyli a = 1; w C i a := 1; w Pascalu.
Standardowo znaczek <- oznacza przypisanie.
czyli a = 1; w C i a := 1; w Pascalu.
Wielkie dzieki! Tak podejrzewalem ale "e = e div 2;" zbilo mnie z tropu :).
Wielkie dzieki! Tak podejrzewalem ale "e = e div 2;" zbilo mnie z tropu :).
Juz poprawiam :)
BTW. Piszesz szyfrator RSA ?? JEzeli tak to w jakim jezyku, w Delphi ?
Juz poprawiam :)
BTW. Piszesz szyfrator RSA ?? JEzeli tak to w jakim jezyku, w Delphi ?
Tak. Na razie w delphi. Jestem w fazie testow - sprawdzam co gdzie i jak dziala, wiec operuje na malych liczbach (32 bity) ale jak juz opanuje ta maszynerie to jakiegos dll'a zrobie chyba (z obsluga duzo wiekszych liczb oczywiscie). A jak sie uda to moze i w C napisze conieco :).