1. A method of multiplying a first polynomial and a second polynomial over GF(2 m ), comprising: representing the first polynomial and the second polynomial as an array of n words, wherein n is an integer, using a recursive algorithm to decompose a multiplication of the first polynomial and the second polynomial into a weighted sum of iteratively smaller subproducts; and using a nonrecursive algorithm to complete the multiplication when a size of the smaller subproducts is less than or equal to a predetermined size, the predetermined size being at least two words.