logo

Алгоритм шифрування RSA

Алгоритм шифрування RSA — це тип алгоритму шифрування з відкритим ключем. Щоб краще зрозуміти RSA, давайте спочатку зрозуміємо, що таке алгоритм шифрування з відкритим ключем.

Алгоритм шифрування відкритим ключем:

Алгоритм шифрування з відкритим ключем також називають асиметричним алгоритмом. Асиметричні алгоритми — це алгоритми, у яких відправник і одержувач використовують різні ключі для шифрування та дешифрування. Кожному відправнику призначається пара ключів:

    Відкритий ключ Приватний ключ

The Відкритий ключ використовується для шифрування, і Приватний ключ використовується для дешифрування. Розшифровку неможливо виконати за допомогою відкритого ключа. Два ключі пов’язані, але закритий ключ не може бути отриманий із відкритого ключа. Відкритий ключ добре відомий, але закритий ключ є секретним і відомий лише користувачу, який володіє ключем. Це означає, що кожен може надіслати повідомлення користувачеві за допомогою відкритого ключа користувача. Але тільки користувач може розшифрувати повідомлення за допомогою свого закритого ключа.

Команда grep в Linux

Алгоритм відкритого ключа працює таким чином:

Алгоритм шифрування RSA
  • Дані для надсилання зашифровані відправником А використовуючи відкритий ключ передбачуваного отримувача
  • B розшифровує отриманий зашифрований текст за допомогою свого закритого ключа, який відомий лише B. B відповідає A, шифруючи своє повідомлення за допомогою відкритого ключа A.
  • А розшифровує отриманий зашифрований текст за допомогою свого закритого ключа, який відомий тільки йому.

Алгоритм шифрування RSA:

RSA — найпоширеніший алгоритм із відкритим ключем, названий на честь його винахідників Рівест, Шамір і Адельман (ЮАР).

Алгоритм шифрування RSA

Алгоритм RSA використовує таку процедуру для генерації відкритого та закритого ключів:

  • Виберіть два великих простих числа p і q .
  • Щоб знайти, помножте ці числа n = p x q, де п називається модулем для шифрування та дешифрування.
  • Виберіть номер Це є менше ніж п , так що n взаємно просте (p - 1) x (q -1). Це означає, що Це є і (p - 1) x (q - 1) не мають спільного множника, крім 1. Виберіть «e» так, щоб 1 gcd (e,d(n)) =1
  • Якщо n = p x q, тоді відкритим ключем є . Текстове повідомлення м зашифровано за допомогою відкритого ключа. Щоб знайти зашифрований текст зі звичайного тексту, використовується наступна формула для отримання зашифрованого тексту C.
    C = mЦе єпроти н
    тут , м має бути менше ніж п . Більше повідомлення (>n) розглядається як конкатенація повідомлень, кожне з яких зашифровано окремо.
  • Щоб визначити закритий ключ, ми використовуємо наступну формулу для обчислення d таким чином, що:
    ДЦе єmod {(p - 1) x (q - 1)} = 1
    Або
    ДЦе єmod φ (n) = 1
  • Закритим ключем є . Зашифроване повідомлення в розшифровується за допомогою закритого ключа. Для обчислення звичайного тексту м із зашифрованого тексту c для отримання простого тексту m використовується наступна формула.
    m = cdпроти н

Розглянемо приклад алгоритму шифрування RSA:

приклад 1:

У цьому прикладі показано, як ми можемо зашифрувати відкритий текст 9 за допомогою алгоритму шифрування з відкритим ключем RSA. У цьому прикладі використовуються прості числа 7 і 11 для створення відкритого та закритого ключів.

Пояснення:

Крок 1: Виберіть два великих простих числа p і q .

p = 7

q = 11

Крок 2: Щоб знайти, помножте ці числа n = p x q, де п називається модулем для шифрування та дешифрування.

Спочатку обчислюємо

n = p x q

n = 7 x 11

n = 77

крок 3: Виберіть номер Це є менше того п , так що n взаємно просте (p - 1) x (q -1). Це означає, що Це є і (p - 1) x (q - 1) не мають спільного множника, крім 1. Виберіть «e» так, щоб 1

По-друге, ми розраховуємо

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

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

φ (n) = 6 x 10

φ (n) = 60

Давайте тепер виберемо відносне просте число 60 як 7.

Таким чином відкритий ключ = (7, 77)

крок 4: Текстове повідомлення м зашифровано за допомогою відкритого ключа. Щоб знайти зашифрований текст зі звичайного тексту, використовується наступна формула для отримання зашифрованого тексту C.

Щоб знайти зашифрований текст зі звичайного тексту, використовується наступна формула для отримання зашифрованого тексту C.

C = mЦе єпроти н

C = 97проти 77

C = 37

крок 5: Закритим ключем є . Щоб визначити закритий ключ, ми використовуємо таку формулу d, що:

ДЦе єmod {(p - 1) x (q - 1)} = 1

7d mod 60 = 1, що дає d = 43

Закритий ключ = (43, 77)

Крок 6: Зашифроване повідомлення в розшифровується за допомогою закритого ключа. Для обчислення звичайного тексту м із зашифрованого тексту c для отримання простого тексту m використовується наступна формула.

m = cdпроти н

m = 3743проти 77

m = 9

У цьому прикладі звичайний текст = 9, а зашифрований текст = 37

приклад 2:

У криптосистемі RSA конкретний A використовує два простих числа, 13 і 17, для генерації відкритого та закритого ключів. Якщо відкритий ключ A дорівнює 35. Тоді закритий ключ A ……………?.

Пояснення:

Крок 1: на першому кроці виберіть два великих простих числа, стор і q .

p = 13

q = 17

Крок 2: Щоб знайти, помножте ці числа n = p x q, де п називається модулем для шифрування та дешифрування.

Спочатку обчислюємо

n = p x q

створення таблиці Oracle

n = 13 х 17

n = 221

крок 3: Виберіть номер Це є менше того п , так що n взаємно просте (p - 1) x (q -1). Це означає, що Це є і (p - 1) x (q - 1) не мають спільного множника, крім 1. Виберіть «e» так, щоб 1

По-друге, ми розраховуємо

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

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

φ (n) = 12 x 16

φ (n) = 192

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

крок 3: Щоб визначити закритий ключ, ми використовуємо наступну формулу для обчислення d таким чином, що:

Обчисліть d = dЦе єmod φ (n) = 1

d = d x 35 mod 192 = 1

d = (1 + k.φ (n))/e [нехай k =0, 1, 2, 3………………]

Поставте k = 0

d = (1 + 0 x 192)/35

d = 1/35

Поставте k = 1

d = (1 + 1 x 192)/35

d = 193/35

Поставте k = 2

d = (1 + 2 x 192)/35

d = 385/35

d = 11

Закритий ключ = (11, 221)

Отже, закритий ключ, тобто d = 11

приклад 3:

Криптосистема RSA використовує два прості числа 3 і 13 для створення відкритого ключа = 3 і закритого ключа = 7. Яке значення зашифрованого тексту для звичайного тексту?

Пояснення:

Крок 1: На першому кроці виберіть два великих простих числа, стор і q .

p = 3

q = 13

Крок 2: Щоб знайти, помножте ці числа n = p x q, де п називається модулем для шифрування та дешифрування.

Спочатку обчислюємо

n = p x q

n = 3 x 13

n = 39

крок 3: Якщо n = p x q, тоді відкритим ключем є . Текстове повідомлення м зашифровано за допомогою відкритого ключа. Таким чином відкритий ключ = (3, 39).

Щоб знайти зашифрований текст зі звичайного тексту, використовується наступна формула для отримання зашифрованого тексту C.

C = mЦе єпроти н

C = 53проти 39

C = 125 проти 39

C = 8

Отже, зашифрований текст, згенерований зі звичайного тексту, C = 8.

Приклад 4:

Криптосистема RSA використовує два простих числа, 3 і 11, для генерації закритого ключа = 7. Яке значення зашифрованого тексту для звичайного тексту 5 з використанням алгоритму шифрування з відкритим ключем RSA?

Пояснення:

Крок 1: на першому кроці виберіть два великих простих числа, стор і q .

p = 3

q = 11

Крок 2: Щоб знайти, помножте ці числа n = p x q, де п називається модулем для шифрування та дешифрування.

Спочатку обчислюємо

n = p x q

n = 3 x 11

n = 33

крок 3: Виберіть номер Це є менше того п , так що n взаємно просте (p - 1) x (q -1). Це означає, що Це є і (p - 1) x (q - 1) не мають спільного множника, крім 1. Виберіть «e» так, щоб 1

По-друге, ми розраховуємо

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

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

φ (n) = 2 x 10

φ (n) = 20

крок 4: Щоб визначити відкритий ключ, ми використовуємо таку формулу для обчислення d так, що:

Обчисліть e x d = 1 mod φ (n)

e x 7 = 1 проти 20

e x 7 = 1 проти 20

e = (1 + k. φ (n))/ d [нехай k =0, 1, 2, 3………………]

Поставте k = 0

e = (1 + 0 x 20) / 7

e = 1/7

java ще якщо

Поставте k = 1

e = (1 + 1 x 20) / 7

e = 21/7

e = 3

Відкритий ключ = (3, 33)

Отже, відкритий ключ, тобто e = 3