Quantum Computing and its Impact on Cryptography