Galois field multiplication function gfp^mmult
has 2m]log
p[ inputs, (a_{0},
a_{1},... a_{m-1})=a=a_{0}+a_{1}x+...+a_{m-1}x^{m-1}
and
(b_{0}, b_{1},... b_{m-1})=b=b_{0}+b_{1}x+...+b_{m-1}x^{m-1}, and
m]log
p[ outputs, (c_{0},
c_{1},... c_{m-1})=c=ab=c_{0}+c_{1}x+...+c_{m-1}x^{m-1},
where each a_{i}, b_{i}, and c_{i} is a mod p number. It
computes the field product of two GF(p^{m}) elements, a and b. Since to
say GF(p^{m}) does not suffice to specify a unique field (up to
isomorphism, there is exactly one field GF(p^{m}), however, depending on
the primitive polynomial chosen product of two polynomials may look different), each benchmark
specification lists the prime p, and the primitive polynomial used.

GF(p^{m}) multiplier is required to launch a quantum polynomial time
attack on elliptic curve cryptography methods, equivalently, it is used in a
quantum polynomial time algorithm that computes discrete logarithm over an
elliptic curve group.