8 releases

new 0.3.3 May 1, 2024
0.3.2 May 1, 2024
0.2.2 Apr 18, 2024
0.1.0 Apr 18, 2024

#488 in Cryptography

Download history 232/week @ 2024-04-12 92/week @ 2024-04-19 362/week @ 2024-04-26

686 downloads per month

GPL-3.0-or-later

26KB
390 lines

False Bottom: A deniable encryption scheme

False Bottom is a deniable encryption scheme.
The name “False-Bottom” alludes to well-known equipment of stage magicians, who have boxes that can be opened to appear empty or with something inside, hidden under a false bottom. This scheme is designed for the same effect, hence the name.
As such, unlike traditional encryption algorithms, False Bottom allows for the encryption and decryption of multiple messages to and from a single ciphertext.
Each addition returns a message specific key which can only be used to decrypt the correspoding message added.
Link to Technical Paper: here

Security Note: This library has not been audited. Use it at your own risk.

Usage and Documentation

Run the following command in your project directory to add this library.

cargo add false-bottom

Or alternatively, check out the crates.io to add this library to your project using the Cargo.toml file.
The documentation is available at docs.rs.

Run the examples

These are provided in the examples directory. Run them using the following command:

cargo run --example <filename>

Todo

  • Add more block sizes.
  • Add capabilities to edit and delete added messages in the ciphertext.

License

Copyright © 2024 K Shiva Kiran <shiva_kr at riseup dot net>.
This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Credits

This algorithm has been designed by Shahzad Ahmad <shahzad dot ahmad at jku dot at>.
The technical paper can be obtained here.

Dependencies

~3MB
~66K SLoC