This is the repository for the source code used in a series of quantum key distribution experiments at the National University of Singapore, from key generation in form time-stamped detector data to error correction and privacy amplification.
The code was designed to work with entanglement-based pair detection schemes, either implementing a BB84-type/BBM92 protocol, or an Ekert-91 protocol, which we (Centre for Quantum Technologies) used for our implementations (1,2) of quantum key ditribution systems.
The code is mostly ANSI C, typically compiled with gcc (4.2 or 4.3, but earlier versions also work). We have run the suite mostly on Linux machines running various distros, haven't tested out anything else because our USB hardware has at the moment only a linux driver.
Discussions on implementation details/problems/leaks are welcome, and should ultimately lead to an openly available implementation of a QKD scheme which hopefully has less open security problems than implementations using proprietary code. We believe that one of the main attack scheme for a quantum key distribution system lies in the software and communication implementation, and would encourage people to try to break it.
We eventually will open hardware specs and detailled designs as well, but please bear with us since this publicization is sort of a side project. Our internal documentation is at the moment somewhat chaotic. But if you have any specific questions, do not hesitate to get in touch with us directly.
In an initial phase, have deposited code which has been running on several linux systems in our labs, and definitions of file formats and hardware.
The currently recommended way of installing it is to draw the complete source tree from the source repository and compile the different elements following the readme instructions. The code as used in (1) and for a demo at the 24C3 conference is currently available as a tarball in the download area here as qcrypto_20071229.tgz. Consolidation for our internal code branches is in progress; the inclusion of all the gui and other components for an implementation of an Ekert91 protocol is not yet complete.
If you are interested in joining the project, please send an email to the project owner at gmail.com.
News
We currently have a visitor, Vadim Makarov from Norway in our group who had an excllent idea how to break the QKD system. It looks like we are a bit in trouble with his attack, and we may get completely compromised. We will probably show up at DEFCON 17 with this scheme, and the hacking hardware if we manage to get together enough manpower. We'll join the quantum lounge there organized by the guys from NIST.
We may need some help to get the key out of the 'classical' communication and the outcome of Vadim's physical attack hardware - if you are interested, contact us one way or another, we'd appreciate some help.
References
Our published work can be found under
(1) I. Marckic, A. Lamas-Linares, and C. Kurtsiefer, Appl. Phys. Lett. 89, 101122 (2006), earlier version at arXiv:quant-ph/0606072v2.
(2) Alexander Ling, Matthew P. Peloso, Ivan Marcikic, Valerio Scarani, Antia Lamas-Linares, Christian Kurtsiefer: Experimental quantum key distribution based on a Bell test, Phys. Rev. A. 78, 020301 (R) (2008) http://arxiv.org/abs/0805.3629.
(3) Matthew P. Peloso, Ilja Gerhardt, Caleb Ho, A. Lamas-Linares, C. Kurtsiefer: Daylight operation of a free space, entanglement-based quantum key distribution system. New Journal of Physics *11*, 045007 (2009).
(4) Caleb Ho, A. Lamas-Linares, and C. Kurtsiefer: Clock synchronization by remote detection of correlated photon pairs. New Journal of Physics 11, 045011 (2009).
A notoriously outdated web page of the QKD activities in the SG group can be found under http://www.qolah.org/research/crypto/crypto.html