8 #include <botan/workfactor.h>
26 const double log2_e = std::log2(std::exp(1));
27 const double log_p = bits / log2_e;
29 const double est = 1.92 * std::pow(log_p * std::log(log_p) * std::log(log_p), 1.0/3.0);
31 return static_cast<size_t>(std::log2(k) + log2_e * est);
48 const size_t MIN_WORKFACTOR = 64;
49 const double log2_e = std::log2(std::exp(1));
50 const double log_p = bits / log2_e;
52 const double strength = 1.92 * std::pow(log_p, 1.0/3.0) * std::pow(std::log(log_p), 2.0/3.0);
54 return 2 * std::max<size_t>(MIN_WORKFACTOR,
static_cast<size_t>(log2_e * strength));
size_t dl_exponent_size(size_t bits)
size_t dl_work_factor(size_t bits)
size_t ecp_work_factor(size_t bits)
size_t if_work_factor(size_t bits)