А.А.Молдлвян, Н.А.Молдоовян, Н.Д.Гуц, Б.В.Изотов Криптография. Скоростные шифры.-СПб.: БХВ-Петербург, 2002г. 48-53 срт. Композиционные и итеративные блочные шифры В современных автоматизированных системах обработки информации во многих случаях предпочтительно применение блочных шифров. Блочные шифры представляют собой криптосистему, которая осуществляет шифрование информации блоками фиксированной длины, например, равной п бит. Этот вид криптографических преобразований называется блочным шифрованием. Для осуществления блочного шифрования данные представляются в виде последовательности n-битовых блоков. В реальных ситуациях файлы, определенные поля в электронных документах и другие виды электронных сообщений имеют произвольную длину и, как правило, не кратную длине блока, поэтому используется некоторый способ дополнения последнего блока данных. Последний блок принято дополнять двоичным вектором (I, 0, 0,..., 0), в котором количество нулей может быть от 0 до (n - 2). Если длина последнего блока равна n, то к сообщению присоединяется дополнительный n-битовый блок, имеющий структуру (1, 0, 0,..., 0). Этот способ позволяет однозначно распознать присоединенный двоичный вектор и отбросить его при необходимости. Используя такой способ дополнения сообщения до длины кратной п, любое сообщение М можно представить в виде последовательности (конкатенации) n-битовых подблоков M i а именно M M 1 M 2 ... M i ... M m Каждый из блоков исходного сообщения может быть преобразован независимо от других блоков, поэтому при применении блочных шифров возможен произвольный доступ к зашифрованным массивам данных. Наиболее общим механизмом блочного шифрования является такой, в котором допустимо преобразование любого входного блока в любой выходной блок, причем размер выходного блока равен или больше размера входного блока. Блок шифртекста не может быть меньше блока открытого текста, т. к. в этом случае одному и тому же блоку шифртекста будут соответствовать несколько различных блоков открытого текста. Это означало бы неоднозначность расшифрования. Если длина выходного блока больше и, то одному и тому же блоку открытого текста могут соответствовать несколько различных блоков шифртекста, В этом случае расшифрование возможно и однозначно. (Примером таких криптосистем являются вероятностные шифры.) Поскольку увеличение длины зашифрованных данных вносит определенные ограничения на области применения, то в наиболее широко используемых шифрах размер выходных блоков равен размеру входных. Блочные шифры задают взаимно однозначное соответствие между возможными входными и выходными блоками. Поскольку входное и выходное множество блоков совпадает, то шифрование задает некоторую подстановку на множестве чисел 0, 1, ..., 2 n - 1, которую можно представить в виде следующей таблицы: где Ек{М) — функция шифрования по ключу К, т. е. функция, задаваемая процедурами шифрования при использовании ключа шифрования К. Функция шифрования ставит в соответствие блоку открытого текста М блок криптограммы С, что записывается в виде C E k (M ) ). Для данного ключа реализуется одна подстановка. В общем случае различным ключам соответствуют различные подстановки. Если в шифре используется ключ длиной к бит, то этот шифр задает не более 2 различных подстановок, что составляет обычно чрезвычайно малую долю от числа возможных подстановок, которое равно 2 n .Для того чтобы реализовать все возможные подстановки, необходимо использовать ключ длиной порядка к = Iog 2 ( 2 n !) n2n бит. Одним из статистических методов раскрытия шифров является частотный криптоанализ. Этот метод основан на исследовании частоты появления знаков в криптограмме и сопоставлении ее с частотой появления знаков в исходном тексте. Частотный метод позволяет раскрывать шифры, основанные на одноалфа-витной подстановке, которые соответствуют блочному шифрованию при использовании входных блоков малого размера (например, при п - 8). С увеличением размера входного блока частотные свойства языка, на котором составлен открытый текст, становятся менее выраженными, но даже при n=16 неравномерность частотных свойств исходного текста может быть эффективно использована для раскрытия шифра. При п = 32 частотный криптоанализ становится крайне сложным, и в некоторых случаях могут применяться блочные шифры с таким размером входа. Минимальной безопасной длиной блока принято считать значение п = 64. Чем больше размер входного блока, тем более высокая стойкость может быть достигнута. Однако для блоков большого размера усложняется производство устройств шифрования. При разработке американского стандарта DES определенным компромиссом между стойкостью и удобством реализации был выбор значения п = 64. На протяжении 25 лет этот размер был общепринятым. В настоящее время возможности микроэлектроники значительно выросли, и стандартным размером входного блока стало значение п=128. Сам по себе большой размер входного блока является только необходимым условием достижения высокой стойкости у разрабатываемого алгоритма. Проектирование стойких блочных шифров связано с использованием нелинейных преобразований с хорошими свойствами рассеивания и перемешивания или комбинированием линейных и нелинейных преобразований. Достоинством линейных преобразований является простота реализации, малое время их выполнения и удобство использования секретного ключа в качестве параметра преобразования. Однако использование только линейных преобразований недостаточно для построения стойких шифров. Один из способов достижения хорошего рассеивания и перемешивания состоит в построении составного (композиционного) шифра, включающего ряд последовательно используемых простых шифров, каждый из которых вносит небольшой вклад в рассеивание или в перемешивание. Данная идея построения композиционных шифров была предложена и обоснована К. Э. Шенноном. В композиционных шифрах шифрующие процедуры одного типа чередуются с процедурами другого типа. В качестве простых шифров могут быть использованы, например, подстановки (S), перестановки (7) и линейные преобразования (L). В этом случае результирующий шифр представляется в виде F Tn Ln S n ...T2 L2 S 2T1l1 S1 . Секретный ключ может использоваться при выполнении процедур какого-то одного типа (Т, L или S). Ключ может применяться также при осуществлении процедур всех (или нескольких) типов. Рис. 1.6. Структура композиционного шифра на основе подстановок и перестановок Простейший композиционный шифр показан на рис. 1.6, где блоки S обозначают операции подстановки над 4-битовыми подблоками входного сообщения, Т— операцию перестановки над 4k-битовым преобразуемым блоком данных, a L — операцию линейного преобразования, с помощью которой осуществляется смешивание шифруемых данных с секретным ключом, представленным в виде совокупности подключей К1,К2, ..., Кn. В данной r-каскадной криптосхеме процедура шифрования состоит в последовательном выполнении г раундов преобразования с использованием различных раундовых ключей. Выполнение операции подстановки состоит в замене входного 4-битового двоичного вектора на 4-битовый выходной вектор в соответствии с некоторой таблицей, называемой таблицей подстановки. Представляя 4-битовые двоичные векторы их численными значениями (т. е. интерпретируя двоичный вектор двоичным числом), таблицу подстановки можно записать в виде: где i i 0,1,...,15 , а столбцы задают соответствие между входным 4-битовым значением (верхняя строка) и выходным 4-битовым значением (нижняя строка). Для произвольно заданной таблицы подстановки легко записать таблицу, определяющую подстановку, которая является обратной по отношению к заданной. Аналогичным образом может быть задана и операция перестановки битов Т и соответствующая ей обратная перестановка T 1 Для линейного преобразования L также легко задать соответствующее ему обратное преобразование L-1. Процедура расшифрования выполняется по схеме, приведенной на рис. 1.7. Рис. 1.7. Схема процедуры расшифрования в композиционном шифре Рассмотренный выше шифр относится к так называемым итеративным шифрам, в которых шифрование осуществляется как многократное выполнение типовой процедуры преобразования (именуемой раундом шифрования или раундовой функцией шифрования), представляющей собой композицию трех разнотипных простых преобразований. При этом в разных раундах используются разные ключи, называемые раундовыми ключами. При реализации в виде быстродействующих устройств процедуры зашифрования или расшифрования в композиционном шифре будут выполняться с помощью различных электронных схем. В дальнейшем мы рассмотрим специальные крип-тосхемы, которые обеспечивают возможность использования одной и той же электронной схемы для выполнения зашифрования и расшифрования, что делает аппаратную реализацию более экономичной. В таких шифрах смена режима шифрования осуществляется путем изменения очередности использования раундовых ключей. Рис. 1.8. Криптосхема Фейстеля: а — зашифрование; 6—расшифрование Криптосхема Фейстеля (рис. 1.8) представляет собой общую схему построения n-битового блочного шифра на основе произвольной функции F с размером входа п/2. Важным достоинством данной структуры является то, что она задает один и тот же алгоритм для выполнения зашифрования и расшифрования. Задание конкретного режима шифрования определяется очередностью применения раундовых ключей. Смена режима шифрования обеспечивается изменением очередности использования раундовых ключей на обратную. Стойкость шифров, построенных по этой схеме, определяется свойствами раундовой функции F. Известно большое число различных шифров, основанных на этой схеме и отличающихся только числом раундов и устройством раундовой функции. числительной сложности. При построении раундовой функции достаточно быстрые прямые преобразования, удовлетворяющие необходимым криптографическим свойствам. Эти же преобразования при смене расписания использование подключей будут выполнять корректную процедуру расшифровывания. Основной задачей при разработке шифров на основе криптосхемы Фейстеля является обеспечение раундовых преобразований с такими свойствами, которые обладаю! хорошими лавинными свойствами (влияние одного входного бита на многие выходные биты) и обеспечивают стойкость ко всем известным видам криптоатак. Определенным недостатком криптосхемы Фейстеля является то, что при выполнении шифрования (т. е. вычислении раундовой функции) используется только половина преобразуемого блока данных. Этот недостаток устраняется в универсальных криптосхемах другого типа, основанных на использовании так называемых управляемых операций и рассматриваемых в гл. 3—6. Замечательным является то обстоятельство, что для произвольной раундовой функции обеспечивается возможность расшифрования, т. е. криптосхема Фейстеля есть некоторый универсальный способ превращения произвольного отображения над двоичными векторами длины п/2 в подстановку (биективное отображение) над векторами длины п. Благодаря этому свойству разработчик криптоалгоритма свободен от необходимости ограничения выбора только таких преобразований, которые допускают обратные преобразования невысокой вы числительной сложности. При построении раундовой функции достаточно найти быстрые прямые преобразования, удовлетворяющие необходимым криптографическим свойствам. Эти же преобразования при смене расписания использования подключен будут выполнять корректную процедуру расшифровывания. Основной задачей при разработке шифров на основе криптосхемы Фейстеля является обеспечение раундовых преобразований с такими свойствами, которые обладают хорошими лавинными свойствами (влияние одного входного бита на многие выходные биты) и обеспечивают стойкость ко всем известным видам криптоатак. Определенным недостатком криптосхемы Фейстеля является то, что при выполнении шифрования (т. е. вычислении раундовой функции) используется только половина преобразуемого блока данных. Этот недостаток устраняется в универсальных криптосхемах другого типа, основанных на использовании так называемых управляемых операций и рассматриваемых в гл. 3—6.