The AIT will attend the QCrypt 2016 at Carnegie Institution for Science in Washington DC. We will provide a workshop similar to the workshop held at the QCrypt 2015 in Tokio.

This 3-hour workshop is a great opportunity for those who want to perform experiments with their own QKD system and aim to generate secure keys. You will learn how the latest release R10 of AIT’s open source software for QKD post processing can be used to achieve this. Information about the software can be obtained here: resp. here: Documentation.

The software can be obtained via git from

The workshop will be held on Monday, 12th September 2016 from 14:15 to 17:15 at the QCrypt 2016 conference venue.


The number of participants is limited!

If you are interested please send an email at with the subject line "QCrypt2016 AIT Workshop registration".

UPDATE 09/07/16: due to problems with our mail server system with this specific alias, please send emails also to . Sorry for the inconvenience.

The AIT team will be present throughout the whole conference. Feel free to ask any questions about the workshop, the software, configuration issues and further development and possibilities.


The workshop will cover:

  • History of the QKD post processing software: This short chapter outlines the major events which mark the development of the software. We show where and how the software was already used before reaching its current state.
  • QKD post processing primitives: We present a theoretic overview of sifting, error estimation, information reconciliation, and privacy amplification. Another issue in this context is the need for an authentic channel for running QKD post processing, and we explain our delayed authentication model to this end.
  • Architecture: We present the design of the software. Keywords at this stage are: monolithic or loose coupling, centralized or distributed, performance or flexibility and extensibility. Central to the design is the concept of a “QKD module” which operates on a stream of key data passing through. We take a look on the possibilities of consecutive series of QKD modules forming a “QKD pipeline”. In this section we show how these translate into decisions that sum up to pros and cons of the current software implementation.
  • Management: An underestimated but major part of QKD post processing is administration. We go into details beyond starting and stopping a QKD pipeline. As this system is an orchestration of parallel and distributed entities which are sometimes running with hard time constraints in the order of magnitude of milliseconds (and some even of nanoseconds) on a 24/7 basis, ease of management is a central concern. After we discuss the basic configuration mechanisms, we demonstrate the starting and stopping of QKD pipelines. The software relies only on open standards on how to interact with each QKD module at runtime. Therefore any QKD module can be observed (e.g. current QBER or bps) and tweaked in real-time during processing of key material utilizing popular programming languages, even including BASH.
  • Modules: here we discuss the core open source QKD modules like qkd-sifting-bb84, qkd-cascade, etc. These are accompanied by specialized QKD modules dedicated to pipeline structure (like qkd-resize, qkd-demux), development (like qkd-cat, qkd-tee, qkd-throttle, qkd-drop, qkd-reorder), integration (qkd-enkey, qkd-dekey) and QKD analysis (qkd-statistics).
  • Tools: In order to develop, test, observe and analyze the system we also offer a set of tools. These range from command line tools like qkd-view to get a snapshot of all QKD related entities on the current machine or qkd-key-gen to create a pair of keystreams up to tools with a graphical user interface like qkd-simulator which simulates a quantum channel and produces “correlated qubits”.

If there is any time left, we will also discuss latest additions to the source code like parallelization and key synchronization. These recent developments enhance the software further by letting you run several concurrent QKD modules instances, like error correction, right out of the box.

We offer an accompanying step-by-step example illustrating how to create a module and how to integrate your own code into a QKD pipeline.

Virtual Machines

The AIT QKD R10 QKD Software runs on top of Debian and Ubuntu derivatives. We are provding a Virtual Box image for you to download. Please download VirtualBox for your operating system and install the AIT QKD R10 VM appliance. It is recommended that you bring your laptop with the prerequisites already installed to the workshop to get most out of what's provided and to play around with the software.

The VirtualBox image contains a Debian 8.5 installation with the current AIT QKD R10 develop version (v9.9999.8) along with an example how to implement an arbitrary algorithm as a AIT QKD post processing module.

The VirtualBox image can be downloaded here: AIT QKD R10. Beware: this is about 3.5GB.

Update 7th Sep. 2016: uploaded a new version of the Virtual Machine.

In order to access the download area of our server you'll need:

user: ait
pass: ait

The user credentials inside this Debian 8.5 VM installation is:

user: qkd
pass: qkd

The user is a sudoer.

The downloaded OVA file is an VM Applicance file. You can import this appliance throughout the VirtualBox menu:

Please advice a sufficient memory to the VM: 2048 MB or even 4096 MB.

... and the machine should utilize at least 2 CPU cores.

QKD Algorithm example

We added the tarball of the qkd-algorithm example on this site as well. If you do have a current installation of the AIT QKD R10 (develop version!) then feel free to download, extract, compile and run the example. Check the accompanying README.txt for details.

Again, for our download area you'll need:

user: ait
pass: ait