Skip to content
/ manx_ae Public

Implementation of the Manx authenticated encryption modes

License

Notifications You must be signed in to change notification settings

aadomn/manx_ae

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Implementation of the Manx AE modes

What is Manx?

Manx is a family of two authenticated encryption modes, namely Manx1 and Manx2, finely tuned for very short inputs. More precisely, when instantiated with an n-bit block cipher, the total input length (i.e. the nonce, associated data and message) has to be less than 2n. Both modes require at most two cipher calls only. For more details, see the paper Authenticated Encryption for Very Short Inputs by Kazuhiko Minematsu, Junji Shikata and myself published in the CT-RSA 2023 proceedings.

Cipher-agnostic implementations

The Manx implementations provided in this repository are cipher-agnostic in the sense that the internal functions related to the underlying block cipher (i.e. key expansion and block encryption/decryption) are passed as arguments rather than being hardcoded. This way, it is easy to instantiate Manx with your favorite block cipher dynamically for tests/benchmarks purposes. However, note that the block cipher implementation should follow some requirements, see the manx/README.md file for more details.

Structure of the repository

The repository structure is as follows:

manx_ae
│
├───manx
│   
├───manx-aes128
│   ├───armv6m
│   ├───armv7m
│   └───avr8
│   └───x86_64
│   
├───manx-chaskey12
│   ├───armv6m
│   ├───armv7m
│   └───avr8
│   
├───manx-gift128
│   ├───armv6m
│   ├───armv7m
│   └───avr8

The manx folder contains the generic implementations of Manx1 and Manx2: instructions on how to plug your favorite block cipher are given in the folder-specific README. The manx-aes128 folder contains implementations of Manx1 and Manx2 instantiated with different AES implementations listed by platform. See the folder-specific README files for more information.

License

The code related to the Manx AE modes released in this repository is under CC0 license. However, some block cipher implementations included in this repository might be under other licenses. If so, a folder-specific LICENSE file will be included. For instance, the AES implementations on AVR are based on the work from B. Poettering which is under the GNU General Public License.

Patent-free notice

The authors are not aware of any patent convering the Manx authenticated modes and do not intend to assert any patent claims in the future to promote wider adoption.

About

Implementation of the Manx authenticated encryption modes

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published