Asynchronous Ratcheting Tree (ART) is a protocol for end-to-end encrypted group messaging. It aims to provide scalable group messaging while maintaining strong security guarantees.
This repository contains the implementation used for the results in our ART paper . It contains implementations of ART and a pairwise Diffie-Hellman based ratcheting protocol which we used for comparison.
The implementation in this repository is purely academic example code, and should not be used in any production or security-critical system.
RequirementsAsynchronous Ratcheting Trees requires or works with:
Java 1.8. Apache Maven 1.8. Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files ( http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html ). Apache Thrift 0.10.0 (just for rebuilding the Thrift definitions). Building and executingThe Makefile in this directory will compile our source and then run the benchmarks; simply run
make run The TeamThe team who worked on the Asynchronous Ratcheting Tree paper are as follows:
From Facebook:
Jon MillicanFrom Oxford University:
Katriel Cohn-Gordon Cas Cremers Luke Garratt Kevin MilnerWe are grateful to our collaborators from Oxford University for the considerable time and expertise that they put in to this paper, and into the formal proofs of the ART protocol.
ContributingSee the CONTRIBUTING file for how to help out.
LicenseAsynchronous Ratcheting Tree is CC-BY-NC-licensed.