Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Next: 2.4. Псевдослучайные генераторы Up: 2. Криптография и теория Previous: 2.2. Криптография и гипотеза Contents: Содержание


2.3. Односторонние функции

Говоря неформально, односторонняя функция - это эффективно вычислимая функция, для задачи инвертирования которой не существует эффективных алгоритмов. Под инвертированием понимается массовая задача нахождения по заданному значению функции одного (любого) значения из прообраза (заметим, что обратная функция, вообще говоря, может не существовать).

Поскольку понятие односторонней функции - центральное в математической криптографии, ниже мы даем его формальное определение.

Пусть $ \Sigma ^n=\{ 0,1\} ^n$ - множество всех двоичных строк длины $ n$. Под функцией $ f$ мы понимаем семейство $ \{
f_n\}$, где $ f_n\colon\Sigma ^n\to \Sigma ^m$, $ m=m(n)$. Для простоты изложения мы предполагаем, что $ n$ пробегает весь натуральный ряд и что каждая из функций $ f_n$ всюду определена.

Функция $ f$ называется честной, если существует полином $ q$ такой, что $ n\leq q(m(n))$ для всех $ n$.

Определение 1. Честная функция $ f$ называется односторонней, если

1. Существует полиномиальный алгоритм, который для всякого $ x$ вычисляет $ f(x)$.

2. Для любой полиномиальной вероятностной машины Тьюринга $ A$ выполнено следующее. Пусть строка $ x$ выбрана наудачу из множества $ \Sigma^n$ (обозначается $ x\in _R\Sigma^n$). Тогда для любого полинома $ p$ и всех достаточно больших $ n$

\begin{displaymath}Pr\{ f(A(f(x)))=f(x)\} <1/p(n).\end{displaymath}

Вероятность здесь определяется случайным выбором строки $ x$ и случайными величинами, которые $ A$ использует в своей работе.

Условие 2 качественно означает следующее. Любая полиномиальная вероятностная машина Тьюринга $ A$ может по данному $ y$ найти $ x$ из уравнения $ f(x)=y$ лишь с пренебрежимо малой вероятностью.

Заметим, что требование честности нельзя опустить. Поскольку длина входного слова $ f(x)$ машины $ A$ равна $ m$, ей может не хватить полиномиального (от $ m$) времени просто на выписывание строки $ x$, если $ f$ слишком сильно ``сжимает'' входные значения.

Ясно, что из предположения о существовании односторонних функций следует, что P$ \neq$NP. Однако, не исключена следующая ситуация: P$ \neq$NP, но односторонних функций нет.

Существование односторонних функций является необходимым условием для стойкости многих типов криптографических схем. В некоторых случаях этот факт устанавливается достаточно просто. Обратимся опять к примеру 1. Рассмотрим функцию $ f$ такую, что $ f(r)=K_1$. Она вычислима с помощью алгоритма $ G$ за полиномиальное время. Покажем, что если $ f$ - не односторонняя функция, то криптосистема нестойкая. Предположим, что существует полиномиальный вероятностный алгоритм $ A$, который инвертирует $ f$ с вероятностью по крайней мере $ 1/p(n)$ для некоторого полинома $ p$. Здесь $ n$ - длина ключа $ K_1$. Противник может подать на вход алгоритму $ A$ ключ $ K_1$ и получить с указанной вероятностью некоторое значение $ r'$ из прообраза. Далее противник подает $ r'$ на вход алгоритма $ G$ и получает пару ключей $ (K_1,K_2')$. Хотя $ K_2'$ не обязательно совпадает с $ K_2$, тем не менее, по определению криптосистемы $ D_{K_2'}(E_{K_1}(m))=m$ для любого открытого текста $ m$. Поскольку $ K_2'$ найден с вероятностью по крайней мере $ 1/p(n)$, которая в криптографии не считается пренебрежимо малой, криптосистема нестойкая.

Для других криптографических схем подобный результат доказывается не столь просто. В работе Импальяццо и Луби [7] доказана необходимость односторонних функций для существования целого ряда стойких криптографических схем.

Из всего сказанного следует, что предположение о существовании односторонних функций является самым слабым криптографическим предположением, которое может оказаться достаточным для доказательства существования стойких криптографических схем различных типов. На выяснение того, является ли это условие и в самом деле достаточным, направлены значительные усилия специалистов. Трудность задачи построения криптографических схем из односторонних функций можно пояснить на следующем примере. Пусть $ f$ - односторонняя функция и нам требуется построить криптосистему с секретным ключом. В такой криптосистеме имеется только один ключ - секретный, который известен и отправителю, и получателю шифрованного сообщения. Алгоритмы шифрования $ E_K$ и дешифрования $ D_K$ оба зависят от этого секретного ключа $ K$ и таковы, что $ D_K(E_K(m))=m$ для любого открытого текста $ m$. Ясно, что если криптограмму $ d$ сообщения $ m$ вычислять как $ d=f(m)$, то противник, перехвативший $ d$, может вычислить $ m$ лишь с пренебрежимо малой вероятностью. Но во-первых, непонятно, каким образом сможет восстановить сообщение $ m$ из криптограммы законный получатель? Во-вторых, из того, что функция $ f$ односторонняя следует лишь, что противник не может вычислить все сообщение целиком. А это - весьма низкий уровень стойкости. Желательно, чтобы противник, знающий криптограмму $ d$, не мог вычислить ни одного бита открытого текста.

На настоящий момент доказано, что существование односторонних функций является необходимым и достаточным условием для существования стойких криптосистем с секретным ключом, а также стойких криптографических протоколов нескольких типов, включая протоколы электронной подписи. С другой стороны, имеется результат Импальяццо и Рудиха [9], который является достаточно сильным аргументом в пользу того, что для некоторых типов криптографических схем (включая протоколы распределения ключей типа Диффи-Хеллмана) требуются более сильные предположения, чем предположение о существовании односторонних функций. К сожалению, этот результат слишком сложный, чтобы его можно было разъяснить в настоящей главе.

Next: 2.4. Псевдослучайные генераторы Up: 2. Криптография и теория Previous: 2.2. Криптография и гипотеза Contents: Содержание

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...