Privacy-preserving statistics across sites that never share their data, using fully homomorphic encryption through the 'openfhe.R' interface to OpenFHE (CKKS, BFV, BGV), with n-of-n threshold key generation so that no single party can decrypt. Ships master/worker primitives that let ordinary R modeling code run across sites, and a frozen implementation of the Paillier additive scheme kept for backward compatibility.

homomorpheR is privacy-preserving statistics across sites that never
share their data. It uses fully homomorphic encryption through the
openfhe.R interface to OpenFHE — CKKS for real-valued arithmetic,
BFV and BGV for exact integers — with n-of-n threshold key
generation so that no single party can decrypt. On top of these it
ships master/worker primitives that let ordinary R modeling code —
stats4::mle(), stratified survival::coxph(), convex programs via
CVXR — run across sites. A frozen implementation of the Paillier
additive scheme is kept for backward compatibility.
The version on CRAN is 0.3, the Paillier-only release; this development version is a rewrite on OpenFHE. Install it, with its dependencies, by
remotes::install_github("bnaras/homomorpheR", ref = "v1.0")
The cox and cvxr vignettes also use survival and CVXR, which
are suggested rather than imported:
install.packages(c("survival", "CVXR"))
The vignettes build up from a gentle introduction to complete distributed protocols:
Getting started
introduction — a quick tour of homomorphic computation in R.precision — which encrypted computations are exact and which are
approximate.privacy-preserving-aggregation — exact integer aggregation under BFV.query-count-threshold — a count across sites under threshold keys.mle — homomorphic maximum-likelihood estimation for a Poisson
parameter.Distributed statistical modeling under FHE
cox — stratified Cox regression distributed across sites under CKKS.cox-threshold — the same fit under n-of-n threshold key
generation, so no single party can decrypt.cvxr-cox-lasso-dlbcl — a Cox-lasso fit by consensus ADMM, with
CVXR at each site, under threshold FHE on the DLBCL
gene-expression data.secure-inference — two-party encrypted prediction.encrypted-regression — logistic regression on encrypted data via a
Chebyshev sigmoid approximation.similarity — federated cosine-similarity retrieval with site-private
fine-tuned models.Gaussian-noise variants
cox-threshold-dp, cvxr-consensus-admm-dp — the threshold-FHE
protocols above with site-side Gaussian noise. Demonstrations, not a
privacy guarantee.Legacy Paillier vignettes. These no longer ship with the package.
They are kept in the paillier-archive/ directory of this repository.
homomorphing — Paillier homomorphic computations.DHCox — distributed Cox regression via Paillier.QueryNCP — query count with non-cooperating parties.DHCoxNCP — distributed Cox with non-cooperating parties.A related project is distcomp.
You can view everything, including documentation and vignettes on the homomorpheR website.