1. 1
Az RSA algoritmus bemutatás egy egyszerü példán keresztül.
1.) Kiválasztunk két egymástól különbözö tetszöleges prím számot:
p = 3 és q = 7
2.) A kiválasztott prím szorzatát képezzük:
N = p · q = 3 · 7 = 21
3.) Az Euler-függvényt felhasználva, meghatározzuk az elöbb kiszámolt N-hez a relatív prímek számát:
ϕ(N) = (p − 1)(q − 1) = (3 − 1)(7 − 1) = 2 · 6 = 12
4.) Ezt követöen a ϕ(N) ismeretében meghatározzuk e (e ∈ Z, e > 1) (e-encrypted) értékét, úgy, hogy a ϕ(N) és e egymáshoz
képest relatív prímek (1-en és -1-en kivül nincs más közös ösztójuk)
lnko(e, ϕ(N)) = 1
lnko(e, 12) = 1
Az e lehetséges értékei: 1, 5, 7, 11 (A feltétel miatt az 1 kiesik)
5.) Kongruencia elmélete:
a ≡ b ( mod m) , m|(a − b), hogy ∃k ∈ Z : a = km + b
Pl.: 7 ≡ 2(mod 5), ezt úgy olvassuk, hogy a 7 és a 2 öttel osztva ugyanazt a maradékot adja.
A kongruencia relációt felhasználva, e számított értékhez keressünk egy d értéket (d-decrypted), hogy
e · d ≡ 1 ( mod ϕ(N))
ez annyit jelent, hogy e ismeretében keresünk egy olyan d számot, amelyet e-vel megszorozva, majd a szorzat értékét tekintve
kongruenciát képzünk 1-gyel, és így a maradék a korábban számított ϕ(N) érték lesz.
5 · d ≡ 1 mod 12 −→ 12|(5d − 1)
Lehetséges esetek például 5d − 1 = 12, 5d − 1 = 24, 5d − 1 = 36...
Ebböl a második kézenfekvö:
5d − 1 = 24
5d = 25
d = 5
6.) Nyilvános kulcsinformációk: N = 21, e = 5
7.) Titkos kulcsinformációk: N = 21, d = 5
8.) Kódolás képlete: C = me
mod N, ahol m-et tekintjük a titkosítandó adatnak.
Pl.: m = @, az adatot számszerüsítve legyen @ → 3
C = 35
mod 21 = 243 mod 21 = 12
9.) Dekódolás képlete: m = Cd
mod N
m = 125
mod 21 = 248832 mod 21 = 3