homomorpheR: homomorpheR: Homomorphic computations in R

homomorpheRR Documentation

homomorpheR: Homomorphic computations in R

Description

homomorpheR is a start at a rudimentary package for homomorphic computations in R. The goal is to collect homomorphic encryption schemes in this package for privacy-preserving distributed computations; for example, applications of the sort immplemented in package distcomp.

Details

At the moment, only one scheme is implemented, the Paillier scheme. The current implementation makes no pretense at efficiency and also uses direct translations of other implementations, particularly the one in Javascript.

For a quick overview of the features, read the homomorpheR vignette by running vignette("homomorpheR").

References

https://en.wikipedia.org/wiki/Homomorphic_encryption

https://mhe.github.io/jspaillier/

Examples

keys <- PaillierKeyPair$new(1024) # Generate new key pair
encryptAndDecrypt <- function(x) keys$getPrivateKey()$decrypt(keys$pubkey$encrypt(x))
a <- gmp::as.bigz(1273849)
identical(a + 10L, encryptAndDecrypt(a+10L))
x <- lapply(1:100, function(x) random.bigz(nBits = 512))
edx <- lapply(x, encryptAndDecrypt)
identical(x, edx)

bnaras/homomorpheR documentation built on April 7, 2022, 5:06 a.m.