Software to search linear and differential trails for permutations/ciphers based on a column parity mixer
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Doxyfile
Exception.h
Makefile
MyTree.cpp
MyTree.h
Permutation.cpp
Permutation.h
README.md
State.cpp
State.h
Trail.cpp
Trail.h
TrailExtension.cpp
TrailExtension.h
Tree.h
Units.cpp
Units.h
bruteforce.cpp
distribution.cpp
main.cpp

README.md

Column Parity Mixer trail search

This repository contains software to search truncated linear and differential trails for permutations/ciphers based on a column parity mixer, as is described in this this academic research paper. It is currently instantiated with Mixifer.

Compiling

Compiling requires a reasonably up-to-date C++ compiler that can deal with C++14. Just type 'make' to compile.

What's in there

main.cpp contains the main function, which is currently empty. Uncomment one of the functions to test them. distribution.cpp and bruteforce.cpp are standalone tools that have been used at some point.

The software is loosely based on an earlier version of code that is now in the KeccakTools repository. However, a lot has been modified to be able to deal with truncated trails and strong alignment.

Note that the code is not very polished/clean. It also still contains some old stuff that is not even touched/working anymore. Sorry about that.

The code contains several parts that are specific to the case of m=4, i.e. a state with 4 rows. So only changing Permutation.cpp is not going to be enough to try this on a different cipher. Although this was the goal originally, optimization were possible for this particular case that were deemed necessary to be able to cover a larger search space.