Division trail search¶
- class MilpDivisionTrailModel(cipher)¶
Bases:
objectGiven a number of rounds of a chosen cipher and a chosen output bit, this module produces a model that can either: - obtain the ANF of this chosen output bit, - find the degree of this ANF, - or check the presence or absence of a specified monomial.
This module can only be used if the user possesses a Gurobi license.
- add_and_constraints(component)¶
- add_constraints(predecessors, input_id_link_needed, block_needed)¶
- add_linear_layer_constraints(component)¶
- add_modadd_constraints(component)¶
- add_not_constraints(component)¶
- add_sbox_constraints(component)¶
- add_xor_constraints(component)¶
- build_generic_model_for_specific_output_bit(output_bit_index_ciphertext, fixed_degree=None, chosen_cipher_output=None)¶
- build_gurobi_model()¶
- check_presence_of_particular_monomial_in_all_anf(monomial, fixed_degree=None, chosen_cipher_output=None)¶
- check_presence_of_particular_monomial_in_specific_anf(monomial, output_bit_index, fixed_degree=None, chosen_cipher_output=None)¶
- create_copies(nb_copies, var_to_copy)¶
- create_copies_for_linear_layer(binary_matrix, input_vars_concat)¶
- create_gurobi_vars_from_all_components(predecessors, input_id_link_needed, block_needed)¶
- create_gurobi_vars_sbox(component, input_vars_concat)¶
- find_anf_of_specific_output_bit(output_bit_index, fixed_degree=None, chosen_cipher_output=None)¶
- find_copy_indexes(input_bit_positions)¶
- find_degree_of_all_output_bits(chosen_cipher_output=None)¶
- find_degree_of_specific_output_bit(output_bit_index, chosen_cipher_output=None, cube_index=[])¶
- find_index_second_input()¶
- get_all_variables_as_list()¶
- get_anfs_from_sbox(component)¶
- get_cipher_output_component_id()¶
- get_input_vars(component)¶
- get_monomial_occurences(component)¶
- get_output_bit_index_previous_component(output_bit_index_ciphertext, chosen_cipher_output=None)¶
- get_output_vars(component)¶
- get_solutions()¶
- get_unused_variables()¶
- get_where_component_is_used(predecessors, input_id_link_needed, block_needed)¶
- optimize_model()¶
- order_predecessors(used_predecessors)¶
- re_init()¶
- set_as_used_variables(variables)¶
- set_unused_variables_to_zero()¶