This is an example showing an ecryption scheme for plaintext strings over the JubJub elliptic curve group implemented here. It accomplishes this by taking a max 256-bit, utf-8 encoded string, and uses a probabilistic mapping
to determine a possible x
coordinate on the curve. When one is found, this point represents the message and is used to
compute the part of the cypher that contains the shared secret generated by Bob in the scheme.
For more information on the mapping:
Fouque, PA., Joux, A., Tibouchi, M. (2013). Injective Encodings to Elliptic Curves. In: Boyd, C., Simpson, L. (eds) Information Security and Privacy. ACISP 2013. Lecture Notes in Computer Science, vol 7959. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-39059-3_14
- Generate private/public keys to encrypt and decrypt arbitrary messages
- Encrypt symmetric keys by using hashed elgamal
- Signature support w/ sha256