Elliptic curves and number-theoretic algorithms