Simulation and Analysis of QKD currently supporting the BB84 variant. -

QKD (BB84) simulation run example:

Initial Configuration

Property Qubit Count Basis choice bias delta Eve basis choice bias delta Eavesdropping Eavesdropping rate Error estimation sampling rate Biased error estimation Error tolerance
500 0.5 0.5 1 0.1 0.2 0 0.11

Detailed Run Information

Phase 1: BB84 Quantum Transmission

Alice prepares a sequence of 500 qubits and send them to Bob over the quantum channel. She randomly chooses a basis for each qubit, rectilinear polarization (horizontal/0 degrees and vertical/90 degrees) or a diagonal polarization (+45 degrees and -45 degrees shifted). She then maps horizontal and vertical with the qubit states |0> and |1>, and +45 degrees and -45 degrees shifted with the states |+> and |->, respectively. Further details:

Phase 2.1: Sifting

Bob announces on a public classical channel the qubits that he has managed to successfully measure. Alice and Bob then reveal and exchange the bases they used. They authenticate these three message exchanges. Whenever the bases happen to match - about 50% of the time on average - they both add their corresponding bit to their personal key. In the absence of channel noise, the two keys should be identical unless there has been an eavesdropper. Further details:

Phase 2.2: Sifting Authentication - Linear Feedback Shift Register (LFSR) Universal Hashing

Alice and Bob authenticate their basis exchange messages using the LFSR universal hashing scheme and a mutually preshared secret key for authentication. 3 messages are authenticated in the sifting phase. Further details:

Phase 3.1: Reconciliation - Error estimation

Alice and Bob estimate the error rate in their sifted keys to determine whether they should proceed to error correction or whether they should abort the protocol based on a predefined error tolerance threshold, usually around 11%. Further details:

Phase 3.2: Reconciliation - Error Correction, Cascade

Alice and Bob perform an interactive error correction scheme called Cascade on the public channel in order to locate and correct the erroneous bits in their sifted bit strings. Further details:

Phase 4: Error Correction Confirmation and Authentication

Alice and Bob confirm and authenticate the error correction phase by computing the hash of their error corrected keys using their mutually preshared secret key and by comparing their respective digests. Further details:

Phase 5: Privacy Amplification

Alice and Bob compute the overall information leakage and run a privacy amplification protocol in order to reduce/minimize Eve's knowledge gained on the key by having eavesdropped on the channel. They do so by locally applying a universal hashing scheme based on Toeplitz matrices. The hashing function will be indexed using yet another chunk of their preshared secret keys. They can also define a security paramter to minimize Eve's knowledge to an arbitrary amount. Further details:

Statistics and Overview

Property Value
Initial number of qubits 500
Final key length 40
Estimated error 0.0784
Eavesdropping enabled 1
Eavesdropping rate 0.1
Alice/Bob basis selection bias 0.5
Eve basis selection bias 0.5
Raw key mismatch before error correction 0.0856
Raw key mismatch after error correction 0
Information leakage (Total number of disclosed bits) 146
Overall key cost for authentication 256
Key length before error correction 206
Bit error probability 0.0874
Bits leaked during error correction 114
Shannon bound for leakage 89
Security parameter 20

QKD Simulation

Choose a simulator based on the properties of QKD that you would like to further investigate, fine-tune the initial parameters and define constraints for each subprotocol and run the simulator.

View example »

Detailed Analysis

Each simulation run will present you with a highly detailed set of results covering every step of the protocol, including internal details of every sub-protocol, e.g. sifting, error correction, privacy amplification, etc. along with a summary of statistics.

View example »


Most simulation types will create high quality publication ready plots illustrating core properties of QKD and more specifically, those of each run. We can run resource-intensive simulations for you locally upon request.

View plots »