RSA provine de la numele de familie ale inventatorilor săi, Rivest, Shamir şi Adleman.
Pe vremea când Diffie şi Hellman au inventat metoda distribuţiei prin chei publice, aceştia au gândit şi la un alt concept mult mai performant, dar n-au găsit soluţia implementării lui – criptografia prin chei publice. Prin aceasta, fiecare persoană are o pereche de chei publică-privată, unică, pe termen lung. Componenta publică, ransmisibilă prin Internet şi partajată cu toată lumea, este folosită pentru criptarea datelor, în timp ce componenta privată, greu de calculat pe baza cheii publice, este folosită pentru decriptare. Criptografia prin chei publice este numită şi „criptografie prin două chei” şi „criptografie asimetrică”. Metodele convenţionale, descrise anterior, care apelează la o singură cheie, sunt referite ca şi „criptografie printr-o singură cheie”, „criptografie prin cheie privată”, „criptografie prin cheie secretă”, „criptografie simetrică” şi „criptografie convenţională”.
La scurt timp după ce Diffie şi Hellman au lansat ideea revoluţionară a criptografierii prin chei publice, trei profesori de la MIT (Massachusetts Institute of Technology), Ronald Rivest, Adi Shamir şi Leonard Adleman, au venit cu soluţia implementării ei. Varianta propusă se numea RSA. Concomitent, Hellman şi Merkle au inventat o altă metodă, numită „trapdoor knapsacks”, bazată pe alt model matematic. Oricum, modelul lor a fost spart la începutul anilor 1980.
Pentru a transmite un mesaj cu text clar către Bob, folosind sistemul cheilor publice, gen RSA, Alice generează cheia K a mesajului şi o foloseşte prin intermediul criptosistemului convenţional, cum ar fi DES, pentru criptarea mesajului. Utilizând criptografia prin chei publice, ea, de asemenea, criptează K, sub cheia publică a lui B, denumită KBobpub. Apoi, ea transmite atât cheia criptată, cât şi mesajul criptat către Bob. Bob, la rândul său, apelează la propria lui cheie privată, denumită KBobpriv, pentru a decripta cheia K a mesajului, apoi el foloseşte cheia K pentru decriptarea mesajului.
Teoretic, Alice poate să transmită textul către Bob folosind doar criptarea prin cheia publică a lui Bob, apelând doar la criptografia prin cheie publică. În practică, însă, nu se întâmplă aşa datorită încetinirii procesului de transmitere prin mulţimea calculelor de efectuat. E mult mai rapid să foloseşti o metodă convenţională de mare viteză pentru criptarea mesajului, rezervând metoda cheii publice doar pentru distribuţia cheii. În plus, nu se consideră o practică prea inspirată să foloseşti aceeaşi cheie pentru criptarea mesajelor de-a lungul unei mari perioade de timp, din cauza sporirii şanselor de a fi atacată. Perechea de chei publică-privată este uneori numită „cheia cheii de criptare”, pentru a o deosebi de cheia mesajului (cheia datelor criptate). Ca şi Diffie-Hellman, sistemul RSA calculează exponenţierile în aritmetica modulară folosind numere cu lungimea de câteva sute de cifre. În RSA, totuşi, fiecare persoană are un modulo N personal, care este produsul a două numere prime secrete. Cheia K a mesajului este criptată prin ridicarea ei la puterea exponentului public a lui Bob (eb), modulo Nb, iar decriptarea se efectuează prin ridicarea ei la puterea exponentului privat al lui Bob (db), modulo Nb. Presupunând că C va prelua valoarea cheii textului criptat, aceasta se va exprima mathematic astfel:
C = Keb mod Nb (criptarea lui K)
K = Cdb mod Nb (decriptarea)
Pentru ca exponentul folosit la decriptare (db) să poată reface exponenţierea cu eb la criptare, formula eb * db = 1 mod (pb-1)(qb-1) trebuie să fie realizată; în care Nb = pb * qb pentru numerele prime pb şi qb.
În aceste condiţii, oricine ştie eb, pb şi qb poate să folosească formula pentru a deduce db. Din acest motiv, pb şi qb nu se divulgă, chiar dacă eb şi Nb sunt făcut publice. Calcularea factorilor primi ai lui Nb se consideră a fi, din punct de vedere matematic, nerezolvabilă pentru numere foarte mari.
Vom folosi valori mici ale numerelor din exemplul următor pentru a uşura înţelegerea mecansimului. Să presupunem că Bob a ales numerele prime secrete pb = 5 şi qb = 3, de unde rezultă că Nb = pb * qb = 5 * 3 = 15.
Apoi alege exponentul secret db = 29 şi îl calculează pe eb după formula eb * db = 1 mod (pb-1)(qb-1), ceea ce va conduce la eb * 29 = 1 mod (4 * 2), 29 * eb = 1 mod 8.
Prin încercări succesive rezultă eb = 5.
Dacă Alice doreşte să transmită cheia K = 2 către Bob, ea o va cripta cu exponenţierea din cheia publică a lui Bob, efectuând calculele:
C = Keb mod Nb = 25 mod 15 = 32 mod 15 = 2
Când Bob obţine cheia criptată o va decripta folosindu-şi cheia secretă drept exponent, prin calculul:
K = Cdb mod Nb = 229 mod 15 = 2 (Se aplică mod (2 ** 29, 15)).
Se observă că s-a obţinut valoarea K = 2 a cheii transmisă de Alice.
Filed under: Criptografie



