mirror of
https://github.com/zama-ai/concrete.git
synced 2026-01-14 15:27:58 -05:00
GITBOOK-4: Alexandre's Jun 20 changes
This commit is contained in:
committed by
gitbook-bot
parent
107c60bcc4
commit
a381275dfe
@@ -6,46 +6,46 @@
|
||||
|
||||
* [What is Concrete?](get-started/readme.md)
|
||||
* [Installation](get-started/installing.md)
|
||||
* [Quick start](get-started/quick_start.md)
|
||||
* [Quick start](get-started/quick\_start.md)
|
||||
* [Compatibility](get-started/compatibility.md)
|
||||
* [Terminology](get-started/terminology.md)
|
||||
|
||||
## Core features
|
||||
|
||||
* [Overview](core-features/fhe_basics.md)
|
||||
* [Table lookups (basics)](core-features/table_lookups.md)
|
||||
* [Non-linear operations](core-features/non_linear_operations.md)
|
||||
* Advanced features
|
||||
* [Bit extraction](core-features/bit_extraction.md)
|
||||
* [Overview](core-features/fhe\_basics.md)
|
||||
* [Table lookups (basics)](core-features/table\_lookups.md)
|
||||
* [Non-linear operations](core-features/non\_linear\_operations.md)
|
||||
* [Advanced features](core-features/advanced-features/README.md)
|
||||
* [Bit extraction](core-features/bit\_extraction.md)
|
||||
* [Common tips](core-features/workarounds.md)
|
||||
* [Extensions](core-features/extensions.md)
|
||||
|
||||
## Compilation
|
||||
|
||||
* [Combining compiled functions](compilation/combining.md)
|
||||
* [With composition](compilation/composition.md)
|
||||
* [With modules](compilation/composing_functions_with_modules.md)
|
||||
* Key-related options for faster execution
|
||||
* [Multi precision](compilation/multi_precision.md)
|
||||
* [Multi parameters](compilation/multi_parameters.md)
|
||||
* [With composition](compilation/composition.md)
|
||||
* [With modules](compilation/composing\_functions\_with\_modules.md)
|
||||
* [Key-related options for faster execution](compilation/key-related-options-for-faster-execution/README.md)
|
||||
* [Multi precision](compilation/multi\_precision.md)
|
||||
* [Multi parameters](compilation/multi\_parameters.md)
|
||||
* [Compression](compilation/compression.md)
|
||||
* [Reusing arguments](compilation/reuse_arguments.md)
|
||||
* [Common errors](compilation/common_errors.md)
|
||||
* [Reusing arguments](compilation/reuse\_arguments.md)
|
||||
* [Common errors](compilation/common\_errors.md)
|
||||
|
||||
## Execution / Analysis
|
||||
|
||||
* [Simulation](execution-analysis/simulation.md)
|
||||
* [Debugging and artifact](execution-analysis/debug.md)
|
||||
* [GPU acceleration](execution-analysis/gpu_acceleration.md)
|
||||
* Other
|
||||
* [GPU acceleration](execution-analysis/gpu\_acceleration.md)
|
||||
* [Other](execution-analysis/other/README.md)
|
||||
* [Statistics](compilation/statistics.md)
|
||||
* [Progressbar](execution-analysis/progressbar.md)
|
||||
* [Formatting and drawing](execution-analysis/formatting_and_drawing.md)
|
||||
* [Formatting and drawing](execution-analysis/formatting\_and\_drawing.md)
|
||||
|
||||
## Guides
|
||||
|
||||
* [Configure](guides/configure.md)
|
||||
* [Manage keys](guides/manage_keys.md)
|
||||
* [Manage keys](guides/manage\_keys.md)
|
||||
* [Deploy](guides/deploy.md)
|
||||
|
||||
## Tutorials
|
||||
@@ -60,16 +60,16 @@
|
||||
|
||||
## Explanations
|
||||
|
||||
* [Compiler workflow](dev/compilation/compiler_workflow.md)
|
||||
* Compiler internals
|
||||
* [Table lookups](core-features/table_lookups_advanced.md)
|
||||
* [Compiler workflow](dev/compilation/compiler\_workflow.md)
|
||||
* [Compiler internals](explanations/compiler-internals/README.md)
|
||||
* [Table lookups](core-features/table\_lookups\_advanced.md)
|
||||
* [Rounding](core-features/rounding.md)
|
||||
* [Truncating](core-features/truncating.md)
|
||||
* [Floating points](core-features/floating_points.md)
|
||||
* [Floating points](core-features/floating\_points.md)
|
||||
* [Comparisons](core-features/comparisons.md)
|
||||
* [Min/Max operations](core-features/minmax.md)
|
||||
* [Bitwise operations](core-features/bitwise.md)
|
||||
* [Direct circuits](compilation/direct_circuits.md)
|
||||
* [Direct circuits](compilation/direct\_circuits.md)
|
||||
* [Tagging](core-features/tagging.md)
|
||||
* [Security](explanations/security.md)
|
||||
* [Frontend fusing](explanations/fusing.md)
|
||||
@@ -79,10 +79,10 @@
|
||||
* [Contributing](dev/contributing.md)
|
||||
* [Release note](https://github.com/zama-ai/concrete/releases)
|
||||
* [Feature request](https://github.com/zama-ai/concrete/issues/new?assignees=\&labels=feature\&projects=\&template=features.md)
|
||||
* [Bug report](https://github.com/zama-ai/concrete/issues/new?assignees=\&labels=bug%2C+triage\&projects=\&template=bug_report.md)
|
||||
* [Bug report](https://github.com/zama-ai/concrete/issues/new?assignees=\&labels=bug%2C+triage\&projects=\&template=bug\_report.md)
|
||||
* [Project layout](explanations/layout.md)
|
||||
* [Compiler backend](explanations/backends/README.md)
|
||||
* [Adding a new backend](explanations/backends/new_backend.md)
|
||||
* [Adding a new backend](explanations/backends/new\_backend.md)
|
||||
* [Optimizer](explanations/optimizer.md)
|
||||
* [MLIR FHE dialects](explanations/dialects.md)
|
||||
* [FHELinalg dialect](explanations/FHELinalgDialect.md)
|
||||
@@ -92,4 +92,4 @@
|
||||
* [Tracing dialect](explanations/TracingDialect.md)
|
||||
* [Runtime dialect](explanations/RTDialect.md)
|
||||
* [SDFG dialect](explanations/SDFGDialect.md)
|
||||
* [Call FHE circuits from other languages](explanations/call_from_other_language.md)
|
||||
* [Call FHE circuits from other languages](explanations/call\_from\_other\_language.md)
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# Key-related options for faster execution
|
||||
|
||||
2
docs/core-features/advanced-features/README.md
Normal file
2
docs/core-features/advanced-features/README.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# Advanced features
|
||||
|
||||
2
docs/execution-analysis/other/README.md
Normal file
2
docs/execution-analysis/other/README.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# Other
|
||||
|
||||
2
docs/explanations/compiler-internals/README.md
Normal file
2
docs/explanations/compiler-internals/README.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# Compiler internals
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# Optimizing Crypto Parameters
|
||||
# Optimizer
|
||||
|
||||
`concrete-optimizer` is a tool that selects appropriate cryptographic parameters for a given fully homomorphic encryption (FHE) computation. These parameters have an impact on the security, correctness, and efficiency of the computation.
|
||||
|
||||
The computation is guaranteed to be secure with the given level of security (see [here](./security.md) for details) which is typically 128 bits. The correctness of the computation is guaranteed up to a given failure probability. A surrogate of the execution time is minimized which allows for efficient FHE computation.
|
||||
The computation is guaranteed to be secure with the given level of security (see [here](security.md) for details) which is typically 128 bits. The correctness of the computation is guaranteed up to a given failure probability. A surrogate of the execution time is minimized which allows for efficient FHE computation.
|
||||
|
||||
The cryptographic parameters are degrees of freedom in the FHE algorithms (bootstrapping, keyswitching, etc.) that need to be fixed. The search space for possible crypto-parameters is finite but extremely large. The role of the optimizer is to quickly find the most efficient crypto-parameters possible while guaranteeing security and correctness.
|
||||
|
||||
@@ -14,7 +14,7 @@ The security level is chosen by the user. We typically operate at a fixed securi
|
||||
|
||||
An independent public research tool, the [lattice estimator](https://github.com/malb/lattice-estimator), is used to estimate the security level. The lattice estimator is maintained by FHE experts. For a given set of crypto-parameters, this tool considers all possible attacks and returns a security level.
|
||||
|
||||
For each security level, a parameter curve of the appropriate minimal error level is pre-computed using the lattice estimator, and is used as an input to the optimizer. Learn more about the parameter curves [here](./security.md).
|
||||
For each security level, a parameter curve of the appropriate minimal error level is pre-computed using the lattice estimator, and is used as an input to the optimizer. Learn more about the parameter curves [here](security.md).
|
||||
|
||||
### Correctness
|
||||
|
||||
@@ -40,13 +40,14 @@ In more complex cases, the optimizer iteratively performs an exhaustive search,
|
||||
|
||||
## How can I determine, understand, and explore crypto-parameters
|
||||
|
||||
One can have a look at [reference crypto-parameters](../../compilers/concrete-optimizer/v0-parameters/ref/v0_last_128) for each security level (but for a given correctness). This provides insight between the calcululs content (i.e. maximum precision, maximum dot 2-norm, etc.,) and the cost.
|
||||
One can have a look at [reference crypto-parameters](https://github.com/zama-ai/concrete/blob/main/compilers/concrete-optimizer/v0-parameters/ref/v0\_last\_128) for each security level (but for a given correctness). This provides insight between the calcululs content (i.e. maximum precision, maximum dot 2-norm, etc.,) and the cost.
|
||||
|
||||
Then one can manually explore crypto-parameters space using a [CLI tool](../../compilers/concrete-optimizer/v0-parameters/README.md).
|
||||
Then one can manually explore crypto-parameters space using a [CLI tool](../../compilers/concrete-optimizer/v0-parameters/).
|
||||
|
||||
## Citing
|
||||
|
||||
If you use this tool in your work, please cite:
|
||||
|
||||
> Bergerat, Loris and Boudi, Anas and Bourgerie, Quentin and Chillotti, Ilaria and Ligier, Damien and Orfila Jean-Baptiste and Tap, Samuel, Parameter Optimization and Larger Precision for (T)FHE, Journal of Cryptology, 2023, Volume 36
|
||||
|
||||
A pre-print is available as Cryptology ePrint Archive [Paper 2022/704](https://eprint.iacr.org/2022/704)
|
||||
|
||||
Reference in New Issue
Block a user