Skip to content

diogoftm/OTKeys

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OTKeys

This repository implements a string Oblivious Transfer aimed to be used in the application layer of Quantum Key Distribution System that supports oblivious keys generation. This library is currently mainly being used by QMP-SPDZ for Secure Multiparty Computation (SMC).

For an overview of key-based OT protocols, check the following two references:

In the main branch there's the version of the protocol that uses oblivious key retrieved from a quantum Key Management System (KMS) following the ETSI QKD 014 standard.

In the etsi_004 branch there's the version of the protocol that uses oblivious key retrieved from a quantum Key Management System (KMS) following the ETSI QKD 004 standard from this reference implementation.

In simulated_ok_gen a version using a local key generator simulator can be found.

Authors

Adapted by Diogo Matos (Instituto de Telecomunições - IT) from the work done by Mariana Gama and Manuel B Santos (University of Lisbon - IST).

Implementation

This implementation is divided in two different programs, one for the sender and another for the receiver. Each of the programs contains a structure for storing the relevant data for each party, as well as a set of functions. These functions are called from a main program and perform the local operations to be done by each party.

The universal hash function is done following the strategy presented in this blog

In src/<format>/main_*.c, there is a test execution of the sender and receiver programs, with the outputs being printed at the end.

Compilation & test

First, make sure to set the location of the certificates for your SAE and the KMS URI in the ENV.sh file.

A simulated KMS that can be found in this repository.

Then, setup the environment and compile:

source ENV.sh
make

To run the test executable:

./uirotk_test

The tet program might not works out of the box because of the SAE IDs set previously, so make sure that all certificates are set and that they match the specificated SAE IDs in src/ui_rotk/main_uirotk, if not replace them with the right ones and compile it again.

About

C/C++ OT keys implementation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 95.0%
  • Makefile 4.1%
  • Shell 0.9%