Generate inequalities for large sboxes

The logic minimizer espresso is required for this module. It is already installed in the docker.

delete_dictionary_that_contains_inequalities_for_large_sboxes(analysis='differential')
generate_espresso_input(input_size, output_size, value, valid_transformations_matrix)
generate_product_of_sum_from_espresso(sbox, analysis='differential')
get_dictionary_that_contains_inequalities_for_large_sboxes(analysis='differential')

Require Espresso to be installed.

It returns a dictionary containing the minimized set of inequalities representing the DDT of a Sbox, using the method described in https://tosc.iacr.org/index.php/ToSC/article/view/805/759:

  • first, the DDT is separated into multiple tables so that each pb-DDT table only contains entries with the same probability pb

  • then Espresso is used to compute the minimum product-of-sum representation of each pb-DDT, seen as a boolean function

update_dictionary_that_contains_inequalities_for_large_sboxes(sbox, analysis='differential')