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.