RSA (de)šifrovací program
Co je to RSA?
Jedná se o asymetrickou šifru, tedy že jiný klíč je třeba na zašifrování a jiný na dešifrování. (Více na Wikipedii) Přičemž každý klíč je složen ze dvou čísel:
Veřejný klíč: skládá se z čísel E a N, zapisujeme (E;N) Tajný klíč: skládá se z čísel D a N, zapisujeme (D;N)
Nyní jak tato čísla získáme:
- Zvolíme si čísla P a Q - obě musí být prvočísla. || V našem případě to budou čísla: P = 61 a Q = 53
- Číslo N získáme vynásobením P * Q || V našem případě: 61 * 53 = 3233
- Vypočítáme si číslo ****φ** [fí] = (P - 1) * (Q - 1)** || V našem případě: φ = (61-1) * (53-1) = 3120
- Zvolíme si číslo E, pro které platí: e < φ a (E,φ) jsou nesoudělné || V našem případě jsem si zvolil číslo 17
- Najdeme číslo D, pro které platí: (D*E) mod φ = 1. Vypadá to složitě, a také je. Ale nemusíte to počítat, stačí navštívit tuhle stránku (Stránka ), do prvního pole zadáte číslo E, do druhého číslo φ a výsledek je číslo D. || Mně to vyšlo: D = 2753
- Nyní už rozumíte zápisu Veřejný klíč = VK = (E;N) a Tajný klíč = TK = (D;N) || V našem případě tedy: VK(17;3233) a TK(2753;3233)
Jak zašifrovat zprávu
Zprávu zašifrujeme pomocí VK a potom ji lze rozšifrovat pouze pomocí TK, který známe jen my. VK je veřejně dostupný a zprávu ním může zašifrovat každý. Když se chceme ujistit, že zprávu nám poslal konkrétní uživatel, můžeme zprávu zašifrovat nejprve svým TK (potom lze dešifrovat pouze naším VK) a poté ji teprve zašifrovat VK příjemce. On nejprve dešifruje zprávu svým TK a poté naším VK. Tak se ujistí, že jsme zprávu skutečně poslali my. Je třeba se ale nejdříve domluvit, zda zprávu zašifrujeme nejdříve svým TK anebo jeho VK.
**Poté zprávu zašifrujeme pomocí vzorce:
C = M^D mod N
Kde: C = zašifrovaná zpráva M = zpráva D a N je součást tajného klíče.**
V případě, že zprávu šifrujeme pomocí VK, místo D použijeme číslo E.
Jak zprávu dešifrovat
Když je zpráva zašifrovaná, dešifrujeme ji následujícím vzorcem:
M = C^E mod N
Kde proměnné jsou tytéž jako výše.
Jak funguje program?
Program každé písmeno převede na ASCII kód a ten poté zašifruje. Výsledné číslo oddělí středníkem a za něj napíše další písmeno, převedené na ASCII kód a následně zašifrované.
Do pole N: se vždy píše číslo N- to je u VK i TK stejné.
Do pole D/E: se píše buďto D nebo E podle toho, jestli dešifruju/šifruju.
V případě jakýchkoliv dotazů se neváhejte ozvat.
Galerie



Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 139x (9.45 kB)
Aplikace je včetně zdrojových kódů v jazyce Java