Skip to content
The ElGamal encryption and proof components
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src provotum/backend#21: Add clone methods Mar 7, 2018
.gitignore
.travis.yml
LICENSE
README.md
pom.xml provotum/backend#21: Add clone methods Mar 7, 2018

README.md

Provotum Security

Credits: The encryption and proof logic is heavily inspired by the Adder Voting System.

Requirements

Installation

  • Clone this repo and cd into it: git clone git@github.com:provotum/security.git && cd security
  • Run mvn clean install to install the application and run the corresponding tests

Development

Main Interfaces

  • IHomomorphicEncryption This interface ensures the signature for all implementations of a particular kind of homomorphic encryption. As a generic parameter, it requires the kind of ciphertext it operates on.
  • IHomomorphicCipherText Homomorphic cipher texts allow to operate on each other, abstracting the concrete mathematical details from the caller. It requires a concrete ciphertext as generic parameter.
  • IMembershipProof The interface for a membership proof requires a class implementing \texttt{IHomomorphicCiphertext} as generic parameter, restricting the classes it is able to generate proofs for.

Main Implementations

    E(m) = (g^r, h^r * g^m), with
    
    g = generator
    m = message</li>
    h = g^x i.e. the public key whereas x = private key
    r = [0, q-1]
    
    which operates in an additive manner over the encrypted plaintexts:
    
    E(m1) * E(m2) = (g^(r1+r2), h^(r1+r2) * g^(m1+m2))
                  = E(m1 + m2)
  • ElGamal Encryption The encryption and decryption component for the above documented ciphertext.
  • Non-interactive Membership Proof The non-interactive membership proof allowing to prove that a certain ElGamal ciphertext actually contains a particular cleartext value.
You can’t perform that action at this time.