Świąteczny konkurs PC Format zakończony. Zwycięzcy zostali wyłonieni. Zainteresowanych zapraszamy do NEWSA.


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 1398 28.01.2012, 13:17
Ostatni post: KmiOteK
  Gdzie w kodzie wkleić kod animacji? TajemniczyX 2 1861 15.08.2011, 18:29
Ostatni post: TajemniczyX
  Czym się różni serwer wirtualny od VPS na ovh.pl? RSS 2 2250 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
  wyświetlanie wyników zapytania w formie tabeli Tajpan 1 3940 19.05.2016 18:42
Ostatni post: Haker2048
  Jaki hosting pod forum ? Arato 35 31088 17.05.2016 17:41
Ostatni post: Ajgor
  Problem z hostingiem strony igor123456789 2 3506 17.05.2016 16:35
Ostatni post: breko
  lokalizacja google na stronie www Tajpan 2 4068 05.05.2016 19:16
Ostatni post: Tajpan
  Hosting pod bloga Erdo 10 8952 02.05.2016 16:31
Ostatni post: breko
  gdzie kupic domene? malakas 146 128523 02.05.2016 16:30
Ostatni post: breko
  HTML aktywne obrazki Daman 2 3745 02.05.2016 11:15
Ostatni post: Ajgor
  Projekt strony internetowej pytanie nashan122 3 4421 01.05.2016 20:23
Ostatni post: Carkvad
  Gdzie online na kurs CSS? trudlewski 4 4067 01.05.2016 20:12
Ostatni post: Carkvad
  Przygotowanie fotki na www cekja 4 4203 18.04.2016 16:43
Ostatni post: cekja
  Skrypt HTML kopiowanie obrazków gmaverick 0 3720 10.04.2016 13:24
Ostatni post: gmaverick
  Jquery scroolowanie chwm 0 3696 07.04.2016 17:52
Ostatni post: chwm
  Wyszukiwarka na stronie mazi88 3 3790 04.04.2016 16:27
Ostatni post: Rincewind
  Zhackowana strona internetowa nie działa wenox 2 4382 04.04.2016 10:32
Ostatni post: malusy
  Pomoc przy forum (pod CS) Vissagen 1 3877 26.03.2016 22:49
Ostatni post: raxer