# Homomorphic encryption

Homomorphic encryption is a form of encryption that permits computations on encrypted data without the need to decrypt it. The output, when decrypted, is identical to that produced had the operations been performed on the unencrypted data. While there is a lack of practical schemes that deliver fully homomorphic encryption, there do exist practical schemes that exhibit some homomorphic capabilities. One example is RSA. Another is the discrete log-based systems, typically defined either modulo a prime *p*, or using [elliptic curves](/docs/learn/cryptographic-primitives/elliptic-curves.md). It is the latter that is the focus here.&#x20;

There are two main types of homomorphic encryption: fully homomorphic encryption (FHE) and partially homomorphic encryption (PHE). FHE allows arbitrary computations to be performed on encrypted data, while PHE allows only certain types of computations to be performed, such as addition or multiplication using elliptic curves, with *G* being a generator of an elliptic curve group. The (homomorphic) operations that can be performed are:

* Addition: given points *bG* and *cG*, an expression of form *a = b + c* can be evaluated in encrypted form as *aG = bG + cG.*&#x20;
* Scalar multiplication: given *bG*, an expression of the form, *a = cb*, where *c* is a constant, can be evaluated in encrypted form as *aG = c(bG).*&#x20;


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.pantherprotocol.io/docs/learn/cryptographic-primitives/homomorphic-encryption.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
