Информационная безопасность. Лекция 8: Симметричные алгоритмы шифрования
В нашей стране в качестве стандарта используется технология, описанная в ГОСТе 28147-89 "Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования". Этот ГОСТ был принят в 1989 году и с тех пор не изменялся. Алгоритм шифрования был разработан в КГБ в конце 70-х годов, однако, он создавался с достаточно большим "запасом прочности". По этому параметру он на порядок превосходил американский DES, который сначала заменили на тройной, а потом на AES. Таким образом, и на сегодняшний день криптостойкость российского стандарта вполне удовлетворяет всем современным требованиям. Вторая причина большого распространения ГОСТа 28147-89 — законодательство. Государственные организации и многие коммерческие структуры обязаны использовать для защиты данных сертифицированные средства защиты. Однако получение сертификата возможно только в том случае, если "в указанных криптосредствах реализованы криптографические алгоритмы, объявленные государственными или отраслевыми стандартами Российской Федерации".
Алгоритм, описанный в ГОСТе 28147-89, является типичным представителем класса симметричных. В его основе лежит сеть Фейстеля. Длина ключа и длина блока равны и составляют 256 бит. На основе сети Фейстеля построен целый ряд различных алгоритмов. Однако, несмотря на внешнее сходство, их криптостойкость и скорость работы очень сильно различаются. Все зависит от действий, которые выполняются над подблоками. Именно поэтому они и называются "основным криптографическим преобразованием". В ГОСТе 28147-89 используются относительно простые для реализации, быстрые для исполнения и устойчивые к взлому операции.
Алгоритм может работать в трех различных режимах.
Первый из них — простая замена. В этом случае блоки шифруются независимо друг от друга и от положения в массиве исходной информации. То есть две одинаковые последовательности размером в 64 бита и после обработки останутся одинаковыми. Кроме того, в режиме простой замены очень желательно, чтобы объем исходного массива данных был кратен 64 битам. В противном случае наблюдается снижение криптоустойчивости алгоритма к некоторым видам атак. Режим простой замены применяется для ключей шифрования.
Вторым режимом работы алгоритма является гаммирование. В рассматриваемом алгоритме для этой цели используется операция побитового сложения по модулю 2, поскольку она является обратной самой себе и к тому же наиболее просто реализуется аппаратно.
Таким образом, использование гаммирования решает обе проблемы простой замены. Во-первых, применение различных гамм для шифрования одинаковых последовательностей приводит к тому, что в закодированном тексте они отличаются друг от друга. Во-вторых, никто не может помешать "обрезать" гамму до нужного размера для шифрования блоков, отличных от стандартных. Таким образом, режим гаммирования избавлен от всех недостатков простой замены и может использоваться для надежного шифрования любой информации.
Третий режим работы алгоритма — это гаммирование с обратной связью. Он очень похож на предыдущий. Единственное отличие заключается в том, что очередной элемент гаммы вырабатывается с помощью определенных преобразований предыдущей последовательности информации. То есть фактически получается, что результат кодирования блока данных зависит от ключа шифрования и предыдущего уже зашифрованного блока. Таким образом, имеется связь всего закодированного текста. И если кто-то поменяет в нем какой-либо бит, то при расшифровке искаженным окажется не один, а два блока данных. В принципе, сильного влияния на криптостойкость обратная связь не оказывает. Однако она может послужить дополнительной защитой от некоторых типов атак.
В ГОСТе 28147-89 описана еще одна очень полезная функция алгоритма шифрования — возможность создания имитовставки. Имитовставка — контрольная комбинация, зависящая от открытых данных и секретной ключевой информации. Она нужна для того, чтобы обнаружить все случайные или преднамеренные изменения в зашифрованных данных. Обнаружить внесенные в текст изменения несложно. Тем более что полноценно заменить одни слова другими без знания ключа нельзя. Но если злоумышленник внесет изменения в файл, полученный путем шифрования бинарной, звуковой, графической или видеоинформации, то при декодировании искажения перейдут и на исходные данные. И заметить их зачастую просто-напросто нереально. Именно тогда имитовставка и оказывается незаменимой. Да и в случае с текстом ее использование позволяет точно узнать, вносились изменения в зашифрованный файл или нет.
Основные различия между DES и ГОСТ 28147 следующие:
- DES использует гораздо более сложную процедуру создания подключей, чем ГОСТ 28147. В ГОСТ эта процедура очень проста.
- В DES применяется 56-битный ключ, а в ГОСТ 28147 — 256-битный. При выборе сильных S-boxes ГОСТ 28147 считается очень стойким.
- У S-boxes DES 6-битовые входы и 4-битовые выходы, а у S-boxes ГОСТ 28147 4-битовые входы и выходы. В обоих алгоритмах используется по восемь S-boxes, но размер S-box ГОСТ 28147 существенно меньше размера S-box DES.
- В DES 16 раундов, в ГОСТ 28147 — 32 раунда, что делает его более стойким к дифференциальному и линейному криптоанализу.