[[oktatas:programozás:algoritmusok|< Algoritmus]] ===== RSA ===== * **Szerző:** Sallai András * Copyright (c) 2014, Sallai András * Szerkesztve: 2014, 2015 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] * Web: https://szit.hu ==== Az RSA-ról ==== **Ron Rivest**, **Adi Shamir** és **Len Adleman** fejlesztette ki. ===== Kulcsgenerálás ===== - Válasszunk két nagy prím számot, p és q-t. - p ≠ q - Számítsuk ki a szorzatukat, **n**-t: n = p * q. - Ekkor: φ(n) = (p-1) * (q-1) - Válasszunk egy **e** számot, amelyre igaz: - 1 < e < φ(n) - lnko(e, φ(n))=1 - Kiszámítjuk **d** értékét: - e * d ≡ 1 mod φ(n) - 0 ≤ d ≤ φ(n) * A nyilvános kulcs: {e, n} * A titkos kulcs: {d, n} Megjegyzés: A a ≡ b (mod m) azt jelenti, hogy a mod m = b, vagyis ha a-t elosztom m-el, akkor b-t kapom. ===== Használat ===== Kódolás: c = m^e mod n Visszafejtés: m = c^d mod n ===== Megjegyzés ===== * Nem bizonyított, hogy polinomiális faktorizáló algoritmus nem létezik. * Nem bizonyított, hogy faktorizálás nélkül nem lehet feltörni.