witness_degree

cryptographic_estimators.MQEstimator.witness_degree.quadratic_system(n: int, m: int, q=None)

Returns the witness degree for a quadratic system.

Parameters:
  • n (int) – The number of variables.

  • m (int) – The number of polynomials.

  • q (Optional[int]) – The order of the finite field (default is None).

Examples

>>> from cryptographic_estimators.MQEstimator import witness_degree
>>> witness_degree.quadratic_system(10, 15)
5
>>> witness_degree.quadratic_system(10, 15, q=2)
4
>>> witness_degree.quadratic_system(15, 15, q=7)
12
cryptographic_estimators.MQEstimator.witness_degree.semi_regular_system(n: int, degrees: list[int], q=None)

Returns the witness degree for a semi-regular system.

Parameters:
  • n (int) – The number of variables.

  • degrees (list[int]) – A list of integers representing the degree of the polynomials.

  • q (int, optional) – The order of the finite field. Defaults to None.

Examples

>>> from cryptographic_estimators.MQEstimator import witness_degree
>>> witness_degree.semi_regular_system(10, [2]*15)
5
>>> witness_degree.semi_regular_system(10, [2]*15, q=2)
4