/ratcheted

Performance Survey of Several Ratcheted Key-Agreement and Messaging Protocols

Primary LanguageGoMIT LicenseMIT

ratcheted

ratcheted implements and benchmarks various novel forward-secure key agreement and messaging protocols and aims to provide insight into the performance aspects of the different protocols. The code base is structure as a library as to enable integration in other projects.

For the ratcheted library reference, see the documentation.

Requirements

  • go (with set $GOPATH)
  • dep
  • pbc (Standford Pairing-Based Cryptography Library)

Installation

$ go get -u github.com/qantik/ratcheted
$ cd ${GOPATH}/src/github.com/qantik/ratcheted

# On Linux make sure that the pbc libary path is set.
# export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/lib
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib 

$ dep ensure
$ go test -v ./...

Benchmarks

The bench directory within each package contains the runtime, message and state size benchmarks which can be run by simply executing the main.go file.

Project Structure