Сетевой электронный научный журнал "СИСТЕМОТЕХНИКА", № 2, 2004 г.

 

 

ВЫБОР ОПТИМАЛЬНОГО БЛОЧНОГО АЛГОРИТМА ШИФРОВАНИЯ ТРАФИКА
В ИНФОРМАЦИОННОЙ СИСТЕМЕ ВУЗА

 

Куликов А.Л., Петрова И.Ю.

(Астраханский Государственный университет, аспирант кафедры Информационных систем,
anthony@mail.ru, petrova@aspu.ru)

 

При создании распределенных систем, использующих в качестве средства авторизации пользователя на компьютере смарт-карту, возникает задача обеспечения необходимой конфиденциальности передачи информации между центральным сервером и компьютером пользователя. В разработанной системе Смарт.АГУ (Астраханский Государственный университет), гарантированность авторизации обеспечивается многоуровневыми проверками передаваемой информации (генерацией ключа сеанса, учитывающего аппаратные характеристики компьютера, проверкой ip-адреса компьютера). Типовая смарт-карта обычно содержит несколько «закрытых» областей, в которых можно хранить статичную информацию (ключ), а так же, предусмотренный стандартом механизм генерации ключей сеанса (средствами ОС смарт-карты). В разработанной системе Смарт.АГУ, смарт-карты используются в качестве средства идентификации, для получения доступа как непосредственно к компьютеру, так и к персональной информации пользователя (расписанию, зачетке, и т п.). В силу того что обмен информацией производится по ЛВС университета – для исключения действий злоумышленников по перехвату конфиденциальной информации требуется обеспечить эффективную шифрацию/дешифрацию передаваемой информации. Таким образом, необходимо выбрать алгоритм шифрования, удовлетворяющий как по скорости шифрования/дешифрования (из расчета 5000 работающих пользователей) так и по криптостойкости (используется в ЛВС университета).

В качестве операционной системы на клиентских персональных компьютерах (не находящихся под наблюдением дежурного оператора) используется операционная система Windows XP professional компании Microsoft (ключ для шифрования/дешифрования может быть получен на основе «ключа сеанса», генерируемого в результате двухпроходной авторизации пользователя).

Рассмотрим подробнее процесс шифрования/дешифрования. Криптосистема должна удовлетворять следующим требованиям:

·       зашифрованное сообщение должно поддаваться чтению только при наличии ключа;

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

·       число операций, необходимых для расшифровывания информации путем перебора всевозможных ключей должно иметь строгую нижнюю оценку и выходить за пределы возможностей современных компьютеров (с учетом возможности использования сетевых распределенных вычислений);

·       знание алгоритма шифрования не должно влиять на надежность защиты;

·       незначительное изменение ключа должно приводить к существенному изменению вида зашифрованного сообщения даже при использовании одного и того же ключа;

·       структурные элементы алгоритма шифрования должны быть неизменными;

·       дополнительные биты, вводимые в сообщение в процессе шифрования, должен быть полностью и надежно скрыты в шифрованном тексте;

·       длина шифрованного текста, должна быть равна длине исходного текста;

·       не должно быть простых и легко устанавливаемых зависимостью между ключами, последовательно используемыми в процессе шифрования;

·       любой ключ из множества возможных ключей должен обеспечивать надежную защиту информации;

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

С учетом некоторой специфичности задачи (требованиям к скорости, к минимально возможному увеличению объема передаваемой информации) будем рассматривать только симметричные криптографические алгоритмы [1], параметры некоторых наиболее распространенных из них сведены в таблицу 1.

 

DES (Data Encryption Standard). Федеральный стандарт шифрования США.

Параметры алгоритма: размер блока 64 бита размер ключа 56 бит (64 бита, 8 из которых не используются) число раундов 16. Широкое использование битовых перестановок в DESе делает алгоритм неудобным для программных реализаций на универсальных процессорах, а сами такие реализации крайне неэффективными. По сравнению с Российским стандартом шифрования DES содержит вдвое меньше раундов, однако его оптимальная реализация для процессоров линии Intel x86 уступает реализации Российского стандарта, по скорости в 3-10 раз в зависимости от марки процессора, эта разница увеличивается от младших моделей к старшим. Кроме того, по единодушному мнению криптографов начальная и конечная битовые перестановки являются не более чем "украшениями" алгоритма, т.е. бесполезны с криптографической точки зрения, а размера ключа в 56 бит явно недостаточно для обеспечения приемлемой стойкости, что регулярно демонстрируется успехами во вскрытии шифровок DES путем подбора ключа методом прямого перебора с помощью распределенной сети или спецпроцессора.

Blowfish.

Параметры алгоритма: размер блока 64 бита размер ключа 32-448 бит число раундов 16. Использование необратимых подстановок, зависимость узлов замен от ключа, большой размер узлов замен (используются 4 узла замен 8-в-32 бита, зависящих от ключа), переменный размер ключа от 32 до 448 бит, сложная схема выработки ключевых элементов - подготовка ключевых элементов требует выполнения 521 цикла шифрования, что существенно затрудняет переборную атаку на алгоритм, однако, делает его непригодным для использования в системах, где ключ часто меняется и на каждом ключе шифруется небольшие по объему данные. Алгоритм лучше всего подходит для систем, в которых на одном и том же ключе шифруются большие массивы данных.[2]

IDEA (International Decryption-Encryption Algorithm).

Параметры алгоритма: размер блока 64 бита размер ключа 128 бит число раундов 8. Использование шифрующих SP-сетей общего типа с инвариантом раунда, являющимся побитовой суммой по модулю 2 старшей и младшей половин шифруемого блока, относительно сложная структура раунда при небольшом (8) их количестве, функция шифрования с использованием аддитивных и мультипликативных операций, прямая модификация шифруемого блока между раундами с использованием ключевых элементов, манипулирование четверть-блоками (16-битовыми целыми), отсутствие битовых перестановок и табличных подстановок - целиком "арифметический" алгоритм. Оптимизирован для 16-разрядных процессоров с быстрой командой умножения. Очень простая схема выработки раундовых ключевых элементов из ключа.

ГОСТ 28147-89. Стандарт Российской Федерации на шифрование и имитозащиту данных.

Параметры алгоритма: размер блока 64 бита размер ключа 256 бит число раундов 32. Упрощенная структура раунда шифрования и простая обратимая функция шифрования, увеличенное число раундов, тривиальная схема генерации ключевых элементов из ключа - в качестве ключевых элементов на раундах шифрования используются 32-битные фрагменты ключа, каждый фрагмент используется 4 раза. Алгоритм не содержит нерегулярных битовых перестановок и оптимизирован для программной реализации. Таблица подстановок не фиксирована в алгоритме и является долговременным ключевым элементом.

 

Таблица 1. Параметры представленных алгоритмов шифрования

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

Размер ключа, бит

Длина блока, бит

Число циклов

Основные операции

DES

56

64

16

Подстановка, перестановка, кольцевая сумма.

IDEA

128

64

8

Умножение по модулю 216+1, сложение по модулю 216 , кольцевая сумма

Blowfish

32-448

64

16

Сложение по модулю 232, подстановка, кольцевая сумма

ГОСТ 28147-89

256

64

32

Сложение по модулю 232, перестановка, кольцевая сумма, циклический сдвиг.

 

Таблица 2. Сравнительные скоростные характеристики алгоритмов блочного шифрования, используя рекомендуемый авторами алгоритма минимальный остаточный размер ключа (размер блока 64 бит), на Intel Pentium x86

Алгоритм

Число циклов на раунд

Число раундов

Число циклов на зашифрованный байт (скорость шифрования)

Замечания

DES

18

16

45

Размер ключа 56 бит

IDEA

50

8

50

Размер ключа 128 бит

Blowfish

9

16

18

Размер ключа 448 бит

ГОСТ 28147-89

32

32

256

Размер ключа 256 бит

 

Криптостойкость рассмотренных алгоритмов.

Блок подстановок в DES допускает аппроксимацию аффинными преобразованиями. Многие булевы функции, используемые в подстановках, отличаются от аффинных функций лишь для двух из шестнадцати возможных наборов аргументов, т.е. нелинейность подстановки DES равна двум (максимально достижимая нелинейность 4-битной подстановки равна четырем). Это обусловливает уязвимость DES к дифференциальному и линейному методам криптоанализа. Кроме того, DES облагает свойством дополнения, а именно, если х, z- открытый текст и ключ соответственно, то имеет место равенство DES(x,z) = DES(x,z). При подборе ключа это позволяет нарушителю вдвое сократить объем перебора, т.е. ключ можно искать с точностью до инверсии. До 1990 г. перебор был наилучшим алгоритмом раскрытия ключа DES. Появление дифференциального метода криптоанализа привело к снижению стойкости сначала "усеченных" версий, а затем и полного алгоритма до уровня 237 при требуемом объеме известных блоков открытого текста 236. В дальнейшем стойкость DES была снижена линейным методом. Следует отметить, что раскрытие ключа дифференциальным методом проводится в предположении, что на каждом цикле используется свой ключ. Поэтому увеличение объема ключа DES не позволяет заметно увеличить стойкость.

Алгоритм IDEA благодаря использованию операции умножения по модулю 216+l, обладающей сильным перемешивающим эффектом, представляется достаточно стойким по отношению к линейному криптоанализу. Стойкость этого алгоритма по отношению к дифференциальному методу криптоанализа не очевидна. IDEA ориентирован на программную или аппаратную реализацию с использованием встроенного аппаратного умножителя. Однако даже в этом случае умножение по модулю 216+l выполняется программно заметно медленнее, чем сложение, что обусловлено необходимостью выполнения дополнительных операций, кроме собственно умножения 16-битных чисел. Количество машинных тактов для шифрования IDEA в программной реализации при отсутствии специальных мер зависит от вида ключа и шифруемого текста. Поэтому точное измерение длительности шифрования каждого блока позволяет извлечь дополнительную информацию о ключе. Очевидно, это обстоятельство может заметно снизить стойкость IDEA. Кроме того, для этого алгоритма существует класс слабых ключей.

Исследования Blowfish показали, что для этого алгоритма существуют слабые ключи (S-блоки, в которых есть одинаковые слова). При использовании таких ключей дифференциальный криптоанализ позволяет восстановить массив подключей для 8 циклов с помощью 223 выбранных открытых текстов, а для 16 циклов - с помощью 3*251 выбранных открытых текстов. Если слабые ключи не используются, то для 8 циклов восстановить массив подключей можно с помощью 248 выбранных открытых текстов. В 1998 г. алгоритм Blowfish представлен в качестве кандидата на стандарт шифрования США.

В алгоритме шифрования ГОСТ 28147-89 блок подстановки не фиксирован, как в DES, и является секретным параметром. Ключ гораздо больше - 256 бит, что делает невозможной атаку перебором. Опыт DES показывает, что выбор подстановки решающим образом влияет на стойкость шифра. Механизмы рассеивания в ГОСТ 28147-89 и DES различаются. Если в DES рассеивание достигается перестановкой бит в блоке текста и подстановкой, то в ГОСТ 28147-89 оно осуществляется в основном сложением по модулю 232, подстановкой и сдвигом. Для повышения стойкости к дифференциальному и линейному методам криптоанализа желательно выбирать экстремальные подстановки с нелинейностью 4 и рассеиванием 1 . Кроме того, наиболее вероятная разность двух выходов подстановки при фиксированной разности входов должна иметь малую вероятность (разности определяются суммой по модулю 2). Однако нахождение таких подстановок сопряжено со значительными трудностями. Число циклов в ГОСТ 28147-89 по сравнению с DES увеличено вдвое. Криптоанализ усеченного 24-циклового ГОСТ 28147-89 без последних восьми циклов показал, что стойкость его превышает 254 для случайного блока подстановки.

Международные юридические аспекты использования алгоритмов шифрования.

 

Таблица 3. Юридические аспекты использования алгоритмов шифрования

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

Ограничения

DES

Экспортные ограничения, налагаемые АНБ США

IDEA

Запатентован Ascom-Tech, при коммерческом использовании требует обязательного лицензирования

Blowfish

Не запатентован, свободно распространяемый

ГОСТ 28147-89

Не запатентован, при использовании в России требуется сертификат ФАПСИ

 

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

Обобщая существенные при разработке системы свойства алгоритмов шифрования (скорость шифрации и криптостойкость), наиболее предпочтительным для использования является ГОСТ 28147-89 (при условии наличия полной документации по стандарту, в том числе и специальных криптографических подстановок, от которых существенно зависит криптостойкость алгоритма). Так же, в силу того, что любая смарт-карта содержит несколько закрытых областей – есть возможность предусмотреть использование нескольких алгоритмов шифрования (например BlowFish и DES).

 

Список литературы

 

1.        «Сравнение возможностей различных алгоритмов». http://security.nsys.by/

2.        Counterpane Labs. «The Blowfish encryption algorithm» http://www.counterpane.com/

 

Сетевой электронный научный журнал "СИСТЕМОТЕХНИКА", № 2, 2004 г.