Quantum Key Distribution And Its Applications