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


The QKD Simulator web application is powered by a simulation engine, which is part of a quantum key distribution toolkit. The web application and the QKD toolkit have been developed by Arash Atashpendar under the supervision of Professor Peter Y. A. Ryan. You can reach us here if you have any feedback or questions.

Quantum key distribution (QKD), also referred to as quantum key exchange or establishment (QKE), is arguably the most widely known and commercially available application of quantum cryptography, aimed at providing information theoretically secure key exchange.

The implementation of the backend QKD toolkit that powers this website is designed to be reusable by relying on a component-based and fully modular approach such that each sub-protocol can be updated or replaced in an isolated way. The current version provides an implementation of the entire QKD stack, i.e., quantum channel/transmission, key sifting, authentication using universal hashing, error estimation, reconciliation/error correction and privacy amplification. The quantum channel currently only supports the BB84 protocol.

QKD Toolkit Details

The QKD simulation toolkit powering this web application's simulation engine is implemented entirely in Python and makes use of standard scientific libraries such as Scipy, Numpy, Matplotlib, Quantum Information Toolkit (QIT) and PyCrypto.


Feel free to get in touch with us using in case you have any questions or would like to provide feedback.

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 »