> For the complete documentation index, see [llms.txt](https://docs.rhinofcp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rhinofcp.com/security-and-data-protections/fully-homomorphic-encryption.md).

# Fully Homomorphic Encryption

The Rhino Federated Computing platform supports Fully Homomorphic Encryption (FHE) via the NVFlare framework (and the TenSEAL package). To enable FHE in your model training, you will need to perform two actions:

1. Install NVFlare with FHE support in your container image, by installing `nvflare[HE]` rather than plain `nvflare` (see details in [the NVFlare docs](https://nvflare.readthedocs.io/en/main/installation.html#optional-dependencies)).
2. Modify your NVFlare configurations to include FHE filters and / or arguments (see examples from NVFlare for [PyTorch](https://github.com/NVIDIA/NVFlare/blob/main/examples/tutorials/self-paced-training/part-3_security_and_privacy/chapter-5_Privacy_In_Federated_Learning/05.3_homomorphic_encryption/05.3.1_privacy_with_homormorphic_encryption.ipynb) and [XGBoost](https://github.com/NVIDIA/NVFlare/tree/main/examples/advanced/xgboost/fedxgb_secure))
3. Enable homomorphic encryption in your Code Runs below
4. You can find a notebook with an example in the [Rhino FCP User-Resources](https://github.com/RhinoHealth/user-resources/tree/main/examples/nvflare/xgboost/xgboost-fhe)

## Enabling homomorphic encryption in Rhino FCP Code Runs

{% stepper %}
{% step %}

## Navigate to your Code Objects page

{% endstep %}

{% step %}

## Select “run” for an NVFlare Code Object, expand the configuration options

{% endstep %}

{% step %}

## Select “enable homomorphic encryption” and enter parameters (use “{}” to use defaults)

{% endstep %}

{% step %}

## Select “Run Training”

{% endstep %}
{% endstepper %}
