Documente Academic
Documente Profesional
Documente Cultură
Algoritmul RSA
Sistemul de criptare RSA, denumit după inventatorii săi Ron Rivest, Adi
Shamir şi Leon Adleman este la ora actuală cel mai popular şi mai folosit sistem de
criptare cu cheie publică. Acest lucru se datorează în primul rând datorită modalităţii
foarte simple de criptare şi decriptare, ce realizează similar şi folosind aceleaşi
module de calcul. Poate fi folosit atât pentru a asigura că un mesaj rămâne secret, dar
şi pentru semnături digitale.
Pentru a decripta mesajul c primit de la Bob, Alice are de urmat un singur pas:
1) folosindu-şi cheia privată d (exponent de decriptare) calculează m =
cd mod n
1
Cel mai mic multiplu comun al numerelor p – 1 şi q - 1
-1, q - 1)2 va fi probabil mic şi, drept urmare, Φ şi λ vor fi aproximativ de aceeaşi
dimensiune
3) se selectează în mod aleator un număr întreg e, 1 < e < Φ astfel
încât cmmdc(e, Φ) = 1
4) folosindu-se algoritmul euclidian extins3 se generează un număr
întreg unic d, 1 < e < Φ astfel încât ed ≡ 1 (mod Φ)
În urma rulării acestui algoritm, cheia publică generată a RSA va fi (n, e) iar
cheia privată va fi d, unde e şi d sunt exponentul de criptare şi exponentul de
decriptare, iar n este modulus.
2
Cel mai mare divisor comun
3
Algoritmul euclidian extins ia două numere întregi pozitive a ş b cu a ≥ b şi determină d = cmmdc(a, b) şi
două alte numere întregi x şi y astfel încât ax + by = d. Algoritmul funcţionează în felul următor:
- dacă b = 0 atunci setează d ← a, x ← 1, y ← 0 şi returnează (d, x, y)
- setează x2 ← 1, x1 ← 0, y1 ← 1
- cât timp b > 0 execută
o q ← [ a/b], r ← a – qb, x ← x2 – qx1 şi y ← y2 – qy1
o a ← b, b ← r, x2 ← x1, x1 ← x, y2 ← y1 şi y1 ← y
- seteaza d ← a, x ← x2, y ← y2 şi returnează (d, x, y)
4
M. J. Wiener, “Cryptanalysis of short RSA secret exponents”, Information Theory, IEEE Transactions, mai
1990
Împotriva cazurilor în care valorile lui e sunt mici, cum ar fi de exemplu e = 3,
nu a fost descoperit până acum nici un atac posibil dacă se foloseşte un padding
corespunzător. Dacă nu se foloseşte aşa ceva sau dacă este prost implementat,
exponenţii publici mici au un risc mult mai ridicat de a fi vulnerabili în faţa unui atac.
Astfel, se recomandă ca valoarea lui e să nu fie mai mică de 65537.