Для решения ряда задач практической криптографии необходимы значительные вычислительные ресурсы. При этом некоторые из этих задач поддаются распараллеливанию. Таким образом, интернет, объединяющий многие тысячи рабочих станций, позволяет эффективно решать трудоемкие задачи путем координированной и одновременной работы большого числа компьютеров. Такой подход, реализующий возможности компьютерных сетей, известен под названием метода распределенных вычислений.
Существует два подхода к организации силовой атаки на основе метода распределенных вычислений. Первый — централизованное управление процессом поиска при помощи сервера. Второй — случайный и независимый выбор стартовой точки в ключевом пространстве каждым из участвующих в проекте компьютером и оповещение в случае раскрытия ключа.
Первый подход более предпочтителен, но связан с определенными трудностями. Так, не исключена возможность перегрузки сервера потоком запросов со стороны клиентов. К тому же некоторые непреднамеренные действия клиентов могут привести к сбоям в работе центрального сервера. Не исключен также риск злонамеренного деструктивного воздействия. Для сведения к минимуму указанных рисков необходимы дополнительные меры.
Известный метод обеспечения отказоустойчивости предполагает введение дополнительной избыточности. Репликация серверов, а также принцип иерархии в проектировании структуры связей позволяют устранить некоторые риски и ограничить последствия сбоев и отказов. Применение кода аутентификации гарантирует подлинность всех сообщений при передаче как от клиента к серверу, так и в обратном направлении. Ведение регистрационного журнала упрощает анализ и отслеживание последствий отказов.
Развитию подобной технологии способствовал ряд конкурсов, объявленных известными фирмами – разработчиками криптосистем, в частности компанией RSA Data Secur i ty, с призовой суммой до 10 тыс. долларов. Разработано специальное программное обеспечение на основе технологии «клиент-сервер». Центральный сервер выполняет регистрацию клиента и выдает интервал ключей для перебора. Секретный ключ считается раскрытым, если результат дешифрования на нем приводит к содержательному тексту на английском языке.
Шифры с переменной длиной ключа
С увеличением мощности вычислительной техники алгоритмы шифрования устаревают по мере того, как становится возможным полный перебор пространства секретных ключей. При этом приходится искать новые алгоритмы и выбирать новые стандарты.
Естественным решением в этой ситуации является выбор алгоритма шифрования с переменной длиной ключа, чтобы при увеличении возможностей перебора можно было увеличивать ее, не меняя самого алгоритма. При этом желательно, чтобы
- сложность (количество выполняемых операций) алгоритмов шифрования Еk(т) и дешифрования D k (m) была полиномиальной:
O (| k | т), где | k | — длина ключа k в битах, а m >0 — константа,
- в то время как сложность алгоритма, реализующего любую атаку, была бы не меньше сложности полного перебора ключей, т. е. экспоненциальной — O (a½ k ½), где a>1 — константа.
Пусть время, которое можно потратить на шифрование или дешифрование, равно t1, а время, которое злоумышленник может позволить себе потратить на атаку, равно t2. При скорости вычислений, равной v операций в единицу времени, получаем следующие ограничения на длину ключа:
loga c2-1 v t2 < | k | <(c1-1 v t1)1/m.
Здесь с1 и с2 – константы, определяющие сложность данного алгоритма.
Так как с ростом v верхняя граница растет быстрее нижней, при достаточно больших значениях скорости обязательно найдутся подходящие длины ключей.
Алгоритм RC2
Криптоалгоритм R C2 представляет собой блочный шифр с ключом переменной длины. Рaзработан Ривестом по заказу компании RSA Data Secur i ty, I nc. Аббревиатура «R C» означает «код Рональда» (R on's Code), или «шифр Ривеста» (Rivest's Ciрher).
Криптоалгоритм разрабатывался как альтернатива криптостандарта DES. R C2 работает с блоками по 64 бита, программная реализация криптоалгоритма приблизительно в два-три раза быстрее, чем DES.
Переменная длина ключа позволяет добиваться адекватной криптостойкости с учетом возможностей силовой атаки. Криптоалгоритм RC2 позволяет выполнять шифрование в различных режимах — ЕСВ, СВС, СFВ.
Правительство США не запрещает экспортировать аппаратные и программные реализации криптоалгоритмов R C2 и RC4 (поточный шифр, он будет рассмотрен далее) — при соблюдении ограничения на длину ключа (40 бит). Американские компании за пределами США и Канады могут использовать криптоалгоритмы с длиной ключа 65 бит. При шифровании по криптоалгоритму R C2 к секретному ключу методом конкатенации добавляется некоторый вспомогательный ключ от 40 до 88 бит. Для выполнения дешифрования вспомогательный ключ передается получателю зашифрованного сообщения в открытом виде.
Алгоритм RC5
Криптоалгоритм RC5 также разработан Ривестом по заказу компании RSA Data Secur i ty, I nc. Это блочный шифр с переменными длинами блока, ключа и числом циклов криптографического преобразования. Параметрами алгоритма являются следующие величины:
• Размер слова в битах w Î{32,64,128}. RC5 является блочным шифром с размером блока 2w битов.
• Количество итераций R Î (0,...,255}.
• Длина ключа в байтах b Î(0,..., 2048}.
Выбранный вариант алгоритма обозначается R C5-w/r/b. Возможность параметризации позволяет гибко настраивать криптоалгоритм с учетом конкретных требований по криптостойкости и эффективности реализации. He все варианты алгоритма стойки, и для практического использования рекомендуются RC5-32/12/16 или RC5-64/16/16.
Конструкция алгоритма RC5 представляет собой модифицированную сеть Фейстеля, в которой для прибавления ключа и сложения подблоков используются различные операции (как в алгоритме ГОСТ), а вместо таблицы замен использован параметризованный циклический сдвиг.
Криптоалгоритм RC5 состоит из трех основных процедур: расширения ключа, шифрования и дешифрования.
В процедуре расширения ключа заданный секретный ключ подвергается специальному преобразованию с целью заполнения ключевой таблицы, причем размер таблицы зависит от числа циклов криптографического преобразования. Ключевая таблица используется затем для шифрования и дешифрования.
Процедура шифрования состоит из трех основных операций: целочисленного суммирования, суммирования по модулю 2 и циклического сдвига. Безусловное преимущество криптоалгоритма заключается в простоте реализации. Непредсказуемость результата операции циклического сдвига, зависящей от конкретных входных данных при шифровании, обеспечивает необходимый уровень криптостойкости.
Исследования криптостойкости RC5 показали, что вариант криптоалгоритма с разрядностью блока 64 бита и двенадцатью (и более) циклами преобразования гарантирует адекватную криптостойкость по отношению к дифференциальному и линейному криптоанализу.
1.8. Поточные шифры