Необходимое условие абсолютной стойкости шифра

 

Естественно, основной вопрос, который интересовал криптографов, это существуют ли на практике абсолютно стойкие шифры. Специалистам было интуитивно понятно, что они существуют, и пример подобного шифра привел Вернам более чем за два десятилетия до того, как один из основоположников теории информации К. Шеннон формально доказал их существование. В этом доказательстве Шеннон также получил и необходимое условие абсолютной стойкости шифра: «Для того, чтобы шифр был абсолютно стойким, необходимо, чтобы неопределенность алгоритма шифрования была не меньше неопределенности шифруемого сообщения, т. е. H(E) ³ H(T.

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

Поясним сказанное на примере: пусть перехвачена короткая 12-битовая шифровка, имеющая следующее содержание: 100101110101. Для простоты предположим, что исходное сообщение имеет ту же длину. Если у злоумышленника нет никаких априорных сведений о зашифрованном сообщении, для него каждый из 212исходных вариантов равновероятен, и, таким образом, вероятность правильно определить исходное сообщение простым угадыванием равна 2–12. Предположим теперь, что злоумышленнику априорно известно, что зашифрование является наложением одной и той же 4-битовой маски на каждую 4-битовую группу сообщения с помощью операции побитового «исключающего или». Очевидно, возможно 16 = 24различных вариантов битовой маски, соответственно, возможно 16 различных значений исходного текста:

 

Маска Исходный текст
. . .  

 

Таким образом, теперь вероятность правильно угадать исходный текст равна – знание особенности использованного способа шифрования повысило ее в 256 раз. Отсюда следует интересный вывод: чем больше неопределенность в шифрующем преобразовании для постороннего лица, тем дальше оно стоит от разгадки шифра, тем шифр надежнее. Шифр, полностью неопределенный для злоумышленника (H(E) = ¥) является нераскрываемым для него, то есть абсолютно стойким! Получается, что надежность шифра зависит исключительно от его секретности и не зависит от прочих его свойств.

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

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

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

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