Рейтинг:4

Разница между БПФ и НТТ

флаг in

Каковы основные различия между быстрым преобразованием Фурье (БПФ) и теоретико-числовым преобразованием (НТТ)?

Почему мы используем NTT, а не FFT в криптографических приложениях?

Какой из них является обобщением другого?

Рейтинг:3
флаг ng

Отказ от ответственности: Comp-Sci математика впереди, настоящие математики остерегайтесь. ;)

Быстрое преобразование Фурье (БПФ) и дискретное преобразование Фурье (ДПФ)

БПФ — это алгоритм, который позволяет вычислять ДПФ, а также его инверсию для комплекснозначных сигналов.

То есть: Учитывая комплексный сигнал $x = (x_0, \ldots, x_{n-1})$ длины $n$, БПФ позволяет вычислить его $\operatorname{DFT}(x) = (X_0, \ldots, X_{n-1})$, компоненты которого определяются как: $$ X_l = \sum_{j = 0}^{n-1} x_j g^{-jl} $$ Где $г$ является примитивным $n$-й корень из единицы в комплексном поле, например. $e^{i 2 \pi/n}$.

Проблемы при работе в сложном поле

Однако в информатике есть и недостатки работы в области комплексных чисел. А именно:

  • Нам нужно побеспокоиться о проблемах с округлением
  • Операции с числами с плавающей запятой, как правило, менее эффективны, чем с целыми числами.

Обобщение на другие алгебраические структуры с помощью теоретико-числового преобразования (NTT)

Однако оказывается, что определение ДПФ также имеет смысл для алгебраических структур, отличных от комплексного поля, если можно найти соответствующие корни из единицы.

Затем NTT ссылается на это «преобразование» задачи в другую структуру, в частности, на выполнение ДПФ над конечным полем — обычно конечным полем. $F_p$ целых чисел по простому модулю $р$.

Преимущества работы в ограниченном поле

Работа в конечном поле означает, что:

  • Нам не нужно беспокоиться об округлении
  • Целочисленные операции имеют тенденцию быть производительными
  • Некоторые целочисленные операции (например, умножение на степень двойки) можно сделать еще более производительными.

Вот почему в информатике мы склонны использовать NTT для работы с конечным полем, а не со сложным полем.

Резюме

Возвращаясь к вашим вопросам:

  • В информатике мы склонны использовать NTT, а не FFT для сложных полей, так как это более практично и эффективно.
  • В некотором смысле вы можете рассматривать ДПФ общего кольца как обобщение ДПФ комплексного поля (рассчитанного с помощью БПФ) на другие алгебраические структуры. Тогда НТТ будет приложением этого универсального кольцевого ДПФ к конечным полям. Я не знаю, могу ли я назвать сам NTT обобщением БПФ.

Чтение

Вышеизложенное в значительной степени основано на книге Crandall & Pomerance «Prime Numbers: A Computational Perspective» (978-0387252827), которая была большей частью моего знакомства с этой темой. В Википедии также есть статьи о ДПФ над комплексным полем, его обобщение на произвольные кольца, последний из которых имеет раздел о НТТ, позволяющая применить его к конечному полю

Рейтинг:3
флаг sa

TL;DR Вам нужны NTT для точной арифметики в крипто-приложениях.

БПФ — это просто алгоритм для оценки традиционного ДПФ, для векторов с комплексными значениями (обратите внимание, что действительные и целые числа являются подмножествами комплексного поля, поэтому это применимо и к ним) векторов $(f_0,\dots,f_{N-1})$ длины $N$ которое определено над комплексным полем $\mathbb{C}$ используя комплексный корень из единицы порядка $N.$

Здесь у нас есть $$ F(\lambda)=\sum_{k=0}^{N-1} f_k e^{2 \pi i \lambda k/N}= \sum_{k=0}^{N-1} f_k \xi_N^{\lambda k}, \quad \xi_N:=e^{2 \pi i /N}, \lambda=0,1,\ldots,N-1 $$

Такой сложный корень единства существует для всех $N$, однако БПФ более эффективен, если $N$ является составным, максимальная эффективность достигается для $N=2^м,$ для некоторого целого числа $ млн $

Проблемы с ДПФ: В криптографии мы работаем с конечными объектами и действительно можем получить полную точность, которая на практике неприменима в комплексной области, поскольку аргумент комплексного корня из единицы иррационален, а точная арифметика вообще невозможна.

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

Выбор НТТ:

Предположим, что входной вектор представляет собой последовательность $N$ неотрицательные целые числа.

В общем случае нужно выбрать модуль $ млн $ такой, что $1â¤N<M$ и каждое входное значение находится в диапазоне $[0,М).$ Если мы говорим о внедрении криптографии, мы уже знаем модуль.

Выберите некоторое целое число $к¥1$ и определить $N'=kN+1$ как рабочий модуль. Нам нужно $N'¥M,$ и для простоты возьмем $N'$ быть простым числом. Теорема Дирихле гарантирует, что при данных $N$ и $ млн, $ можешь выбрать $к$ сделать $N'$ премьер.

Так как $N'$ является простым, мультипликативная группа $\mathbb{Z}_{N'}$ имеет размер $Ï(N')=N'â1=kN$ а также генератор $г,$ который также является примитивным (N' 1)-й корень из единицы.

Позволять $\omegaâ¡g^k \pmod N'.$ затем $\омега$ является примитивным $N$корень из единицы, необходимый для получения ДПФ длины $N,$ Итак, это NNT: $$ F(\lambda)=\sum_{k=0}^{N-1} f_k \omega^{\lambda k},\quad \lambda \in \mathbb{Z}_N. $$ Можно применить редукции Монтгомери (или менее эффективные редукции Барретта) для ускорения модульной арифметики в NTT.

C.S. avatar
флаг in
Спасибо! Что вы подразумеваете под «с конечными объектами мы можем получить полную точность, которая не применяется на практике в сложной области»? Что вы подразумеваете под "точностью"?
kodlu avatar
флаг sa
Целочисленная арифметика точна. Если вы выполняете сокращение по модулю, оно также является конечным, поскольку максимальное значение равно модулю минус один. В сложных полях операции должны выполняться над величинами конечной длины в битах, которые по своей природе являются аппроксимациями действительных чисел. Точность представлена ​​количеством используемых битов.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.