Wystartowała kolejna edycja Wakacyjnego Konkursu PC Format! Każdy użytkownik ma szanse zdobyć cenne nagrody. Zainteresowanych 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 1569 28.01.2012, 13:17
Ostatni post: KmiOteK
  Gdzie w kodzie wkleić kod animacji? TajemniczyX 2 2027 15.08.2011, 18:29
Ostatni post: TajemniczyX
  Czym się różni serwer wirtualny od VPS na ovh.pl? RSS 2 2411 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
  [CSS] Nagłówek w sklepie na platformie shoper yahou 0 3917 16.10.2015 00:17
Ostatni post: yahou
  Javascript- obraz o maksymalnym rozmiarze i w konkretnym formacie vadim14 1 3087 10.10.2015 08:24
Ostatni post: dzikuu86
  Edycja dokumentu HTML z poziomu JS Skrzacik 0 5881 07.10.2015 20:02
Ostatni post: Skrzacik
  Najlepszy serwis na bloga pawel_szafa 55 30737 06.10.2015 17:43
Ostatni post: Ajgor
  Darmowy lub tani hosting pod małą specjalistyczną stronę tyrion94 11 8102 05.10.2015 15:55
Ostatni post: breko
  Serwer pod sporą bazę produktów pastel 6 4091 05.10.2015 15:54
Ostatni post: breko
  Blogspot pisany z Francji jak trafić na polskich odbiorców? dexiuu 1 3902 02.10.2015 17:50
Ostatni post: Grzesiek01
  [AJAX+PHP] Przesyłanie danych gangsta 0 3545 30.09.2015 02:25
Ostatni post: gangsta
  Zapisywanie zmiennej w klasie rodzica PHP W o j a k 2 3774 25.09.2015 21:26
Ostatni post: W o j a k
  [PHP] Wielojęzyczna strona www michal16202 1 3776 23.09.2015 12:28
Ostatni post: Ajgor
  Hosting cba.pl - błąd 500 SGPO 2 4156 21.09.2015 18:29
Ostatni post: breko
  Ukrywanie menu : Jak wykonać? itomi 2 4139 17.09.2015 19:52
Ostatni post: dzikuu86
  Platforma do sprzedaży szkoleń przez sklep internetowy konsercki 4 3542 17.09.2015 09:29
Ostatni post: karn
  Umieszczanie reklam na stronie... rygciu 9 10806 11.09.2015 19:30
Ostatni post: Ajgor
  Optymalizacja strony www a pozycja w wyszukiwarce? ksaweryM 14 8611 02.09.2015 14:43
Ostatni post: mirek_kot