sboxUv2.ccz package
This module contains tools to test forms of equivalence that are particular cases of CCZ-equivalence, including CCZ-equivalence itself.
Subpackages
Submodules
sboxUv2.ccz.cython_functions module
- sboxUv2.ccz.cython_functions.ccz_equivalent_function(s, basis)
- sboxUv2.ccz.cython_functions.enumerate_ea_classes(s)
- sboxUv2.ccz.cython_functions.thickness_spectrum(s, spaces=None)
Computes the thickness spectrum of the S_boxable object s.
The thickness spectrum was introduced in [FFA:CanPer19] and is an extended-affine equivalence class invariant. Its computation requires the knowledge of the vector spaces of a specific dimension contained in the so-called Walsh zeroes of the function, meaning that this function relies on the vector space search algorithm from [AC:BonPerTia19].
- Parameters:
s (-) – an S_boxable object.
spaces (-) – if the Walsh zeroes of s are already known, then it is possible to pass the corresponding WalshZeroesSpaces object as a facultative argument to avoid recomputing it.
- Returns:
A Spectrum instance such where the entry with key k is the number of spaces of dimension s.get_input_length() contained in the Walsh zeroes of s that have an intersection with V that is of dimension k.