Тема 3. Симметричные криптосистемы

Цели и задачи изучения темы

Целью данной темы является рассмотрение вопросов построения современных симметричных криптосистем.

Сеть Фейстеля

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

Сеть Фейстеля имеет следующую структуру. Входной блок делится на несколько подблоков, имеющих равную длину и называемых ветвями. В классической сети Фейстеля (предложенной Х. Фейстелем) используются две ветви. Каждая ветвь обрабатывается независимо от другой, после чего осуществляется циклический сдвиг всех ветвей влево. Такое преобразование выполняется несколько циклов или раундов. В случае двух ветвей сеть Фейстеля приведена на рис. 3.1.

Таким образом, классическая сеть Фейстеля – это циклический шифр, отображающий 2t-битный исходный текст Тема 3. Симметричные криптосистемы - student2.ru при t-битных блоках Тема 3. Симметричные криптосистемы - student2.ru (левая ветвь) и Тема 3. Симметричные криптосистемы - student2.ru (правая ветвь), в шифртекст Тема 3. Симметричные криптосистемы - student2.ru в процессе r раундов, где Тема 3. Симметричные криптосистемы - student2.ru .

Для Тема 3. Симметричные криптосистемы - student2.ru раунд i отображает Тема 3. Симметричные криптосистемы - student2.ru следующим образом:

Тема 3. Симметричные криптосистемы - student2.ru , (3.1)

Тема 3. Симметричные криптосистемы - student2.ru , (3.2)

где Å – операция побитового сложения по модулю 2, Тема 3. Симметричные криптосистемы - student2.ru – функция шифрования, вычисляющая значения последовательности из t битов на основании входной t-битовой последовательности Тема 3. Симметричные криптосистемы - student2.ru и раундового подключа Тема 3. Симметричные криптосистемы - student2.ru . Каждый из подключей Ki выводится из ключа шифра K. Процедура формирования раундовых подключей и функция шифрования в сети Фейстеля особо не оговаривается.

Обычно в сети Фейстеля Тема 3. Симметричные криптосистемы - student2.ru и часто – четное. Считается, что оптимальное число раундов – от 8 до 32. Важно то, что увеличение количества раундовзначительно увеличивает криптостойкость алгоритма. Возможно, эта особенность и повлияла на столь активное распространение сети Фейстеля, так как для большей криптостойкости достаточно просто увеличить количество раундов, не изменяя сам алгоритм. В последнее время количество раундовне фиксируется, а лишь указываются допустимые пределы.

Тема 3. Симметричные криптосистемы - student2.ru
Рис. 3.1. Структура классической сети Фейстеля.

Сеть Фейстеля специально предписывает выходному шифртексту структуру Тема 3. Симметричные криптосистемы - student2.ru , а не Тема 3. Симметричные криптосистемы - student2.ru – блоки переставляются местами по отношению к их обычному порядку после последнего раунда. Это необходимо для реализации процедуры расшифрования.

Сеть Фейстеля является обратимой даже в том случае, если функция шифрования Тема 3. Симметричные криптосистемы - student2.ru не является таковой, так как для дешифрования не требуется вычислять Тема 3. Симметричные криптосистемы - student2.ru . Для всех Тема 3. Симметричные криптосистемы - student2.ru равенства 3.1 и 3.2 можно переписать следующим образом:

Тема 3. Симметричные криптосистемы - student2.ru ,

Тема 3. Симметричные криптосистемы - student2.ru ,

что определяет обратное отображение Тема 3. Симметричные криптосистемы - student2.ru . Вследствие этого расшифровка достигается при использовании того же r-раундного процесса, но с подключами, используемыми в обратном порядке, от Тема 3. Симметричные криптосистемы - student2.ru к Тема 3. Симметричные криптосистемы - student2.ru .

Описанная выше сеть Фейстеля положена в основу таких широко известных государственных стандартов шифрования, как стандарт США старого поколения DES (Data Encryption Standard), и стандарт Российской Федерации ГОСТ 28147-89. В этих криптосистемах размер блока составляет 64 бита, и соответственно, каждая из ветвей имеет размер 32 бита.

В настоящее время все чаще используются различные разновидности сети Фейстеля для 128-битного блока с четырьмя ветвями. Увеличение количества ветвей, а не размерности каждой ветви связано с тем, что наиболее популярными до сих пор остаются процессоры с 32-разрядными словами, следовательно, оперировать 32-разрядными словами эффективнее, чем с 64-разрядными.

Наши рекомендации