Paper 2013/373

Injective Encoding to Elliptic Curves

Pierre-Alain Fouque, Antoine Joux, and Mehdi Tibouchi


For a number of elliptic curve-based cryptographic protocols, it is useful and sometimes necessary to be able to encode a message (a bit string) as a point on an elliptic curve in such a way that the message can be efficiently and uniquely recovered from the point. This is for example the case if one wants to instantiate CPA-secure ElGamal encryption directly in the group of points of an elliptic curve. More practically relevant settings include Lindell's UC commitment scheme (EUROCRYPT 2011) or structure-preserving primitives. It turns out that constructing such an encoding function is not easy in general, especially if one wishes to encode points whose length is large relative to the size of the curve. There is a probabilistic, ``folklore'' method for doing so, but it only provably works for messages of length less than half the size of the curve. In this paper, we investigate several approaches to injective encoding to elliptic curves, and in particular, we propose a new, essentially optimal geometric construction for a large class of curves, including Edwards curves; the resulting algorithm is also quite efficient, requiring only one exponentiation in the base field and simple arithmetic operations (however, the curves for which the map can be constructed have a point of order two, which may be a limiting factor for possible applications). The new approach is based on the existence of a covering curve of genus 2 for which a bijective encoding is known.

Available format(s)
Public-key cryptography
Publication info
Published elsewhere. ACISP 2013
Elliptic Curve CryptographyInjective EncodingAlgebraic Curves
Contact author(s)
mehdi tibouchi @ normalesup org
2013-06-12: received
Short URL
Creative Commons Attribution


      author = {Pierre-Alain Fouque and Antoine Joux and Mehdi Tibouchi},
      title = {Injective Encoding to Elliptic Curves},
      howpublished = {Cryptology ePrint Archive, Paper 2013/373},
      year = {2013},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.