Skip to content
Code written during and in preparation for the First Pan-European Quantum Hackathon November 5-6 2019, organized by RIPE
C Shell Python Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode ubuntu fixes Nov 12, 2019
doc Fix KQD typos Nov 13, 2019
figures Update figures Nov 14, 2019
.gitignore
LICENSE Initial commit Oct 30, 2019
Makefile Add engine to filenames Nov 13, 2019
README.md Fix KQD typos Nov 13, 2019
_config.yml Attempt Google Analytics Nov 13, 2019
certificate_openssl.cnf Load engine Nov 7, 2019
check_tshark.py Tidy up scripts Nov 11, 2019
client_openssl.cnf Add engine to filenames Nov 13, 2019
qkd_api.h Consistent function naming Nov 11, 2019
qkd_api_common.c Fix include for ubuntu Nov 12, 2019
qkd_api_mock.c Fix include Nov 12, 2019
qkd_debug.c Get rid of fatal functions that are no longer used Nov 11, 2019
qkd_debug.h Get rid of fatal functions that are no longer used Nov 11, 2019
qkd_engine_client.c Add engine to filenames Nov 13, 2019
qkd_engine_common.c Add engine to filenames Nov 13, 2019
qkd_engine_common.h Fix KQD typos Nov 13, 2019
qkd_engine_server.c Add engine to filenames Nov 13, 2019
run_client.sh Use _ instead of - in file names Nov 11, 2019
run_mock_test.sh Add engine to filenames Nov 13, 2019
server_openssl.cnf Add engine to filenames Nov 13, 2019
set_platform_dependent_variables.sh ubuntu fixes Nov 12, 2019
start_server.sh Use _ instead of - in file names Nov 11, 2019
start_tshark.sh ubuntu fixes Nov 12, 2019
stop_openssl.sh Tidy up scripts Nov 11, 2019
stop_server.sh Tidy up scripts Nov 11, 2019
stop_tshark.sh Use _ instead of - in file names Nov 11, 2019

README.md

The pan-European quantum Internet hackathon

On 5 and 6 November 2019 I (Bruno Rijsman) took part in the Pan-European Quantum Internet Hackathon organized by RIPE labs.

Pan European Quantum Hackathon Logo

Participants from six geographically distributed locations (Delft, Dublin, Geneva, Padua, Paris, and Sarajevo) formed teams that worked on various projects related to the Quantum Internet.

I participated in Delft where the hackathon was hosted by QuTech, a world-leading quantum technology research and development office within the Delft University of Technology.

The OpenSSL integration challenge

In Delft, I joined Yvo Keuter and Tim Janssen to form a team working on one of the challenges suggested by the hackathon organizers, namely the OpenSSL integration challenge.

This challenge was developed by Wojciech Kozlowski, a postdoctoral researcher at QuTech and one of the organizers of the Delft hackathon. He is also the main author of the Architectural Principles of the Quantum Internet document that is being developed in the Quantum Internet Research Group (QIRG) in the Internet Research Task Force (IRTF).

OpenSSL Logo

The OpenSSL integration challenge consists of two parts:

  1. Enhance OpenSSL to be able to use Quantum Key Distribution (QKD) as a key agreement protocol. OpenSSL is an open source cryptography library that implements the Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols. OpenSSL is widely used in Internet applications such as web browsers and web servers.

  2. Implement a specific quantum key distribution protocol, namely the Bennett and Brassard 1984 (BB84) protocol, on top of the SimulaQron quantum network simulator.

The end-goal of the challenge is to use an off-the-shelf browser (e.g. Chrome) and connect it to a secure HTTPS website hosted on an off-the-shelf web server (e.g. Apache), while using the BB84 quantum key distribution algorithm as the key agreement protocol (running a SimulaQron simulated quantum network), instead of the classical Diffie-Hellman protocol that is normally used in classical networks.

The following figure shows what was actually achieved soon after the end of the hackathon (see part 4 for more details). At some time in the future I will replace the "mock QKD" implementation with a "real" implementation of BB84 QKD and update this report to document the results (I put "real" in quotes because it will run on a simulated quantum network using SimulaQron).

Architecture using engines and mock QKD

Structure of this report

In this report I describe how we achieved the goals set forth by the OpenSSL integration challenge.

The report consists of multiple parts (if you are already familiar with classical cryptography and quantum cryptography you probably want to skip ahead to part 4 which describes the actual implementation):

At some point in the future, I also plan to implement BB84 on top of SimulaQron and add a part 5 to this report to document that work.

You can’t perform that action at this time.