Ergonomic implementation of FLOE: Fast Lightweight Online Encryption
github.com
0
Upvotes
FLOE is a misuse-resistant nonce-based online authenticated encryption scheme for the encryption of very large data sets.
fast-floe is Rust implementation of FLOE that provides several ergonomic misuse-resistant APIs for working with FLOE messages, ordered below from simplest (and more high-level) to more advanced (and low-level).
| Need | API | Input |
|---|---|---|
| Encrypt or decrypt bytes already in memory | encrypt, decrypt |
One-shot complete message |
Process a file, socket, or std::io adapter |
fast_floe::io |
Read or Write |
| Read selected authenticated ranges | fast_floe::random_access |
Read + Seek ciphertext |
| Exchange segments, possibly out-of-order | fast_floe::online |
Streaming data |
| Process segments manually or in parallel | fast_floe::low_level |
Experts needing control |
You're probably familiar with STREAM/nOAE from Hoang et al), and FLOE is an nOAE variant with some additional properties that STREAM-like constructions are lacking, like key-commitment and a formal treatment of random-access.