> 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/differential-privacy.md).

# Differential Privacy

#### Overview

Differential privacy is a technique that adds "noise" to data to protect the privacy of individual records. It makes it challenging to extract information about specific individuals while still providing useful statistical insights. Using the FCP, you can set the level of noise added by your chosen privacy settings, depending on the sensitivity of the data.

#### Differential Privacy Enforcement Levels

{% hint style="info" %}
These differential privacy levels apply specifically to rhino-specific **aggregated statistics**.&#x20;

For **federated model training**, differential privacy is handled separately through NVIDIA FLARE (NVFlare).
{% endhint %}

Rhino FCP offers four privacy enforcement levels:

* **None:** No noise will be added. Suitable for projects where no privacy constraints are required.
* **Low:** Single-element metrics (e.g., percentiles) will always have noise added, but aggregate statistics (e.g., mean, standard deviation) will not. Suitable for projects with a moderate privacy requirement while allowing accurate aggregate statistics.
* **Medium:** Single-element metrics (e.g., percentiles) will always have noise added, and aggregate statistics (e.g., mean, standard deviation) will have noise added if the unique values they are based on aren't diverse (`num_unique_values < k`). Suitable for most common projects.
* **High:** All values will have some noise added, even if they are sufficiently aggregated. Suitable for projects with a strong privacy requirement, sacrificing some data accuracy for increased privacy.

| Metric                                            | None           | Low                                                                                                                                                                                                                               | Medium                                                                                                                                                                                                                            | High                                      |
| ------------------------------------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| Percentile                                        | No noise added | Noise added                                                                                                                                                                                                                       | Noise added                                                                                                                                                                                                                       | Noise added                               |
| <p>Mean<br>Standard Deviation<br>Sum<br>Count</p> | No noise added | No noise added                                                                                                                                                                                                                    | Noise is added if `num_unique_values` is smaller than the project's *k anonymity factor*                                                                                                                                          | Noise added                               |
| Kaplan Meier                                      | No noise added | Noise is added to the time values, solely to aggregated times which are created by combining time intervals when the number of events falls below the *k anonymity factor*. For more details, see the Kaplan Meier documentation. | Noise is added to the time vector, solely to aggregated times which are created by combining time intervals when the number of events falls below the *k anonymity factor*. For more details, see the Kaplan Meier documentation. | Noise is added to all of the time values. |

#### Configuring Differential Privacy

To configure the differential privacy enforcement level for a project:

1. **Create a New Project**: When creating a new project, select the desired "Differential Privacy Enforcement" setting (None, Low, Medium, High).
2. **Existing Projects**: Existing projects have a DP enforcement level of "Medium" unless configured otherwise.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rhinofcp.com/security-and-data-protections/differential-privacy.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
