#!/usr/bin/sage -python # -*- coding: latin-1 -*- load("../framework/instance_gen.sage") verbosity = 0 report_every = None """ Example Uncomment the following to get the detailed computation """ # verbosity = 2 # report_every = 50 for params in ['kem/sntrup653', 'kem/sntrup761', 'kem/sntrup857']: logging("Set of parameters: " + params) if params == 'kem/sntrup653': n = 653 m = n q = 4621 w = 288 elif params == 'kem/sntrup761': n = 761 m = n q = 4591 w = 286 elif params == 'kem/sntrup857': n = 857 m = n q = 5167 w = 322 elif params == 'kem/ntrulpr653': n = 653 m = n q = 4621 w = 252 elif params == 'kem/ntrulpr761': n = 761 m = n q = 4591 w = 250 elif params == 'kem/ntrulpr857': n = 857 m = n q = 5167 w = 281 D_f = {-1: RR(w / n / 2), 0: 1 - RR(w / n), 1: RR(w / n / 2)} D_g = {-1: RR(1 / 3), 0: RR(1 / 3), 1: RR(1 / 3)} only_predictions = True A, b, dbdd = initialize_NTRU_prime_instance(DBDD_predict_diag, n, q, m, w, D_f, D_g, verbosity=verbosity) if report_every is not None: dbdd.integrate_q_vectors(q, report_every=report_every) else: dbdd.integrate_q_vectors(q) (beta, _) = dbdd.estimate_attack() logging("Attack without hints: %3.2f bikz" % beta, style="HEADER") A, b, dbdd = initialize_NTRU_prime_instance(DBDD_predict, n, q, m, w, D_f, D_g, verbosity=verbosity) v = vec([1 if i < m else 0 for i in range(m + n)]) dbdd.integrate_modular_hint(v, w, 2, True) if report_every is not None: dbdd.integrate_q_vectors(q, report_every=report_every) else: dbdd.integrate_q_vectors(q) (beta, _) = dbdd.estimate_attack() logging("Attack with hints: %3.2f bikz" % beta, style="HEADER")