Loading .gitignore +7 −7 Changes for .gitignore: 7 added lines, 7 removed lines. Original line number Diff line number Diff line Loading @@ -2,9 +2,9 @@ lazer.h *.a *.so scripts/modified-abdlop-codegen.sage.py scripts/modified-quad-codegen.sage.py scripts/modified-quad-eval-codegen.sage.py scripts/rf-abdlop-codegen.sage.py scripts/rf-quad-codegen.sage.py scripts/rf-quad-eval-codegen.sage.py scripts/moduli.sage.py scripts/estimator/ Loading @@ -12,9 +12,9 @@ src/*.o src/lazer.c tests/encoding-test tests/modified-abdlop-test tests/modified-quad-test tests/modified-quad-many-test tests/modified-quad-eval-test tests/rf-abdlop-test tests/rf-quad-test tests/rf-quad-many-test tests/rf-quad-eval-test tests/*.h Makefile +18 −18 Changes for Makefile: 18 added lines, 18 removed lines. Original line number Diff line number Diff line Loading @@ -79,23 +79,23 @@ LAZER_SRC = \ $(LAZER_DIR)/src/urandom.c \ $(LAZER_DIR)/src/version.c \ #### lib modified-lazer #### lib rf-lazer LIB_DIR = src LIBSOURCES = \ $(LIB_DIR)/lazer.c \ $(LIB_DIR)/tools.c \ $(LIB_DIR)/encoding.c \ $(LIB_DIR)/modified-abdlop.c \ $(LIB_DIR)/modified-quad.c \ $(LIB_DIR)/modified-quad-eval.c \ $(LIB_DIR)/modified-quad-many.c \ $(LIB_DIR)/rf-abdlop.c \ $(LIB_DIR)/rf-quad.c \ $(LIB_DIR)/rf-quad-eval.c \ $(LIB_DIR)/rf-quad-many.c \ TESTS = \ tests/modified-abdlop-test \ tests/modified-quad-test \ tests/modified-quad-eval-test \ tests/modified-quad-many-test tests/rf-abdlop-test \ tests/rf-quad-test \ tests/rf-quad-eval-test \ tests/rf-quad-many-test .PHONY: lib lib-all lib-static lib-shared lib-static-all lib-shared-all Loading Loading @@ -126,9 +126,9 @@ src/hexl_shared.o: $(LAZER_DIR)/src/hexl.h $(HEXL_DIR) $(CXX) $(CPPFLAGS) $(CFLAGS) -I$(LAZER_DIR) -I$(LAZER_DIR)/src -I$(HEXL_DIR)/hexl/include -c -fPIC -o src/hexl_shared.o $(LAZER_DIR)/src/hexl.cpp src/lazer.c: { head -n33 $(LAZER_DIR)/src/lazer.c; cat src/lazer-modified.c; tail -n+34 $(LAZER_DIR)/src/lazer.c; } | sed 's/blindsig.c/stopwatch.h/' > src/lazer.c { head -n33 $(LAZER_DIR)/src/lazer.c; cat src/lazer-rf.c; tail -n+34 $(LAZER_DIR)/src/lazer.c; } | sed 's/blindsig.c/stopwatch.h/' > src/lazer.c lazer.h: $(LAZER_DIR)/src/lazer-in1.h $(LAZER_DIR)/src/lazer-in2.h src/lazer-modified.h $(LAZER_DIR)/src/moduli.h $(LAZER_DIR)/config.h lazer.h: $(LAZER_DIR)/src/lazer-in1.h $(LAZER_DIR)/src/lazer-in2.h src/lazer-rf.h $(LAZER_DIR)/src/moduli.h $(LAZER_DIR)/config.h cat $(LAZER_DIR)/src/lazer-in1.h > tmp.h echo "" >> tmp.h Loading @@ -146,7 +146,7 @@ lazer.h: $(LAZER_DIR)/src/lazer-in1.h $(LAZER_DIR)/src/lazer-in2.h src/lazer-mod echo "" >> lazer.h cat src/lazer-modified.h >> lazer.h cat src/lazer-rf.h >> lazer.h echo "" >> lazer.h cat lazer/src/moduli.h >> lazer.h Loading @@ -173,7 +173,7 @@ params-many: params-setup .PHONY: check check: $(TESTS) cd tests && ./run-modified-tests cd tests && ./run-rf-tests tests/test.o: $(LAZER_DIR)/tests/test.c $(LAZER_DIR)/tests/test.h lazer.h liblazer.a $(CC) $(CPPFLAGS) $(CFLAGS) -I$(LAZER_DIR) -I. -c -o $@ $< Loading @@ -181,22 +181,22 @@ tests/test.o: $(LAZER_DIR)/tests/test.c $(LAZER_DIR)/tests/test.h lazer.h liblaz tests/lazer-test: $(LAZER_DIR)/tests/lazer-test.c $(TESTDEPS) $(CC) $(CPPFLAGS) $(CFLAGS) -I$(LAZER_DIR) -I. -o $@ $< $(TESTLIBS) tests/modified-abdlop-test: tests/modified-abdlop-test.c $(TESTDEPS) tests/modified-abdlop-params1.h tests/modified-abdlop-params2.h tests/modified-abdlop-params3.h tests/modified-abdlop-params4.h tests/modified-abdlop-params5.h tests/rf-abdlop-test: tests/rf-abdlop-test.c $(TESTDEPS) tests/rf-abdlop-params1.h tests/rf-abdlop-params2.h tests/rf-abdlop-params3.h tests/rf-abdlop-params4.h tests/rf-abdlop-params5.h $(CC) $(CPPFLAGS) $(CFLAGS) -I. -I$(LAZER_DIR) -I$(LAZER_DIR)/tests -o $@ $< $(TESTLIBS) tests/modified-quad-test: tests/modified-quad-test.c $(TESTDEPS) tests/modified-quad-params1.h tests/modified-quad-params2.h tests/modified-quad-params3.h tests/modified-quad-params4.h tests/modified-quad-params5.h tests/rf-quad-test: tests/rf-quad-test.c $(TESTDEPS) tests/rf-quad-params1.h tests/rf-quad-params2.h tests/rf-quad-params3.h tests/rf-quad-params4.h tests/rf-quad-params5.h $(CC) $(CPPFLAGS) $(CFLAGS) -I. -I$(LAZER_DIR) -I$(LAZER_DIR)/tests -o $@ $< $(TESTLIBS) tests/modified-quad-eval-test: tests/modified-quad-eval-test.c $(TESTDEPS) tests/modified-quad-eval-params1.h tests/modified-quad-eval-params2.h tests/rf-quad-eval-test: tests/rf-quad-eval-test.c $(TESTDEPS) tests/rf-quad-eval-params1.h tests/rf-quad-eval-params2.h $(CC) $(CPPFLAGS) $(CFLAGS) -I. -I$(LAZER_DIR) -I$(LAZER_DIR)/tests -o $@ $< $(TESTLIBS) tests/modified-quad-many-test: tests/modified-quad-many-test.c $(TESTDEPS) tests/modified-quad-params1.h tests/modified-quad-params2.h tests/modified-quad-params3.h tests/modified-quad-params4.h tests/modified-quad-params5.h tests/rf-quad-many-test: tests/rf-quad-many-test.c $(TESTDEPS) tests/rf-quad-params1.h tests/rf-quad-params2.h tests/rf-quad-params3.h tests/rf-quad-params4.h tests/rf-quad-params5.h $(CC) $(CPPFLAGS) $(CFLAGS) -I. -I$(LAZER_DIR) -I$(LAZER_DIR)/tests -o $@ $< $(TESTLIBS) .PHONY: clean clean: rm -f lazer.h src/lazer.c liblazer.a liblazer.so cd scripts && rm -f moduli.sage.py modified-abdlop-codegen.sage.py modified-quad-codegen.sage.py modified-quad-eval-codegen.sage.py cd scripts && rm -f moduli.sage.py rf-abdlop-codegen.sage.py rf-quad-codegen.sage.py rf-quad-eval-codegen.sage.py cd src && rm -f *.o cd lazer && $(MAKE) clean cd $(THIRD_PARTY_DIR) && rm -rf $(HEXL_SUBDIR) Loading README.md +2 −2 Changes for README.md: 2 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -52,7 +52,7 @@ To build the list of parameters specified in the `params` subfolder, from the ba or specifically `make params-abdlop`, `make params-quad`, `make params-eval`. Keep in mind that this will overwrite the actual associated files `modified-__-__-params%.h` in the `tests` subdirectory. Keep in mind that this will overwrite the actual associated files `rf-__-__-params%.h` in the `tests` subdirectory. To build the C list of tests, from the base directory, run: Loading Loading @@ -93,7 +93,7 @@ Parameters ---------- We provide in the `params` subfolder our 5 sets of parameters. In the `tests` subfolder, you will have the entire list of parameters `modified-_-_-params%.h` for each possible instance of our framework. of parameters `rf-_-_-params%.h` for each possible instance of our framework. Using the `scripts` files, the user can manually generate the complete list of concrete parameters associated with these inputs for different uses: - an instance of the commitment scheme for the 5 parameters sets, Loading scripts/Makefile +15 −15 Changes for scripts/Makefile: 15 added lines, 15 removed lines. Original line number Diff line number Diff line Loading @@ -10,27 +10,27 @@ params-setup: params-abdlop: params-setup sage rf_abdlop_param.sage ../params/params1.sage > ../tests/modified-abdlop-params1.h sage rf_abdlop_param.sage ../params/params2.sage > ../tests/modified-abdlop-params2.h sage rf_abdlop_param.sage ../params/params3.sage > ../tests/modified-abdlop-params3.h sage rf_abdlop_param.sage ../params/params4.sage > ../tests/modified-abdlop-params4.h sage rf_abdlop_param.sage ../params/params5.sage > ../tests/modified-abdlop-params5.h sage rf_abdlop_param.sage ../params/params1.sage > ../tests/rf-abdlop-params1.h sage rf_abdlop_param.sage ../params/params2.sage > ../tests/rf-abdlop-params2.h sage rf_abdlop_param.sage ../params/params3.sage > ../tests/rf-abdlop-params3.h sage rf_abdlop_param.sage ../params/params4.sage > ../tests/rf-abdlop-params4.h sage rf_abdlop_param.sage ../params/params5.sage > ../tests/rf-abdlop-params5.h rm rf_abdlop_param.sage.py params-quad: params-setup sage rf_quad_param.sage ../params/params1.sage > ../tests/modified-quad-params1.h sage rf_quad_param.sage ../params/params2.sage > ../tests/modified-quad-params2.h sage rf_quad_param.sage ../params/params3.sage > ../tests/modified-quad-params3.h sage rf_quad_param.sage ../params/params4.sage > ../tests/modified-quad-params4.h sage rf_quad_param.sage ../params/params5.sage > ../tests/modified-quad-params5.h sage rf_quad_param.sage ../params/params1.sage > ../tests/rf-quad-params1.h sage rf_quad_param.sage ../params/params2.sage > ../tests/rf-quad-params2.h sage rf_quad_param.sage ../params/params3.sage > ../tests/rf-quad-params3.h sage rf_quad_param.sage ../params/params4.sage > ../tests/rf-quad-params4.h sage rf_quad_param.sage ../params/params5.sage > ../tests/rf-quad-params5.h rm rf_quad_param.sage.py params-many: params-setup sage rf_quad_eval_param.sage ../params/params1.sage > ../tests/modified-quad-eval-params1.h sage rf_quad_eval_param.sage ../params/params2.sage > ../tests/modified-quad-eval-params2.h sage rf_quad_eval_param.sage ../params/params3.sage > ../tests/modified-quad-eval-params3.h sage rf_quad_eval_param.sage ../params/params4.sage > ../tests/modified-quad-eval-params4.h sage rf_quad_eval_param.sage ../params/params5.sage > ../tests/modified-quad-eval-params5.h sage rf_quad_eval_param.sage ../params/params1.sage > ../tests/rf-quad-eval-params1.h sage rf_quad_eval_param.sage ../params/params2.sage > ../tests/rf-quad-eval-params2.h sage rf_quad_eval_param.sage ../params/params3.sage > ../tests/rf-quad-eval-params3.h sage rf_quad_eval_param.sage ../params/params4.sage > ../tests/rf-quad-eval-params4.h sage rf_quad_eval_param.sage ../params/params5.sage > ../tests/rf-quad-eval-params5.h rm rf_quad_eval_param.sage.py No newline at end of file scripts/codegen.sage→scripts/common_code.sage +20 −31 Changes for scripts/common_code.sage: 20 added lines, 31 removed lines. Original line number Diff line number Diff line Loading @@ -29,6 +29,9 @@ def printc(x): if code == 1: print(x) def smoothing_param_bound(dim, cst, eps): bound = mp.sqrt(mp.ln(2*dim * (1 + 1/eps))/pi) return ceil(bound * cst) # codegen: sage list of integers to array of integers def intlist2intarray(list): Loading Loading @@ -216,39 +219,25 @@ def root_list(root, exps, p, mont): return l # Estimating MLWE hardness: Distinguish (A, A*s mod q) from (A,b) # where A in Rq^(m x n), coefficients of s sampled uniformly between # -nu and nu. Returns the root hermite factor. # XXX add references # XXX update to new LWE estimator # def get_delta_mlwe_new(nu, n, d, q): # n = n * d # lweparams = LWE.Parameters( # n, q, ND.Uniform(-nu, nu), ND.Uniform(-nu, nu), n) # L = LWE.estimate(lweparams) def get_delta_mlwe(nu, n, d, q): #XXXload("https://bitbucket.org/malb/lwe-estimator/raw/HEAD/estimator.py") load("../third_party/estimator.py") # Estimate the hardness of MLWE, the problem defined by: # - Distinguishing if (A,As + e) from the uniform for a public matrix A in Rq^(n x n) # It returns the root hermite factor or either the default value 2^1 def findMLWEdelta(n, d, p, stddev): n = n * d stdev = mp.sqrt(mpf((2*nu+1) ** 2 - 1)/mpf(12)) alpha = alphaf(sigmaf(stdev), q) # set_verbose(1) L = estimate_lwe(n, alpha, q, reduction_cost_model=BKZ.enum) delta_enum1 = L['usvp']['delta_0'] delta_enum2 = L['dec']['delta_0'] delta_enum3 = L['dual']['delta_0'] L = estimate_lwe(n, alpha, q, reduction_cost_model=BKZ.sieve) delta_sieve1 = L['usvp']['delta_0'] delta_sieve2 = L['dec']['delta_0'] delta_sieve3 = L['dual']['delta_0'] return max(delta_enum1, delta_enum2, delta_enum3, delta_sieve1, delta_sieve2, delta_sieve3) # Estimate MSIS hardness: Find non-zero s such that A*s = 0 for # A in Rq^(n x m) and |s| <= beta. Returns the root hermite factor. # XXX add references law=ND.DiscreteGaussian(stddev) params = LWE.Parameters(n=n,q=p,Xs = law, Xe = law, m=n) L = LWE.estimate.rough(params) try: delta_enum = L['usvp']['delta'] except: delta_enum = 2 return delta_enum # Estimate the hardness of MSIS, the problem defined by: # - Find s != 0 such that |s| <= beta such and resolving A*s = 0 for A in Rq^(n x m) # It returns the root hermite factor or either the default value 2^1 def get_delta_msis(beta, n, d, q): log2q = log(q, 2) log2q = mp.log(q, 2) log2beta = mp.log(beta, 2) delta = mpf(2) ** (log2beta ** 2 / mpf(4*n*d*log2q)) return delta Loading Loading
.gitignore +7 −7 Changes for .gitignore: 7 added lines, 7 removed lines. Original line number Diff line number Diff line Loading @@ -2,9 +2,9 @@ lazer.h *.a *.so scripts/modified-abdlop-codegen.sage.py scripts/modified-quad-codegen.sage.py scripts/modified-quad-eval-codegen.sage.py scripts/rf-abdlop-codegen.sage.py scripts/rf-quad-codegen.sage.py scripts/rf-quad-eval-codegen.sage.py scripts/moduli.sage.py scripts/estimator/ Loading @@ -12,9 +12,9 @@ src/*.o src/lazer.c tests/encoding-test tests/modified-abdlop-test tests/modified-quad-test tests/modified-quad-many-test tests/modified-quad-eval-test tests/rf-abdlop-test tests/rf-quad-test tests/rf-quad-many-test tests/rf-quad-eval-test tests/*.h
Makefile +18 −18 Changes for Makefile: 18 added lines, 18 removed lines. Original line number Diff line number Diff line Loading @@ -79,23 +79,23 @@ LAZER_SRC = \ $(LAZER_DIR)/src/urandom.c \ $(LAZER_DIR)/src/version.c \ #### lib modified-lazer #### lib rf-lazer LIB_DIR = src LIBSOURCES = \ $(LIB_DIR)/lazer.c \ $(LIB_DIR)/tools.c \ $(LIB_DIR)/encoding.c \ $(LIB_DIR)/modified-abdlop.c \ $(LIB_DIR)/modified-quad.c \ $(LIB_DIR)/modified-quad-eval.c \ $(LIB_DIR)/modified-quad-many.c \ $(LIB_DIR)/rf-abdlop.c \ $(LIB_DIR)/rf-quad.c \ $(LIB_DIR)/rf-quad-eval.c \ $(LIB_DIR)/rf-quad-many.c \ TESTS = \ tests/modified-abdlop-test \ tests/modified-quad-test \ tests/modified-quad-eval-test \ tests/modified-quad-many-test tests/rf-abdlop-test \ tests/rf-quad-test \ tests/rf-quad-eval-test \ tests/rf-quad-many-test .PHONY: lib lib-all lib-static lib-shared lib-static-all lib-shared-all Loading Loading @@ -126,9 +126,9 @@ src/hexl_shared.o: $(LAZER_DIR)/src/hexl.h $(HEXL_DIR) $(CXX) $(CPPFLAGS) $(CFLAGS) -I$(LAZER_DIR) -I$(LAZER_DIR)/src -I$(HEXL_DIR)/hexl/include -c -fPIC -o src/hexl_shared.o $(LAZER_DIR)/src/hexl.cpp src/lazer.c: { head -n33 $(LAZER_DIR)/src/lazer.c; cat src/lazer-modified.c; tail -n+34 $(LAZER_DIR)/src/lazer.c; } | sed 's/blindsig.c/stopwatch.h/' > src/lazer.c { head -n33 $(LAZER_DIR)/src/lazer.c; cat src/lazer-rf.c; tail -n+34 $(LAZER_DIR)/src/lazer.c; } | sed 's/blindsig.c/stopwatch.h/' > src/lazer.c lazer.h: $(LAZER_DIR)/src/lazer-in1.h $(LAZER_DIR)/src/lazer-in2.h src/lazer-modified.h $(LAZER_DIR)/src/moduli.h $(LAZER_DIR)/config.h lazer.h: $(LAZER_DIR)/src/lazer-in1.h $(LAZER_DIR)/src/lazer-in2.h src/lazer-rf.h $(LAZER_DIR)/src/moduli.h $(LAZER_DIR)/config.h cat $(LAZER_DIR)/src/lazer-in1.h > tmp.h echo "" >> tmp.h Loading @@ -146,7 +146,7 @@ lazer.h: $(LAZER_DIR)/src/lazer-in1.h $(LAZER_DIR)/src/lazer-in2.h src/lazer-mod echo "" >> lazer.h cat src/lazer-modified.h >> lazer.h cat src/lazer-rf.h >> lazer.h echo "" >> lazer.h cat lazer/src/moduli.h >> lazer.h Loading @@ -173,7 +173,7 @@ params-many: params-setup .PHONY: check check: $(TESTS) cd tests && ./run-modified-tests cd tests && ./run-rf-tests tests/test.o: $(LAZER_DIR)/tests/test.c $(LAZER_DIR)/tests/test.h lazer.h liblazer.a $(CC) $(CPPFLAGS) $(CFLAGS) -I$(LAZER_DIR) -I. -c -o $@ $< Loading @@ -181,22 +181,22 @@ tests/test.o: $(LAZER_DIR)/tests/test.c $(LAZER_DIR)/tests/test.h lazer.h liblaz tests/lazer-test: $(LAZER_DIR)/tests/lazer-test.c $(TESTDEPS) $(CC) $(CPPFLAGS) $(CFLAGS) -I$(LAZER_DIR) -I. -o $@ $< $(TESTLIBS) tests/modified-abdlop-test: tests/modified-abdlop-test.c $(TESTDEPS) tests/modified-abdlop-params1.h tests/modified-abdlop-params2.h tests/modified-abdlop-params3.h tests/modified-abdlop-params4.h tests/modified-abdlop-params5.h tests/rf-abdlop-test: tests/rf-abdlop-test.c $(TESTDEPS) tests/rf-abdlop-params1.h tests/rf-abdlop-params2.h tests/rf-abdlop-params3.h tests/rf-abdlop-params4.h tests/rf-abdlop-params5.h $(CC) $(CPPFLAGS) $(CFLAGS) -I. -I$(LAZER_DIR) -I$(LAZER_DIR)/tests -o $@ $< $(TESTLIBS) tests/modified-quad-test: tests/modified-quad-test.c $(TESTDEPS) tests/modified-quad-params1.h tests/modified-quad-params2.h tests/modified-quad-params3.h tests/modified-quad-params4.h tests/modified-quad-params5.h tests/rf-quad-test: tests/rf-quad-test.c $(TESTDEPS) tests/rf-quad-params1.h tests/rf-quad-params2.h tests/rf-quad-params3.h tests/rf-quad-params4.h tests/rf-quad-params5.h $(CC) $(CPPFLAGS) $(CFLAGS) -I. -I$(LAZER_DIR) -I$(LAZER_DIR)/tests -o $@ $< $(TESTLIBS) tests/modified-quad-eval-test: tests/modified-quad-eval-test.c $(TESTDEPS) tests/modified-quad-eval-params1.h tests/modified-quad-eval-params2.h tests/rf-quad-eval-test: tests/rf-quad-eval-test.c $(TESTDEPS) tests/rf-quad-eval-params1.h tests/rf-quad-eval-params2.h $(CC) $(CPPFLAGS) $(CFLAGS) -I. -I$(LAZER_DIR) -I$(LAZER_DIR)/tests -o $@ $< $(TESTLIBS) tests/modified-quad-many-test: tests/modified-quad-many-test.c $(TESTDEPS) tests/modified-quad-params1.h tests/modified-quad-params2.h tests/modified-quad-params3.h tests/modified-quad-params4.h tests/modified-quad-params5.h tests/rf-quad-many-test: tests/rf-quad-many-test.c $(TESTDEPS) tests/rf-quad-params1.h tests/rf-quad-params2.h tests/rf-quad-params3.h tests/rf-quad-params4.h tests/rf-quad-params5.h $(CC) $(CPPFLAGS) $(CFLAGS) -I. -I$(LAZER_DIR) -I$(LAZER_DIR)/tests -o $@ $< $(TESTLIBS) .PHONY: clean clean: rm -f lazer.h src/lazer.c liblazer.a liblazer.so cd scripts && rm -f moduli.sage.py modified-abdlop-codegen.sage.py modified-quad-codegen.sage.py modified-quad-eval-codegen.sage.py cd scripts && rm -f moduli.sage.py rf-abdlop-codegen.sage.py rf-quad-codegen.sage.py rf-quad-eval-codegen.sage.py cd src && rm -f *.o cd lazer && $(MAKE) clean cd $(THIRD_PARTY_DIR) && rm -rf $(HEXL_SUBDIR) Loading
README.md +2 −2 Changes for README.md: 2 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -52,7 +52,7 @@ To build the list of parameters specified in the `params` subfolder, from the ba or specifically `make params-abdlop`, `make params-quad`, `make params-eval`. Keep in mind that this will overwrite the actual associated files `modified-__-__-params%.h` in the `tests` subdirectory. Keep in mind that this will overwrite the actual associated files `rf-__-__-params%.h` in the `tests` subdirectory. To build the C list of tests, from the base directory, run: Loading Loading @@ -93,7 +93,7 @@ Parameters ---------- We provide in the `params` subfolder our 5 sets of parameters. In the `tests` subfolder, you will have the entire list of parameters `modified-_-_-params%.h` for each possible instance of our framework. of parameters `rf-_-_-params%.h` for each possible instance of our framework. Using the `scripts` files, the user can manually generate the complete list of concrete parameters associated with these inputs for different uses: - an instance of the commitment scheme for the 5 parameters sets, Loading
scripts/Makefile +15 −15 Changes for scripts/Makefile: 15 added lines, 15 removed lines. Original line number Diff line number Diff line Loading @@ -10,27 +10,27 @@ params-setup: params-abdlop: params-setup sage rf_abdlop_param.sage ../params/params1.sage > ../tests/modified-abdlop-params1.h sage rf_abdlop_param.sage ../params/params2.sage > ../tests/modified-abdlop-params2.h sage rf_abdlop_param.sage ../params/params3.sage > ../tests/modified-abdlop-params3.h sage rf_abdlop_param.sage ../params/params4.sage > ../tests/modified-abdlop-params4.h sage rf_abdlop_param.sage ../params/params5.sage > ../tests/modified-abdlop-params5.h sage rf_abdlop_param.sage ../params/params1.sage > ../tests/rf-abdlop-params1.h sage rf_abdlop_param.sage ../params/params2.sage > ../tests/rf-abdlop-params2.h sage rf_abdlop_param.sage ../params/params3.sage > ../tests/rf-abdlop-params3.h sage rf_abdlop_param.sage ../params/params4.sage > ../tests/rf-abdlop-params4.h sage rf_abdlop_param.sage ../params/params5.sage > ../tests/rf-abdlop-params5.h rm rf_abdlop_param.sage.py params-quad: params-setup sage rf_quad_param.sage ../params/params1.sage > ../tests/modified-quad-params1.h sage rf_quad_param.sage ../params/params2.sage > ../tests/modified-quad-params2.h sage rf_quad_param.sage ../params/params3.sage > ../tests/modified-quad-params3.h sage rf_quad_param.sage ../params/params4.sage > ../tests/modified-quad-params4.h sage rf_quad_param.sage ../params/params5.sage > ../tests/modified-quad-params5.h sage rf_quad_param.sage ../params/params1.sage > ../tests/rf-quad-params1.h sage rf_quad_param.sage ../params/params2.sage > ../tests/rf-quad-params2.h sage rf_quad_param.sage ../params/params3.sage > ../tests/rf-quad-params3.h sage rf_quad_param.sage ../params/params4.sage > ../tests/rf-quad-params4.h sage rf_quad_param.sage ../params/params5.sage > ../tests/rf-quad-params5.h rm rf_quad_param.sage.py params-many: params-setup sage rf_quad_eval_param.sage ../params/params1.sage > ../tests/modified-quad-eval-params1.h sage rf_quad_eval_param.sage ../params/params2.sage > ../tests/modified-quad-eval-params2.h sage rf_quad_eval_param.sage ../params/params3.sage > ../tests/modified-quad-eval-params3.h sage rf_quad_eval_param.sage ../params/params4.sage > ../tests/modified-quad-eval-params4.h sage rf_quad_eval_param.sage ../params/params5.sage > ../tests/modified-quad-eval-params5.h sage rf_quad_eval_param.sage ../params/params1.sage > ../tests/rf-quad-eval-params1.h sage rf_quad_eval_param.sage ../params/params2.sage > ../tests/rf-quad-eval-params2.h sage rf_quad_eval_param.sage ../params/params3.sage > ../tests/rf-quad-eval-params3.h sage rf_quad_eval_param.sage ../params/params4.sage > ../tests/rf-quad-eval-params4.h sage rf_quad_eval_param.sage ../params/params5.sage > ../tests/rf-quad-eval-params5.h rm rf_quad_eval_param.sage.py No newline at end of file
scripts/codegen.sage→scripts/common_code.sage +20 −31 Changes for scripts/common_code.sage: 20 added lines, 31 removed lines. Original line number Diff line number Diff line Loading @@ -29,6 +29,9 @@ def printc(x): if code == 1: print(x) def smoothing_param_bound(dim, cst, eps): bound = mp.sqrt(mp.ln(2*dim * (1 + 1/eps))/pi) return ceil(bound * cst) # codegen: sage list of integers to array of integers def intlist2intarray(list): Loading Loading @@ -216,39 +219,25 @@ def root_list(root, exps, p, mont): return l # Estimating MLWE hardness: Distinguish (A, A*s mod q) from (A,b) # where A in Rq^(m x n), coefficients of s sampled uniformly between # -nu and nu. Returns the root hermite factor. # XXX add references # XXX update to new LWE estimator # def get_delta_mlwe_new(nu, n, d, q): # n = n * d # lweparams = LWE.Parameters( # n, q, ND.Uniform(-nu, nu), ND.Uniform(-nu, nu), n) # L = LWE.estimate(lweparams) def get_delta_mlwe(nu, n, d, q): #XXXload("https://bitbucket.org/malb/lwe-estimator/raw/HEAD/estimator.py") load("../third_party/estimator.py") # Estimate the hardness of MLWE, the problem defined by: # - Distinguishing if (A,As + e) from the uniform for a public matrix A in Rq^(n x n) # It returns the root hermite factor or either the default value 2^1 def findMLWEdelta(n, d, p, stddev): n = n * d stdev = mp.sqrt(mpf((2*nu+1) ** 2 - 1)/mpf(12)) alpha = alphaf(sigmaf(stdev), q) # set_verbose(1) L = estimate_lwe(n, alpha, q, reduction_cost_model=BKZ.enum) delta_enum1 = L['usvp']['delta_0'] delta_enum2 = L['dec']['delta_0'] delta_enum3 = L['dual']['delta_0'] L = estimate_lwe(n, alpha, q, reduction_cost_model=BKZ.sieve) delta_sieve1 = L['usvp']['delta_0'] delta_sieve2 = L['dec']['delta_0'] delta_sieve3 = L['dual']['delta_0'] return max(delta_enum1, delta_enum2, delta_enum3, delta_sieve1, delta_sieve2, delta_sieve3) # Estimate MSIS hardness: Find non-zero s such that A*s = 0 for # A in Rq^(n x m) and |s| <= beta. Returns the root hermite factor. # XXX add references law=ND.DiscreteGaussian(stddev) params = LWE.Parameters(n=n,q=p,Xs = law, Xe = law, m=n) L = LWE.estimate.rough(params) try: delta_enum = L['usvp']['delta'] except: delta_enum = 2 return delta_enum # Estimate the hardness of MSIS, the problem defined by: # - Find s != 0 such that |s| <= beta such and resolving A*s = 0 for A in Rq^(n x m) # It returns the root hermite factor or either the default value 2^1 def get_delta_msis(beta, n, d, q): log2q = log(q, 2) log2q = mp.log(q, 2) log2beta = mp.log(beta, 2) delta = mpf(2) ** (log2beta ** 2 / mpf(4*n*d*log2q)) return delta Loading