RSA (de)šifrovací program

Java JavaFX Zdrojákoviště 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ženo 26x (9.45 kB)
Aplikace je včetně zdrojových kódů v jazyce java

 

  Aktivity (2)

Program pro vás napsal Dominik Palla
Avatar
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

Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!


 


Miniatura
Všechny články v sekci
Zdrojákoviště Java - JavaFX

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!