Practical challenges in quantum key distribution