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