RSA (algoritam)
RSA je algoritam za asimetričnu kriptografiju, prvenstveno namenjen šifrovanju podataka ali se danas koristi i u sistemima elektronskog potpisa. RSA danas predstavlja industrijski standard u oblasti asimetrične kriptografije i zaštiti podataka, tako da je široko primenjen u mnogim sigurnosnim protokolima i sistemi elektronskog poslovanja.
Opšte | |
---|---|
Projektant(i) | Ronald Rivest, Adi Šamir, Leonard Ejdlman |
Datum objave | 1977. |
Sertifikacija | PKCS#1, ANSI X9.31, IEEE 1363 |
Detalji | |
Veličina sažimanja | 1.024 - 4.096 |
Runde | 1 |
Najbolja javna kriptoanaliza | |
768-bitni RSA ključ je probijen. |
Istorijat
urediRSA je algoritam za asimetričnu kriptografiju nastao 1977. na MIT univerzitetu. Tvorci ovog algoritma su Ronald Rivest, Leonard Ejdlman i Adi Šamir, gde RSA predstavlja akronim njihovih prezimena.
Kliford Koks, britanski matematičar koji je radeći za jednu vladinu agenciju za komunikacije, još je 1973. godine objavio u internim dokumentima potpuno ekvivalentni sistem za asimetričnu kriptografiju, ali zbog poverljivosti tih dokumenata, to je tek objavljeno 1997.
Algoritam je patentiran od strane MIT-a 1983. u SAD , pod šifrom U.S. Patent 4,405,829. Patentna prava su istekla 21. septembra 2000.
Opis algoritma
urediU RSA algoritmu ključnu ulogu imaju veliki prosti brojevi. Sigurnost RSA zasniva se na složenosti faktorizacije velikih brojeva. Smatra se da je određivanje originalne poruke na osnovu šifrata i ključa za šifrovanje ekvivalentno faktorizaciji proizvoda dva velika prosta broja.
Postupak generisanja ključa za RSA algoritma
uredi- Generisaćemo slučajno dva velika prosta broja i pri čemu .
- Izračunaćemo sledeće proizvode: .
- i ojlerovu funkciju .
- Odabere se celobrojna vrednost pri čemu .
- Izračuna se pri čemu .
- Javni ključ je par . Privatni ključ je par .
Vlasnik privatnog (neko kaže i tajnog ključa) d, slobodno može da objavi brojeve n i e, tako da svako ko želi da mu uputi tajnu poruku može to i učiniti, a njen sadržaj može čitati samo vlasnik privatnog ključa, dok ostali dobijaju besmislen tekst.
Šifrovanje poruke
urediIlustrativan je brojni primer (doduše sa malim brojevima ali je jasniji)
Generisanje ključeva
urediOsoba A formira javni i tajni ključ:
- izabarala je proste brojeve ,
- izračunala je broj
- izračunala je broj .
- bira slučajno broj (deo javnog ključa),
- odgovarajućim (prošireni Euklidov) algoritmom računa . tj. tajni ključ
Dakle javni ključ je par .
Šifrovanje poruke
urediDa bi osoba B koja poseduje taj javni ključ, šifrovala poruku , osobi A mora da:
- računa .
- Taj broj c = 3650502 (šifrat originalne poruke m) osoba B, šalje osobi A, koja pristupa dešifrovanju. odnosno koristeći broj d - tajni ključ računa:
Dešifrovanje poruke
urediKoristeći broj d - tajni ključ osoba A računa:
a taj broj je i originalna poruka m).
Nedostaci algoritma
urediProsti brojevi koji se koriste u ovom algoritmu uglavnom sadrže nekoliko stotina cifara i zbog toga se ovde javljaju više problema praktične prirode. Da bi se pomnožili toliko veliki brojevi, moraju se koristiti posebni algoritmi za množenje. Sem toga lako se da primetiti da je za takve operacije potrebno više vremena, pa su tako ovi algoritmi šifrovanja mnogo sporiji u odnosu na simetrične algoritme. DES algoritam šifrovanja je oko 100 do 1000 puta brži u odnosu na RSA algoritam. Sem ovoga algoritmi za faktorizaciju brojeva postaju svakim danom sve bolji, kao i neumoljiv razvoj kompjutera učinili su da danas 512 bitni RSA algoritam ne bude dovoljan za bezbedno šifrovanje poruka, za 1024 bitne algoritme pretpostavlja se da će biti bezbedni barem još 15-tak godina.
Reference
uredi- mr Dragan Vidaković, Mala Škola Kriptografije
- R. Rivest, A. Shamir, L. Adleman. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Communications of the ACM, Vol. 21 (2), pp.120-126. 1978. Previously released as an MIT "Technical Memo" in April 1977. Initial publication of the RSA scheme.
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 2001. ISBN 0-262-03293-7. Section 31.7: The RSA public-key cryptosystem, pp.881-887.