Понятие об односторонних функциях
Функция называется односторонней, если для вычисления y по x существует алгоритм полиномиальной сложности, а для определения x по y, т.е. известны только алгоритмы экспоненциальной сложности. Полиномиальным называется такой алгоритм вскрытия ключа, у которого число необходимых операций пропорционально , где n – число неизвестных параметров, a – некоторое целое. Алгоритмом вскрытия экспоненциальной сложности называется такой алгоритм, у которых число необходимых операций пропорционально . Иначе говоря, найти y по x легко, а x по y трудно. Строгого доказательства, что данная функция является односторонней, не существует, так как прогресс в математике может привести в будущем к получению решения приемлемой сложности для задач, ранее считавшихся трудноразрешимыми. Известны многие функции, претендующие на звание односторонних, к числу которых можно отнести и простейшую из них вида: . Очевидно, что по заданному x легко вычислить y, однако при заданном y вычисление x представляет собой достаточно трудную задачу Ярким представителем множества односторонних функций является показательная функция в кольце вычетов по некоторому модулю , (13.1) где a, n – известные натуральные числа. Поясним ее однонаправленность на числовом примере. Пример 13.1.1. Пусть , . Число x представим в двоичной позиционной системе счисления, как . Тогда можно записать, что (13.2) где – остаток от деления на 10000. Из (13.2) видно, что для вычисления y потребовалось всего 15 умножений и делений, которые при выбранном модуле сводятся просто к удержанию 4-х младших разрядов результатов возведения в квадрат. Обратная задача – вычисление дискретного логарифма – практически неразрешима. Действительно, если, например, , то сравнение (13.2) записывается не иначе, как равенство , где символ «*» обозначает неизвестную десятичную цифру. Значения этих неизвестных цифр можно восстановить лишь одновременно со значением x, перебрав все варианты последнего, количество которых зависит от используемой разрядности чисел. При разрядности в 100–300 десятичных цифр подобный перебор на самых мощных ЭВМ занял бы время, не выражаемое даже геологическими эпохами. Однако функция (13.1) "в одиночку" для целей шифрования непригодна, так как законный получатель, определяя исходный текст x по шифрограмме y, будет испытывать те же трудности, что и криптоаналитик. Поэтому для законного абонента вводится лазейка (потайной ход), использование которого приводит к резкому снижению затрат на вычисление обратной функции. Односторонней функцией с «лазейкой» называется функция , обладающая следующими свойствами: – для вычисления y по x существует алгоритм полиномиальной сложности, – для вычисления x по y при известном z также существует алгоритм полиномиальной сложности, – для вычисления x по y при неизвестном z существует только алгоритм экспоненциальной сложности. Из определения видно, что z играет роль секретного ключа, находящегося у законного получателя шифрограммы. Отсюда ясен механизм создания шифров с открытым ключом. Для трудноразрешимой задачи формулируются условия, знание которых позволяет создать алгоритм ее решения полиномиальной сложности. Эти условия и составляют секрет законного пользователя.
|