Professional Documents
Culture Documents
RSA algoritmom
Zilha Omerović
Univerzitet Donja Gorica
email: zilha.omerovic@udg.edu.me
http://www.udg.edu.me
1 Uvod
Najpoznatiji algoritam iz asimetrične kriptografije, RSA, dobio je
naziv po početnim slovima njegovih autora (Rivest, Šamir i Adle-
man). Asimetrično zapravo znači da radi na dva različita ključa,
odnosno javni ključ i privatni ključ. Sam naziv kaže da se javni ključ
daje svima, a privatni ključ se čuva privatnim. To je prvi algoritam
za koji se zna da je pogodan za šifrovanje kao i za digitalno potpi-
sivanje. Zasniva se na matematički složenom postupku faktorizacije
(rastavljanja) proizvoda dva velika prosta broja na njegove faktore
(činioce). Problem kod ovog pristupa je u tome što ne postoji čvrsti
matematički dokaz da ne postoji kraći put za faktorizaciju. Ideja
RSA se zasniva na činjenici da je teško rastaviti veliki cijeli broj
na faktore. Javni ključ se sastoji od dva broja gdje je jedan broj
proizvod dva velika prosta broja. I privatni ključ je takođe izveden
iz ista dva prosta broja. Dakle, ako neko može faktorisati veliki broj,
privatni ključ je kompromitovan. Stoga snaga šifrovanja u potpunosti
zavisi od veličine ključa. Snaga ključa se eksponencijalno povećava.
RSA ključevi obično mogu biti dugi 1024 ili 2048 bita, ali stručn-
jaci vjeruju da bi 1024-bitni ključevi mogli biti razbijeni u bliskoj
budućnosti. Ali za sada se čini da je to neizvodljiv zadatak [1].
2 Matematički prikaz
U ovom dijelu se razmatraju osnovni pojmovi koji su povezani sa
generisanjem velikih prostih brojeva sa RSA algoritmom. Ovi poj-
movi su ključni za razumijevanje ostalih poglavlja vezanih za RSA
algoritam.
∄m ∈ Z\{±1, ±n} : m | n.
Broj koji nije prost naziva se složen.
a = b · q 1 + r1 , 0 ≤ r1 < b
b = r1 · q2 + r2 , 0 ≤ r2 < r1
r1 = r2 · q3 + r3 , 0 ≤ r3 < r2
rj−2 = rj−1 · qj + rj , 0 ≤ rj < rj−1
rj−1 = rj · qj+1
tada je N ZD(a, b) jednak rj , odnosno, posljednjem ostatku raličitom
od nule.
Dokaz: Niz ostataka ri , i = {1, . . . , j}, j ∈ N je konačan jer je strogo
opadajući niz prirodnih brojeva te je odozdo ograničen nulom (ne
može biti negativan broj). Zato je svaki par prirodnih brojeva a i
b moguće predstaviti jednačinama iznad u konačno mnogo koraka.
Na osnovu Teoreme 2. za niz jednakosti navedenih u Euklidovom
algoritmu važi sljedeće:
N ZD(a, b) = N ZD (b, r1 ) = . . . = N ZD (rj−2 , rj−1 ) = N ZD (rj−1 , rj ) .
Pošto rj | rj−1 iz Leme 1 dobijamo i N ZD(a, b) = rj , što je i trebalo
pokazati. ■
α1 ≡ aα1 (mod m)
α2 ≡ aα2 (mod m)
...
1. Prvo što je potrebno jesu dva velika prosta broja (svaki veličine
makar 150 decimalnih cifara). Za njihovo generisanje potreban
pseudo je slučajni generator (algoritam koji na neki, ne potpuno
proizvoljan način bira brojeve iz nekog skupa, ali na dovoljno do-
bar način da običan statistički test ne razlikuje taj broj odabran
pseudo random generatorom od potpuno proizvoljno odabranog
broja iz skupa. Pseudo slučajnim generatorom upotrebljavaju se
zato što je u teoriji kompjuterskih nauka praktično nemoguće
na potpuno proizvoljan način odabrati element iz skupa pa se
zbog toga implementiraju pseudo slučajnim algoritmom koji su
"dovoljno dobri" da zamijene potpuno proizvoljno biranje). Uz
pomoć pseudo slučajnog generatora bira se proizvoljan broj n,
a potom se uz pomoć kompjuterskog programa provjerava da li
je broj n prost. Ukoliko nije, provjerava se da li je n + 1 prost.
Ukoliko nije provjerava se da li je n + 3 prost i tako dalje. Teo-
rema o prostim brojevima tvrdi da je, za dovoljno veliko n ∈ N,
vjerovatnoća da je slučajno odabran broj n baš prost broj jednaka
1
log n
, tako da ne bi trebalo da ima previše problema oko odabira
velikog prostog broja p. Na analogan način biće odabran i drugi
veliki prost broj q, takav da važi q ̸= p.
2. Množenjem tih brojeva dobija se njihov proizvod n = p · q.
3. Prvo se računa Ojlerova funkcija broja n, φ(n). Odabrani p i q su
prosti brojevi sami za sebe, samim tim, oni su i uzajamno prosti,
odnosno N ZD(p, q) = 1. Taj uslov olakšava računanje Ojlerove
funkcije n, te kako je n = p ∗ q onda je
φ(n) = (p − 1) ∗ (q − 1).
4. Sada je potrebno odabrati eksponent enkripcije e. Broj e je
odabran proizvoljno iz skupa {1, . . . , φ(n) − 1}, takav da je uza-
jamno prost sa brojem φ(n).
5. Zatim slijedi računanje eksponenta dekripcije d. Uz pomoć
proširenog Euklidovog algoritma, neka bude određen jedinstven
cio broj d iz skupa {1, . . . , φ(n)}, takav da važi:
5 Zaključak
Generisanje velikih prostih brojeva predstavlja ključni korak u pro-
cesu implementacije RSA algoritma. Ovaj korak složen i vremen-
ski zahtjevan, ali je od vitalnog značaja za osiguranje sigurne ko-
munikacije putem RSA algoritma. Iako postoji nekoliko drugih al-
goritama za generisanje prostih brojeva, RSA algoritam se i dalje
smatra jednim od najboljih načina za osiguravanje sigurne komu-
nikacije u digitalnom svijetu. Međutim, važno je napomenuti da je
važnost sigurnosnih mjera još više porasla u današnjem dobu digi-
talne tehnologije, gdje se često javljaju prijetnje sigurnosti i napadi
na privatne informacije. Stoga je važno da se postupak generisanja
velikih prostih brojeva u okviru RSA algoritma se obavlja pažljivo
i sa punom pažnjom, kako bi se osigurala sigurna komunikacija u
svim digitalnim transakcijama.
Literatura
1. M Veinović, S Adamović - Beograd: Univerzitet Singidunum, 2013, str 127-132
2. D Divjakovic, str 21-25, str 36-40
3. https://www.geeksforgeeks.org/how-to-generate-large-prime-numbers-for-rsa-
algorithm/?ref=rp
4. https://www.geeksforgeeks.org/rsa-and-digital-signatures/?ref=rp