Протокол стойкого шифрования сообщений с использованием коротких ключей

УДК 681.3

А. В. Муравьев, А. Н. Березин, Д. Н. Молдовян

ПРОТОКОЛ СТОЙКОГО ШИФРОВАНИЯ СООБЩЕНИЙ С ИСПОЛЬЗОВАНИЕМ КОРОТКИХ КЛЮЧЕЙ

Предложены способ и протокол гарантированной защиты информации, передаваемой по открытым каналам, путем ее криптографического преобразования при использовании разделяемых секретных ключей малого размера (до 56 бит).

Ключевые слова: шифрование, криптографические протоколы, секретный ключ, стойкость, задача дискретного логарифмирования, коммутативный шифр.

Введение. Применяемые в системах защиты информации криптографические схемы с секретным ключом (одноключевые) обеспечивают гарантированную стойкость шифрования сообщений при использовании ключей достаточно большого размера, например 128 или 256 бит. На практике же существует необходимость срочной передачи конфиденциальной информации, когда и отправитель, и получатель имеют ключи лишь малого размера (от 32 до 56 бит). Использование таких ключей непосредственно в алгоритмах симметричного шифрования позволяет потенциальному нарушителю определить эти ключи методом полного перебора по ключевому пространству. В этом случае возникает необходимость обеспечения при-

128

емлемого уровня стойкости шифрования, например, равного 2 операциям.

Для решения данной задачи следует включить в процесс шифрования алгоритм коммутативного шифрования, не требующий использования разделяемых (общих) секретных ключей [1, 2] (так называемое бесключевое шифрование, которое позволяет обеспечить необходимый уровень стойкости). Недостатком данного алгоритма является невозможность обеспечить аутентификацию сообщений. В предлагаемых протоколах для аутентификации сообщений используется разделяемый секретный ключ малого размера, благодаря чему потенциальный нарушитель не может выдать себя за отправителя или получателя сообщений, также он не имеет вычислительной возможности определить секретный ключ методом полного перебора.

Протокол передачи сообщения без обмена ключами. В качестве процедуры коммутативного шифрования возможно использование трехпроходного протокола Шамира [3], что позволяет передать секретное сообщение по открытому каналу связи без использования процедуры распределения ключей. В основе протоколов данного типа лежит стойкий алгоритм коммутативного шифрования, для которого выполняется условие

КА {Кв (М))=Ев (КА (М)),

где Е — функция криптографического преобразования, А и В — неразделяемые секретные ключи отправителя и получателя соответственно, М — преобразуемое сообщение.

При использовании данного протокола пересылка сообщения М по открытому каналу связи осуществляется следующим образом.

1. Отправитель шифрует сообщение М по своему ключу А и посылает его получателю: С1 = Еа (М).

2. Получатель шифрует криптограмму С по своему ключу В и посылает отправителю: С2 = Ев (С1)=Ев ( ЕА (М)).

3. Отправитель, используя процедуру расшифровывания Э по своему ключу А , преобразует криптограмму С2 и посылает получателю: С3 = Эа (С2)=Эа(Ев(Еа(М)))=Эа(Еа(Ев (М))) = = Ев (М). Исходя из полученного шифр-текста С3, получатель, используя процедуру рас-

шифровывания Э по своему ключу В, восстанавливает сообщение М по формуле М=Эв (Ев (М)).

Ключи А и В могут выбираться произвольно, и для каждого передаваемого сообщения возможна выработка новых пар ключей. Очевидно, что обмен ключами не происходит, поэтому данный протокол может называться протоколом бесключевого шифрования. Однако протоколы данного типа уязвимы для атаки „человек посередине", т.е. потенциальный нарушитель может выдавать себя как легальный участник протокола.

Новый способ применения бесключевого шифрования. Шифрование сообщений по разделяемому ключу малого размера не является безопасным, так как при перехвате криптограммы практически возможно нахождение ключа путем перебора по ключевому пространству. Для обеспечения требуемого уровня стойкости представляется уместным передача сообщения с использованием протокола бесключевого шифрования и аутентификация сообщений, выполняемая по разделяемому ключу малого размера. Причем такой вариант применения разделяемого секретного ключа принципиально отличается от его применения в процедурах шифрования сообщений, так как у потенциального нарушителя будет лишь одна попытка угадать секретный ключ и навязать ложное сообщение, тогда как при шифровании у него имеется возможность многократного опробования различных значений ключа. Вероятность

обмана в случае применения секретного ключа для аутентификации составляет 2—к, где к — длина ключа (в битах). Например, при использовании 32-битового ключа вероятность соста-

—32

вит 2 , что пренебрежимо мало даже для достаточно критичных применений. Благодаря этому представляется возможным использовать ключи малого размера для аутентификации сообщений в протоколах бесключевого шифрования. При практической реализации необходимо обеспечить неразрывность процедуры аутентификации и бесключевого шифрования.

Аутентификация шифр-текстов. Значения шифр-текстов С^, С2, С3, получаемых в результате выполнения протокола коммутативного шифрования, являются вычислительно неотличимыми от случайных значений. Шифрование криптограмм по разделяемому короткому ключу с использованием симметричного алгоритма 0К (С), где 0К — алгоритм симметричного шифрования [4] по ключу К, не позволяет потенциальному нарушителю найти значение разделяемого короткого ключа, а для легального получателя появляется возможность аутентификации отправителя шифр-текстов. При использовании такого подхода протокол стойкого шифрования по ключу малого размера выглядит следующим образом.

1. Отправитель шифрует сообщение М по своему неразделяемому ключу А: С = Еа (М); полученную криптограмму С зашифровывает по разделяемому секретному ключу К с использованием алгоритма симметричного шифрования [4]: = Ок(С1); полученное значение $1 отправляет получателю.

2. Получатель расшифровывает шифр-текст по разделяемому ключу К и получает

значение С : С = О—1к ($1) ; шифрует криптограмму С по своему неразделяемому ключу В : С2 = Ев (С1) ; полученную криптограмму С2 зашифровывает по разделяемому секретному ключу К с использованием алгоритма симметричного шифрования [4]: $2 = Ок (С2); полученное значение $2 посылает отправителю.

3. Отправитель расшифровывает шифр-текст $2 по разделяемому ключу К и получает значение С2 : С2 = О—1к ($2); затем, используя процедуру расшифровывания Э по своему неразделяемому ключу А, преобразует криптограмму С2 и посылает получателю: Сз = Эа (С2)=Ев (М).

Получатель расшифровывает сообщение M из шифр-текста C3: M=DB (EB (M)). Использование на первых двух шагах протокола дополнительного симметричного шифрования по общему разделяемому ключу позволяет предотвратить атаки со стороны активного нарушителя, т.е. происходит взаимная аутентификация пересылаемого сообщения получателем и отправителем.

В качестве функции криптографического преобразования EK (M), обеспечивающей

свойство коммутативности, может использоваться алгоритм шифрования Полига — Хеллма-на [2], основанный на вычислительной трудности задачи дискретного логарифмирования по модулю простого числа. Базовой операцией в данном протоколе является операция возведения в степень по модулю большого простого числа p . Шифрование сообщения M < p выполняется путем возведения его в некоторую степень e, взаимно простую с числом p -1: C=E(M) = Memod p . Криптограмма C расшифровывается посредством возведения ее в степень d : M = D(C)=Cdmodp . Выбор степени d осуществляется при выполнении условия M=Cd = Med modp для любого M < p , для чего степени e и d выбираются такими, чтобы выполнялось условие ed=1mod p -1. Пара (e, d) составляет локальный ключ отправителя сообщения. Для обеспечения 128-битовой стойкости необходимо использовать в качестве модуля простое число p размером не менее 2 464 бита, причем разложение на множители числа p -1 должно содержать, по крайней мере, один большой простой множитель q размером не менее 256 бит.

Уменьшение вычислительной сложности протокола стойкого шифрования по короткому разделяемому ключу K может быть достигнуто при использовании случайного простого числа p в качестве модуля алгоритма коммутативного шифрования и путем шифрования p по ключу K перед его отправкой по открытому каналу (например, отправитель секретного сообщения генерирует случайное простое число p и направляет его получателю в виде криптограммы a =Gk(p)). При использовании этого механизма активный нарушитель, выдающий себя за отправителя или получателя сообщения, имеет только одну попытку угадывания секретного ключа K. Если нарушитель выдает себя за отправителя, то это будет обнаружено получателем, так как при расшифровывании им криптограммы a будет получено число, отличное от p . Если нарушитель выдает себя за получателя, то это будет обнаружено отправителем, так как при расшифровывании криптограммы a нарушителем будет получено число, отличное от p . Поскольку вмешательство активного нарушителя ведет к получению различных значений модуля, то пропадает свойство коммутативности, и пересылаемое отправителем сообщение не совпадает с сообщением, доставленным получателю в ходе протокола бесключевого шифрования. Последний факт может быть обнаружен с помощью хэш-функции, присоединяемой к сообщению.

При использовании механизма шифрования модуля числа p протокол стойкого шифрования по короткому ключу содержит следующие шаги.

1. Отправитель сообщения M генерирует случайное простое число p (достаточно большого размера), шифрует p по разделяемому ключу K и получает его преобразованное значение g=Gk (p); вычисляет значение h хэш-функции от M ; затем, используя алгоритм Полига — Хеллмана, шифрует M по неразделяемому ключу A, получает шифр-текст C1 = MA modp и направляет получателю секретного сообщения значения C1 , h и a по открытому каналу.

2. Получатель расшифровывает шифр-текст а по разделяемому ключу K, получает значение простого числа p, зашифровывает значение Q по неразделяемому ключу B по формуле C2 = QB mod p и направляет отправителю шифр-текст C2 по открытому каналу.

3. Отправитель расшифровывает шифр-текст C2 и посылает значение C3 получателю:

C3 = C2 A mod p .

4. Получатель восстанавливает сообщение M из полученного шифр-текста C3 по фор-

£-1

муле M = C3 mod p ; затем вычисляет значение хэш-функции от M и сравнивает его с h : если сравниваемые значения равны, то получатель делает вывод о подлинности полученного секретного сообщения.

Результаты аутентификации. В обоих вариантах реализации протокола обеспечена неразрывность процедур аутентификации и коммутативного шифрования. Это позволяет избежать активных атак, в которых нарушитель пытается играть роль легального участника протокола. Значения, получаемые в ходе выполнения протокола, вычислительно неотличимы от случайных значений, их шифрование по разделяемому секретному ключу исключает возможность определения короткого ключа методом перебора всех возможных комбинаций разделяемого секретного ключа по ключевому пространству. В этом случае у атакующего отсутствует вычислительно эффективный критерий отбраковки неверных значений ключа. Возможны и другие варианты построения протоколов шифрования с использованием разделяемых ключей малого размера. Представляют интерес конечные поля векторов [5], конечные группы точек эллиптической кривой [6], конечные поля двоичных многочленов, степени которых являются простыми числами Мерсенна [7], также возможна реализация протокола с использованием двух трудных задач [8].

Заключение. Показана принципиальная возможность построения протоколов шифрования по разделяемому секретному ключу малого размера. В основе предложенного способа лежит идея использования бесключевого шифрования совместно с процедурами аутентификации шифр-текстов. В качестве механизма аутентификации используется алгоритм симметричного шифрования по короткому разделяемому ключу некоторых значений, получаемых или используемых в алгоритме коммутативного шифрования. Предложен конкретный вариант реализации протокола на основе алгоритма коммутативного шифрования Полига — Хеллмана. Для обеспечения стойкости протокола, равной 280, 2128 и 2160 операциям модульного умножения, следует использовать простое число p, имеющее разрядность 1 024, 2 464 и 4 320 бит соответственно.

Статья подготовлена по результатам работы, выполненной при финансовой поддержке Российского фонда фундаментальных исследований в рамках научного проекта № 14-07-00061-а.

СПИСОК ЛИТЕРАТУРЫ

1. Schneier B. Applied Cryptography: Protocols, Algorithms and Source Code. N. Y.: John Wiley & Sons, 1996. 758 p.

2. Pat. 4424414, US. Exponentiation Cryptographic Apparatus and Method / M. E. Hellman, S. C. Pohlig. 1984.

3. Молдовян Н. А. Введение в криптосистемы с открытым ключом. СПб: БХВ — Петербург, 2007. 286 с.

4. ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. М.: Изд-во стандартов, 1989. 20 с.

5. Молдовяну П. А., Молдовян Д. Н., Морозова Е. В., Пилькевич С. В. Повышение производительности процедур коммутативного шифрования // Вопросы защиты информации. 2009. № 4. С. 24—31.

72

Е. В. Дойникова, И. В. Котенко

6. Молдовян Н. А., Рыжков А. В. Способ коммутативного шифрования на основе вероятностного кодирования // Вопросы защиты информации. 2013. № 3. С. 3—10.

7. Демьянчук А. А., Молдовян Н. А., Рыжков А. В. Выбор „идеальных" параметров в схеме двухшаговой аутентификации и коммутативном шифре // Изв. СПбГЭТУ „ЛЭТИ". 2013. № 8. С. 15—18.

8. Berezin A. N., Moldovyan N. A., Shcherbakov V. A. Cryptoschemes based on difficulty of simultaneous solving two different difficult problems // Computer Science Journal of Moldova. 2013. Vol. 21, N 2(62). P. 280—290.

Антон Владимирович Муравьев — Андрей Николаевич Березин —

Дмитрий Николаевич Молдовян —

Сведения об авторах

аспирант; СПИИРАН, научно-исследовательский отдел проблем информационной безопасности; E-mail: muravev.anton@gmail.com аспирант; Санкт-Петербургский государственный электротехнический университет „ЛЭТИ" им. В. И. Ульянова, кафедра автоматизированных систем обработки информации и управления; E-mail: a.n.berezin.ru@gmail.com

СПИИРАН, научно-исследовательский отдел проблем информационной безопасности; научный сотрудник; E-mail: mdn.spectr@mail.ru

Рекомендована СПИИРАН

Поступила в редакцию 10.06.14 г.

УДК 004.056

Е. В. Дойникова, И. В. Котенко

АНАЛИЗ ТЕКУЩЕЙ СИТУАЦИИ И ПОДДЕРЖКА ПРИНЯТИЯ РЕШЕНИЙ ПО БЕЗОПАСНОСТИ КОМПЬЮТЕРНОЙ СЕТИ НА ОСНОВЕ СИСТЕМЫ ПОКАЗАТЕЛЕЙ ЗАЩИЩЕННОСТИ

Рассматривается подход к отслеживанию текущей ситуации по защищенности компьютерной сети и поддержке принятия решений по реагированию на инциденты, нарушающие информационную безопасность. Подход основан на использовании предлагаемой системы показателей защищенности и разработанных алгоритмов их расчета.

Ключевые слова: оценивание защищенности, показатели защищенности, графы атак, графы зависимостей сервисов, события информационной безопасности.

Введение. Сложность архитектуры современных компьютерных сетей и проводимых против них атак, а также многообразие событий, нарушающих информационную безопасность, обусловливает необходимость автоматизированной поддержки принятия решений по реагированию на инциденты (information security incident). Основой для принятия решений по реагированию могут служить показатели защищенности, корректно отражающие текущую ситуацию по безопасности компьютерной сети.

В настоящей статье предлагается система показателей защищенности, приводится ряд известных и модифицированных алгоритмов расчета отдельных и интегральных показателей и рассматривается общий подход к анализу ситуации и принятию решений по безопасности на основе предложенной системы показателей.

Релевантные работы. На данный момент существует большое количество исследований в области применения показателей защищенности для анализа безопасности компьютерных сетей. Однако в большинстве работ анализируются отдельные показатели и не учитываются разные типы информации по безопасности. Так, в работах [1, 2] рассматриваются показатели, рассчитываемые на основе информации о составе и характеристиках объектов ком-