これは、モニック既約多項式 f(X) が識別されたときに、有限体で乗算を実行するアルゴリズムの問題であると仮定します (そうでない場合は、Rabin's Test for Ireducibility を検討してください) 。
次数 n-1 の 2 つの多項式があります。
A(X) = a_0 + a_1*X + a_2*X^2 + ... + a_(n-1)*X^(n-1) and
B(X) = b_0 + b_1*X + b_2*X^2 + ... + b_(n-1)*X^(n-1)
係数a_k, b_kはZ/pZの代表{0,1,...,p-1}から外れています。
製品は次のように定義されます。
C(X) = A(X)*B(X) % f(X),
ここで、モジュロ演算子 "%" は、多項式除算A(X)*B(X) / f(X)の剰余です。
以下は、複雑さO(n ^ 2)のアプローチです
1.) 分配法則により、製品は次のように分解できます。
B(X) * X^(n-1) * a_(n-1)
+ B(X) * X^(n-2) * a_(n-2)
+ ...
+ B(X) * a_0
=
(...(a_(n-1) * B(X) * X
+ a_(n-2) * B(X)) * X
+ a_(n-3) * B(X)) * X
...
+ a_1 * B(X)) * X
+ a_0 * B(X)
2.) %-演算子は Z/pZ[X] から GF(p^n) への環準同型であるため、上記の反復の各ステップで適用できます。
A(X)*B(X) % f(X) =
(...(a_(n-1) * B(X) * X % f(X)
+ a_(n-2) * B(X)) * X % f(X)
+ a_(n-3) * B(X)) * X % f(X)
...
+ a_1 * B(X)) * X % f(X)
+ a_0 * B(X)
3.) Xとの各乗算、つまり係数空間でのシフトの後、要素t_kn * X^nを持つ次数nの多項式T_k(X)が得られます。f(X)を法とするリダクションは、
T_k(X) % f(X) = T_k(X) - t_kn*f(X),
これは次数 n-1 の多項式です。
最後に、還元多項式で
r(x) := f(x) - X^n and
T_k(X) =: t_kn * X^n + U_(n-1)(X)
T_k(X) % f(X) = t_kn * X^n + U_(n-1)(X) - t_kn*( r(x) + X^n)
= U_(n-1)(X) - t_kn*r(x)
つまり、すべてのステップは最大次数 n-1 の多項式で実行できます。