Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Решенные билеты.doc
Скачиваний:
99
Добавлен:
26.05.2014
Размер:
1.72 Mб
Скачать

Вопрос 2,3 Односторонние функции

Определение. Функция f: X Y называется односторонней (oneway Junction), если существует эффективный алгоритм для вычисления f(x), но не существует эффективного алгоритма для вычисления хотя бы одного элемента прообраза f--1).

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

Обозначим через Un случайную величину, равномерно распределеннуюна {0,1}n. Через 1n будем обозначать унарное представление числа п, т.е. последовательность из п единиц.

Определение.1 Функция f: {0,1}* {0,1}* называется (сильной) односторонней (strong one-way), если выполнены следующие два условия.

  • Существует детерминированный полиномиальный алгоритм А, вычисляющий эту функцию, — для всех х {0,1}* А ) =f(x).

  • Для любого вероятностного полиномиального алгоритма В, любого многочлена q, для достаточно больших n

Грубо говоря, при случайном выборе аргумента х трудно подобрать прообраз для f(x).

Общая длина аргументов алгоритма В с ростом п растет не более чем полиномиально. Дополнительный аргумент 1n понадобился, чтобы эта длина зависела от n по крайней мере линейно и можно было измерять сложность алгоритма В в зависимости от длины аргумента алгоритма А. Если дополнительного аргумента нет, то, например, функция, выдающая двоичное представление длины аргумента (f(x)= |x|), окажется односторонней, поскольку, хотя прообраз указать легко, никакой полиномиальный алгоритм не успеет его выдать.

Если функция f сохраняет длину, т. е. |f(x)| = |х|, то дополнительный аргумент не нужен. Если функция сохраняет длину и взаимно однозначна, то она является перестановкой (в обычном смысле).

Из определения 1 легко получить определение (сильной) неравномерно односторонней функции, заменив второе условие условием

которое должно выполняться для любого полиномиального семейства логических схем.

Семейства односторонних функций

Для описания практически применяемых конструкций удобнее использовать несколько более сложное определение. Вместо функций будем рассматривать семейства функций вида . Здесь К{0,1 }* — бесконечное множество, элементы которого называются ключами или индексами. Для каждого k К множество Dk конечно.

Определение.2 Семейство функцийназывается семейством (сильных) односторонних функций, если существуют три вероятностных полиномиальных алгоритма (I,S,F) таких, что выполнены следующие условия.

  • Алгоритм выбора ключа I для аргумента 1n задает случайную величину со значениями в гдер — многочлен.

  • Алгоритм выбора аргумента S для аргумента k К задает случайную величину со значениями в Dk.

  • Алгоритм вычисления функции F(k,x) для k К, х Dk выдает fk(x).

  • Для любого вероятностного полиномиального алгоритма В, любого многочлена а, для достаточно больших п

где Iп и Хпслучайные величины,

По любому семейству односторонних функций можно построить «единую» одностороннюю функцию и наоборот.

Примеры семейств предположительно односторонних функций.

  • Функция RSA. Множество ключей состоит из пар вида k=(pq,e), удовлетворяющих требованиям к открытым компонентам ключей RSA, . Алгоритм I по аргументу 1n выбирает пару чисел р и q, равномерно распределенных среди простых чисел между 2n-1 и 2п, простое число е и выдает ключ (pq,e). Алгоритм S выбирает . Функция fk является односторонней перестановкой Dk..

  • Функция Рабина строится аналогично функции RSA, но ключ состоит изединственного значения k=(pq), a fk(x)=x2mod pq. Если алгоритм I выбирает в качестве ключей числа Блума, a Dk = QRpq—множество квадратичных вычетов по модулю pq, то получается семейство односторонних перестановок.

  • Дискретная показательная функция. Ключом, который выбирается алгоритмом I по аргументу 1n, являются случайно и равномерно выбранное простое число р между 2n-1 и 2п и образующий элемент g  Zp* По ключу k=(p,g) алгоритм S выбирает . Алгоритм F вычисляетfk(x)=gx mod p. В результате получается семейство односторонних перестановок. Вместо Z*p можно выбирать любую группу, в которой трудно вычисляется дискретный логарифм. [1]

Соседние файлы в предмете Криптография