THE PLATFORM

The computational stack

FHERMA is not limited to low-level mathematical kernels. A kernel can represent a computation at any level of abstraction, from a primitive operation to a complete application capability. The levels stack:

L5 · Privacy-preserving applications
        ↓
L4 · Application components
        ↓
L3 · Advanced cryptography
        ↓
L2 · Cryptographic components
        ↓
L1 · Math
        ↓
Implementations
        ↓
CPU / GPU / FPGA / other hardware

A concrete path through the stack:

Private application
        ↓
Encrypted search
        ↓
FHE operations
        ↓
Key switching / bootstrapping
        ↓
Polynomial arithmetic / NTT
        ↓
Modular arithmetic / BigInt
        ↓
CPU / CUDA implementation

The five layers

A kernel's layer describes what role the computation plays, not which technology or implementation executes it.

LayerRoleExamples
L1 · MathMathematical primitivesnumber-theoretic transform, polynomial multiplication, multi-scalar multiplication, element-wise multiply, matrix multiplication, modular reduction
L2 · Cryptographic componentsBuilding blocks of a cryptographic schemeCKKS key switching, CKKS bootstrapping, polynomial commitment, proof generation, secret sharing, private query
L3 · Advanced cryptographyWhole cryptographic technologiesFHE, ZK, MPC, PIR, PSI, PQC
L4 · Application componentsOperations over encrypted values an application composesReLU, logistic, sign, max, lookup, range proof, Merkle membership proof
L5 · Privacy-preserving applicationsEnd-to-end privacy-preserving applicationsprivate AI, private fraud detection, confidential payments, private analytics, secure data collaboration

The same computation keeps its level regardless of the scheme or hardware used to realise it. A key-switching kernel is a cryptographic operation whether it runs on a CPU or a GPU, and whether it is written against one FHE library or another.

Dependencies

Computations rarely exist in isolation. An implementation can record dependencies on implementations of other kernels, which makes the computational structure explicit:

Modular arithmetic
        ↓
Polynomial arithmetic
        ↓
NTT
        ↓
Key switching
        ↓
FHE workload
        ↓
Application

A dependency does not assert that every implementation is drop-in compatible with every other. It records which lower-level computations a higher-level one relies on, and which concrete implementations are currently used to realise them. Implementation metadata can carry the mechanism, the coverage, the artifacts, the environment and these dependencies together.