tanszek:oktatas:infrendalapjai_architekturak:informacio_titkositas_es_hitelesites:nyilvanos_kulcsu_rendszerek
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
tanszek:oktatas:infrendalapjai_architekturak:informacio_titkositas_es_hitelesites:nyilvanos_kulcsu_rendszerek [2024/11/13 17:37] – created knehez | tanszek:oktatas:infrendalapjai_architekturak:informacio_titkositas_es_hitelesites:nyilvanos_kulcsu_rendszerek [2024/12/06 16:38] (current) – [Példa a kulcsgenerálásra] knehez | ||
---|---|---|---|
Line 10: | Line 10: | ||
- **c=E(e , m)** alapján **c**-t csak Anna tudja visszafejteni, | - **c=E(e , m)** alapján **c**-t csak Anna tudja visszafejteni, | ||
- Ha más is üzenni kíván Annának, akkor használhatja az ő nyilvános (**e**) kulcsát. | - Ha más is üzenni kíván Annának, akkor használhatja az ő nyilvános (**e**) kulcsát. | ||
+ | |||
+ | A rendszer biztonságos a visszafejtés szempontjából, | ||
+ | |||
+ | ===== RSA algoritmus ===== | ||
+ | |||
+ | Rivest, Shanir, Adleman (1977), az algoritmus a hatványozáson és a moduló (maradékos osztás) műveleten alapul. Ha következő egyenlet teljesül: | ||
+ | |||
+ | $$ T ^ {ed} \mod{N} = T $$ | ||
+ | |||
+ | Akkor az egyenletet szét lehet választani két részre, ahol az első egyenlet kódol, a második dekódol: | ||
+ | |||
+ | $$ T ^{e} \mod{N} = C $$ | ||
+ | $$ C ^{d} \mod{N} = T $$ | ||
+ | |||
+ | Sajnos ez az összefüggés, | ||
+ | |||
+ | ==== Alaptétel ==== | ||
+ | |||
+ | Akármennyire hihetetlen, de a következő összefüggést még az ókori görögök is ismerték: | ||
+ | |||
+ | \( T^{N-1} \mod {N} = 1 \) egyenlet egész számokra abban az esetben teljesül, ha \( N > T \) és \( N \) prímszám. | ||
+ | |||
+ | megjegyzés: | ||
+ | |||
+ | Az alapötlet szerint az egyenlet ekvivalens átalakításokkal a fenti alakra hozható a következőképpen: | ||
+ | |||
+ | Az \(f(N)\) jelölje azt, hogy \(N\)-nek hány relatív prímje van. pl: \( f(9) = 6 \) mivel 9 relatív prímjei sorban a (1, | ||
+ | |||
+ | Érdekes megfigyelni, | ||
+ | |||
+ | Ezért felírható az általános: | ||
+ | |||
+ | $$ T ^{f(N)} \mod{N} = 1, $$ | ||
+ | |||
+ | mivel \( N - 1 = f(N) \) összefüggés behelyettesíthető. Ha a hatványozás kitevőjét beszorozzuk egy konstanssal, | ||
+ | |||
+ | $$ T ^{K\cdot f(N)} \mod{N} = 1. $$ | ||
+ | |||
+ | Ez a lépés biztosítja, | ||
+ | |||
+ | $$ T ^{K\cdot f(N) + 1} \mod{N} = T. $$ | ||
+ | |||
+ | ha K-t úgy választjuk meg, hogy a \(K \cdot f(N) + 1\) felbontható legyen két egész szám szorzatára, | ||
+ | |||
+ | ==== RSA kulcsgenerálás ==== | ||
+ | |||
+ | A kulcsgenerálás a következőképpen történik: | ||
+ | |||
+ | - keresünk két nagy prímszámot: | ||
+ | - ezek szorzata lesz: \( N = X \cdot Y. \) | ||
+ | - mindkét számnak ismerjük, hogy hány relatív prímje van: \( f(X) = X - 1,\,\, f(Y) = Y - 1 \) és ez alapján \( f(N) \) könnyen számolható: | ||
+ | - felbontjuk \( K \cdot f(N) + 1 \) összefüggést két egész szám szorzatára. \( K \cdot f(N) + 1 = e \cdot d \) felbontást a gyakorlatban a következő képlettel számoljuk: $$ \text{lnko} (e, f(N)) = 1 $$ egyenletből az e-t, majd a d-t a \( 1< | ||
+ | - nyilvános kulcs **(e,N)**, titkos kulcs **d** | ||
+ | |||
+ | ==== Példa a kulcsgenerálásra ==== | ||
+ | |||
+ | Anna választ 2 prímszámot, | ||
+ | |||
+ | 1.) \(N = p \cdot q = 67 \cdot 11 = 737.\) | ||
+ | |||
+ | 2.) A relatív prímek száma: \( φ(N) = (p-1) \cdot (q-1) = 66 \cdot 10 = 660 \) | ||
+ | |||
+ | 3.) Válasszunk egy \( e \) számot amelyre igaz: \( 1<e< φ(N) \) és \( \text{lnko}(e, | ||
+ | |||
+ | 4.) Anna nyilvános kulcsa tehát ezek alapján: \( (N,e) = (737,7) \) | ||
+ | |||
+ | A következő 5. lépés többféleképpen is megoldható: | ||
+ | |||
+ | 5a.) \( K \cdot φ(N) + 1 \) felbontható két szám szorzatára (miből a \( e=7 \) az egyik): tehát keressük azt a legkisebb \( K \)-t amelyre igaz: \( K \cdot 660 + 1 \mod{7} = 0 \). A legkisebb ilyen a \(K=3\). Ebből következik, | ||
+ | |||
+ | 5b.) \( e \cdot d \mod {f(N)} = 1 \), egyenletből \(d\) kifejezhető. \( d = 283 \) | ||
+ | |||
+ | 6.) A titkos kulcs \( (N,d) = (737,283) \) lesz. | ||
+ | |||
+ | 7.) Az ABC 26 karaktert tartalmaz tehát \(I = log_{26} N = log_{26} 737 = 2\). Tehát a blokkhossz most 2-byte lesz. | ||
+ | |||
+ | 8.) A kódolandó üzenetet 2 bájtonként tördeljük, | ||
+ | |||
+ | 9.) \( 28^7 \mod{737} = 316 \). ez felírva 26-os számrendszerbe: | ||
+ | |||
+ | 10.) Visszafejtés: | ||
+ | |||
+ | 11.) \( 316^{283} \mod{737} = 28 \) -> Betűkre átalakítva: | ||
+ | |||
+ | ==== Online RSA generátor ==== | ||
+ | |||
+ | https:// |
tanszek/oktatas/infrendalapjai_architekturak/informacio_titkositas_es_hitelesites/nyilvanos_kulcsu_rendszerek.1731519454.txt.gz · Last modified: 2024/11/13 17:37 by knehez