Sunteți pe pagina 1din 14

Algoritmi de criptare cu chei publice

(II)

1
Criptosistemul RSA
• Prima schemă criptografică cu chei publice a fost
realizată în anul 1977 de către Ron Rivest, Adi Shamir şi
Len Adleman de la MIT.
• Schema Rivest-Shamir-Adleman (RSA) este cea mai
răspândită şi implementată schemă din lume.
• reprezintă standardul în domeniul semnăturilor digitale şi
al confidenţialităţii cu chei publice
• cea mai sigură metodă de cifrare şi autentificare
disponibilă comercial (implementare prin programe sau
dispozitive hardware speciale)

2
• Protocoale de securitate care folosesc RSA:
• IPSEC/IKE – Internet Key Exchance - IP data
security
• TLS/SSL - Secure Sockets Layer /Secure Sockets
Layer - transport data security (web)
• PGP (Pretty Good Privacy)- email security
• SSH (Secure Shell) - terminal connection security

3
Algoritmul RSA - Generarea cheilor:

1. Se selectează două numere întregi prime p şi q.


2. Se calculează produsul n=p*q.
3. Se calculează indicatorul lui Euler
Φ(n)=(p-1)*(q-1).
4. Se selectează un număr întreg e astfel încât
c.m.m.d.c.(Φ(n),e)=1, 1<e<Φ(n).
5. Se calculează d astfel încât d = e-1 mod Φ(n).
6. Cheia publică este (e,n), iar cheia privată este
(d,n).

4
• Algoritmul de criptare:
1. Presupunem că un utilizator A are cheia publică (e,n) şi
cheia privată (d,n).
2. Utilizatorul B criptează mesajul M pentru a fi transmis la
A astfel:
– 1. Obține cheia publică (e,n) a lui A.
– 2. Transformă mesajul ce va fi criptat într-un număr
întreg M în intervalul [0,n-1].
– 3. Calculează C = Me (mod n).
– 4. Trimite textul cifrat C utilizatorului A.

5
Criptosistemul RSA
• Algoritmul de decriptare:
Pentru a determina textul clar M din textul cifrat C,
utilizatorul A calculează:

M = Cd (mod n)

• Numai utilizatorul A cunoaşte cheia privată d.

6
• Un sistem care asigură confidenţialitatea va avea ca
elemente următoarele perechi:
1. (e, n) cheia publică;
2. (d, n) cheia secretă;

• Un criptanalist care are la dispoziţie perechea (e, n)


trebuie să determine d ţinând cont că ed(mod Ф(n))=1.
Pentru aceasta trebuie determinat Ф(n)=(p-1)(q-1), deci
implicit p şi q, problemă care se reduce la a factoriza
numărul n, problemă dificilă pentru un număr n mare.

7
Obs.
• RSA fiind un cod bloc, va necesita împărţirea mesajului
iniţial în blocuri de dimensiuni mai mici decât n, pentru a
se putea realiza operaţiile modulo n.
• Dimensiunile blocurilor pot fi determinate încă de la
începutul algoritmului deoarece ce cunosc dimensiunile
pe biţi ale numerelor prime generate p şi q, să zicem l/2,
deci dimensiunea lui n=pq este l.
• Cunoscând astfel lungimea pe biţi a lui n, putem împărţi
mesajul iniţial în blocuri de lungime l-1, fără a risca
operaţii care să depăşească modulo n.

8
Criptosistemul RSA
Exemplul 1:
• Se generează mai întâi cheile:
1. Se selectează două numere prime p = 7 şi q = 17.
2. Se calculează n = p*q = 7*17 = 119.
3. Se calculează Φ(n) = (p-1)*(q-1) = 96.
4. Se alege e a. î. e este relativ prim cu Φ(n) = 96. În acest caz e = 5.
5. Se determină d astfel încât d*e = 1 mod 96 şi d<96.
• d*e = 1 + x*m (unde x este număr întreg) =>
• d = (1 + x*m)/e

Avem d = 77, deoarece 77*5 = 385 = 4*96+1.

9
Cheia publică = (e,n) = (5,119)
Cheia privată = (d,n) = (77,119)

Se consideră că textul clar este M =19.


• Textul criptat va fi C = 195 mod 119 = 2476099 mod 119
= 66.
• Cheia publica = (e,n) = (5,119)
• RSA( 19, (5,119) ) = 66

• Pentru decriptare se calculează M = Cd mod n


• Cheia privată = (d,n) = (77,119)
• RSA-1( 66, (77,119) ) =
= 6677 mod 119 = 19

10
Criptosistemul RSA
• Exemplul 2:
• Se generează mai întâi cheile:
1. Se selectează două numere prime p = 101 şi q = 113.
2. Se calculează n = p*q =101*113 = 11413.
3. Se calculează Φ(n) = (p-1)*(q-1) = 11200
4. Se alege e a. î. este prim cu Φ(n) = 11200=2 6527 . În acest caz e =
3533
5. Se determină d astfel încât d*e = 1 mod 11200 şi d<11200.
Avem d= 6597, deoarece 3533 * 6597 = 23307201 = 2081*11200+1.
6. Cheia publică este (3533 , 11413), iar cheia privată este 6597.
• Mesajul 9726 va fi criptat 97263533 mod 11413 = 5761
• Decriptarea: mesajul 5761 va fi 57616597 mod 11413 = 9726.
alg.pdf

11
Aplicaţii ale algoritmului RSA

• domeniul telecomunicaţiilor: telefoane publice, cu cartele


electronice, sau telefoanele mobile (protocoale de
autentificare a persoanei apelate)
• domeniul sănătăţii, prin intermediul cardurilor electronice
care să conţină istoricul medical al unui individ.
• securitatea naţională: cărţi de identitate, paşapoarte,
legitimaţii magnetice.
• economie: cardurile bancare, comerţul electronic
• informatica: confidenţialitatea poştei electronice, a
informaţiilor de pe o pagină de web

12
Atacuri asupra algoritmului RSA
• Firme producătoare de sisteme de programe şi echipamente,
ca Novell, DEC, Lotus, Motorola, folosesc acest algoritm.
• Instituții importante (Departamentul Apărării din SUA,
Boeing, rețeaua bancară internațională SWIFT) folosesc acest
algoritm pentru protejarea şi autentificarea datelor, parolelor,
fişierelor, documentelor memorate sau transmise prin rețele.
• Există trei tipuri de atacuri asupra algoritmului RSA:
- Forţă brută: încercarea tuturor cheilor private posibile.
- Atacuri matematice: factorizarea numărului n în
factori primi p şi q.
– Atacuri temporizate: aceste atacuri depind de timpul
de execuție a algoritmului de decriptare.
13
Recomandări pentru alegerea cheilor RSA
• Recentele progrese făcute în factorizarea întregilor şi în
procesarea paralelă au dat naştere la necesitatea unor
chei din ce în ce mai mari pentru sistemele de criptare
cu chei publice.
• Ultimele recomandări făcute de laboratoarele RSA Data
Security pentru alegerea dimensiunii cheilor de cifrare
RSA sunt:

• Securitate pe termen scurt (de ex. Chei utilizatori)


768 biți
• Securitate pe termen mediu (de ex. Chei organizații)
1024 biți
• Securitate pe termen lung(de ex.Chei administratori)
2048 biți

S-ar putea să vă placă și