Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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:

  1. 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
  2. Číslo N získáme vynásobením P * Q || V našem případě: 61 * 53 = 3233
  3. Vypočítáme si číslo ****φ** [fí] = (P - 1) * (Q - 1)** || V našem případě: φ = (61-1) * (53-1) = 3120
  4. Zvolíme si číslo E, pro které platí: e < φ a (E,φ) jsou nesoudělné || V našem případě jsem si zvolil číslo 17
  5. 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
  6. 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

Program byl vytvořen v roce 2016.

 

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 127x (9.45 kB)
Aplikace je včetně zdrojových kódů v jazyce Java

 

Všechny články v sekci
Zdrojákoviště Java - JavaFX
Program pro vás napsal Inkognito
Avatar
Uživatelské hodnocení:
1 hlasů
Autor se věnuje programování v Javě (zejména pro Android), HTML, CSS a PHP. Je autorem prvního videotutoriálu na YouTube ohledně programování pro OS Android. Věnuje se tvorbě aplikací na zakázku a lektorování nových programátorů. Více na www.PallaSoftware
Aktivity