In struggling with implementing DSA signature verification, I discovered that math::bignum::powm is slow. Using the algorithm found here [2] for modular exponentiation (i.e., x = a^b mod y), it yielded a faster implementation: