Pentru a cripta un element de grup $P$ cu cheie publică $K$ și aleatorietatea $r$ folosind ElGamal pe curbele eliptice cu punct de bază $G$ facem următoarele $(c_1, c_2) = (r\cdot G; P+r\cdot K)$.
Când vrem să criptăm un mesaj în formă liberă $m$, trebuie să-l convertim într-un element de grup $P$ primul. Pentru aceasta, putem folosi fie înmulțirea scalară $P=m\cdot G$ (aditiv homomorfe) sau mapați mesajul $P = harta(m)$ (homomorf multiplicativ). Primul dă nu doar un punct, ci un element de grup. Acesta din urmă este mai complicat.
Toate metodele pe care le-am găsit mapează un mesaj la un punct de curbă (Abordarea lui Koblitz, varianta acestuia, articol de codificare injectivă). Cu toate acestea, nu există nicio garanție că punctul rezultat aparține grupului ciclic (adică are ordinea corectă).
Deci folosind codificare doar la punctul EC rezultă în nu securizează semantic ElGamal. Practic este similar cu scurgerea dacă mesajul este un reziduu pătratic sau nu atunci când este utilizat $G_q$ peste câmpuri finite cu $p = 2q+1$ și mesaje de la $Z_p^*$ fără codare (detalii despre motivul pentru care se întâmplă scurgerile sunt Aici sau Aici).
Există vreo modalitate de a codifica un mesaj aleatoriu la punctul EC în ordinea corectă (de ex.element de grup)? Există o modalitate de a converti punctul EC într-un element de grup?