quantum cryptography algorithm