Skip to content

Planning issue #1

Open
Open
@tarcieri

Description

We've had various interest in having a @RustCrypto implementation of ElGamal. This issue is intended for discussion and planning around how it should be implemented.

While there are existing implementations of ElGamal in its various forms in Rust, most of them are specialized to specific elliptic curve groups. One way a new implementation can differentiate itself is by being implemented generically over elliptic curve groups. The group crate provides a system of traits which make it possible for the implementation to be generic over curve groups (and potentially other types of groups). Our RustCrypto/elliptic-curves curve implementations all support these traits.

A generic implementation is desirable for a number of reasons, but one in particular is to support curves with a larger field modulus like NIST P-384, which would make it possible to encrypt a 256-bit symmetric secret.

Some additional features which might be nice are k-of-n threshold ElGamal encryption (using e.g. Pedersen secret sharing) and additively homomorphic encryption.

cc to some people who have worked on ElGamal implementations in Rust who might be interested in contributing: @iquerejeta @eleanor-em @isislovecruft

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions