БЛОЧНЫЕ ШИФРЫ
В результате изучения данной главы студент должен: знать
- •формальное определение блочного шифра;
- •структуру блочного алгоритма шифрования;
- •режимы использования блочных шифров;
- •отечественные и зарубежные стандарты алгоритмов блочного шифрования; уметь
- •анализировать структуру блочного шифра;
- •стоить структурные элементы блочного шифра; владеть
- •методами построения блочных шифров;
- •навыками применения блочных шифров в различных режимах.
История вопроса
В связи с активным развитием микропроцессорной базы в начале 70-х годов двадцатого века, появилась возможность эффективно реализовывать элементарные операции над двоичными векторами большой длины. Это привело к разработке целого класса криптографических преобразований, в частности к появлению блочных шифров.
Напомним, что в поточных алгоритмах шифрования обрабатываемая информация, как правило, представляет собой текстовое сообщение, телеграмму и т.п., то есть является последовательностью символов какого-либо алфавита. За один такт работы шифратора преобразуется один символ.
В блочных алгоритмах шифрования информация представляется в виде двоичной последовательности, без привязки к конкретному алфавиту. Такой способ является естественным при хранении информации в ЭВМ, например, в виде файла или области памяти, и не требует дополнительных преобразований. Двоичная последовательность разбивается на блоки - подпоследовательности малой длины. При этом за один такт работы шифратора обрабатывается один блок.
Первым блочным шифром, получившим международную известность, стал шифр Люцифер, разработанный в 1971 году американскими специалистами из фирмы IBM под руководством Хорста Фейстеля (Ilorst Feistel). На протяжении нескольких последующих лет этот алгоритм несколько раз перерабатывался (известно четыре различных модификации1 шифра Люцифер) и в 1975 году был принят в качестве первого американского национального стандарта. Сейчас этот алгоритм известен под названием DES (Data Encryption Standard).
В связи с большим количеством теоретических и практических результатов, снижающих стойкость алгоритма DES, в 1997 году американский национальный институт стандартизации (NIST) объявил конкурс на разработку нового алгоритма шифрования. Опередив в финале пятерых оппонентов, победителем конкурса стал алгоритм Rijndael, разработанный бельгийскими математиками Винсентом Райменом (Vincent Rijmnen) и Йоном Дайменом (.Joan Daemen). В 2001 году данный алгоритм был стандартизован и получил название AES. До настоящего времени алгоритм AES считается стойким и рекомендуется американским правительством к использованию в коммерческих и государственных структурах.
История разработки отечественных блочных шифров немного скромнее. Советский, а позднее и российский алгоритм блочного шифрования появился в конце 80-х годов. В 1989 году он был принят в качестве государственного стандарта ГОСТ 28147-89 и действует на территории Российской Федерации до настоящего времени. Вначале на стандарте стоял ограничительный гриф «Для служебного пользования», который был снят в 1994 году. В отличие от большинства зарубежных стандартов, ГОСТ 28147-89 регламентировал не только алгоритм блочного шифрования информации, но и режимы его применения.
Несмотря на столь длительный срок, прошедший с момента появления данного шифра, и некоторые результаты, снижающие его стойкость, алгоритм ГОСТ 28147-89 по-прежнему считается стойким.
Летом 2014 года был представлен новый отечественный алгоритм блочного шифрования, получивший название «Кузнечик» (англ. - Grasshopper). Этот алгоритм, по мнению авторов, должен был исправить ряд недостатков, которые были выявлены при анализе алгоритма ГОСТ 28147-89.
'Описание всех четырех модификаций алгоритма Люцифер может быть найдено в монографии Панасенко С.П. Алгоритмы шифрования. Специальный справочник. — СПб.:БХВ-Петербург. — 2009. — 576 с.
В 2015 году был принят новый стандарт Российской Федерации ГОСТ Р 34.12-2015, регламентирующий использование алгоритмов блочного шифрования. В данный стандарт был включен новый алгоритм «Кузнечик», а также алгоритм блочного шифрования ГОСТ 28147-89, получивший название «Магма». Позднее мы более детально остановимся на указанных алгоритмах блочного шифрования.