{
  "_id": "6ad29ee72c5c76d3dd0c92f5",
  "Package": "homomorpheR",
  "Type": "Package",
  "Title": "Homomorphic Computations in R",
  "Version": "1.0",
  "VignetteBuilder": "knitr",
  "Authors@R": "c(person(\"Balasubramanian\", \"Narasimhan\", role=c(\"aut\", \"cre\", \"cph\"),\nemail = \"naras@stat.Stanford.EDU\"))",
  "URL": "https://bnaras.github.io/homomorpheR/",
  "BugReports": "https://github.com/bnaras/homomorpheR/issues",
  "Description": "Privacy-preserving statistics across sites that never\nshare their data, using fully homomorphic encryption through\nthe 'openfhe.R' interface to OpenFHE (CKKS, BFV, BGV), with\nn-of-n threshold key generation so that no single party can\ndecrypt. Ships master/worker primitives that let ordinary R\nmodeling code run across sites, and a frozen implementation of\nthe Paillier additive scheme kept for backward compatibility.\nThe protocols are described in Narasimhan (2026)\n<doi:10.48550/arXiv.2610.04163>.",
  "License": "MIT + file LICENSE",
  "LazyData": "true",
  "LazyDataCompression": "xz",
  "Roxygen": "list(markdown = TRUE)",
  "Encoding": "UTF-8",
  "Config/roxygen2/version": "8.1.0",
  "Config/pak/sysreqs": "cmake libgmp3-dev make libsodium-dev",
  "Repository": "https://bnaras.r-universe.dev",
  "Date/Publication": "2026-10-06 14:05:52 UTC",
  "RemoteUrl": "https://github.com/bnaras/homomorpheR",
  "RemoteRef": "HEAD",
  "RemoteSha": "32ca485121cee3dc2c41e9ffb7ada90a159c6ebf",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-16 21:49:20 UTC",
    "User": "root"
  },
  "Author": "Balasubramanian Narasimhan [aut, cre, cph]",
  "Maintainer": "Balasubramanian Narasimhan <naras@stat.Stanford.EDU>",
  "_user": "bnaras",
  "_type": "src",
  "_file": "homomorpheR_1.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/de4af30c088c839d3af7f7e0a4f9255804e785a79bb7e51ecc1ad50b040f39bb",
  "_filesize": 4177777,
  "_sha256": "de4af30c088c839d3af7f7e0a4f9255804e785a79bb7e51ecc1ad50b040f39bb",
  "_expires": "2027-01-24T22:02:13.000Z",
  "_created": "2026-10-16T21:49:20.000Z",
  "_published": "2026-10-16T22:02:15.281Z",
  "_buildurl": "https://github.com/r-universe/bnaras/actions/runs/38971527756",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 117212209202,
      "time": 131,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12076528907"
    },
    {
      "job": 117212209184,
      "time": 132,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12077756683"
    },
    {
      "job": 117212209219,
      "time": 128,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12078115023"
    },
    {
      "job": 117212209128,
      "time": 89,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12077453922"
    },
    {
      "job": 117210904561,
      "time": 221,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12076872868"
    },
    {
      "job": 117212209356,
      "time": 110,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12077612287"
    },
    {
      "job": 117212209259,
      "time": 89,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12077805272"
    },
    {
      "job": 117212209169,
      "time": 86,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12077721917"
    },
    {
      "job": 117212209228,
      "time": 94,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12077337000"
    }
  ],
  "_upstream": "https://github.com/bnaras/homomorpheR",
  "_commit": {
    "id": "32ca485121cee3dc2c41e9ffb7ada90a159c6ebf",
    "author": "Balasubramanian Narasimhan <b.naras@gmail.com>",
    "committer": "Balasubramanian Narasimhan <b.naras@gmail.com>",
    "message": "README: missing article and trailing spaces\n",
    "time": 1791295552
  },
  "_maintainer": {
    "name": "Balasubramanian Narasimhan",
    "email": "naras@stat.stanford.edu",
    "login": "hrpcisd",
    "description": "",
    "uuid": 10241099
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.5.0",
      "role": "Depends"
    },
    {
      "package": "S7",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "gmp",
      "role": "Imports"
    },
    {
      "package": "openfhe.R",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "sodium",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "kableExtra",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "survival",
      "role": "Suggests"
    },
    {
      "package": "CVXR",
      "role": "Suggests"
    },
    {
      "package": "tinytest",
      "role": "Suggests"
    }
  ],
  "_owner": "bnaras",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-17",
      "n": 7
    },
    {
      "week": "2026-18",
      "n": 2
    },
    {
      "week": "2026-23",
      "n": 1
    },
    {
      "week": "2026-24",
      "n": 1
    },
    {
      "week": "2026-25",
      "n": 1
    },
    {
      "week": "2026-26",
      "n": 2
    },
    {
      "week": "2026-29",
      "n": 1
    },
    {
      "week": "2026-32",
      "n": 11
    },
    {
      "week": "2026-37",
      "n": 1
    },
    {
      "week": "2026-38",
      "n": 4
    },
    {
      "week": "2026-39",
      "n": 6
    },
    {
      "week": "2026-40",
      "n": 23
    },
    {
      "week": "2026-41",
      "n": 2
    }
  ],
  "_tags": [],
  "_stars": 5,
  "_contributors": [
    {
      "user": "bnaras",
      "count": 89,
      "uuid": 3030361
    }
  ],
  "_userbio": {
    "uuid": 3030361,
    "type": "user",
    "name": "Balasubramanian Narasimhan",
    "followers": 73
  },
  "_downloads": {
    "count": 580,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/homomorpheR"
  },
  "_devurl": "https://github.com/bnaras/homomorpher",
  "_pkgdown": "https://bnaras.github.io/homomorpheR/",
  "_searchresults": 54,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/homomorpheR.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/bnaras/homomorpher",
  "_realowner": "bnaras",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1-1",
      "date": "2015-11-12"
    },
    {
      "version": "0.2-1",
      "date": "2017-04-28"
    },
    {
      "version": "0.2-2",
      "date": "2019-01-23"
    },
    {
      "version": "0.3",
      "date": "2025-04-09"
    },
    {
      "version": "1.0",
      "date": "2026-10-03"
    }
  ],
  "_exports": [
    "add_local_and_forward",
    "add_site",
    "CKKSMaster",
    "contribute",
    "decrypt",
    "encrypt",
    "encrypt_real",
    "get_lambda",
    "get_private_key",
    "keygen_round",
    "LocalSite",
    "make_ckks_master",
    "make_master",
    "make_ncparty",
    "make_threshold_master",
    "make_worker",
    "Master",
    "master_aggregate",
    "NCParty",
    "OpenFHEParams",
    "paillier_keypair",
    "PaillierCiphertext",
    "PaillierEncryptedReal",
    "PaillierKeyPair",
    "PaillierMaster",
    "PaillierParams",
    "PaillierPrivateKey",
    "PaillierPublicKey",
    "partial_decrypt",
    "PublicParams",
    "random.bigz",
    "RemoteSite",
    "round_robin_chain",
    "run_round_robin",
    "set_next_site",
    "set_public_key",
    "set_public_params",
    "set_workers",
    "Site",
    "site_params",
    "site_unavailable",
    "ThresholdMaster"
  ],
  "_datasets": [
    {
      "name": "cox_results",
      "title": "Precomputed results for the 'cox' vignette",
      "object": "cox_results",
      "class": [
        "list"
      ],
      "fields": [],
      "table": false,
      "tojson": true
    },
    {
      "name": "cox_threshold_dp_results",
      "title": "Precomputed results for the 'cox-threshold-dp' vignette",
      "object": "cox_threshold_dp_results",
      "class": [
        "list"
      ],
      "fields": [],
      "table": false,
      "tojson": true
    },
    {
      "name": "cox_threshold_results",
      "title": "Precomputed results for the 'cox-threshold' vignette",
      "object": "cox_threshold_results",
      "class": [
        "list"
      ],
      "fields": [],
      "table": false,
      "tojson": true
    },
    {
      "name": "cvxr_admm_dp_results",
      "title": "Precomputed results for the 'cvxr-consensus-admm-dp' vignette",
      "object": "cvxr_admm_dp_results",
      "class": [
        "list"
      ],
      "fields": [],
      "table": false,
      "tojson": true
    },
    {
      "name": "cvxr_consensus",
      "title": "Precomputed encrypted Cox-lasso consensus-ADMM results",
      "object": "cvxr_consensus",
      "class": [
        "list"
      ],
      "fields": [],
      "table": false,
      "tojson": true
    },
    {
      "name": "DLBCL",
      "title": "Diffuse Large B-cell Lymphoma Cohort (Rosenwald et al. 2002)",
      "object": "DLBCL",
      "class": [
        "data.frame"
      ],
      "fields": [
        "ID",
        "Set",
        "Subgroup",
        "IPI",
        "time",
        "status",
        "GCB_sig",
        "LN_sig",
        "Prolif_sig",
        "BMP6",
        "MHC2_sig",
        "Score"
      ],
      "rows": 235,
      "table": true,
      "tojson": true
    },
    {
      "name": "DLBCL_gex",
      "title": "DLBCL Lymphochip gene-expression matrix",
      "object": "DLBCL_gex",
      "class": [
        "matrix",
        "array"
      ],
      "fields": [],
      "rows": 235,
      "table": true,
      "tojson": true
    },
    {
      "name": "similarity_results",
      "title": "Precomputed results for the 'similarity' vignette",
      "object": "similarity_results",
      "class": [
        "list"
      ],
      "fields": [],
      "table": false,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "actor-encryption",
      "title": "Encrypt and decrypt with protocol actors",
      "topics": [
        "actor-decryption",
        "actor-encryption"
      ]
    },
    {
      "page": "add_site",
      "title": "Add a site to a non-cooperating party",
      "topics": [
        "add_site"
      ]
    },
    {
      "page": "CKKSMaster",
      "title": "CKKS-backed master",
      "topics": [
        "CKKSMaster"
      ]
    },
    {
      "page": "contribute",
      "title": "A site's encrypted contribution at a parameter value",
      "topics": [
        "contribute"
      ]
    },
    {
      "page": "cox_results",
      "title": "Precomputed results for the 'cox' vignette",
      "topics": [
        "cox_results"
      ]
    },
    {
      "page": "cox_threshold_dp_results",
      "title": "Precomputed results for the 'cox-threshold-dp' vignette",
      "topics": [
        "cox_threshold_dp_results"
      ]
    },
    {
      "page": "cox_threshold_results",
      "title": "Precomputed results for the 'cox-threshold' vignette",
      "topics": [
        "cox_threshold_results"
      ]
    },
    {
      "page": "cvxr_admm_dp_results",
      "title": "Precomputed results for the 'cvxr-consensus-admm-dp' vignette",
      "topics": [
        "cvxr_admm_dp_results"
      ]
    },
    {
      "page": "cvxr_consensus",
      "title": "Precomputed encrypted Cox-lasso consensus-ADMM results",
      "topics": [
        "cvxr_consensus"
      ]
    },
    {
      "page": "DLBCL",
      "title": "Diffuse Large B-cell Lymphoma Cohort (Rosenwald et al. 2002)",
      "topics": [
        "DLBCL"
      ]
    },
    {
      "page": "DLBCL_gex",
      "title": "DLBCL Lymphochip gene-expression matrix",
      "topics": [
        "DLBCL_gex"
      ]
    },
    {
      "page": "encrypt_real",
      "title": "Encrypt a real number under a Paillier public key",
      "topics": [
        "encrypt_real"
      ]
    },
    {
      "page": "get_lambda",
      "title": "Return the secret lambda from a private key",
      "topics": [
        "get_lambda"
      ]
    },
    {
      "page": "get_private_key",
      "title": "Return the private key from a key pair",
      "topics": [
        "get_private_key"
      ]
    },
    {
      "page": "homomorpheR",
      "title": "homomorpheR: privacy-preserving statistics across sites",
      "topics": [
        "homomorpheR-package",
        "homomorpheR"
      ]
    },
    {
      "page": "keygen_round",
      "title": "One site's step in the threshold key-generation chain",
      "topics": [
        "keygen_round"
      ]
    },
    {
      "page": "LocalSite",
      "title": "A site whose data lives in this R session",
      "topics": [
        "LocalSite"
      ]
    },
    {
      "page": "make_ckks_master",
      "title": "Construct a CKKS-backed master",
      "topics": [
        "make_ckks_master"
      ]
    },
    {
      "page": "make_master",
      "title": "Construct a Paillier-backed master",
      "topics": [
        "make_master"
      ]
    },
    {
      "page": "make_ncparty",
      "title": "Construct an NCParty",
      "topics": [
        "make_ncparty"
      ]
    },
    {
      "page": "make_threshold_master",
      "title": "Run threshold key generation across sites and construct the master",
      "topics": [
        "make_threshold_master"
      ]
    },
    {
      "page": "make_worker",
      "title": "Construct a worker",
      "topics": [
        "make_worker"
      ]
    },
    {
      "page": "Master",
      "title": "Abstract master class",
      "topics": [
        "Master"
      ]
    },
    {
      "page": "master_aggregate",
      "title": "Run one round of the master/worker protocol",
      "topics": [
        "master_aggregate"
      ]
    },
    {
      "page": "NCParty",
      "title": "A non-cooperating party",
      "topics": [
        "NCParty"
      ]
    },
    {
      "page": "OpenFHEParams",
      "title": "Public parameters for the 'openfhe.R' backends",
      "topics": [
        "OpenFHEParams"
      ]
    },
    {
      "page": "paillier_keypair",
      "title": "Generate a new Paillier key pair",
      "topics": [
        "paillier_keypair"
      ]
    },
    {
      "page": "PaillierCiphertext",
      "title": "A Paillier ciphertext",
      "topics": [
        "PaillierCiphertext"
      ]
    },
    {
      "page": "PaillierEncryptedReal",
      "title": "A Paillier-encrypted real number",
      "topics": [
        "PaillierEncryptedReal"
      ]
    },
    {
      "page": "PaillierKeyPair",
      "title": "Paillier key pair",
      "topics": [
        "PaillierKeyPair"
      ]
    },
    {
      "page": "PaillierMaster",
      "title": "Paillier-backed master",
      "topics": [
        "PaillierMaster"
      ]
    },
    {
      "page": "PaillierParams",
      "title": "Public parameters for the frozen Paillier backend",
      "topics": [
        "PaillierParams"
      ]
    },
    {
      "page": "PaillierPrivateKey",
      "title": "Paillier private key",
      "topics": [
        "PaillierPrivateKey"
      ]
    },
    {
      "page": "PaillierPublicKey",
      "title": "Paillier public key",
      "topics": [
        "PaillierPublicKey"
      ]
    },
    {
      "page": "partial_decrypt",
      "title": "One site's partial decryption of a ciphertext",
      "topics": [
        "partial_decrypt"
      ]
    },
    {
      "page": "PublicParams",
      "title": "The public parameters a party encrypts under",
      "topics": [
        "PublicParams"
      ]
    },
    {
      "page": "random.bigz",
      "title": "Random big integer",
      "topics": [
        "random.bigz"
      ]
    },
    {
      "page": "RemoteSite",
      "title": "A site whose contribution is produced outside this R session",
      "topics": [
        "RemoteSite"
      ]
    },
    {
      "page": "round_robin_chain",
      "title": "Wire a master and a list of sites into a round-robin chain",
      "topics": [
        "round_robin_chain"
      ]
    },
    {
      "page": "run_round_robin",
      "title": "Run one round of the round-robin protocol",
      "topics": [
        "run_round_robin"
      ]
    },
    {
      "page": "set_next_site",
      "title": "Wire one site's 'next_site' to another",
      "topics": [
        "set_next_site"
      ]
    },
    {
      "page": "set_public_key",
      "title": "Distribute the public key from the master to a downstream actor",
      "topics": [
        "set_public_key"
      ]
    },
    {
      "page": "set_public_params",
      "title": "Give a party the public parameters it will encrypt under",
      "topics": [
        "set_public_params"
      ]
    },
    {
      "page": "set_workers",
      "title": "Wire a master to a flat list of workers",
      "topics": [
        "set_workers"
      ]
    },
    {
      "page": "similarity_results",
      "title": "Precomputed results for the 'similarity' vignette",
      "topics": [
        "similarity_results"
      ]
    },
    {
      "page": "Site",
      "title": "A site in a multi-party protocol",
      "topics": [
        "Site"
      ]
    },
    {
      "page": "site_params",
      "title": "The public parameters a party holds",
      "topics": [
        "site_params"
      ]
    },
    {
      "page": "site_unavailable",
      "title": "Signal that a site could not be reached",
      "topics": [
        "site_unavailable"
      ]
    },
    {
      "page": "ThresholdMaster",
      "title": "Threshold-CKKS master (n-of-n key generation)",
      "topics": [
        "ThresholdMaster"
      ]
    }
  ],
  "_pkglogo": "https://github.com/bnaras/homomorpheR/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/bnaras/homomorpheR/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "gmp",
    "openfhe.R",
    "rlang",
    "S7",
    "sodium"
  ],
  "_vignettes": [
    {
      "source": "cvxr-consensus-admm-dp.Rmd",
      "filename": "cvxr-consensus-admm-dp.html",
      "title": "Consensus ADMM with Gaussian Noise (Demonstration)",
      "author": "Balasubramanian Narasimhan",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "The problem and its consensus split",
        "Adding noise",
        "A brief output-DP primer",
        "The protocol modification",
        "The stopping rule changes",
        "Setup",
        "Simulated cohort",
        "Choosing $\\rho$ and $T$ without touching the cohort",
        "Threshold-FHE setup",
        "The DP-ADMM loop",
        "Centralized CVXR fit",
        "The $\\sigma$ sweep",
        "Privacy budget",
        "References"
      ],
      "created": "2026-04-26 03:15:07",
      "modified": "2026-10-01 04:22:54",
      "commits": 14
    },
    {
      "source": "cox-threshold.Rmd",
      "filename": "cox-threshold.html",
      "title": "Distributed Cox Regression with Threshold Key Generation",
      "author": "Balasubramanian Narasimhan",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "Threat model",
        "The Cox setup (same DLBCL data as cox.Rmd)",
        "The protocol",
        "Implementation",
        "Iterative MLE through the threshold protocol",
        "Comparison with the cleartext fit",
        "Discussion",
        "Limitations"
      ],
      "created": "2026-04-26 01:52:32",
      "modified": "2026-09-30 21:40:00",
      "commits": 12
    },
    {
      "source": "mle.Rmd",
      "filename": "mle.html",
      "title": "Distributed Maximum Likelihood Estimation",
      "author": "Balasubramanian Narasimhan",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The statistical problem",
        "The privacy constraint",
        "The protocol",
        "Implementation",
        "1. Generate a CKKS key pair",
        "2. Build workers and master",
        "3. Run mle() through the encrypted channel",
        "Beyond MLE",
        "CAVEAT"
      ],
      "created": "2026-04-26 01:31:43",
      "modified": "2026-10-01 19:29:09",
      "commits": 11
    },
    {
      "source": "query-count-threshold.Rmd",
      "filename": "query-count-threshold.html",
      "title": "Distributed Query Count with Threshold Keys",
      "author": "Balasubramanian Narasimhan",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The problem",
        "The target answer",
        "Why the classic solution needed two non-cooperating parties",
        "Threshold encryption removes the need for masking",
        "The threshold-BFV implementation",
        "The encrypted answer is exact",
        "Summary"
      ],
      "created": "2026-07-17 17:17:31",
      "modified": "2026-09-30 21:40:00",
      "commits": 8
    },
    {
      "source": "cox.Rmd",
      "filename": "cox.html",
      "title": "Distributed Stratified Cox Regression",
      "author": "Balasubramanian Narasimhan",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The statistical problem",
        "DLBCL lymphoma cohort",
        "The aggregated fit",
        "The protocol",
        "Wiring up the protocol",
        "Iterative MLE through the encrypted protocol",
        "Comparison with the cleartext fit",
        "What just happened",
        "What this demonstrates",
        "Caveats and extensions"
      ],
      "created": "2026-04-26 01:31:43",
      "modified": "2026-10-01 19:29:09",
      "commits": 13
    },
    {
      "source": "encrypted-regression.Rmd",
      "filename": "encrypted-regression.html",
      "title": "Encrypted Logistic Regression Prediction",
      "author": "Balasubramanian Narasimhan",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "The setting",
        "Step 1: train in the clear",
        "Step 2: encrypt patient data",
        "Step 3: evaluate the linear predictor (encrypted)",
        "Step 4: apply the sigmoid (encrypted)",
        "Step 5: decrypt predictions",
        "Summary",
        "Limitations"
      ],
      "created": "2026-04-26 02:35:00",
      "modified": "2026-09-30 01:26:50",
      "commits": 6
    },
    {
      "source": "similarity.Rmd",
      "filename": "similarity.html",
      "title": "Federated Cosine Similarity with Site-Private Fine-Tuned Models",
      "author": "Balasubramanian Narasimhan",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "The setup",
        "Threat model",
        "The protocol",
        "Synthetic data",
        "Threshold key generation",
        "Joint rotation keys",
        "Per-site adapter fit and database setup",
        "Diagonal-encoded matrix-vector multiply",
        "Inner product against the local database",
        "What is in the slots we do not read",
        "Site contribution_fn: full per-site protocol step",
        "Master orchestration and threshold-decrypted top-k",
        "Reference-truth comparison",
        "What the adapter buys: fidelity, posture, and a sweet spot",
        "Discussion",
        "Limitations",
        "Related work",
        "References"
      ],
      "created": "2026-04-29 00:39:06",
      "modified": "2026-10-01 19:29:09",
      "commits": 18
    },
    {
      "source": "cvxr-cox-lasso-dlbcl.Rmd",
      "filename": "cvxr-cox-lasso-dlbcl.html",
      "title": "Federated Cox-Lasso via Consensus ADMM on DLBCL",
      "author": "Balasubramanian Narasimhan",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "The global problem and its consensus split",
        "The federated fit in the clear",
        "The same fit under threshold FHE",
        "Comparison with the centralized fit",
        "What the protocol hides and reveals",
        "Discussion",
        "Limitations"
      ],
      "created": "2026-06-12 17:42:12",
      "modified": "2026-10-02 00:22:43",
      "commits": 16
    },
    {
      "source": "introduction.Rmd",
      "filename": "introduction.html",
      "title": "Introduction to homomorpheR",
      "author": "Balasubramanian Narasimhan",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The problem this package addresses",
        "Terms you will meet",
        "How the pieces fit together",
        "Sites that are not in this R session",
        "What \"the right answer\" means",
        "Which vignette to read",
        "A note on Paillier",
        "References"
      ],
      "created": "2015-11-12 00:47:20",
      "modified": "2026-10-01 04:22:54",
      "commits": 16
    },
    {
      "source": "precision.Rmd",
      "filename": "precision.html",
      "title": "Precision",
      "author": "Balasubramanian Narasimhan",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "Exact, for integer schemes",
        "Approximate, for CKKS"
      ],
      "created": "2026-09-07 09:11:29",
      "modified": "2026-09-30 21:40:00",
      "commits": 4
    },
    {
      "source": "privacy-preserving-aggregation.Rmd",
      "filename": "privacy-preserving-aggregation.html",
      "title": "Privacy-Preserving Count Aggregation",
      "author": "Balasubramanian Narasimhan",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The problem",
        "Setup",
        "The aggregator sets up encryption",
        "Each site computes locally and encrypts",
        "The aggregator aggregates",
        "Verification",
        "The details of what happened",
        "Serializing for a real distributed protocol"
      ],
      "created": "2026-04-26 02:39:12",
      "modified": "2026-09-29 22:23:48",
      "commits": 6
    },
    {
      "source": "secure-inference.Rmd",
      "filename": "secure-inference.html",
      "title": "Secure Model Inference on Encrypted Data",
      "author": "Balasubramanian Narasimhan",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The use case",
        "Scenario: weighted biomarker score",
        "Setup: hospital's context and patient data",
        "Lab side: apply the model to encrypted data",
        "Hospital side: decrypt the results",
        "Verification",
        "Transport guarantees",
        "Threat model: model extraction from the hospital side",
        "Layered defenses",
        "Network protocol: serialization"
      ],
      "created": "2026-04-26 02:29:50",
      "modified": "2026-09-30 21:40:00",
      "commits": 9
    },
    {
      "source": "cox-threshold-dp.Rmd",
      "filename": "cox-threshold-dp.html",
      "title": "Threshold Cox with Gaussian Noise (Demonstration)",
      "author": "Balasubramanian Narasimhan",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "A brief output-DP primer",
        "The protocol",
        "The Cox setup (same DLBCL data as the other Cox vignettes)",
        "Threshold setup and DP-noised workers",
        "Mechanical correctness: $\\sigma = 0$ reproduces cox-threshold",
        "Increasing noise: where does it break?",
        "Nelder–Mead at the same noise scales",
        "Privacy budget",
        "References"
      ],
      "created": "2026-04-26 03:15:07",
      "modified": "2026-10-01 04:22:54",
      "commits": 14
    }
  ],
  "_score": 7.35822047310868,
  "_indexed": true,
  "_nocasepkg": "homomorpher",
  "_universes": [
    "bnaras",
    "hrpcisd"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.0",
      "date": "2026-10-16T21:51:28.000Z",
      "distro": "resolute",
      "commit": "32ca485121cee3dc2c41e9ffb7ada90a159c6ebf",
      "fileid": "https://r2.ropensci.org/1c37093aa89823b842fc97b2cc52657bf2e104d0f023f8010b5fa1fd46b90544",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bnaras/actions/runs/38971527756"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.0",
      "date": "2026-10-16T21:51:26.000Z",
      "distro": "resolute",
      "commit": "32ca485121cee3dc2c41e9ffb7ada90a159c6ebf",
      "fileid": "https://r2.ropensci.org/6fc81ebbc72647f8d8a50981e3465d84ce1b1a6da984cddc107522c8cb7fb733",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bnaras/actions/runs/38971527756"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.0",
      "date": "2026-10-16T22:01:24.000Z",
      "commit": "32ca485121cee3dc2c41e9ffb7ada90a159c6ebf",
      "fileid": "https://r2.ropensci.org/8b88bb4d50b3168a344299200d5695adf2bb18ccf830c5da6034620df3744bc7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bnaras/actions/runs/38971527756"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.0",
      "date": "2026-10-16T22:00:46.000Z",
      "commit": "32ca485121cee3dc2c41e9ffb7ada90a159c6ebf",
      "fileid": "https://r2.ropensci.org/5c4217cd15a05fee2d399cc12e730f74b0527936becf4c560e8e718e4cd31097",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bnaras/actions/runs/38971527756"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.0",
      "date": "2026-10-16T21:51:26.000Z",
      "commit": "32ca485121cee3dc2c41e9ffb7ada90a159c6ebf",
      "fileid": "https://r2.ropensci.org/62a9b0729496eae4468eb367c9164e076c73fac032ac7530d6518aac8d8c0bc7",
      "status": "success",
      "buildurl": "https://github.com/r-universe/bnaras/actions/runs/38971527756"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.0",
      "date": "2026-10-16T21:50:37.000Z",
      "commit": "32ca485121cee3dc2c41e9ffb7ada90a159c6ebf",
      "fileid": "https://r2.ropensci.org/1ed012ec2c8784f23eedaff8d7883af6dfb8de1d0db4bed68dd75b83f50f46a1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bnaras/actions/runs/38971527756"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.0",
      "date": "2026-10-16T21:50:34.000Z",
      "commit": "32ca485121cee3dc2c41e9ffb7ada90a159c6ebf",
      "fileid": "https://r2.ropensci.org/1cfffd1cecac033a375288c5cc633dcb276d4e4a1253bb1cead8c636a389ca13",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bnaras/actions/runs/38971527756"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.0",
      "date": "2026-10-16T21:50:40.000Z",
      "commit": "32ca485121cee3dc2c41e9ffb7ada90a159c6ebf",
      "fileid": "https://r2.ropensci.org/3d20c8f24e17f281beef34eadfdabd17f5532fd3a181d99b0b815788d92e79f8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/bnaras/actions/runs/38971527756"
    }
  ]
}