sboxU.apn package
This module contains tools to investigate APN functions specifically.
Subpackages
Submodules
sboxU.apn.cython_functions module
- sboxU.apn.cython_functions.apn_ea_mugshot()
- sboxU.apn.cython_functions.apn_ea_mugshot_from_spectra()
- sboxU.apn.cython_functions.automorphisms_from_ortho_derivative()
- sboxU.apn.cython_functions.ccz_equivalent_quadratic_function()
- sboxU.apn.cython_functions.ea_mappings_from_ortho_derivative()
Returns all the EL mappings L such that graph(s) = L(graph(s_prime)) + c, for some constant c that is not returned. Works only for quadratic APN functions since it is based on the ortho-derivative.
- Parameters:
s – an S-boxable object corresponding to a quadratic APN function
s_prime – an S-boxable object corresponding to a quadratic APN function
n_threads – the number of threads to use. Defaults to MAX_N_THREADS.
- Returns:
A list of F2AffineMaps L_i such that the graph of s is, up to a constant addition, the same as the image of the graph of s_prime under the linear permutation L_i.
- sboxU.apn.cython_functions.enumerate_ea_classes_apn_quadratic()
- sboxU.apn.cython_functions.get_WalshZeroesSpaces_quadratic_apn()
- sboxU.apn.cython_functions.non_trivial_sn()
- sboxU.apn.cython_functions.ortho_derivative()
Returns the ortho-derivative of the function corresponding to the S_boxable object q, as defined e.g. in [TiT:CanCouPer22].
- Parameters:
q – an S_boxable object corresponding to an APN function.
- Returns:
An S_box instance containing the ortho-derivative of q. If the ortho-derivative of q is actually not defined (e.g. if it is not a quadratic APN), then returns an empty S_box.
- sboxU.apn.cython_functions.ortho_integral()
Returns the ortho-integral of the function corresponding to the S_boxable object s, as defined in a paper that is yet to be put anywhere (work in progress).
- Parameters:
s – an S_boxable object.
- Returns:
An S_box instance containing the ortho-integral of s, that is, to a quadratic APN function that has s as its ortho-derivative. If there is no such function, returns the empty S-box.
- sboxU.apn.cython_functions.sigma_multiplicities()
sboxU.apn.database module
- class sboxU.apn.database.APNFunctions(db_file)[source]
Bases:
FunctionsDBThis class is expected to be bundled with a literal TinySQL database file called “apn_functions.db”, and allows an easy interaction with it.
It builds upon the FunctionDB class, and contains additional logic to handle the specifics of APN functions, and in particular of their CCZ-equivalence class. Here, “functions” should be thought of much more as “extended affine equivalence class representative” rather than function.
This class provides another table containing the bases of all the spaces of dimension n contained with the Walsh zeroes of a function. In order to both save space and store the structure of a CCZ-equivalence, each APN function is stored along with the identifier of the Walsh spaces of its CCZ-equivalence class, and the FastLinearMapping that must be applied to it to obtain its own Walsh Zeroes.
- class sboxU.apn.database.APNQuadraticFunctions_ccz_only(db_file)[source]
Bases:
FunctionsDBThis class is expected to be bundled with a literal TinySQL database file called “apn_functions.db”, and allows an easy interaction with it.
It builds upon the FunctionDB class, and contains additional logic to handle the specifics of APN functions, and in particular of their CCZ-equivalence class. Here, “functions” should be thought of much more as “extended affine equivalence class representative” rather than function.
This class is a compact version of APNFunctions to use when there are too many functions when we include EA-classes.