Post-Quantum Cryptography: Theory and Applications