Commit c60adad6 authored by rejection free's avatar rejection free
Browse files

Anonymous git

parent ddce2c42
Loading
Loading
Loading
Loading
+7 −7
Changes for .gitignore: 7 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -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/

@@ -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
+18 −18
Changes for Makefile: 18 added lines, 18 removed lines.
Original line number Diff line number Diff line
@@ -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
@@ -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

@@ -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	
@@ -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 $@ $<
@@ -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)
+2 −2
Changes for README.md: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -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:

@@ -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,
+15 −15
Changes for scripts/Makefile: 15 added lines, 15 removed lines.
Original line number Diff line number Diff line
@@ -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
+20 −31
Changes for scripts/common_code.sage: 20 added lines, 31 removed lines.
Original line number Diff line number Diff line
@@ -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):
@@ -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