mirror of
https://github.com/zama-ai/concrete.git
synced 2026-01-14 23:38:10 -05:00
70 lines
2.8 KiB
Makefile
70 lines
2.8 KiB
Makefile
LATTICE_ESTIMATOR_DIR=$(PWD)/../../third_party/lattice-estimator
|
|
SECURITY_LEVELS=80 112 128 192
|
|
SAGE_OBJECT_DIR=sage-object
|
|
SAGE_SECURITY_CURVES=$(SECURITY_LEVELS:%=$(SAGE_OBJECT_DIR)/%.sobj)
|
|
SAGE_VERIFIED_CURVES=$(SAGE_OBJECT_DIR)/verified_curves.sobj
|
|
CURVES_JSON_PATH=json/curves.json
|
|
CURVES_CPP_GEN_H=concrete-security-curves-cpp/include/concrete/curves.gen.h
|
|
CURVES_RUST_GEN_TXT=concrete-security-curves-rust/src/gaussian/curves_gen.rs
|
|
|
|
generate-code: generate-cpp generate-rust
|
|
|
|
# Generate CPP ########################
|
|
|
|
$(CURVES_CPP_GEN_H): concrete-security-curves-cpp/gen_header.py $(CURVES_JSON_PATH)
|
|
cat $(CURVES_JSON_PATH) | python3 concrete-security-curves-cpp/gen_header.py > $(CURVES_CPP_GEN_H)
|
|
|
|
generate-cpp: $(CURVES_CPP_GEN_H)
|
|
|
|
# Generate RUST ########################
|
|
|
|
$(CURVES_RUST_GEN_TXT): concrete-security-curves-rust/gen_table.py $(CURVES_JSON_PATH)
|
|
cat $(CURVES_JSON_PATH) | python3 concrete-security-curves-rust/gen_table.py > $(CURVES_RUST_GEN_TXT)
|
|
|
|
generate-rust: $(CURVES_RUST_GEN_TXT)
|
|
|
|
# Compare curves #######################
|
|
|
|
$(SAGE_OBJECT_DIR)/outdated_curves.timestamp: ./lattice-scripts/compare_curves_and_estimator.py
|
|
PYTHONPATH=$(LATTICE_ESTIMATOR_DIR) python3 ./lattice-scripts/compare_curves_and_estimator.py \
|
|
--curves-dir $(SAGE_OBJECT_DIR) --security-levels $(SECURITY_LEVELS) --log-q 64 \
|
|
&& touch $(SAGE_OBJECT_DIR)/outdated_curves.timestamp
|
|
|
|
compare-curves: $(SAGE_OBJECT_DIR)/outdated_curves.timestamp
|
|
|
|
# Compare curves custom q #######################
|
|
# run via e.g:
|
|
# logq=128 make compare-curves-custom-q
|
|
# for q = 2**(128)
|
|
|
|
$(SAGE_OBJECT_DIR)/outdated_curves.timestamp: ./lattice-scripts/compare_curves_and_estimator.py
|
|
PYTHONPATH=$(LATTICE_ESTIMATOR_DIR) python3 ./lattice-scripts/compare_curves_and_estimator.py \
|
|
--curves-dir $(SAGE_OBJECT_DIR) --security-levels $(SECURITY_LEVELS) --log-q $(logq) \
|
|
&& touch $(SAGE_OBJECT_DIR)/outdated_curves.timestamp
|
|
|
|
compare-curves-custom-q: $(SAGE_OBJECT_DIR)/outdated_curves.timestamp
|
|
|
|
# Generate curves ######################
|
|
|
|
$(SAGE_OBJECT_DIR)/%.sobj: $(SAGE_OBJECT_DIR)/outdated_curves.timestamp ./lattice-scripts/generate_data.sh ./lattice-scripts/generate_data.py
|
|
PYTHONPATH=$(LATTICE_ESTIMATOR_DIR) ./lattice-scripts/generate_data.sh \
|
|
$* --output $(SAGE_OBJECT_DIR) --old-models $(SAGE_VERIFIED_CURVES)
|
|
|
|
generate-curves: $(SAGE_SECURITY_CURVES)
|
|
|
|
# Verify curves #######################
|
|
|
|
$(CURVES_JSON_PATH) $(SAGE_VERIFIED_CURVES): ./lattice-scripts/verify_curves.py #$(SAGE_SECURITY_CURVES)
|
|
python3 ./lattice-scripts/verify_curves.py \
|
|
--curves-dir $(SAGE_OBJECT_DIR) --verified-curves-path $(SAGE_VERIFIED_CURVES) \
|
|
--security-levels $(SECURITY_LEVELS) --log-q 64 > $(CURVES_JSON_PATH)
|
|
|
|
verify-curves: $(CURVES_JSON_PATH)
|
|
|
|
.PHONY: generate-cpp \
|
|
generate-rust \
|
|
generate-code \
|
|
compare-curves \
|
|
generate-curves \
|
|
verify-curves
|