208
Несколько слов о табличных подстановках, занимающих отдельное место в
криптографических преобразованиях... С помощью табличных подстановок
(англ. "Substitute-box-S-box") реализуют наиболее общие законы изменения
данных, которые часто не воспроизводятся ни аналитически, ни алгоритмически.
В тех случаях, когда в шифрующем алгоритме необходимо реализовать
функцию, которая достаточно сложна для микропроцессора или вообще не
описывается алгоритмом, наиболее приемлемым решением является занесение
ее значения в массив, хранимый в постоянной или оперативной памяти. Такое
задание функции называют табличным.
Количество битов в исходном операнде называют разрядностью входа
табличной подстановки, количество битов в результате — разрядностью выхода.
В большинстве случаев табличные подстановки используются в качестве
биэктивной (однозначно обратимой) функции — в этом случае разрядность
входа и выхода совпадают. Чаще всего по такой схеме используются
подстановки 4x4 (четыре на четыре) бита, 8x8 бит.
Обратное преобразование (S - Вох
-1
), если в нем есть необходимость, задают
дешифрующей стороне также таблицей такого же размера. В том случае, когда
от подстановок не требуют обратимости, вместе с традиционными применяются
подстановки 4x8, 8x32 и некоторые другие.
Запись функции в таблице имеет свои преимущества и недостатки. В
сравнении с долгим вычислением функции, выборка из таблицы выполняется
значительно быстрее, однако эти две операции нельзя сравнить по скорости с
обычным сложением или XOR, потому что одним из операндов в выборке всегда
является ячейка памяти, и предвидеть заранее, какая из ячеек потребуется,
невозможно.
По этой причине на современных процессорах табличная выборка вы-
полняется довольно быстро только тогда, когда вся таблица размещена в кэш-
памяти процессора. В противном случае каждая операция выборки инициирует
многотактовый процесс обращения к оперативной памяти. Все это накладывает
жесткие ограничения на размер хранимой таблицы и, соответственно, на
разрядность ее входа и выхода.
Одним из неоспоримых преимуществ табличных подстановок является
скорость в отношении к нелинейным операциям. Практически все представ-
ленные в табл. 5.2 операции, кроме умножения по модулю 2
N+1
и табличных
подстановок, имеют очень высокую линейную зависимость между входными и
выходными значениями, а это очень плохо в смысле криптоустойчивости шифра
к линейному криптоанализу. Для повышения устойчивости шифра к этому
классу атак табличная подстановка намного лучше операции умножения по
модулю 2
N+1
, и на сегодняшний день она является наиболее приемлемым
нелинейным преобразованием.
В тех случаях, когда от преобразований не требуют обратимости по входным
параметрам, в дополнение к вышеперечисленным обратимым функциям
используются операции, представленные в табл. 5.3.