Односторонняя функция с лазейкой
Односторонняя функция с лазейкой (англ. trapdoor one-way function) — это математическая функция, которая легко вычисляется в одном направлении, но для вычисления обратной функции требуется дополнительная секретная информация («лазейка»). Без знания этой информации вычисление обратной функции является практически неосуществимым. Односторонние функции с лазейкой являются фундаментом современной асимметричной криптографии (криптосистем с открытым ключом).
Определение и основные свойства
Формально, односторонняя функция с лазейкой — это функция \( f: X \to Y \), обладающая следующими свойствами:
- Легкость прямого вычисления: Для любого \( x \in X \) значение \( f(x) \) может быть вычислено за полиномиальное время.
- Односторонность (без лазейки): Для любого вероятностного полиномиального алгоритма \( A \) вероятность найти прообраз \( f^{-1}(y) \) для случайно выбранного \( y \) пренебрежимо мала.
- Существование лазейки: Существует дополнительная информация \( t \) (секретный ключ, или «лазейка»), зная которую, обратную функцию \( f^{-1}(y) \) можно вычислить за полиномиальное время.
Ключевое отличие от обычной односторонней функции заключается в том, что для последней обратное вычисление невозможно в принципе (или практически невозможно), а для функции с лазейкой — возможно, но только при наличии секрета. Без знания \( t \) задача остается вычислительно сложной.
История и происхождение
Концепция односторонних функций с лазейкой была впервые предложена в 1976 году Уитфилдом Диффи и Мартином Хеллманом в их основополагающей работе «Новые направления в криптографии». Они описали теоретическую возможность создания криптосистемы, в которой ключ шифрования является открытым, а ключ дешифрования — секретным. Однако Диффи и Хеллман не предложили конкретной реализации такой функции.
Первая практическая реализация была предложена в 1977 году Роном Ривестом, Ади Шамиром и Леонардом Адлеманом. Их система, известная как RSA, основана на задаче факторизации больших целых чисел. В RSA функция шифрования является односторонней с лазейкой: возведение в степень по модулю легко вычислить, а обратная операция — извлечение корня — требует знания разложения модуля на простые множители, которое и является «лазейкой».
Примеры односторонних функций с лазейкой
RSA (Rivest-Shamir-Adleman)
Это наиболее известный и широко используемый пример. Функция основана на модульной арифметике.
- Прямое вычисление (шифрование): \( c = m^e \mod n \), где \( m \) — открытый текст, \( e \) — открытая экспонента, \( n = p \cdot q \) — произведение двух больших простых чисел.
- Лазейка: Знание простых множителей \( p \) и \( q \), а также секретной экспоненты \( d \), такой что \( e \cdot d \equiv 1 \mod \phi(n) \) (где \( \phi \) — функция Эйлера).
- Обратное вычисление (дешифрование): \( m = c^d \mod n \). Без знания \( p \) и \( q \) (и, следовательно, \( d \)) задача нахождения \( m \) по \( c \) эквивалентна задаче факторизации \( n \), которая считается вычислительно сложной для достаточно больших чисел (2048 бит и более).
Рабина (Rabin cryptosystem)
Функция Рабина основана на задаче извлечения квадратного корня по модулю составного числа. Она считается вычислительно эквивалентной задаче факторизации.
- Прямое вычисление: \( c = m^2 \mod n \), где \( n = p \cdot q \).
- Лазейка: Знание простых множителей \( p \) и \( q \). Зная их, можно вычислить квадратный корень по модулю \( p \) и \( q \) отдельно, а затем восстановить результат по китайской теореме об остатках.
- Особенность: Функция не является взаимно однозначной (одному \( c \) могут соответствовать четыре различных \( m \)), что требует дополнительных механизмов для однозначного дешифрования.
Эль-Гамаля (ElGamal) и криптосистемы на эллиптических кривых
Эти системы основаны на задаче дискретного логарифмирования в конечных полях или на эллиптических кривых.
- Прямое вычисление: \( y = g^x \mod p \), где \( g \) — образующая циклической группы, \( p \) — большое простое число, \( x \) — секретный ключ. Вычисление \( y \) по \( x \) (возведение в степень) выполняется быстро.
- Лазейка: Знание \( x \). Обратная задача — нахождение \( x \) по \( y \) (дискретное логарифмирование) — является вычислительно сложной.
- Эллиптические кривые: Аналогичная конструкция, но в группе точек эллиптической кривой. Считается, что задача дискретного логарифмирования на эллиптической кривой сложнее, чем в конечных полях, что позволяет использовать ключи меньшей длины при той же стойкости.
Применение
Односторонние функции с лазейкой являются основой для множества криптографических протоколов и систем:
- Асимметричное шифрование: Обеспечивает конфиденциальность передачи данных. Отправитель шифрует сообщение открытым ключом получателя, а получатель расшифровывает его своим секретным ключом.
- Цифровые подписи: Обеспечивают аутентификацию и целостность данных. Подпись создается с использованием секретного ключа, а проверяется с помощью открытого. В данном случае «лазейка» используется для создания подписи (обратная функция), а прямое вычисление — для ее проверки.
- Протоколы распределения ключей: Позволяют двум сторонам установить общий секретный ключ по незащищенному каналу связи (например, протокол Диффи-Хеллмана, который использует одностороннюю функцию, но без лазейки; его вариант с лазейкой используется в некоторых схемах).
- Криптовалюты: В большинстве криптовалют (например, Биткойн) используются алгоритмы цифровой подписи на основе эллиптических кривых (ECDSA), которые базируются на односторонних функциях с лазейкой.
Криптоанализ и уязвимости
Безопасность систем, основанных на односторонних функциях с лазейкой, зависит от вычислительной сложности обратной задачи. Однако существуют угрозы:
- Квантовые вычисления: Квантовые компьютеры, если они будут построены в достаточном масштабе, смогут эффективно решать задачи факторизации (алгоритм Шора) и дискретного логарифмирования, что сделает RSA, Эль-Гамаля и криптосистемы на эллиптических кривых небезопасными. В связи с этим активно разрабатывается постквантовая криптография, которая ищет новые односторонние функции, устойчивые к квантовым атакам (например, на основе решеток, кодов, хэшей).
- Слабые ключи: Неправильная генерация параметров (например, выбор слишком маленьких простых чисел в RSA) может сделать лазейку легко находимой.
- Атаки по побочным каналам: Анализ времени выполнения, энергопотребления или электромагнитного излучения устройства, выполняющего криптографические операции, может позволить злоумышленнику извлечь секретный ключ.
Критика и ограничения
Основная критика односторонних функций с лазейкой связана с отсутствием формального доказательства их существования. Ни для одной из используемых на практике функций (RSA, дискретное логарифмирование) не доказано, что она действительно является односторонней. Их безопасность основана на предположении, что соответствующая задача (факторизация, дискретное логарифмирование) является вычислительно сложной для современных алгоритмов и вычислительных мощностей. Если будет найден эффективный алгоритм решения одной из этих задач, соответствующая криптосистема будет полностью скомпрометирована.
Источники
- Диффи, У., Хеллман, М. «Новые направления в криптографии» (1976).
- Ривест, Р., Шамир, А., Адлеман, Л. «Метод получения цифровых подписей и криптосистем с открытым ключом» (1978).
- Голдвассер, Ш., Белларе, М. «Лекции по криптографии» (2008).
- Шнайер, Б. «Прикладная криптография» (1996).
- Мао, В. «Современная криптография: теория и практика» (2003).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →