Baby-step giant-step