Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Reference implementation of Bodo Möller's "A Public-Key Encryption Scheme with Pseudo- Random Ciphertexts"

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 .gitignore
Octocat-spinner-32 Makefile
Octocat-spinner-32 curves.c
Octocat-spinner-32 curves.h
Octocat-spinner-32 kat-o.c
Octocat-spinner-32 katdata-ref.c
Octocat-spinner-32 katdata.h
Octocat-spinner-32 mref-c.h
Octocat-spinner-32 mref-o.c
Octocat-spinner-32 mref-o.h

This is a reference implementation of the key encapsulation mechanism from Bodo Möller's paper "A Public-Key Encryption Scheme with Pseudo- Random Ciphertexts" (ESORICS 2004). To the best of my knowledge this cryptosystem has never been implemented before. I have implemented only the key encapsulation mechanism, not the full hybrid cryptosystem. There are other slight deviations from the paper; see comments in the header files.

There are actually two reference implementations, based on different libraries. The -c files use Crypto++ and the -o files use OpenSSL. make check tests them against each other.

CC0: To the extent possible under law, I, Zachary Weinberg, do hereby waive all copyright and related or neighboring rights to this reference implementation.

Something went wrong with that request. Please try again.