"Человек - самое уязвимое место в системе безопасности.."

Пример алгоритма шифрования rsa

Содержание:

Алгоритм RSA

Допустим, что объект А хочет передать сообщение объекту В в зашифрованном виде. Для этого используем алгоритм RSA. При передаче могут возникнут проблемы из-за характеристики проводных линий связи или плохую полосу пропускания и пропускную способность. Для этого нужно использовать методы обнаружения ошибок. Но для разных сетей разные методы.

Шаги:

  • объект В придумывает два любых больших простых числа Р и Q;
  • объект В решает значение модуля N = P × Q;
  • объект В решает функцию Эйлера:φ(N) = (P-1) × (Q-1);
    и выбирает любым образом значение открытого ключа Kв с учетом условия:1 < Kв ≤ φ(N), НОД (Kв, φ(N)) = 1
  • объект В решает значение секретного ключа κв решая алгоритм Евклида когда достигается условие: κв ≡ Kв-1 (mod φ(N)).
  • объект В передает объекту А пару числе (N, Kв) по незащищенному пути.
  • Если объект А хочет передать объекту В сообщение М, он должен разбить исходный открытый текст M на блоки, каждый из которых может быть показан в виде: Mi = 0, 1, 2, …, N — 1.
  • Объект А шифрует данные, показаны в виде последовательности чисел Mi по формуле: Ci = MiKв (mod N), и отправляет криптограмму C1, C2, …, Ci … объекту В.
  • Пользователь В расшифровывает криптограмму C1, C2, …, Ci … используя секретный ключ κв по формуле: Mi = CiKв (mod N)

При реализации алгоритма на практике, нужно иметь возможность без сильных затрат генерировать большие простые числа, к тому же быстро решать значение ключей.

Пример: шифрование сообщения

Для наглядности вычисления, будем использовать небольшие числа. Но на практике используют очень большие числа ( длиной 200-300 десятичных разрядов).

Действия объекта В:

  • Берет Р = 3, Q = 11.
  • Берет модуль N = P × Q = 3 × 11 = 33.
  • Берет значение функции Эйлера для N = 33: φ(N) = (P-1) × (Q-1) = 2 × 10 = 20.
  • Берет в качестве открытого ключа Kв произвольное число с учетом условия: 1 < Kв ≤ φ(N), НОД (Kв, φ(N)) = 1, допустим Kв = 7.
  • Решаем значение секретного ключа κв используя алгоритм Евклида: κв ≡ = 3.
  • объект В передает объекту А пару чисел (N = 33, Kв = 7).

Действия объекта A:

  • Показывает шифруемое сообщение как последовательность целых чисел в диапазоне 0…32. Допустим буква А представляется как число 1, буква В это 2 и С = 3. Припустим что сообщение С А В можно показать как последовательность числе 321, то есть M1 = 3, M2 = 1, M3 = 2.
  • Шифрует сообщение, М используя ключ Kв = 7 и N = 33 по формуле: Ci = MiKв (mod N) = Mi7(mod 3).
  • Получаем:
    • Ci = 37(mod 33) = 2187 (mod 33) = 9
    • Ci = 17(mod 33) = 1 (mod 33) = 1
    • Ci = 27(mod 33) = 128 (mod 33) = 29
  • Передает объекту В криптограмму: C1, C2, C3 = 9, 1, 29.

Действия объекта B:

  • Расшифровывает принятую криптограмму C1, C2, C3 используя секретный ключ ≡ = 3 по формуле:Mi = CiKв (mod N) = Ci3 (mod 3)
    • M1= 93 (mod 33) = 729 (mod 33) =3.
    • M2 = 13 (mod 33) = 1 (mod 33) =1.
    • M2 = 293 (mod 33) = 24389 (mod 33) =2.

Объект получил исходное сообщение, которое послал объект A.

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

Шифрование с помощью RSA есть одним из методов защиты информации при передачи данных через сеть Интернет. Схема Рабина очень похожа на схему RSA. Криптоалгоритм RSA признан стойким при дине ключа больше 1024 бит. Нужно отметить что алгоритм применяют как для шифрования так и для электронно-цифровой подписи. Нетрудно заметить что в асимметричной криптосистеме RSA количество ключей связано с количеством пользователей линейной зависимостью (N пользователей используют 2 × N ключей), а не квадратичной как это используется в симметричных системах.

Применение алгоритма может решить некоторые угрозы информационной безопасности в сети.

Если сравнивать самые популярных представителей асимметричного и симметричного шифрования, нужно отметить, что по скорости RSA уступает DES, да и реализация криптоалгоритма RSA сложнее. Поэтому RSA обычно используется для передачи небольших сообщений. Шифрование как таковое, частично решает проблемы защиты информации в сетях.