malb / lattice-estimator

An attempt at a new LWE estimator
210 stars 46 forks source link

RuntimeError: β = 1050 > d = 1049 for n=1030, q=2^64 #95

Open ElenaKirshanova opened 7 months ago

ElenaKirshanova commented 7 months ago

Executing

params=LWE.Parameters(n=1030, q=2^64, Xs=ND.UniformMod(2), Xe=ND.DiscreteGaussian(stddev=3.19)) primal_usvp_cost = LWE.primal_usvp(params, red_cost_model=RC.BDGL16)

does not pass sanity_check():

RuntimeError: β = 1050 > d = 1049

Oddly, for the default red_cost_model (red_cost_model = RC.MATZOV) the issue does not appear.

Potential fix: checking inside _solve_for_d https://github.com/malb/lattice-estimator/blob/eae2fdb794eb5e1eb9dacd1ee13b62f6bdeb71b2/estimator/lwe_primal.py#L40 that the returned d is at least beta.

ElenaKirshanova commented 7 months ago

Just noticed that it can be related to https://github.com/malb/lattice-estimator/issues/87#issue-1947852243