tanszek:oktatas:infrendalapjai_architekturak:informacio_titkositas_es_hitelesites:nyilvanos_kulcsu_rendszerek
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tanszek:oktatas:infrendalapjai_architekturak:informacio_titkositas_es_hitelesites:nyilvanos_kulcsu_rendszerek [2024/11/13 17:45] – 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 53: | Line 53: | ||
ha K-t úgy választjuk meg, hogy a \(K \cdot f(N) + 1\) felbontható legyen két egész szám szorzatára, | 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.1731519937.txt.gz · Last modified: 2024/11/13 17:45 by knehez