高速フーリエ変換 (FFT) と多項式乗算

2 つの多項式 の積 は係数の 畳み込み (convolution) であり、素朴計算は 。FFT を使うと に落とせる。本ヴォルトでは TFHE の実装解析が動機。

鍵となるアイデア

  • 係数表現 ⇔ 点値表現 (point-value): 次多項式は 個の相異なる点で一意に決まる。点値表現では積が点ごとの乗算 となり
  • 畳み込み定理: フーリエ変換 の下で畳み込みは要素積になる —
  • 1 の冪根 (roots of unity) を評価点に「賢く」選ぶ。, などの対称性を利用。

クーリー–テューキー型 FFT

多項式を偶数次・奇数次に分割し

と再帰的に分割統治することで を達成する。逆変換(点集合 → 係数)は 補間 (interpolation)

整数や有限体上では誤差のない 数論変換 (NTT) が用いられる。バタフライ演算で高速化できる変換は他にも多数。

関連: number-theoretic-transform / integer-factorization / _moc-algorithm