logo

Algorytm szyfrowania RSA

Algorytm szyfrowania RSA to rodzaj algorytmu szyfrowania klucza publicznego. Aby lepiej zrozumieć RSA, najpierw zrozummy, czym jest algorytm szyfrowania kluczem publicznym.

Algorytm szyfrowania klucza publicznego:

Algorytm szyfrowania klucza publicznego nazywany jest także algorytmem asymetrycznym. Algorytmy asymetryczne to algorytmy, w których nadawca i odbiorca używają różnych kluczy do szyfrowania i deszyfrowania. Każdemu nadawcy przypisana jest para kluczy:

    Klucz publiczny Prywatny klucz

The Klucz publiczny służy do szyfrowania, a Prywatny klucz służy do deszyfrowania. Odszyfrowania nie można wykonać przy użyciu klucza publicznego. Obydwa klucze są ze sobą powiązane, ale klucza prywatnego nie można wyprowadzić z klucza publicznego. Klucz publiczny jest dobrze znany, ale klucz prywatny jest tajny i znany jest tylko użytkownikowi będącemu właścicielem klucza. Oznacza to, że każdy może wysłać wiadomość do użytkownika przy użyciu jego klucza publicznego. Ale tylko użytkownik może odszyfrować wiadomość przy użyciu swojego klucza prywatnego.

Algorytm klucza publicznego działa w następujący sposób:

Algorytm szyfrowania RSA
  • Przesyłane dane są szyfrowane przez nadawcę A przy użyciu klucza publicznego zamierzonego odbiorcy
  • B odszyfrowuje otrzymany tekst zaszyfrowany przy użyciu swojego klucza prywatnego, który jest znany tylko B. B odpowiada A, szyfrując jego wiadomość przy użyciu klucza publicznego A.
  • A odszyfrowuje otrzymany zaszyfrowany tekst za pomocą swojego klucza prywatnego, który jest mu znany.

Algorytm szyfrowania RSA:

RSA to najpopularniejszy algorytm klucza publicznego, którego nazwa pochodzi od jego twórców Rivest, Shamir i Adelman (RPA).

Algorytm szyfrowania RSA

Algorytm RSA wykorzystuje następującą procedurę do generowania kluczy publicznych i prywatnych:

  • Wybierz dwie duże liczby pierwsze, p i Q .
  • Pomnóż te liczby, aby znaleźć n = p x q, Gdzie N nazywany jest modułem szyfrowania i deszyfrowania.
  • Wybierz numer To jest mniej niż N , tak że n jest względnie pierwsze do (p - 1) x (q -1). To znaczy, że To jest I (p - 1) x (q - 1) nie mają wspólnego dzielnika z wyjątkiem 1. Wybierz „e” takie, że 1 gcd (e,d(n)) =1
  • Jeśli n = p x q, wtedy klucz publiczny to . Wiadomość w postaci zwykłego tekstu M jest szyfrowany przy użyciu klucza publicznego. Aby znaleźć zaszyfrowany tekst w postaci zwykłego tekstu, stosuje się następujący wzór, aby uzyskać zaszyfrowany tekst C.
    C = mTo jestprzeciwko n
    Tutaj , M musi być mniejsza niż N . Większa wiadomość (>n) traktowana jest jako konkatenacja wiadomości, z których każda jest szyfrowana oddzielnie.
  • Aby określić klucz prywatny, używamy następującego wzoru do obliczenia d w taki sposób, że:
    DTo jestmod {(p - 1) x (q - 1)} = 1
    Lub
    DTo jestmod φ (n) = 1
  • Klucz prywatny to . Wiadomość zaszyfrowana C jest odszyfrowywany przy użyciu klucza prywatnego. Aby obliczyć zwykły tekst M z szyfrogramu c do uzyskania zwykłego tekstu m stosuje się następujący wzór.
    m = okDprzeciwko n

Weźmy przykład algorytmu szyfrowania RSA:

Przykład 1:

Ten przykład pokazuje, jak możemy zaszyfrować zwykły tekst 9 przy użyciu algorytmu szyfrowania klucza publicznego RSA. W tym przykładzie użyto liczb pierwszych 7 i 11 do wygenerowania kluczy publicznych i prywatnych.

Wyjaśnienie:

Krok 1: Wybierz dwie duże liczby pierwsze, p i Q .

p = 7

q = 11

Krok 2: Pomnóż te liczby, aby znaleźć n = p x q, Gdzie N nazywany jest modułem szyfrowania i deszyfrowania.

Najpierw obliczamy

n = p x q

n = 7 x 11

n = 77

Krok 3: Wybierz numer To jest mniej niz N , tak że n jest względnie pierwsze do (p - 1) x (q -1). To znaczy, że To jest I (p - 1) x (q - 1) nie mają wspólnego dzielnika z wyjątkiem 1. Wybierz „e” takie, że 1

Po drugie, obliczamy

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

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

φ (n) = 6 x 10

φ (n) = 60

Wybierzmy teraz względną liczbę pierwszą e od 60 jako 7.

Zatem klucz publiczny to = (7, 77)

Krok 4: Wiadomość w postaci zwykłego tekstu M jest szyfrowany przy użyciu klucza publicznego. Aby znaleźć zaszyfrowany tekst w postaci zwykłego tekstu, stosuje się następujący wzór, aby uzyskać zaszyfrowany tekst C.

Aby znaleźć zaszyfrowany tekst w postaci zwykłego tekstu, stosuje się następujący wzór, aby uzyskać zaszyfrowany tekst C.

C = mTo jestprzeciwko n

C = 97przeciwko 77

C = 37

Krok 5: Klucz prywatny to . Aby określić klucz prywatny, używamy następującej formuły d takiej, że:

DTo jestmod {(p - 1) x (q - 1)} = 1

7d mod 60 = 1, co daje d = 43

Klucz prywatny to = (43, 77)

Krok 6: Wiadomość zaszyfrowana C jest odszyfrowywany przy użyciu klucza prywatnego. Aby obliczyć zwykły tekst M z szyfrogramu c do uzyskania zwykłego tekstu m stosuje się następujący wzór.

m = okDprzeciwko n

ciąg w c

m = 3743przeciwko 77

m = 9

W tym przykładzie zwykły tekst = 9, a szyfrogram = 37

Przykład 2:

W kryptosystemie RSA konkretny A wykorzystuje dwie liczby pierwsze, 13 i 17, do generowania kluczy publicznych i prywatnych. Jeśli publiczny A wynosi 35. Wtedy klucz prywatny A to ……………?.

Wyjaśnienie:

Krok 1: w pierwszym kroku wybierz dwie duże liczby pierwsze, P I Q .

p = 13

q = 17

Krok 2: Pomnóż te liczby, aby znaleźć n = p x q, Gdzie N nazywany jest modułem szyfrowania i deszyfrowania.

Najpierw obliczamy

n = p x q

n = 13 x 17

n = 221

Krok 3: Wybierz numer To jest mniej niz N , tak że n jest względnie pierwsze do (p - 1) x (q -1). To znaczy, że To jest I (p - 1) x (q - 1) nie mają wspólnego dzielnika z wyjątkiem 1. Wybierz „e” takie, że 1

Po drugie, obliczamy

φ (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: Aby określić klucz prywatny, używamy następującego wzoru do obliczenia d w taki sposób, że:

Oblicz d = dTo jestmod φ (n) = 1

d = d x 35 mod 192 = 1

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

Postaw k = 0

d = (1 + 0 x 192)/35

d = 1/35

Postaw k = 1

d = (1 + 1 x 192)/35

d = 193/35

Postaw k = 2

d = (1 + 2 x 192)/35

d = 385/35

d = 11

Klucz prywatny to = (11, 221)

Stąd klucz prywatny, tj. d = 11

Przykład 3:

Kryptosystem RSA wykorzystuje dwie liczby pierwsze 3 i 13 do wygenerowania klucza publicznego = 3 i klucza prywatnego = 7. Jaka jest wartość zaszyfrowanego tekstu w przypadku zwykłego tekstu?

Wyjaśnienie:

Krok 1: W pierwszym kroku wybierz dwie duże liczby pierwsze, P I Q .

p = 3

q = 13

Krok 2: Pomnóż te liczby, aby znaleźć n = p x q, Gdzie N nazywany jest modułem szyfrowania i deszyfrowania.

Najpierw obliczamy

n = p x q

n = 3 x 13

n = 39

losowy kod c

Krok 3: Jeśli n = p x q, wtedy klucz publiczny to . Wiadomość w postaci zwykłego tekstu M jest szyfrowany przy użyciu klucza publicznego. Zatem klucz publiczny to = (3, 39).

Aby znaleźć zaszyfrowany tekst w postaci zwykłego tekstu, stosuje się następujący wzór, aby uzyskać zaszyfrowany tekst C.

C = mTo jestprzeciwko n

C = 53przeciwko 39

C = 125 vs. 39

C = 8

Stąd szyfrogram wygenerowany ze zwykłego tekstu, C = 8.

Przykład 4:

Kryptosystem RSA wykorzystuje dwie liczby pierwsze, 3 i 11, do wygenerowania klucza prywatnego = 7. Jaka jest wartość tekstu zaszyfrowanego dla zwykłego tekstu 5 przy użyciu algorytmu szyfrowania kluczem publicznym RSA?

Wyjaśnienie:

Krok 1: w pierwszym kroku wybierz dwie duże liczby pierwsze, P I Q .

p = 3

q = 11

Krok 2: Pomnóż te liczby, aby znaleźć n = p x q, Gdzie N nazywany jest modułem szyfrowania i deszyfrowania.

Najpierw obliczamy

n = p x q

n = 3 x 11

n = 33

Krok 3: Wybierz numer To jest mniej niz N , tak że n jest względnie pierwsze do (p - 1) x (q -1). To znaczy, że To jest I (p - 1) x (q - 1) nie mają wspólnego dzielnika z wyjątkiem 1. Wybierz „e” takie, że 1

Po drugie, obliczamy

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

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

φ (n) = 2 x 10

φ (n) = 20

Krok 4: Aby określić klucz publiczny, używamy następującego wzoru do obliczenia d w taki sposób, że:

Oblicz e x d = 1 mod φ (n)

np. 7 = 1 przeciwko 20

np. 7 = 1 przeciwko 20

e = (1 + k. φ (n))/ re [niech k =0, 1, 2, 3………………]

Postaw k = 0

e = (1 + 0 x 20) / 7

mi = 1/7

Postaw k = 1

e = (1 + 1 x 20) / 7

mi = 21/7

mi = 3

Klucz publiczny to = (3, 33)

Stąd klucz publiczny, tj. e = 3