#permutation #ascon

no-std ascon-core

Pure Rust implementation of the Ascon permutation

8 releases

Uses new Rust 2024

new 0.5.1 Apr 21, 2025
0.5.0 Apr 17, 2025
0.4.1 Apr 17, 2025
0.1.4 Mar 21, 2023
0.1.2 Jun 26, 2022

#394 in Cryptography

Download history 6/week @ 2025-02-03 13/week @ 2025-02-10 1/week @ 2025-02-24 4/week @ 2025-03-03 324/week @ 2025-04-14

325 downloads per month
Used in 16 crates (3 directly)

Apache-2.0 OR MIT

14KB
287 lines

Ascon permutation

Pure Rust implementation of the permutation of Ascon, a family of authenticated encryption and hashing algorithms designed to be lightweight and easy to implement.

About

Ascon is a family of lightweight algorithms built on a core permutation algorithm. These algorithms include:

  • ascon-aead: Authenticated Encryption with Associated Data
  • ascon-hash: Hash functions and extendible-output functions (XOF)
  • Pseudo-random functions (PRF) and message authentication codes (MAC)

Ascon has been selected as new standard for lightweight cryptography in the NIST Lightweight Cryptography competition, and has also been selected as the primary choice for lightweight authenticated encryption in the final portfolio of the CAESAR competition.

Configuration options

Per default, the permutation is unrolled. If this is not desired, e.g., due to space constraints, build with --cfg ascon_impl="no_unroll" switch to a more compact implementation. The performance/size impact needs to be measured per target platform, though.

Minimum Supported Rust Version

This crate requires Rust 1.85 at a minimum.

License

Licensed under either of:

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~105KB