  Suppose we are given black-box access to a finite ring R, and a list of
generators for an ideal I in R. We show how to find an additive basis
representation for I in poly(log |R|) time. This generalizes a quantum
algorithm of Arvind et al. which finds a basis representation for R itself. We
then show that our algorithm is a useful primitive allowing quantum computers
to rapidly solve a wide variety of problems regarding finite rings. In
particular we show how to test whether two ideals are identical, find their
intersection, find their quotient, prove whether a given ring element belongs
to a given ideal, prove whether a given element is a unit, and if so find its
inverse, find the additive and multiplicative identities, compute the order of
an ideal, solve linear equations over rings, decide whether an ideal is
maximal, find annihilators, and test the injectivity and surjectivity of ring
homomorphisms. These problems appear to be hard classically.
