Evaluating recurrent neural networks over encrypted data using NumPy and Concrete
Blog post from Zama
Fully Homomorphic Encryption (FHE) is a cryptographic technique that enables computations to be performed on encrypted data without decryption, and the Homomorphic NumPy (HNP) library facilitates this by converting functions operating on NumPy arrays into their homomorphic equivalents. The blog post introduces an experimental compiler designed to transform classical NumPy programs into FHE circuits, highlighting the process using logistic regression and Recurrent Neural Networks (RNNs) as examples. While the HNP tool is experimental and not slated for further development, its purpose is to demonstrate FHE's progress and allow the community to experiment as developers work on a more stable compiler with enhanced performance. The article outlines the steps for using HNP, such as installing the library via a Docker image, defining NumPy functions, generating encryption keys, and performing encryption, evaluation, and decryption. Additionally, it explains how the Concrete library's programmable bootstrapping operator overcomes challenges in evaluating non-linear activation functions and noise accumulation in ciphertexts. Despite current limitations in precision and speed, the post is optimistic about FHE's future, predicting that by 2025, it will be widely usable across various internet applications.