Односторонние функции и псевдослучайные генераторы
Односторонние функции
Определения
- Функция называется пренебрежимо малой, если и достаточно больших . Пример: .
- Функция называется односторонней, если для любого полиномиального вероятностного алгоритма существует пренебрежимо малая функция такая, что для любого вероятность по всем .
Гипотеза
- Односторонние функции существуют.
Строго говоря, нам пока не известна ни одна односторонняя функция. Однако предложено несколько функций, которые могут оказаться односторонними — для этих функций в настоящее время, несмотря на интенсивные исследования, не известны эффективные алгоритмы нахождения обратной функции.
- RSA:
- Функция Рабина:
Теорема
Если P = NP, то не существует односторонних функций.
Доказательство:
Рассмотрим язык
- префикс .и, так как по условию , то . Заметим, что подбирая по одному биту, легко восстанавливается за полином, а значит вероятность из определения односторонних функций не является пренебрежимо малой и, следовательно, односторонних функций существовать не может.
Определение
Система шифрования называется вычислительно безопасной, если для любого полиномиального вероятностного алгоритма существует пренебрежимо малая функция такая, что вероятность по всем . То есть любой выбранный наугад бит текста в лучшем случае может быть угадан перехватчиком с вероятностью, большей, чем , на пренебрежимо малую величину.
Теорема
Если существуют односторонние функции, то
-- вычислительно безопасная схема:Без доказательства.
Псевдослучайные генераторы
Определение
Слово
называется с - случайным, если его нельзя вывести программой на языке Pascal длиной не более , где .Определение
Функция BPP, разность вероятностей по всем пренебрежимо мала.
называется псевдослучайным генератором, если , удовлетворяющего классуТеорема
Если существуют односторонние функции, то существуют псевдослучайные генераторы.
Без доказательства.
Определение
Функция BPP, вероятность по всем , где функция -- пренебрежимо мала.
называется непредсказуемой, если , удовлетворяющего классуТеорема
Функция
является случайным генератором тогда и только тогда, когда - непредсказуемая.