Joakim Argillander

Projects

My work typically spans instrumentation and software/hardware tooling for photonics and quantum information experiments. The projects I work on are often a mix of hardware and software, where I take a special interest in engineering 'nice' solutions for practical lab challenges. This can include everything from designing custom electronics and firmware, to building data analysis pipelines and tools for automating measurements and experiments.

Areas I build in

I have experience building in a variety of areas, and I consider myself a generalist when it comes to the engineering side of my research. The projects I work on often require a mix of skills and knowledge across different domains, and I enjoy the challenge of learning new things and applying them to solve problems in the lab. The following is a non-exhaustive list of areas I have experience building in:

Electronics & embedded

Photonics & quantum optics

Data analysis

Miscellaneous

Selected projects

A few representative efforts where I've contributed experimentally and/or on the engineering side. This is by no means an exhaustive list of my work, but it gives a flavor of the types of projects I've been involved in. More projects will be added here over time.

Multi-channel pulse generator for quantum optics experiments - Pulsar 6A4D

A custom-built multi-channel pulse generator based on a Zynq-7000 FPGA, with a custom analog front-end for generating high-speed electrical pulses to drive electro-optical modulators in photonic quantum information experiments. The system is designed to output a voltage of more than V_pi of LiNb03-modulators, with sub-nanosecond rise time, and a maximum repetition rate of 50 MHz. The system is controlled via a Python API, features a GUI for manual control, and is the core pulse generation system for several of our quantum communication experiments.

Some of the features include:

Pulsar is a product of a collaboration between myself and my colleague and co-developer Martin Clason.

LinQKD Chat - A one-time-pad end-to-end encrypted chat application

LinQKD Chat is a secure messaging application that utilizes a one-time-pad encryption scheme for end-to-end security. It is a chat application that allows users to exchange messages securely using a one-time-pad encryption scheme, where the encryption keys are fetched from a quantum key distribution (QKD) system. The application supports image attachments, file attachments, and mimicks the user experience of popular messaging apps, while providing the security guarantees of quantum cryptography.

The application consists of three parts, a Python-based client that hosts a chat web-GUI, with a backend that handles key management and encryption/decryption of messages. The client interfaces with the key management system (KMS) of a QKD system using the ETSI014 standard, fetching tuples of (key ID, key material). The key is then used to encrypt messages using a one-time-pad scheme, and the key ID is sent along with the message to allow the recipient to fetch the correct key for decryption.

Two clients are connected using Websockets, with a small relay sever that forwards messages between them. The relay server is designed to be untrusted, and does not have access to the encryption keys or the plaintext messages. The relay server effectively joins Alice's websocket to Bob's websocket, and also handles small tasks such as broadcasting "user-joined" and "user-left" messages to the other party.

LinQKD Chat is a demonstration of how quantum key distribution can be integrated into real-world applications. It also serves as a testbed for further exploring real-time key management, and key-requests at high message rates.