BC/NW 2007, №2, (11) :13.2
СИСТЕМА СИММЕТРИЧНОГО ШИФРОВАНИЯ С НЕРЕГУЛЯРНЫМ АЛГОРИТМОМ
Лахтарин С.А.
(г. Москва, Московский Энергетический Институт, Россия)
В настоящее время существует множество алгоритмов симметричного шифрования для криптографической защиты данных. Каждый из них обеспечивает определённую степень защиты скрываемых данных. Однако, для любого из них существуют свои методы взлома. Начиная от специфических атак для конкретной реализации, заканчивая методом полного перебора. Последний является самым медленным, но в тоже время самым простым. Рассмотрим стандартную [1] схему шифрования, приведённую на рисунке 1.
Как мы видим, блоки шифрования и дешифрования реализуют функции FE и FD. Предполагается, что противнику известно всё, кроме ключа K. Самой часто используемой атакой на шифр, является атака по открытому тексту [2]. Т.е. злоумышленник владеет определённым числом соответствий M и С, и той информацией, что все они использовали один и тот же ключ. Такая атака возможна только в том случае, если длина блока шифрования является постоянной. Кроме того, логика FE и FD не зависит от входных данных.
Другими словами, на очередном шаге шифрования, шифр оперирует блоками и конструкциями одной длины и не «вникает» в их содержимое.
Можно избавиться от возможности проведения подобной атаки путём внесения элемента нерегулярности в алгоритм, иными словами, алгоритм будет вести себя по-разному в зависимости от входных данных. Так как входными данными являются М и К, возникает вопрос, что использовать в качестве управляющего воздействия. Использовать M не получится, вследствие того, что придётся расшифровывать C, а М не может участвовать в расшифровке. Таким образом, остаётся K.
Предлагается вместо K использовать 2 различные последовательности, одна из которых будет играть роль непосредственно K, а вторая управляющей последовательности U. Итог: C=FE(M,K,U), M=FD(C,K,U).
Пусть, U – является строкой из элементов алфавита A. Где мощность А – равна количеству субалгоритмов шифрования. Таким образом, подавая на вход всей схемы K,U и М мы добиваемся того, что используем в зависимости от U разные алгоритмы шифрования для одного и того же К.
Структурная схема выглядит следующим образом:
Поясним работу схемы. Модуль выборки данных (МВД) из входного потока берёт очередную управляющую последовательность Uj, которая отправляется на дешифратор.
Дешифратор выбирает один из I блоков шифрования. Каждый из блоков реализует свой субалгоритм шифрования. Причём, каждый из них использует свои длины ключей и блоков данных. Блок, которому передали управление, по общей шине запрашивает из МВД выборку из ключа, и из данных с нужными длинами. После чего применяется соответствующий алгоритм шифрования. Полученный C записывается в выходной буфер.
На выходе, мы имеем то, что последовательность C лишена постоянной структуры. Кроме того, злоумышленник не знает, какой алгоритм применялся над тем или иным участком. Рассмотрим самый худший случай – злоумышленник, так или иначе, разобрал последовательность С на составляющие блоки, что само по себе является отнюдь не тривиальной задачей. Ему для получения данных придется всё также взламывать K.
Итогом данной работы является вывод о принципиальной возможности и целесообразности создания подобных систем. Однако, присутствует ряд проблем, связанных с реализацией. Самой важной является взаимодействие используемых субалгоритмов. Кроме того, встаёт вопрос, каким образом будет проводиться обмен ключами U и K. Следует также, провести исследование стоимости и сложности реализации подобных систем.
Литература
1. Брюс Шнайер. Прикладная криптография: Протоколы, алгоритмы, исходные тексты на языке Си. – М.: Триумф, 2002. 816 с.
2. Брюс Шнайер, Нильс Фергюсон. Практическая криптография. – М.: Вильямс, 2005. 424 с.