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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

jedan za enkripciju i jedan za dekripciju. Primer za koriscenje simetricnog<br />

algoritma bi bio koriscenje algoritma koji transformise nasu plaintext poruku<br />

u ciphertext pomocu jednog specificnog kljuca, odnosno sledeci Delphi kod:<br />

function EncryptDecrypt(inputhash:string;key:integer):string;<br />

var<br />

i:integer;<br />

begin<br />

for i := 1 to Length(inputhash) do begin<br />

inputhash[i] := Chr(Ord(inputhash[i]) XOR key);<br />

end;<br />

EncryptDecrypt := inputhash;<br />

end;<br />

Ovaj kod jednostavnim XORovanjem svakog slova sa KEY vrednoscu<br />

plaintext pretvara u ciphertext. Posto znamo da je operacija XOR<br />

reverzibilna, zakljucujemo da ce se algoritam ponasati tako da isti kljuc<br />

enkriptuje plaintext u ciphertext i obrnuto. Ovo je samo jedan primer kada se<br />

kod simetricnog algoritma koristi samo jedna funkcija za enkripciju, odnosno<br />

dekripciju. Nasuprot tome postoje i algoritmi koji koriste posebne procedure<br />

za enkripciju i dekripciju. Posto se i za ovakav tip algoritama koristi isti kljuc<br />

za enkripciju i dekripciju, i ovi algoritmi pripadaju grupi simetricnih<br />

algoritama. Primer za ovo bi bio:<br />

function Encrypt(inputhash:string;key:integer):string;<br />

var<br />

i:integer;<br />

begin<br />

for i := 1 to Length(inputhash) do begin<br />

inputhash[i] := Chr(Ord(inputhash[i]) + key);<br />

end;<br />

Encrypt := inputhash;<br />

end;<br />

function Decrypt(inputhash:string;key:integer):string;<br />

var<br />

i:integer;<br />

begin<br />

for i := 1 to Length(inputhash) do begin<br />

inputhash[i] := Chr(Ord(inputhash[i]) - key);<br />

end;<br />

Decrypt := inputhash;<br />

end;<br />

Ovde se za enkripciju koristi tehnika pomeranja slova plaintexta za vrednost<br />

kljuca u pozitivnu stranu, dok se prilikom dekripcije ciphertext pomera u<br />

negativnu stranu. Posto su matematicke operacije, plus i minus suprotne<br />

logicno je da ce se za enkripciju i dekripciju koristiti isti kljuc.<br />

Sa druge strane, u odnosu na simetricne algoritme, nalaze se<br />

asimetricni algoritmi koji za enkripciju i dekripciju koriste razlicite kljuceve.<br />

Ova dva kljuca moraju biti povezana nekom, izuzetno slozenom<br />

matematickom relacijom na nacin pomocu koga se iz jednog moze dobiti<br />

drugi. Ovo znaci da se na osnovu istih podataka racunaju i jedan i drugi kljuc<br />

ali se sami zasebno tesko mogu povezati. Posto se jedan kljuc koristi samo<br />

za enkripciju a jedan samo za dekripciju mozemo slobodno reci da se ova<br />

dva kljuca takodje mogu podeliti na privatni i javni kljuc. Ovo znaci da u<br />

<strong>The</strong> <strong>Art</strong> <strong>of</strong> <strong>Reversing</strong> <strong>by</strong> <strong>Ap0x</strong> Page 159 <strong>of</strong> 293

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

Saved successfully!

Ooh no, something went wrong!