OpenSSL is an open-source TLS/SSL and crypto library (https://openssl.org/). (View the original README file for OpenSSL.)
This repository contains a fork of OpenSSL that adds a key exchange protocol based on the ring learning with errors (ring-LWE) problem from the following paper:
- Joppe W. Bos, Craig Costello, Michael Naehrig, Douglas Stebila. Post-quantum key exchange for the TLS protocol from the ring learning with errors problem. In Proc. IEEE Symposium on Security and Privacy (S&P) 2015, pp. 553-570. IEEE, May 2015. DOI:10.1109/SP.2015.40, Eprint http://eprint.iacr.org/2014/599.
This repository is no longer being updated. The ring-LWE key exchange code has been incorporated into the Open Quantum Safe project. Open Quantum Safe consists of two portions:
- liboqs, which contains a variety of post-quantum algorithms, including the ring-LWE algorithm from this paper
- a fork of OpenSSL (open-quantum-safe/openssl), which adds quantum-safe cryptographic algorithms and ciphersuites via liboqs
If you are interested in an integration of post-quantum key exchange algorithms into OpenSSL, please check out open-quantum-safe/openssl.
The modifications in this repository for adding ring-LWE-based ciphersuite appear only on the OpenSSL_1_0_1-stable branch.
Note this implementation does not change order of signature in TLS handshake as needed for provable security (see Section 5.1 of the eprint).
All modifications in the dstebila/openssl-rlwekex
repository are released under the same terms as OpenSSL, namely as described in the file LICENSE.