Скрытые уравнения поля

Материал из testwiki
Перейти к навигации Перейти к поиску

Скрытые уравнения поля (HFE, анг. Hidden Field Equations) — разновидность криптографической системы с открытым ключом, которая является частью многомерной криптографии. Также известна как односторонняя функция с потайным входом HFE. Данная система является обобщением системы Матцумото-Имаи и впервые была представлена Жаком Патарином в 1996 году на конференции Eurocrypt.[1]

Система скрытых уравнений поля основана на многочленах над конечными полями K разного размера, чтобы замаскировать связь между закрытым ключом и открытым ключом.[2]

HFE на самом деле является семейством, которое состоит из основных HFE и комбинаций версий HFE. Семейство криптосистем HFE основано на трудности поиска решений системы многомерных квадратных уравнений (так называемой задаче MQ[3]), поскольку она использует частные аффинные преобразования, чтобы скрыть расширение поля и частные полиномы. Скрытые уравнения поля также использовались для построения схем цифровой подписи, таких как Quartz and Sflash.[2][1]

Основная идея[1]

Функция f

  1. Пусть K — конечное поле размерности q с характеристикой p(обычно, но не обязательно p=q=2).
  2. Пусть LN — расширение K степени N.
  3. Пусть βij, αi и μ0 — элементы LN.
  4. Пусть θij, φij и ξi — целые.
  5. Наконец, пусть f — функция такая, что:LN↦LNf:x↦∑i,jβijxqθij+qφij+∑iαixqξi+μ0

Тогда f является многочленом от x.

Пусть теперь B будет базисом LN. Тогда выражение f в базисе B :

f(x1,...,xN)=(p1(x1,...,xN),...,pN(x1,...,xN))где p1,...,pN — N многочленов от N переменных степени 2.

Это верно, так как для любого целого λ, x↦xqλ является линейной функцией LN↦LN. Многочлены p1,...,pN могут быть найдены путем выбора «представления» LN. Такое «представление» обычно задается выбором неприводимого многочлена iN(X) степени N над K, поэтому мы можем задать LN с помощью K[X]/(iN(X)). В этом случае возможно найти многочлены p1,...,pN.

Инверсия f

Следует заметить, что f не всегда является перестановкой LN . Однако основой алгоритма HFE является следующая теорема.

Теорема: Пусть LN — конечное поле, причем ∣LN∣=qn с q и n «не слишком большими» (например, q≤64 и n≤1024). Пусть f(x) — заданный многочлен от x над полем LN со степенью d «не слишком большой» (например, d≤1024). Пусть a — элемент поля LN. Тогда всегда (на компьютере) можно найти все корни уравнения f(x)=a.

Шифрование[1]

Представление сообщения M

В поле K количество публичных элементов q=pm.

Каждое сообщение M представлено значением x, где x — строка из n элементов поля K. Таким образом, если p=2, то каждое сообщение представлено nm битами. Более того, иногда предполагается, что в представление x сообщений была помещена некоторая избыточность r.

Шифрование x

Cекретная часть

  1. Расширение Ln поля K степени n.
  2. Функция f:Ln↦Ln, которая была описана выше, с «не слишком большой» степенью d.
  3. Два аффинных преобразования S и T: Kn↦Kn

Публичная часть

  1. Поле K c q=pm элементами и длина n.
  2. n многочленов (p1,...,pn) размерности n над полем K.
  3. Способ добавления избыточности r в сообщениях (то есть способ получения x из M).

Основная идея построения семейства систем скрытых уравнений поля в качестве многомерной криптосистемы заключается в построении секретного ключа, начиная с полинома P с одним неизвестным x над некоторым конечным полем LN.[2] Этот полином может быть инвертирован над LN, то есть может быть найдено любое решение уравнения P(x)=y, если оно существует. Преобразование секрета, также как и расшифровка или/и подпись, основано на этой инверсии.

Как было сказано выше, P можно идентифицировать системой n уравнений (p1,...,pn), используя фиксированный базис. Для того чтобы построить криптосистему, полином (p1,...,pn) должен быть преобразован таким образом, чтобы публичная информация скрывала первоначальную структуру и предотвращала инверсию. Это достигается рассмотрением конечных полей 𝕃n в качестве векторного пространства над 𝕂 и выбором двух линейных аффинных преобразований S и T. Триплет (S,P,T) формирует приватный ключ. Приватный полином P определён на 𝕃n. Публичным ключом является полином (p1,...,pn).[2]

M→+rx→секрет:Sx′→секрет:Py′→секрет:Ty

Расширения HFE

Скрытые уравнения поля имеют четыре основных модификации: +, -, v и f, и их можно комбинировать по-разному. Основной принцип заключается в следующем[2]:

  1. Модификация «+» состоит из линейного комбинирования публичных уравнений с некоторыми случайными уравнениями.
  2. Модификация «-» появился благодаря Ади-Шамиру и удаляет избыточность «r» из публичных уравнений.
  3. Модификация «f» состоит из фиксации некоторых входных переменных f открытого ключа.
  4. Модификация «v» определяется как сложная конструкция, такая что обратная функция может быть найдена только в том случае, если некоторые v переменных фиксированы. Эта идея принадлежит Жаку Патарину.

Атаки на криптосистемы HFE

Две самые известные атаки на систему скрытых уравнений поля[4]:

  1. Получение закрытого ключа (Шамир-Кипнис): ключевым моментом этой атаки является восстановление закрытого ключа как разреженных одномерных многочленов над полем расширений Ln. Атака работает только для базовой системы скрытых уравнений поля и не работает для всех её вариаций.
  2. Атака, основанная на алгоритме Грёбнера (разработана Жаном-Чарльзом Фужером): идея атаки заключается в использовании быстрого алгоритма для вычисления базиса Грёбнера системы полиномиальных уравнений. Фужер взломал HFE в рамках the HFE Challenge 1 за 96 часов в 2002 году. В 2003 году Фужер вместе с Жу работали над безопасностью HFE.

Примечания

Шаблон:Примечания

Ссылки

Шаблон:Криптосистемы с открытым ключом