Download Latest Version libkkpa-0.3.tar.gz (63.6 kB)
Email in envelope

Get an email when there's a new version of LibKKPA

Home
Name Modified Size InfoDownloads / Week
libkkpa-0.3.tar.gz 2016-02-02 63.6 kB
libkkpa-0.2.tar.gz 2016-02-02 63.7 kB
README 2016-02-01 2.2 kB
libkkpa-0.1.tar.gz 2016-02-01 61.0 kB
Totals: 4 Items   190.4 kB 0
KKPA [1] is a cryptosystem which offers additive and multiplicative
homomorphism, making it very useful for privacy preserving
applications. This is a simple C library which implements KKPA key
generation, encryption, decryption, and also makes it easy to use the
homomorphism.

The excellent GNU Multiple Precision Arithmetic Library (GMP) is used
for the underlying number theoretic operations, so you will need to
have that installed before building libkkpa.

Generally, the library is written in the most straightforward manner
that you may imagine given that it is written in C and uses GMP. The
KKPA cryptosystem is not very complicated, and neither is
libkkpa.

Right now, the only documentation available is the series of comments
in the header file (kkpa.h). That is probably all that is
necessary, however, given the simplicity of the library.

There are couple security considerations to keep in mind if you intend
to try to actually do something secure with libkkpa. Which you
absolutely shouldn't do anyway, since there are probably other issues
I'm overlooking.

When the kkpa_keygen function selects a modulus n = p q, it does
not bother ensuring that p and q are strong primes [2]. While this was
at one point considered important (e.g., it is required by ANSI
X9.31), modern factoring algorithms make any advantage of strong
primes doubtful [3]. RSA Laboratories no longer recommends the
practice.

More importantly, at no point is any special effort made to securely
"shred" sensitive memory. This means that it is important that
functions dealing with private keys and plaintexts (e.g.,
kkpa_keygen and kkpa_enc) only be run on trusted machines. The
resulting ciphertexts and public keys, however, may of course be
handled in an untrusted manner.

The following paper introduced the basic algorithms that libkkpa
implements.

  [1] "Fully Homomorphic Encryption Scheme with Probabilistic Encryption"
  Kumar, Kumar, Pandey and Alam
  2016

Please report any bugs, questions, comments, and contributions to
ptb@inv.it.uc3m.es.

Peter Breuer <ptb@inv.it.uc3m.es>

[2] http://en.wikipedia.org/wiki/Strong_prime

[3] http://eprint.iacr.org/2001/007

Source: README, updated 2016-02-01