---
title: "What is Fully Homomorphic Encryption (FHE)?"
canonical: https://wavect.io/glossary/homomorphic-encryption/
language: en
description: "A cryptographic technique that lets a server compute on encrypted data without ever decrypting it."
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

TECHNOLOGIES

# Homomorphic Encryption

Fully Homomorphic Encryption (FHE)

A cryptographic technique that lets a server compute on encrypted data without ever decrypting it.

Last reviewed: 2026-07-05 by [Kevin Riedl](/team/kevin-riedl/) [wiki ↗](https://www.wikidata.org/wiki/Q139796365)

Homomorphic encryption lets someone run a computation on your data while the data stays encrypted the whole time. The client encrypts the input, the server computes blind, and only the client can decrypt the result. The server learns nothing, not even the answer. Fully homomorphic encryption (FHE) is the general form: any computation, unlimited depth, at a price.

The price is the whole story. FHE runs roughly 1,000x to 10,000x slower than the same computation in plaintext, which rules out interactive workloads and anything frontier-model-sized. What ships in production is the narrow pattern: private lookups and small, well-defined computations. Apple’s Live Caller ID Lookup checks unknown callers against a server database without revealing the phone number (BFV scheme), Microsoft Edge checks passwords against breach corpora without seeing them, and Zama’s protocol settles encrypted transactions on Ethereum at tens of transactions per second. Nobody runs their backend under FHE, including the companies with the deepest pockets.

In practice, “FHE” is a family of schemes with different sweet spots: TFHE for encrypted logic and comparisons, CKKS for approximate numbers and machine learning, BGV/BFV for exact integer lookups. Tooling is open source and usable by strong engineering teams, but library choice is workload-specific: TFHE-rs is the mature TFHE starting point, Apple’s Swift library fits BFV lookups, and CKKS warrants a benchmark across Poulpy, Lattigo, SEAL, OpenFHE, and GPU-native options such as FIDESlib. Parameter selection and performance engineering remain specialist work. If the goal is proving a fact rather than computing on hidden data, [zero-knowledge proofs](/glossary/zero-knowledge/) are the better tool; if a hardware trust root is acceptable, a trusted execution environment does the same job at near-native speed. Our [FHE deep dive](/blog/fully-homomorphic-encryption-practical-2026/) carries the sourced 2026 numbers, and the [decision framework](/blog/zk-vs-fhe-vs-mpc-vs-tee/) covers when FHE beats the alternatives.

// FAQ

## FAQs

### Is FHE practical in 2026?

For narrow workloads, yes: private lookups (the Apple and Microsoft pattern), small-model ML inference, and encrypted logic at tens of transactions per second. For general-purpose or real-time computation, no: the overhead is still three to four orders of magnitude versus plaintext.

### What is the difference between FHE and zero-knowledge proofs?

ZK proves a statement is true without revealing the evidence; FHE computes on data that stays encrypted. Use ZK when a third party must verify something, FHE when an untrusted party must compute on data it may never see. They compose well: many architectures use both.

### Which FHE library should we start with?

Use Zama’s TFHE-rs for encrypted logic and Apple’s swift-homomorphic-encryption for BFV private lookups. For CKKS analytics, benchmark Poulpy, Lattigo, SEAL, OpenFHE, and a GPU-native option such as FIDESlib against the exact workload; OpenFHE offers breadth, but it is not automatically the performance leader.

Related terms

- [Zero-Knowledge](/glossary/zero-knowledge/)
- [LLM](/glossary/llm/)

Related services

- [AI & Frontier Tech](/services/bleeding-edge/)

Related case studies

- [Twinsoft AI](/case-studies/twinsoft-ai/)

Related guides

- [How to choose a tech stack for an MVP](/software-development-guide/how-to-choose-a-tech-stack-for-mvp/)

Talk to us

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/glossary/homomorphic-encryption/#term",
      "@type": "DefinedTerm",
      "alternateName": [
        "FHE",
        "Fully Homomorphic Encryption",
        "TFHE",
        "CKKS"
      ],
      "description": "A cryptographic technique that lets a server compute on encrypted data without ever decrypting it.",
      "inDefinedTermSet": "https://wavect.io/glossary/#termset",
      "name": "Homomorphic Encryption",
      "termCode": "homomorphic-encryption",
      "url": "https://wavect.io/glossary/homomorphic-encryption/"
    },
    {
      "@id": "https://wavect.io/glossary/homomorphic-encryption/#webpage",
      "@type": "WebPage",
      "about": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "author": {
        "@id": "https://wavect.io/team/kevin-riedl/#person",
        "@type": "Person",
        "name": "Kevin Riedl",
        "url": "https://wavect.io/team/kevin-riedl/"
      },
      "dateModified": "2026-07-05",
      "description": "A cryptographic technique that lets a server compute on encrypted data without ever decrypting it.",
      "headline": "Homomorphic Encryption",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-07-05",
      "mainEntity": {
        "@id": "https://wavect.io/glossary/homomorphic-encryption/#term"
      },
      "mentions": [
        {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        {
          "@type": "Service",
          "name": "AI & Frontier Tech",
          "url": "https://wavect.io/services/bleeding-edge/"
        }
      ],
      "name": "Homomorphic Encryption",
      "reviewedBy": {
        "@id": "https://wavect.io/team/christof-jori/#person",
        "@type": "Person",
        "name": "Christof Jori",
        "url": "https://wavect.io/team/christof-jori/"
      },
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": [
          ".gls-single__h1",
          ".gls-single__tldr"
        ]
      },
      "url": "https://wavect.io/glossary/homomorphic-encryption/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/",
          "name": "Home",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/glossary/",
          "name": "Tech, product & engagement glossary",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/glossary/homomorphic-encryption/",
          "name": "Homomorphic Encryption",
          "position": 3
        }
      ]
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "For narrow workloads, yes: private lookups (the Apple and Microsoft pattern), small-model ML inference, and encrypted logic at tens of transactions per second. For general-purpose or real-time computation, no: the overhead is still three to four orders of magnitude versus plaintext."
      },
      "name": "Is FHE practical in 2026?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "ZK proves a statement is true without revealing the evidence; FHE computes on data that stays encrypted. Use ZK when a third party must verify something, FHE when an untrusted party must compute on data it may never see. They compose well: many architectures use both."
      },
      "name": "What is the difference between FHE and zero-knowledge proofs?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Use Zama's TFHE-rs for encrypted logic and Apple's swift-homomorphic-encryption for BFV private lookups. For CKKS analytics, benchmark Poulpy, Lattigo, SEAL, OpenFHE, and a GPU-native option such as FIDESlib against the exact workload; OpenFHE offers breadth, but it is not automatically the performance leader."
      },
      "name": "Which FHE library should we start with?"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
