Filled out explanation of QKD