|
| 1 | +# Secure numerical simulations using fully homomorphic encryption |
| 2 | + |
| 3 | +[](https://opensource.org/licenses/MIT) |
| 4 | +[](https://doi.org/10.5281/zenodo.TODO) |
| 5 | + |
| 6 | +This repository contains information and code to reproduce the results presented in the |
| 7 | +article |
| 8 | +```bibtex |
| 9 | +@online{kholod2024secure, |
| 10 | + title={{S}ecure numerical simulations using fully homomorphic encryption}, |
| 11 | + author={Kholod, Arseniy and Polyakov, Yuriy and Schlottke-Lakemper, Michael}, |
| 12 | + year={2023}, |
| 13 | + month={11}, |
| 14 | + doi={10.48550/arXiv.TODO}, |
| 15 | + eprint={TODO}, |
| 16 | + eprinttype={arxiv}, |
| 17 | + eprintclass={math.NA} |
| 18 | +} |
| 19 | +``` |
| 20 | + |
| 21 | +If you find these results useful, please cite the article mentioned above. If you |
| 22 | +use the implementations provided here, please **also** cite this repository as |
| 23 | +```bibtex |
| 24 | +@misc{kholod2024secureRepro, |
| 25 | + title={Reproducibility repository for |
| 26 | + "{S}ecure numerical simulations using fully homomorphic encryption"}, |
| 27 | + author={Kholod, Arseniy and Polyakov, Yuriy and Schlottke-Lakemper, Michael}, |
| 28 | + year= {2024}, |
| 29 | + howpublished={\url{https://github.com/hpsc-lab/paper-2024-secure_numerical_simulations}}, |
| 30 | + doi={10.5281/zenodo.TODO} |
| 31 | +} |
| 32 | +``` |
| 33 | + |
| 34 | + |
| 35 | +## Abstract |
| 36 | + |
| 37 | +Data privacy is a significant concern in many environments today. |
| 38 | +This is particularly true if sensitive information, e.g., engineering, medical, or |
| 39 | +financial data, is to be processed on potentially insecure systems, as it is often the |
| 40 | +case in cloud computing. Fully homomorphic encryption (FHE) offers a potential solution |
| 41 | +to this problem, as it allows for secure computations on encrypted data. In this paper, |
| 42 | +we investigate the viability of using FHE for privacy-preserving numerical simulations of partial |
| 43 | +differential equations. We first give an overview of the CKKS scheme, a popular FHE |
| 44 | +method for computations with real numbers. This is followed by an introduction of our |
| 45 | +Julia packages OpenFHE.jl and SecureArithmetic.jl, which provide a Julia wrapper for the |
| 46 | +C++ library OpenFHE and offer a user-friendly interface for secure arithmetic |
| 47 | +operations. We then present a performance analysis of the CKKS scheme within OpenFHE, |
| 48 | +focusing on the error and efficiency of different FHE operations. Finally, we |
| 49 | +demonstrate the application of FHE to secure numerical simulations by implementing two |
| 50 | +finite difference schemes for the linear advection equation using the |
| 51 | +SecureArithmetic.jl package. Our results show that FHE can be used to perform |
| 52 | +cryptographically secure numerical simulations, but that the error and efficiency of FHE |
| 53 | +operations must be carefully considered when designing applications. |
| 54 | + |
| 55 | + |
| 56 | +## Numerical experiments |
| 57 | + |
| 58 | +The numerical experiments presented in the paper use |
| 59 | +[SecureArithmetic.jl](https://github.com/hpsc-lab/SecureArithmetic.jl). |
| 60 | +To reproduce the numerical experiments using SecureArithmetic.jl, you need to install |
| 61 | +[Julia](https://julialang.org/). |
| 62 | + |
| 63 | +The subfolder `code` of this repository contains a `README.md` file with |
| 64 | +instructions to reproduce the numerical experiments. |
| 65 | +Both subfolders also include the result data and scripts for postprocessing. |
| 66 | + |
| 67 | +All numerical experiments were carried out using Julia v1.10.4. |
| 68 | + |
| 69 | + |
| 70 | +## Authors |
| 71 | + |
| 72 | +- Arseniy Kholod (University of Augsburg, Germany) |
| 73 | +- [Yuriy Polyakov](https://ypolyakov.gitlab.io/) (Duality Technologies, Inc., United States) |
| 74 | +- [Michael Schlottke-Lakemper](https://lakemper.eu) (University of Augsburg, Germany) |
| 75 | + |
| 76 | + |
| 77 | +## License |
| 78 | +The contents of this repository are available under the [MIT license](LICENSE.md). If you reuse our |
| 79 | +code or data, please also cite us (see above). |
| 80 | + |
| 81 | + |
| 82 | +## Disclaimer |
| 83 | + |
| 84 | +Everything is provided as is and without warranty. Use at your own risk! |
0 commit comments