The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
RSA Basics<br />
RSA (Rivest Shamir Adleman) je algoritam za enkripciju podataka koji<br />
se oslanja na velike proste brojeve kako bi enkriptovao podatke u veoma<br />
sigurne hashove. Ovako enkriptovani stringovi se uz pomoc odgovarajuceg<br />
kljuca mogu dekriptovati u pocetne stringove. Ono sto karakterise RSA<br />
algoritam je postojanje posebnih kljuceva za enkripciju i dekripciju, sto se<br />
popularno zove asimetricna enkripcija, odnosno dekripcija. Ovo ujedno i<br />
znaci da ce za razbijanje ovakvog sistema biti potrebna izuzetna kolicina<br />
vremena posto je potrebno pronaci pocetni kljuc kako bi se falsifikovala<br />
poruka ili se enkriptovala nova uz pomoc istog kljuca. Osnova RSA algoritma,<br />
kao i svih drugih, lezi u specificnoj matematickoj formuli koja se koristi za<br />
enkripciju odnosno dekripciju. Osnovni ulazni parametri za RSA algoritam su:<br />
P – Prvi veliki prosti broj; ulazni parametar<br />
Q – Drugi veliki prosti broj; ulazni parametar<br />
E – Javni eksponent; ulazni parametar<br />
N – Javni modulus; racuna se na osnovu P i Q<br />
D – Privatni eksponent; racuna se na osnovu P, Q i E.<br />
Da pojasnim navedene pojmove. P i Q su osnovne enkripcione vrednosti i<br />
biraju se tako da su P i Q izuzetno veliki prosti brojevi, odnosno moraju da<br />
zadovolje uslov da su deljivi samo sa 1 i sa samim sobom. P i Q se koriste<br />
samo za enkripciju posle cega se oni dalje cuvaju kao tajni jer se mogu<br />
koristiti za falsifikovanje poruka.<br />
E je javni eksponent koji se takodje koristi prilikom enkripcije ali i u<br />
dekripciji jer se na osnovu njega izracunava privatni eksponent D. Ovaj broj<br />
je najcesce jednak 10001h.<br />
N je najvazniji deo sistema za dekripciju jer je on javno dostupan za<br />
razliku od argumenata P i Q. Naravno i N je veliki prost broj koji se dobija<br />
racunanjem na osnovu P i Q. Iz ovog razloga se bas N koristi za razbijanje<br />
RSA enkriptovanih poruka. Posto znamo gde se koji ulazni parametar koristi<br />
mozemo da predjemo na algoritme koji se koriste za enkripciju i dekripciju.<br />
Enkripcija se izvodi po formuli:<br />
C = M^E mod N<br />
Gde je C rezultat enkripcije a M poruka koja se enkriptuje a koja mora da<br />
zadovolji uslov da je manja od javnog modulusa N. Ovo znaci da se za<br />
dugacke poruke moraju koristiti ili veliki kljucevi (256, 512bita) ili se poruka<br />
mora rastavljati na manje delove koji su manji od modulusa N. Imajte na<br />
umu da ^ nije XOR operacija nego funkcija power <strong>of</strong>!<br />
Dekripcija se izvodi po formuli:<br />
M=C^D mod N<br />
Gde je M dekriptovana poruka a C enkriptovani tekst.<br />
Sada mozemo da predjemo na razmatranje standardne primene RSA<br />
algoritma u aplikacijama. Naime RSA algoritam se u programima<br />
<strong>The</strong> <strong>Art</strong> <strong>of</strong> <strong>Reversing</strong> <strong>by</strong> <strong>Ap0x</strong> Page 167 <strong>of</strong> 293