Карусель Фробениуса: нормальные базисы без перебора ✛ ✎

Оригинал: "Fast Deterministic Normal Bases and Circulant Polynomial Determinants"
arXiv:2607.00313 · 2026-07-01 · arXiv non-exclusive · собственный разбор · 2 мин
Детерминированный алгоритм строит нормальный базис (базис из циклически сдвигаемых элементов) конечного поля за почти квадратичное время, заменяя случайный поиск одним вычислением циркулянтного определителя.

Стоит подать питание, и карусель Фробениуса приходит в движение: каждый элемент конечного поля переходит в своего q-го потомка, а координаты сдвигаются по кругу. Это действие — автоморфизм Фробениуса — описано ещё Гауссом в его арифметических изысканиях, но долгое время запустить карусель без заеданий удавалось лишь ценой перебора или матричных манипуляций.

Секрет плавного вращения — в правильной рассаде: нужно найти такой нормальный базис, чтобы автоморфизм просто переставлял его элементы по циклу. Авторы работы предлагают не перебирать билеты наугад, а сразу вычислить список всех бракованных мест. Для расширения степени n они строят семейство кандидатов $β_t$ = (θ − t)⁻¹ — это словно кабинки на платформе, и почти все они подходят.

На самом деле плохих t не больше n(n−1). Даже для n=1000 и q порядка миллиона это всего 10⁶ вариантов — проверка «в лоб» заняла бы пару секунд. Но алгоритм идёт дальше: он не перебирает, а вычисляет один полиномиальный определитель, чьи корни точно вычёркивают все дефектные параметры.

Ядро метода — сверхбыстрое вычисление определителя циркулянтной матрицы с полиномиальными входами. Матрица сводится к характеристическому полиному в алгебре с базисом Грёбнера, а хитрый p-адический подъём обходит нули в знаменателях формул Леверье. Благодаря технике треугольных множеств и модулярной композиции весь расчёт занимает почти линейное время от размера входа — O_ϵ((n² log q)^{1+ϵ}) битовых операций. Для малых полей поле временно расширяют логарифмическим умножением, строят нормальный элемент там и аккуратно спускают обратно — и всё это детерминированно.

Помимо основного результата, попутно доказано, что циркулянтный определитель размера n с полиномами степени m вычисляется за O_ϵ((nm log q)^{1+ϵ}) бит — независимый инструмент для символьных вычислений и теории кодирования.

Карусель теперь запускается не с зажмуренными глазами, а с полным знанием безопасной точки старта. Это даёт криптографическим протоколам гарантированную стойкость, а системам компьютерной алгебры — воспроизводимость вычислений. Следующий шаг — ускорить проекцию в треугольном базисе до истинно линейного времени, и тогда общая сложность упадёт до O˜(n²). Когда-то Гаусс вращал числа вручную; сегодня алгоритмическая карусель делает это за миллисекунды, оставляя нам лишь восхищение чистой математикой.

Если n=1000 и q — простое число чуть больше 10⁶, то «плохих» t не более 10⁶, а перебрать нужно лишь миллион значений — задача посильная даже для настольного калькулятора. Вся драма в том, чтобы не делать этого тупым перебором, а вычислить один полином и оценить его в n(n−1)+1 точках.

\beta_t = (\theta - t)^{-1}
элемент поля, нормальный для почти всех t
D(T) = \det\operatorname{Circ}(g_0(T),\dots,g_{n-1}(T))
полином над основным полем, чьи корни исключены
Понятия
метод конечных элементов