Расширение ключа
Для начала стоит сказать о том, что весьма редко встречаются алгоритмы шифрования, которые используют ключ шифрования (или его фрагменты) в «чистом» виде (таким алгоритмом является, например, отечественный стандарт шифрования ГОСТ 28147-89). Подавляющее большинство алгоритмов шифрования выполняют существенную модификацию исходного ключа шифрования для его последующего использования в процессе преобразований. Такая модификация называется расширением ключа (key extension, key schedule); существуют примеры алгоритмов, в которых процедура расширения ключа является исключительно сложной по сравнению с собственно шифрованием, среди них стоит упомянуть алгоритмы НРС и FROG. Название процедуры определяется тем фактом, что исходный ключ шифрования обычно имеет размер существенно меньший совокупности подключей, используемых в раундах алгоритма, т. е. расширенного ключа.
Получается, что алгоритм шифрования можно логически разделить на два субалгоритма: собственно шифрующие преобразования и процедура расширения ключа.
К процедуре расширения ключа предъявляется немало требований, целью которых является повышение криптостойкости и других характеристик алгоритма, например:
весьма желательно, чтобы процедура расширения ключа могла вычислять ключи «на лету» (on-the-fly), т. е. параллельно с шифрующими преобразованиями:
это позволит как распараллеливать вычисления в многопроцессорных системах, так и не тратить память для хранения всего расширенного ключа при шифровании в условиях ограниченных ресурсов;
во многих применениях алгоритмов симметричного шифрования (например, в сетевом шифраторе, использующем различные ключи для шифрования данных по различным направлениям, или при использовании алгоритмов шифрования для построения хэш-функций) часто приходится менять ключи в шифраторе;
соответственно, весьма сложная процедура расширения ключа не позволит использовать алгоритм шифрования в этих случаях;
степень подверженности алгоритма атакам на связанных ключах также весьма зависит от процедуры расширения ключа.
По материалам книги Сергея Панасенко «Алгоритмы шифрования»
Алгоритмы шифрования