|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #!/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")
|