It depends on your needs and on your field.
When multiplying, you must choose a generator F x . When you add, you should use the fact that F is a vector space over a smaller F p m . In practice, what you do a lot of time is a mixed approach. For instance. if you are working on F 256 , take a generator X from F 256 x and let G be the minimum polynomial over F 16sub>. Now you have
(amount i less than 16 a i X i ) (amount j less than 16 b j X j ) = sum_k sum i + j = k a i b j X i + J
All you need to do for effective multiplication is to store the multiplication table F 16 and (using G) the construct X ^ m in terms of lower powers of X and elements in F <sub> 16sub>
Finally, in the rare case when p n = 2 2 n you get the field “Conways nimbers (see Conways) of the path" or in the volume of Knut 4A, section 7.1.3), for which there are very efficient algorithms.
source share