Skip to content

LowMC/lowmc

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

LowMC implementation

This is a C++ implementation of the LowMC block cipher family. The parameters (block size, number of S-boxes in the substitution layer, number of rounds, key size) are defined in LowMC.h. Compilation requires support of C++11 features.

The files LowMC.h and LowMC.cpp contain the relevant code. test.cpp contains a short example usage.

The file determine_rounds.py contains a Python script that determines the number of rounds needed for LowMC to be secure in dependence on the other parameters: the block size n, the number of S-boxes per layer m, the log2 of the allowed data complexity d, and the key size k.

Example usage: python3 determine_rounds.py 256 63 128 128

Script for generating the matrices and and constants

The python script generate_matrices.py can be used to generate the matrices for the linear layer and the key schedule as well as the round constants. They are written to a file named matrices_and_constants.dat. This is script can provide the matrices for use in cryptanalysis. It is not needed for the reference implementation which creates the matrices and constants internally.

About

An implementation of the LowMC block cipher family.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published