Several public-key cryptography algorithms, such as RSA and the Diffie–Hellman key exchange, are based on large prime numbers (2048-bit primes are common). RSA relies on the assumption that it is much easier (that is, more efficient) to perform the multiplication of two (large) numbers formula_22 and formula_124 than to calculate formula_22 and formula_124 (assumed coprime) if only the product formula_177 is known. The Diffie–Hellman key exchange relies on the fact that there are efficient algorithms for modular exponentiation (computing formula_234), while the reverse operation (the discrete logarithm) is thought to be a hard problem.