2 releases

0.1.1 Jul 5, 2021
0.1.0 Jul 4, 2021

#389 in #crypto

GPL-2.0-or-later OR LGPL-2.0-or-later

16KB
133 lines

All-Or-Nothing-Transform

This crate is a very early stage of development. It is intended to implement the "Package Transform" (All-Or-Nothing-Transform) as described by Ron L. Rivest in his paper "Chaffing and Winnowing: Confidentiality without Encryption"

Some relevant wikipedia links:

Currently Implemented

  • encode and decode using SHA-1 on a message stored in memory

Future Direction

  • Add high-level routines to encode/decode files
  • Add option to output public parameter at start of message/stream
  • Symmetric option to read that during decoding
  • Generic version that works with any hash routine that implements Digest
  • Add support for different ways of combining hash parameters (currently concatenated, implement xor)
  • Add support for turning encryption algorithms into digest functions (eg, AES-CBC)
  • Write inner/outer (en/de)coding algorithms as traits implementing Digest(?)

Dependencies

~705KB
~14K SLoC