estimator.lwe_guess.guess_composition#

class estimator.lwe_guess.guess_composition(f)[source]#

Create a generic composition of guessing and f.

__call__(params, log_level=5, **kwds)[source]#

Guess components of a secret then call f.

Parameters

params – LWE parameters.

EXAMPLE:

>>> from estimator import *
>>> from estimator.lwe_guess import guess_composition
>>> guess_composition(LWE.primal_usvp)(Kyber512.updated(Xs=ND.SparseTernary(512, 16)))
rop: ≈2^99.4, red: ≈2^99.4, δ: 1.008705, β: 113, d: 421, tag: usvp, ↻: ≈2^37.5, ζ: 265, |S|: 1, ...

Compare:

>>> LWE.primal_hybrid(Kyber512.updated(Xs=ND.SparseTernary(512, 16)))
rop: ≈2^85.8, red: ≈2^84.8, svp: ≈2^84.8, β: 105, η: 2, ζ: 366, |S|: ≈2^85.1, d: 315, prob: ≈2^-23.4, ...

Methods

__init__(f)

Create a generic composition of guessing and f.

dense_solve(f, params[, log_level])

Guess components of a dense secret then call f.

gammaf(n, h, zeta, base[, g])

Find optimal hamming weight for sparse guessing.

sparse_solve(f, params[, log_level])

Guess components of a sparse secret then call f.