Quantum Computing and Post-Quantum Cryptography