Симметричные алгоритмы шифрования

Рассмотрим классическую модель (К. Шеннона) симметричной криптосистемы (рис. 12.3), в которой три участника решают следующие задачи:

  • • отправитель по открытому каналу должен передать некоторое сообщение в защищенном виде. Для этого он на ключе k зашифровывает открытый текст X и передает шифрованный текст У;
  • • получатель должен расшифровать У и прочитать сообщение X. Предполагается, что отправитель имеет свой источник ключа. Сгенерированный ключ заранее по надежному каналу передается получателю;
  • • злоумышленник намерен перехватить передаваемые сообщения и(или) имитировать ложные сообщения.

Наиболее популярным симметричным алгоритмом является открытый стандарт на шифрование данных (Data Encryption Standard – DES), разработанный фирмой IBM. Для пояснения сути этого алгоритма воспользуемся рис. 12.4.

Перед шифрованием исходные данные (блок текста) преобразуют в число путем любой открытой процедуры. Например, путем слияния ASCII-кодов последовательных символов текста может быть получено двоичное число. Размер блока данных должен составлять 64 бита. Блок делится

Симметричное шифрование

Рис. 12.3. Симметричное шифрование

Иллюстрация алгоритма DES

Рис. 12.4. Иллюстрация алгоритма DES

пополам на левую L и правую R части и поступает на вход шифрующей функции для предварительной обработки. Она состоит в том, что на место левой части результирующего блока L помещается правая часть R исходного блока, а правая часть вычисляется как логическая сумма по модулю 2 (операция сложения по модулю 2) левой и правой частей исходного блока (см. рис. 12.4). Для основной обработки используется ключ данного алгоритма в виде двоичной последовательности длиной 64 бита, из которых выбираются 56 бит случайным образом, а 8 используются для контроля ключа. С помощью этой случайной двоичной последовательности по определенной схеме выполняются побитные замены и перестановки.

Алгоритм DES широко используется в различных технологиях и продуктах безопасности информационных систем. Для повышения криптостойкости алгоритма DES применяют трехкратное шифрование с использованием двух разных ключей. Можно считать, что длина ключа увеличивается с 56 до 112 бит. Такой алгоритм с повышенной криптостойкостью называется тройным DES. Он требует в три раза больше времени, чем обычный DES.

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

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

Несимметричные алгоритмы шифрования. Особенности алгоритмов рассмотрим на примере модели с тремя участниками (рис. 12.5).

Асимметричное шифрование

Рис. 12.5. Асимметричное шифрование

Получатель имеет два ключа:

  • закрытый, или личный, ключ D, который должен сохраняться в защищенном месте. Только с помощью закрытого ключа D получатель может дешифровать переданное ему сообщение;
  • открытый ключ Е, используемый для шифрования текста, который получатель может передать всем, с кем он хочет поддерживать защищенные отношения, поэтому его получатель передает отправителю в незащищенном виде.

Отправитель, используя открытый ключ Е получателя, шифрует сообщение X и передает его получателю по открытому каналу связи.

Для обмена секретной информацией каждый абонент сети должен обладать своей собственной парой ключей Е и D. Поэтому в сети из п абонентов будет 2п ключей: п открытых ключей для шифрования и п закрытых ключей для дешифрирования. Таким образом, если в симметричных алгоритмах имела место квадратичная зависимость количества ключей от числа абонентов, то в асимметричных алгоритмах она заменяется линейной зависимостью. Отсутствует необходимость секретной доставки ключа, а также стремление злоумышленника завладеть открытым ключом, поскольку это исключает возможность расшифровывать текст или вычислить закрытый ключ.

Несмотря на то, что информация об открытом ключе не является секретной, ее нужно защищать. Иначе злоумышленник под именем легального пользователя может навязать свой открытый ключ, после чего с помощью своего закрытого ключа расшифровывать все сообщения, посылаемые легальному пользователю, и отправлять свои сообщения от его имени.

Рассмотрим один из наиболее популярных в настоящее время криптоалгоритмов с открытым ключом.

Криптоалгоритм RSA. Система шифрования с открытыми ключами RSA разработана учеными Rivest, Shamir, Adleman и названа по начальным буквам их фамилий. Последовательность операций этого алгоритма:

  • • выбираются два очень больших простых числа р и q
  • • вычисляются произведения n=p×q u m = (p-l)× × (q-1);
  • • выбирается случайное целое число Е, не имеющее общих сомножителей с т;
  • • находится D, такое, что DE = 1 по модулю т;
  • • исходный текст X разбивается на блоки таким образом, чтобы 0 < Х< п;
  • • для шифрования сообщения необходимо вычислить C = XE по модулю и;
  • • для дешифрирования вычисляется X = CD по модулю п.

Таким образом, чтобы зашифровать сообщение, необходимо знать пару чисел (Е, п), представляющую собой открытый ключ, а чтобы его дешифрировать, необходимо знать пару чисел (D, и), представляющую собой закрытый ключ.

Высокая криптостойкость алгоритма RSA обусловлена огромными вычислительными затратами. Действительно, для определения закрытого ключа D по известным значениям открытого ключа (Е, n), необходимо сначала найти числа р и q путем разложения на простые множители очень большого числа п, на что требуется много времени. Например, для разложения 200-значного числа понадобится 4 миллиарда лет работы компьютера с быстродействием миллион операций в секунду [20].

Пример. Покажем использование алгоритма RSA для шифрования слова БИТ.

  • 1. Выбираем p = 3 u q = 11. Определяем п = 3 × 11 = 33.
  • 2. Находим (р-1) × (d= 3, которое является взаимно простым с числом 20.
  • 3. Выберем число е = 7, для которого удовлетворяется соотношение × 3) mod 20 = 1.
  • 4. Представим слово БИТ как последовательность целых чисел в диапазоне 1–32, обозначив букву Б числом 2, букву И – числом 10, а букву T – числом 20. Тогда последовательность для слова БИТ имеет вид {2 10 20}.
  • 5. Зашифруем сообщение, используя ключ {7, 33}.
  • 6. Cl = (27) mod 33 = 128 mod 33= 29,

С2 = (107) mod 33 = 10 000 000 mod 33 = 10,

С3 = (207) mod 33 = 1 280 000 000 mod 33 = 26.

Таким образом, зашифрованное слово имеет вид {29 10 26}. Решим обратную задачу: расшифруем сообщение {2910 26}, полученное в результате шифрования по известному ключу, на основе секретного ключа {3,33}:

Ml = (293) mod 33 = 24 389 mod 33 = 2 (Б),

М2 = (103) mod 33 = 1000 mod 33 = 10 (И),

М3 = (263) mod 33 =17 576 mod 33 = 20 (Т).

Таким образом, в результате дешифрования получено исходное слово БИТ.

Сравнение DES и RSA. Некоторые характеристики для сравнения алгоритмов DES и RSA приведены в табл. 12.1.

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

Таблица 12.1

Характеристика

DES

RSA

Скорость шифрования

Высокая

Низкая

Используемая функция шифрования

Перестановка и подстановка

Возведение в степень

Длина ключа, бит

56

Более 500

Наименее затратный криптоанализ (его сложность определяет стойкость алгоритма)

Перебор по всему ключевому пространству

Разложение числа на простые множи-

Время генерации ключа

Миллисекунды

Минуты

Тип ключа

Симметричный

Несимметричный

 
< Пред   СОДЕРЖАНИЕ     След >