Раздел: Документация
0 ... 85 86 87 88 89 90 91 ... 169 вался бы слишком большой объем памяти для хранения вектора. Поэтому преобразуемый блок данных разделяют на фрагменты, обычно одинакового размера, и выполняют замену в этих подблоках независимо друг от друга. Для повышения стойкости шифра замену различных частей шифруемого блока следует выполнять с использованием разных векторовкоторые все вместе составляют таблицу подстановок или таблицу замен. Для хранения этой таблицы требуется участок памяти следующего размера: S - nvV = nv2X-YJ, где nv - число подблоков размера Х , в которых производятся подстановки. Как уже отмечалосьразмер таблицы подстановок быстро увеличивается с ростом размера заменяющего И, особенно, заменяемого блока, что влечет за собой возрастание требований к необходимому для реализации шифра объему памяти. С другой стороны, увеличение этих размеров усложняет криптоанализ и тем самым повышает стойкость шифра. Поэтому на практике их следует выбирать на границе разумности, ведь криптоалгоритм проектируется на достаточно дли-срок, а возможности электронной техники увеличиваются очень быстро. В алгоритме DES суммарный объем блоков подстановки равен SDES - 8-264 - 211 бит - 256 байт. В отечественном стандарте это величина того же порядка: ISrOCTI - 8-24-4 = 29 бит = 64 байта. Следует помнить, что указанные шифры разрабатывались в семидесятые годы, когда понятие «микросхема» еще только начинало входить в нашобычная емкость микросхемы запоминающего устройства составляла несколько десятков, максимум сотен битов, а объемпамятисчитался совсем неплохим вари- антом для компьютера. Вполне естественно, что созданные в то время криптоалгоритмы отражали суровые реалии тех дней. Сейчас эта проблема практически отсутствует и поэтому современные шифры гораздо более свободны в данномТак, в криптоалгоритме BLOWFISH подстановки производятся следующим образом: каждый из 4-х байтов, составляющих 32-битовое слово, заменяется на 4-байтовое слово; полученные слова преобразуются в одно с помощью логических и арифметических операций. Соответственно, размер одной таблицы замен в этом алгоритме равен SBLOWFISH - 4-28-32 - 215 бит - 4 Кбайт. 266 Функциональные преобразования - это унарные и бинарные логические и арифметические операции, реализуемые аппаратно логическими схемами, а программно - одной-двумя компьютерными командами. Теоретически возможно использовать любую операцию, которая может быть сформулирована в терминах логических функций. Однако на практике дело всегда ограничивается теми из них, которые имеются в наборах команд универсальных процессоров и реализованы аппаратно в виде микросхем. Из логических операций это основные логические функции - инверсия, и бинарные побитовые И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ, из арифметических - изменение знака (переход к дополнительному коду), и бинарные — сложение, вычитание, умножение, деление по модулю некоторого числа, из битовых -сдвиги. Как же построить надежный шифр из элементарных операций указанного типа? Не имеет смысла комбинировать две однотипные операции подряд. Если чередовать процедуры различного типа, сложность результирующего преобразования (степень перемешивания и рассеивания) будет выше. Это очень легко объяснить: при комбинировании двух операций их сложности складываются за вычетом некоего «дефекта сложности», который тем больше, чем более схожи две операции. Например, суперпозиция двух битовых перестановок может быть выражена одной перестановкой. То же справедливо для двух подстановок, выполняемых в одних и тех же границах заменяемых подблоков. Прибавление к блоку данных двух ключевых элементов равносильно прибавлению одного, равного их сумме. Во всех рассмотренных случая добавление к операции еще одной такой же вообще не приводит к возрастанию сложности, а следовательно и стойкости Даже если комбинируются две различные операции, принадлежащие одной и той же группе, сложность полученного преобразования меньше, чем могла бы быть, если бы они были разделены операцией другого типа. Каким же условиям должен удовлетворять шифр, не только обладающий необходимой стойкостью, но, в добавок к этому, удобный в реализации и использовании? Рассмотрение начнем с требований, которые были особенно актуальными четверть века назад, когда возможности микроэлектронных приборов были весьма ограничены и соображения экономичности и самой возможности реализации шифров имеющейся элементной базе играли определяющую роль. Сейчас их актуальность заметно меньше, но, тем не менее, они остаются в доста- 267 точной степени важными для того, чтобы учитываться и в современных разработках. 1.Операции за- и расшифрования должны быть близкими настолько, чтобы могли быть выполнены одним и тем же аппаратным или программным модулем - это диктуется требованием экономичности реализации. 2.Объем ключевой информации должен быть относительно небольшим. Разумным является такой размер ключа, при котором невозможно его нахождение путем перебора по всему ключевому пространству, с определенным запасом на возможный прогресс электронной техники. В настоящее время граница практической осуществимости подбора ключа находится где-то в районе 60-64 бит. Соответственно, разумным может считаться размер ключа 80—256 бит. Данное требование вытекает из необходимости хранить ключи на любых носителях, включая нетрадиционные, например, на персональных миниатюрных магнитных карточках. 3.Реализация шифра (код программы и постоянные данные) должна быть достаточно компактной для того, чтобы «уместиться» на микроконтроллерах с относительно невысоким объемом запоминающего устройства - последнее требование также диктуется соображениями экономичности реализации. Рассмотрим, каким образом можно построить шифр, удовлетворяющий указанным требованиям. Начнем с условия обратимости процедуры зашифрования. Из него вытекает, что все преобразования, непосредственно модифицирующие шифруемые данные, должны быть обратимыми, то есть при их выполнении не должна теряться информация. Перестановка обратима по определению. Непараметризован-ная замена имеет обратную операцию если онато есть если каждое возможное заменяющее значение встречается в соответствующем векторе замен ровно один раз. Параметризованная, то есть зависящая от значения ключевого элемента, замена обратима в том случае, если при каждом фиксированном значении параметра соответствующая простая замена обратима. Бинарная функциональная операция обратима, если при каждом фиксированном значении второго, модифицирующего аргумента задаваемое ей отображение сюрьек- тивно, это равносильно условию, что уравнение модификации элемента данных Y = f (Х,К) всегда однозначно разрешимо относительно модифицируемого элемента (X). 268 0 ... 85 86 87 88 89 90 91 ... 169
|