Прямое и обратное преобразования
Если в ГОСТ 28147-89 перестановку полублоков отнести к раунду шифрования, как это показано на рис. 2а, то можно заметить, что в обоих алгоритмах все раунды шифрования идентичны друг другу. Исключение составляет последний раунд, в котором отсутствует часть операций: в ГОСТе - операция перестановки полублоков шифруемого блока, в AES — умножение слева на матрицу М. В обоих алгоритмах это сделано для того, чтобы обеспечить эквивалентность структуры прямого и обратного шифрующих преобразований.
В алгоритме ГОСТ 28147-89 эквивалентность прямого и обратного преобразований является простым следствием использованной архитектуры.
В любой однородной сбалансированной сети Файстеля эти преобразования алгоритмически идентичны и различаются только порядком использования ключевых элементов: при расшифровании элементы используются в порядке, обратном тому, в котором они используются при зашифровании.
В отличие от ГОСТа AES построен на базе прямых преобразований. Как и для всех подобных шифров, обратное преобразование строится из обращений шагов прямого преобразования, применяемых в обратном порядке. В силу сказанного обеспечить такую же степень идентичности прямого и обратного преобразований, которая достигается в сетях Файстеля, не представляется возможным. Однако специальными конструкторскими решениями достигается близкая степень соответствия - прямое и обратное преобразование получаются почти идентичными и различаются только в следующих деталях:
- в обратном преобразовании используется вектор замен, обратный в операционном смысле вектору замен прямого преобразования;
- в обратном преобразовании число байтов, на которые сдвигается каждая строка матрицы данных в операции построчного байтового сдвига, другое;
- в обратном преобразовании в шаге матричного умножения используется не матрица М, а обратная ей матрица М-1;
- в обратном преобразовании ключевые элементы используются в обратном порядке, и, кроме того, все элементы за исключением первого и последнего, должны быть умножены слева на матрицу М-1.
Таким образом, аналогично ГОСТу, в AES возможно совместить реализацию процедур за и расшифрования как при аппаратной, так и при программной реализации.
Узлы замен
Важнейшими константами ГОСТ 28147-89 являются долговременные ключевые элементы - узлы замен. Они не зафиксированы в стандарте, а поставляются специализированными организациями, снабжающими пользователей шифра ключевой информацией. В силу этого какие-либо сведения о критериях проектирования узлов замен отсутствуют. В общих чертах можно сказать, что, скорее всего, узлы замен создаются с использованием одной из методик конструирования узлов (например, с использованием так называемых бент-функций [5]), а затем оцениваются по нескольким критериям, и обладающие недостаточным качеством узлы бракуются. Среди критериев оценки, вероятно, присутствуют следующие:
- сложность и нелинейность булевых функций, описывающих узлы;
- дифференциальная характеристика узлов замен;
- линейная характеристика узлов замен.
В отличие от разработчиков ГОСТа авторы AES использовали алгебраический подход к конструированию узлов замены:
S[X]=(x7+x6+x2+x)+X-1(x7+x6+x5+x4+1) mod (x8+1)
При этом помимо тривиальных требований обратимости и простоты описания были приняты во внимание следующие соображения:
- минимизация самой большой по величине характеристики корреляции между линейными комбинациями входных и выходных битов (определяет устойчивость к линейному криптоанализу);
- минимизация наибольшего нетривиального значения в таблице EXOR (определяет устойчивость к дифференциальному криптоанализу);
- сложность алгебраического выражения, описывающего узел, в GF(28).
Следовательно, в отличие от ГОСТ 28147-89, раунд которого составлен из традиционных для криптоалгоритмов "первой волны" операций, при конструировании AES широко использован алгебраический подход.
Стойкость шифра
Что касается криптографической стойкости стандартов, то она сопоставима. Более точную информацию вряд ли возможно привести. По крайней мере, соответствующее изучение шифров показало, что оба стандарта устойчивы ко всем известным способам криптоанализа. В печати отсутствуют какие-либо сведения об успешных случаях вскрытия указанных шифров, а также описания процедур, которые теоретически позволили бы дешифровать сообщение с меньшими вычислительными затратами, чем полный перебор по всему ключевому пространству.
Стандартизованные режимы шифрования
Режим простой замены
Простейшим способом использования симметричного блочного шифра является непосредственное применение шифрующего преобразования к блокам данных:
Т"i=ЕК (Тi ), i=1...N,
где Ti и T"i – i-е блоки открытого текста и шифротекста соответственно; EK - процедура зашифрования блока данных на ключе К. Этот режим получил название простой замены в отечественном стандарте и электронной кодовой книги в стандарте США. Однако использовать непосредственно его для закрытия пользовательских данных по разным причинам оказывается не очень удобно и не совсем безопасно. Наиболее очевидным его недостатком является то, что при зашифровании одинаковые блоки исходного текста дадут одинаковые же блоки шифротекста и наоборот. Таким образом, по наличию совпадающих блоков шифротекста противник сможет сделать вывод о равенстве соответствующих им блоков открытых данных:
T"i = T"j → Ti = Tj,
что, конечно же, является недостатком. По указанной причине отечественный стандарт шифрования явным образом запрещает, а американский - не рекомендует использовать режим простой замены для шифрования любой информации, кроме ключей. Для ключевой информации режим простой замены вполне безопасен, так как вероятность встретить повторяющиеся блоки в ключе исчезающе мала.
Для обычных же данных предназначены другие режимы шифрования, в которых базовое криптографическое преобразование, определяемое шифром, используется более сложным образом. Отечественный стандарт предусматривает три режима шифрования, а американский - пять, включая упомянутый выше режим простой замены.
В системе стандартов США режимы шифрования определяются отдельным нормативным документом [4], так как они не зависят от "базового" криптографического преобразования, этот документ находится в стадии утверждения. В России и базовое шифрующее преобразование, и все режимы его использования устанавливаются одним и тем же нормативным документом. В табл. 2 перечислены все стандартные режимы и приведены соответствующие уравнения за- и расшифрования.
Таблица 2. Режимы шифрования в криптографических стандартах России и США
Режим сцепления блоков шифротекста
Остановимся на стандартных режимах шифрования подробнее. Режим простой замены и электронной кодовой книги в российском и американском стандартах полностью аналогичны. Кроме того, американский стандарт предусматривает режим сцепления блоков шифротекста, который, по сути, является режимом простой замены с рандомизацией данных перед зашифрованием.
Рандомизация выполняется путем наложения на блок данных предыдущего блока шифротекста, а для самого первого блока - синхропосылки. В результате устраняется главный недостаток режима простой замены -идентичность блоков шифртекста для одинаковых блоков открытого текста и отсутствие зависимости результата зашифрования блока от его расположения в исходном массиве данных. Этот режим может быть полезен, например, при низкоуровневом шифровании данных на магнитных дисках, когда необходима возможность перешифрования данных без изменения ключа и синхропосылки. В этом случае нет возможности хранить синхропосылку с зашифрованными данными, и она просто вычисляется как функция от расположения блока на диске — по номеру цилиндра, дорожки и сектора. Российский стандарт шифрования не предусматривает анаогичного режима.
Режим гаммирования
В режиме гаммирования за- и расшифрование осуществляется путем наложения на соответственно открытые и зашифрованные данные гаммы, вырабатываемой синхронным, то есть не зависящим от этих данных, источником. В качестве гаммы используется результат зашифрования в режиме простой замены выхода рекуррентного генератора псевдослучайной последовательности блоков. В российском стандарте этот генератор составлен таким образом, чтобы соседние вырабатываемые им значения отличались как минимум в одном бите на каждый байт и чтобы период повторения вырабатываемых значений был близок к максимуму.
Шифрование в режиме гаммирования обеспечивает возможность расшифрования не всего массива, а только выбранного фрагмента. У режима гаммирования есть сразу два аналога в американском стандарте - режим счетчика (CTR) и режим обратной связи по выходу (OFB).
В первом режиме используется простейший генератор псевдослучайных данных, который заключается просто в прибавлении единицы или другой константы к предыдущему значению в пределах разрядной сетки блока. Если прибавляется единица, то выход такого генератора распадается на последовательность дифференциальных пар, т.е. пар значений, различающихся в одном бите, что создает предпосылки для использования против шифра дифференциального криптоанализа.
Во втором режиме следующий элемент гаммы является результатом зашифрования предыдущего в режиме простой замены. Этот режим обладает тем недостатком, что элементы гаммы могут быть выработаны только последовательно с самого начала, поэтому произвольный доступ на чтение к зашифрованным таким образом данным невозможен.
Гаммирование с обратной связью
Наконец, стандарты предусматривают еще один режим шифрования -гаммирование с обратной связью или режим обратной связи по шифротексту (СРВ). В американской системе стандартов этот режим определен более гибко, в нем гамма может вырабатываться не полными блоками, а порциями меньшего размера. Однако особого смысла в этом нет, так как общая производительность шифрования при этом падает пропорционально, и, по разным оценкам, возможно снижение стойкости. Если же взять размер шифруемой за один шаг порции данных равным размеру блока, то режим СРВ полностью аналогичен российскому режиму гаммирования с обратной связью.
Таким образом, по предлагаемым режимам шифрования российский и американский стандарты весьма похожи. Американский стандарт предусматривает ряд дополнительных возможностей, но, по большому счету, они не являются критически важными. Пожалуй, из отсутствующих в российском стандарте режимов особый интерес представляет только режим сцепления блоков шифртекста - в некоторых случаях он мог бы быть весьма полезен.
Резюме
Исходя из вышеизложенного, можно сделать вывод, что стандарты шифрования России и США, хотя и построены на различных принципах, по своим рабочим характеристикам достаточно близки. Номенклатура и правила использования режимов шифрования в обоих стандартах примерно соответствуют друг другу. Отечественный стандарт шифрования ГОСТ 28147 действует в неизменном виде с 1989 года, но тем не менее по своим качествам, то есть по показателям криптостойкости и эффективности возможной реализации, находится на вполне современном уровне.
Литература
- ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования.
- Винокуров А., Применко Э. Новые подходы в построении блочных шифров с секретным ключом // Труды XXVI Международной конференции "Информационные технологии в науке, образовании, телекоммуникации и бизнесе", Гурзуф-Ялта, май 1999.
- PIPS PUB 197. Advanced Encryption Standard (AES).
- NIST Special Publication 800-38A. Recommendation for Block Cipher Modes of Operation.
- Варфоломеев А. и др. Блочные криптосистемы. Основные свойства и методы анализа стойкости. М.: МИФИ, 1998.