Poznaliśmy zwycięzców Wakacyjnego Konkursu PC Format! Gratulujemy wszystkim zainteresowanym oraz zapraszamy do TEMATU


Użytkownicy przeglądający ten wątek: 1 gości

RSA - odszyfrowana wiadomość różni się od szyfrowanej - błąd w kodzie?

#1
RSA - odszyfrowana wiadomość różni się od szyfrowanej - błąd w kodzie?
Witam.
Mam nadzieję, że to dobry dział.
Mam problem z RSA w PHP.
Napisałem prosty kod testowy szyfrujący i deszyfrujący prostą wiadomość (np. liczbę 16).
Szyfrowanie przebiega pomyślnie, deszyfracja też w większości przypadków, jednak owy problem pojawia się czasem. Mianowicie, źle odszyfrowuje. 

Może dokładniej, dla przykładu:
Szyfruje liczbę 6 a następnie szyfrogram odszyfrowuje.
I tu pojawia się problem. W większości przypadków wszystko działa jak należy lecz zdarza się dość często że wiadomość odszyfrowana nie zgadza się z wiadomością szyfrowaną.

Gdzie może być błąd?
Kod PHP:
<?php


function nwd$a$b )
{
 
 while$b != 0)
 
 {
 
   $t $b;
 
   $b $a $b;
 
   $a $t;
 
 };
 
 return $a;
}

function 
odwr_mod$a$n)
{
 
 $p0 0$p1 1$a0 $a$n0 $n;
 
 $q  $n0 $a0;
 
 $r  $n0 $a0;
 
 while($r 0)
 
 {
 
   $t $p0 $q $p1;
 
   if$t >= 0)
 
     $t $t $n;
 
   else
      $t 
$n - ((-$t) % $n);
 
   $p0 $p1$p1 $t;
 
   $n0 $a0$a0 $r;
 
   $q  $n0 $a0;
 
   $r  $n0 $a0;
 
 }
 
 return $p1;
}

{
 
 
  $tp 
= array(11,13,17,19,23,29,31,37,41,43) ;

 
 do
  
{
 
     do
      
{
 
       $p $tp[rand() % 10];
 
       $q $tp[rand() % 10];
 
       // $p=13;
 
       // $q=11;
 
     } while( $p == $q ) ;

 
     $phi = ($p 1) * ($q 1);
 
     $n   $p $q;


 
     for($e 3nwd($e,$phi) != 1$e += 2);

 
       $d odwr_mod($e,$phi);
 
 } while( $d >= $phi ) ;


 
 echo "P=$p<br />Q=$q<br />Phi=$phi<br /><br />";

 
 echo  "KLUCZ PUBLICZNY<br />
          wykladnik e = "
.$e.
 
       "<br />    modul n = ".$n.
 
       "<br /><br />KLUCZ PRYWATNY<br />".
 
         "wykladnik d = ".$d ;

}










function 
pot_mod$a $w $n)
{

 
 $pot $a$wyn 1;
 
 for($q $w$q 0$q /= 2)
 
 {
 
   if($q 2$wyn = ($wyn $pot) % $n;
 
   $pot = ($pot $pot) % $n
 
 }
 
 return $wyn;
}



// Odszyfrowuje:
{
 
 $t 16 ;
 
 echo "<br /><br />T=".$t;
 
  $c pot_mod($t,$e,$n);
echo 
"<br />C=$c" ;





$c1 pot_mod($c,$d,$n);
echo 
"<br />C1=$c1" ;

Jak już pisałem kod jest całkowicie testowy.
Załączę jeszcze screen.


Załączone pliki Miniatury
   
http://www.it-science.pl/ - zapraszam na srtonę. Wesoły
Całkowicie zmieniony układ strony. Jest teraz bardziej przejrzysta i czytelniejsza.
 System operacyjny: windows_seven Przeglądarka: chrome
#2
RE: RSA - odszyfrowana wiadomość różni się od szyfrowanej - błąd w kodzie?
ja tutaj nie widzę żadnego błędu .
 System operacyjny: windows_seven Przeglądarka: firefox
#3
RE: RSA - odszyfrowana wiadomość różni się od szyfrowanej - błąd w kodzie?
Mimo to czasem skrypt źle deszyfruje Język
http://www.it-science.pl/ - zapraszam na srtonę. Wesoły
Całkowicie zmieniony układ strony. Jest teraz bardziej przejrzysta i czytelniejsza.
 System operacyjny: windows_seven Przeglądarka: chrome
#4
RE: RSA - odszyfrowana wiadomość różni się od szyfrowanej - błąd w kodzie?
w Lini gdzie masz resztę z dzielenia $b = $a % $b; tam może w jakiejś sytuacji zwracane być 0 a wtedy petla while jest przerywana. Pamiętaj że % zwraca resztę dzielenia czyli jeżeli bedzie a=10 b=2 to 10 / 2 = 5 reszty 0 i wtedy zwróci 0
 System operacyjny: windows_seven Przeglądarka: firefox
#5
RE: RSA - odszyfrowana wiadomość różni się od szyfrowanej - błąd w kodzie?
To właśnie był błąd.
Wystarczyło dać w linijce 18 i 29
Kod PHP:
$q  = (int) ($n0 $a0); 


Problem rozwiązany.
Dziękuje serdecznie i pozdrawiam Wesoły
http://www.it-science.pl/ - zapraszam na srtonę. Wesoły
Całkowicie zmieniony układ strony. Jest teraz bardziej przejrzysta i czytelniejsza.
 System operacyjny: windows_seven Przeglądarka: chrome
Programy: Polecane / Nowe / Inne




Podobne wątki (RSA - odszyfrowana wiadomość różni się od szyfrowanej - błąd w kodzie?)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Jak dodać prywatne wiadomość KmiOteK 2 1749 28.01.2012, 13:17
Ostatni post: KmiOteK
  Gdzie w kodzie wkleić kod animacji? TajemniczyX 2 2207 15.08.2011, 18:29
Ostatni post: TajemniczyX
  Czym się różni serwer wirtualny od VPS na ovh.pl? RSS 2 2591 13.08.2011, 12:41
Ostatni post: RSS

Skocz do:


Wybrane wątki (RSA - odszyfrowana wiadomość różni się od szyfrowanej - błąd w kodzie?)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Jak dodać wordpress do cba.pl? gamepad 5 3660 12.02.2017 17:03
Ostatni post: ewelinaaa92
Ściana Jak zrobić forum [HTML PHP MYSQL] toslaw1 13 7066 04.02.2017 15:38
Ostatni post: toslaw1
  Mailing na osobnym hostingu Gregoric 2 2990 01.02.2017 17:30
Ostatni post: breko
  Strona w php - problemy adasik 1 4801 31.01.2017 12:24
Ostatni post: idekodowac
  Skrypt na stronę-a'la wiki k222 3 3087 25.01.2017 10:12
Ostatni post: Ajgor
  Strona źle wyświetla się w IE czesio1 1 2963 24.01.2017 16:35
Ostatni post: koneton
Wink Okienko z ostrzeżeniem Ahmi 3 3207 23.01.2017 15:42
Ostatni post: Rincewind
Ściana Jak zrobić podstronę bez .html Ahmi 1 2982 23.01.2017 15:34
Ostatni post: Rincewind
  Jak napisać robota internetowego? toslaw1 2 3586 11.01.2017 16:38
Ostatni post: toslaw1
  Wtyczka Wordpress do katalogowania plików tomek1812 2 5877 23.12.2016 14:44
Ostatni post: mojeprogramy.com
  Dziwne przekierowania (htaccess) i kody odpowiedzi serwera raxer 1 3484 23.12.2016 14:40
Ostatni post: mojeprogramy.com
  [jQuery][JS] uruchamianie tylko jednej animacji na raz Tajpan 1 746 22.12.2016 00:22
Ostatni post: Sebuś'ik
  Jak postawić serwer na własnym komputerze? Miklonos 19 29577 18.12.2016 18:40
Ostatni post: Ajgor
  Generowanie unikalnego klucza MYSQL/POSTGRESQL netshoppoland 1 961 13.12.2016 09:17
Ostatni post: koneton
  Co powinien mieć serwis ogłoszeniowy? breko 2 3493 09.12.2016 15:23
Ostatni post: breko