The number of multiplications required to compute number-theoretic transforms may be reduced by auspicious choice of the field or ring in which the computation is to be done. One method is to perform the computation in a direct sum of relatively small finite fields, using table lookups in lieu of multiplications in some or all of the component fields and using the Chinese Remainder Theorem to obtain the final result. Pipelining or parallel computation may be naturally applied to such computations. Another technique is the computation of d-long transforms in fields which contain low density dth roots of unity, for then many multiplications may be replaced by bit shifts and additions. The search for such fields and primitive roots may be facilitated by results on factoring large numbers of the form 2n± 1.