logo

Šifrovací algoritmus RSA

Šifrovací algoritmus RSA je typ šifrovacího algoritmu s veřejným klíčem. Abychom lépe porozuměli RSA, nejprve pochopíme, co je šifrovací algoritmus veřejného klíče.

Algoritmus šifrování veřejného klíče:

Šifrovací algoritmus veřejného klíče se také nazývá asymetrický algoritmus. Asymetrické algoritmy jsou takové algoritmy, ve kterých odesílatel a příjemce používají různé klíče pro šifrování a dešifrování. Každému odesílateli je přiřazena dvojice klíčů:

    Veřejný klíč Soukromý klíč

The Veřejný klíč se používá pro šifrování a Soukromý klíč slouží k dešifrování. Dešifrování nelze provést pomocí veřejného klíče. Tyto dva klíče jsou propojeny, ale soukromý klíč nelze odvodit z veřejného klíče. Veřejný klíč je dobře znám, ale soukromý klíč je tajný a zná ho pouze uživatel, který klíč vlastní. To znamená, že každý může uživateli poslat zprávu pomocí jeho veřejného klíče. Ale pouze uživatel může dešifrovat zprávu pomocí svého soukromého klíče.

Algoritmus veřejného klíče funguje následujícím způsobem:

Šifrovací algoritmus RSA
  • Odesílaná data jsou odesílatelem šifrována A pomocí veřejného klíče zamýšleného příjemce
  • B dešifruje přijatý šifrovaný text pomocí svého soukromého klíče, který zná pouze B. B odpoví A zašifruje svou zprávu pomocí veřejného klíče A.
  • A dešifruje přijatý šifrovaný text pomocí svého soukromého klíče, který zná pouze on.

RSA šifrovací algoritmus:

RSA je nejběžnější algoritmus veřejného klíče, pojmenovaný po svých vynálezcích Rivest, Shamir a Adelman (RSA).

Šifrovací algoritmus RSA

Algoritmus RSA používá pro generování veřejných a soukromých klíčů následující postup:

  • Vyberte dvě velká prvočísla, p a q .
  • Vynásobte tato čísla a najděte n = p x q, kde n se nazývá modul pro šifrování a dešifrování.
  • Vyberte číslo to je méně než n , takže n je relativně prvočíslo k (p - 1) x (q - 1). Znamená to, že to je a (p - 1) x (q - 1) nemají žádný společný faktor kromě 1. Zvolte 'e' tak, že 1 gcd (e,d(n)) =1
  • Li n = p x q, pak veřejný klíč je . Zpráva v prostém textu m je šifrována pomocí veřejného klíče. Chcete-li najít šifrovaný text z prostého textu, použijte k získání šifrovaného textu C následující vzorec.
    C = mto jeproti n
    Tady , m musí být menší než n . Větší zpráva (>n) je považována za zřetězení zpráv, z nichž každá je šifrována samostatně.
  • K určení soukromého klíče používáme následující vzorec pro výpočet d tak, že:
    Dto jemod {(p - 1) x (q - 1)} = 1
    Nebo
    Dto jemod φ (n) = 1
  • Soukromý klíč je . Šifrovaná textová zpráva C je dešifrován pomocí soukromého klíče. Pro výpočet prostého textu m ze šifrového textu c se k získání prostého textu m používá následující vzorec.
    m = cdproti n

Vezměme si nějaký příklad šifrovacího algoritmu RSA:

Příklad 1:

Tento příklad ukazuje, jak můžeme šifrovat prostý text 9 pomocí šifrovacího algoritmu s veřejným klíčem RSA. Tento příklad používá prvočísla 7 a 11 ke generování veřejného a soukromého klíče.

Vysvětlení:

Krok 1: Vyberte dvě velká prvočísla, p a q .

p = 7

q = 11

Krok 2: Vynásobte tato čísla a najděte n = p x q, kde n se nazývá modul pro šifrování a dešifrování.

Nejprve spočítáme

n = p x q

n = 7 x 11

metody v Javě

n = 77

Krok 3: Vyberte číslo to je méně n , takže n je relativně prvočíslo k (p - 1) x (q - 1). Znamená to, že to je a (p - 1) x (q - 1) nemají žádný společný faktor kromě 1. Zvolte 'e' tak, že 1

Za druhé, počítáme

φ (n) = (p - 1) x (q-1)

φ (n) = (7 - 1) x (11 - 1)

φ (n) = 6 x 10

φ (n) = 60

Zvolme nyní relativní prvočíslo e 60 jako 7.

Veřejný klíč je tedy = (7, 77)

Krok 4: Zpráva v prostém textu m je šifrována pomocí veřejného klíče. Chcete-li najít šifrovaný text z prostého textu, použijte k získání šifrovaného textu C následující vzorec.

Chcete-li najít šifrovaný text z prostého textu, použijte k získání šifrovaného textu C následující vzorec.

C = mto jeproti n

C = 97proti 77

C = 37

Krok 5: Soukromý klíč je . K určení soukromého klíče používáme následující vzorec d takový, že:

Dto jemod {(p - 1) x (q - 1)} = 1

7d mod 60 = 1, což dává d = 43

Soukromý klíč je = (43, 77)

Krok 6: Šifrovaná textová zpráva C je dešifrován pomocí soukromého klíče. Pro výpočet prostého textu m ze šifrového textu c se k získání prostého textu m používá následující vzorec.

m = cdproti n

m = 3743proti 77

m = 9

V tomto příkladu je prostý text = 9 a šifrovaný text = 37

Příklad 2:

V kryptosystému RSA používá konkrétní A ke generování veřejného a soukromého klíče dvě prvočísla, 13 a 17. Pokud je veřejný klíč A 35. Pak soukromý klíč A je ……………?.

Vysvětlení:

Krok 1: v prvním kroku vyberte dvě velká prvočísla, p a q .

p = 13

markdown s obrázky

q = 17

Krok 2: Vynásobte tato čísla a najděte n = p x q, kde n se nazývá modul pro šifrování a dešifrování.

Nejprve spočítáme

n = p x q

n = 13 x 17

n = 221

Krok 3: Vyberte číslo to je méně n , takže n je relativně prvočíslo k (p - 1) x (q - 1). Znamená to, že to je a (p - 1) x (q - 1) nemají žádný společný faktor kromě 1. Zvolte 'e' tak, že 1

Za druhé, počítáme

φ (n) = (p - 1) x (q-1)

φ (n) = (13 - 1) x (17 - 1)

φ (n) = 12 x 16

φ (n) = 192

g.c.d (35, 192) = 1

Krok 3: K určení soukromého klíče používáme následující vzorec pro výpočet d tak, že:

Vypočítejte d = dto jemod φ (n) = 1

d = d x 35 mod 192 = 1

d = (1 + k.φ (n))/e [ať k = 0, 1, 2, 3………………]

Dejte k = 0

d = (1 + 0 x 192)/35

d = 1/35

Dejte k = 1

d = (1 + 1 x 192)/35

d = 193/35

Dejte k = 2

d = (1 + 2 x 192)/35

mamta kulkarni herec

d = 385/35

d = 11

Soukromý klíč je = (11, 221)

Soukromý klíč tedy d = 11

Příklad 3:

Šifrovací systém RSA používá dvě prvočísla 3 a 13 ke generování veřejného klíče = 3 a soukromého klíče = 7. Jakou hodnotu má šifrovaný text pro prostý text?

Vysvětlení:

Krok 1: V prvním kroku vyberte dvě velká prvočísla, p a q .

p = 3

q = 13

Krok 2: Vynásobte tato čísla a najděte n = p x q, kde n se nazývá modul pro šifrování a dešifrování.

Nejprve spočítáme

n = p x q

n = 3 x 13

n = 39

Krok 3: Li n = p x q, pak veřejný klíč je . Zpráva v prostém textu m je šifrována pomocí veřejného klíče. Veřejný klíč je tedy = (3, 39).

Chcete-li najít šifrovaný text z prostého textu, použijte k získání šifrovaného textu C následující vzorec.

C = mto jeproti n

C = 53směrem k 39

C = 125 vs. 39

C = 8

Šifrový text vygenerovaný z prostého textu C = 8.

Příklad 4:

Šifrovací systém RSA používá ke generování soukromého klíče dvě prvočísla, 3 a 11. Jaká je hodnota šifrovaného textu pro prostý text 5 pomocí šifrovacího algoritmu veřejného klíče RSA?

Vysvětlení:

Krok 1: v prvním kroku vyberte dvě velká prvočísla, p a q .

p = 3

poslouchat port

q = 11

Krok 2: Vynásobte tato čísla a najděte n = p x q, kde n se nazývá modul pro šifrování a dešifrování.

Nejprve spočítáme

n = p x q

n = 3 x 11

n = 33

Krok 3: Vyberte číslo to je méně n , takže n je relativně prvočíslo k (p - 1) x (q - 1). Znamená to, že to je a (p - 1) x (q - 1) nemají žádný společný faktor kromě 1. Zvolte 'e' tak, že 1

Za druhé, počítáme

φ (n) = (p - 1) x (q-1)

φ (n) = (3 - 1) x (11 - 1)

jak zakázat vývojářský režim

φ (n) = 2 x 10

φ (n) = 20

Krok 4: K určení veřejného klíče použijeme následující vzorec pro výpočet d tak, že:

Vypočítejte e x d = 1 mod φ (n)

e x 7 = 1 proti 20

e x 7 = 1 proti 20

e = (1 + k. φ (n))/d [ať k = 0, 1, 2, 3………………]

Dejte k = 0

e = (1 + 0 x 20) / 7

e = 1/7

Dejte k = 1

e = (1 + 1 x 20) / 7

e = 21/7

e = 3

Veřejný klíč je = (3, 33)

Veřejný klíč tedy e = 3