QuantumKatas/KeyDistribution_BB84
Scott Carda b856585f32
Update to QDK version 0.27.258160 (#876)
2023-03-01 17:11:58 -08:00
..
.vscode Add DevSkim scanning and resolve initial alerts (#778) 2022-04-22 16:47:21 -07:00
img [KeyDistribution_BB84] Improve the task descriptions (#297) 2020-04-08 01:01:44 -07:00
KeyDistribution_BB84.csproj Update to QDK version 0.27.258160 (#876) 2023-03-01 17:11:58 -08:00
KeyDistribution_BB84.ipynb Updates to new array creation syntax, part 3 (#762) 2022-03-14 10:31:37 -07:00
KeyDistribution_BB84.sln Add BB84 Key Distribution Kata (#89) 2019-09-25 18:52:32 -07:00
README.md Update format for Binder links (#656) 2021-09-10 17:19:16 -07:00
ReferenceImplementation.qs Remove parenthesis around the condition in the if block (p2) (#853) 2022-11-22 23:51:15 -08:00
Tasks.qs Update to new array creation syntax (#709) 2021-12-14 13:55:41 -08:00
Tests.qs Updates to new array creation syntax, part 3 (#762) 2022-03-14 10:31:37 -07:00
Workbook_KeyDistribution_BB84.ipynb Remove parenthesis around the condition in the if block (p2) (#853) 2022-11-22 23:51:15 -08:00

README.md

Welcome!

The Quantum Key Distribution kata is a series of exercises designed to teach you about a neat quantum technology where you can use qubits to exchange secure cryptographic keys. In particular, you will work through implementing and testing a quantum key distribution protocol called BB84.

You can run the KeyDistribution_BB84 kata as a Jupyter Notebook!

Background

What does a key distribution protocol look like in general? Normally there are two parties, commonly referred to as Alice and Bob, who want to share a random, secret string of bits called a key. This key can then be used for a variety of different cryptographic protocols like encryption or authentication. Quantum versions of key exchange protocols look very similar, and utilize qubits as a way to securely transmit the bit string.

General schematic for QKD protocol

You can see in the figure above that Alice and Bob have two connections, one quantum channel and one bidirectional classical channel. In this kata you will simulate what happens on the quantum channel by preparing and measuring a sequence of qubits and then perform classical operations to transform the measurement results to a usable, binary key.

There are a variety of different quantum key distribution protocols, however the most common is called BB84 after the initials of the authors and the year it was published. It is used in many existing commercial quantum key distribution devices that implement BB84 with single photons as the qubits.

For more information: