07.02.2015 Views

The Art of Reversing by Ap0x - Tutoriali.org

The Art of Reversing by Ap0x - Tutoriali.org

The Art of Reversing by Ap0x - Tutoriali.org

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!