Сети блочных шифров, ветви сети, раунд сети, образующая функция. SP-сеть, KASLT-сеть.
Любой блочный шифр является многократной комбинацией описанных операций по определенной схеме или без таковой. В том случае, когда в последовательности применения операций не прослеживается закономерности, шифр называется прямым или комбинационным. Следует признать, что хотя и не существует способов доказательства практической стойкости подобных шифров, некоторая (очень малая) часть из них может классифицироваться как надежные.
Одной из наиболее распространенных схем блочных шифров являются сети. Блочный шифр, построенный по такой схеме, состоит из многократных повторений по такой схеме, называемых циклами, или раундами, нескольких видов операций, называемых слоями. Разбиение всего процесса шифрования на несколько однотипных слоев позволяет:
Ø сократить размер программного кода использованием цикла;
Ø унифицировать “формулу” шифрования и, как следствие, упростить проверку стойкости шифра к известным видам криптоатак;
Ø сделать шифр легко усложняемым при необходимости (путем увеличения числа раундов);
Ø ввести понятие ключей раунда, на которые разбивается весь материал ключа.
Некоторые из слоев не содержат в себе процедур смешивания с ключом. Обычно они выполняют функции обратимого перемешивания данных внутри блока, либо защищают блочный шифр от какого-либо конкретного класса криптоатак. Подобные слои выполняют свои преобразования всегда по одной и той же схеме. В тех слоях, где в качестве параметров операций используется материал ключа, на каждом раунде используются обычно все новые и новые блоки из материала ключа- ключи раунда. Поэтому каждый подобный слой на самом деле производит свое уникальное преобразование материала. Эта схема позволяет наряду с унифицированностью преобразований получить очень сложную для дешифрования при неизвестном ключе схему.
Одной из самых простых и ранних сетей является SP-сеть, каждый раунд которой состоит из двух слоев. Свое название данная сеть получила от сокращений двух английских слов: подстановка и перестановка. В слое подстановки над данными производятся преобразования класса сложения, исключающего ИЛИ, табличных подстановок, в качестве параметров используются константы и материал ключа. В слое перестановки биты либо реже байты меняются местами внутри блока обычно по фиксированной (не зависящей от ключа) схеме.
Более современной модификацией технологии сетей является KASLT-сеть с тремя слоями в каждом раунде. Первый слой- добавление ключа (Key Addition- KA)- производит смешивание данных с ключом раунда. Смешивание производится обычно какой-либо простой операцией- сложением либо ХОR. Второй слой- подстановка (Substitution- S)- производит алгоритмическую или чаще табличную подстановку для обеспечения нелинейных свойств шифра. Третий слой- линейное преобразование (Linear Transformation, LT)- производит активное обратимое перемешивание данных внутри блока. Как видим, по сравнению с SP-сетью здесь добавление ключа вынесено в отдельный слой, разделены линейная и нелинейная часть преобразования, а перемешивание данных производится с помощью быстро реализуемых в программной реализации линейных преобразований.