เพื่อเข้ารหัสองค์ประกอบกลุ่ม $พี$ ด้วยรหัสสาธารณะ $K$ และความบังเอิญ $r$ ใช้ ElGamal บนเส้นโค้งวงรีพร้อมจุดฐาน $G$ เราทำดังต่อไปนี้ $(c_1, c_2) = (r\cdot G; P+r\cdot K)$.
เมื่อเราต้องการเข้ารหัสข้อความรูปแบบอิสระ $m$เราต้องแปลงเป็นองค์ประกอบกลุ่ม $พี$ แรก. สำหรับสิ่งนั้น เราสามารถใช้การคูณแบบสเกลาร์ก็ได้ $P=m\cdot G$ (โฮโมมอร์ฟิคเพิ่มเติม) หรือแมปข้อความ $P = แผนที่(m)$ (โฮโมมอร์ฟิคแบบทวีคูณ). อดีตให้ ไม่ใช่แค่จุดแต่เป็นองค์ประกอบกลุ่ม หลังมีความซับซ้อนมากขึ้น
วิธีการทั้งหมดที่ฉันพบแมปข้อความไปยังจุดโค้ง (แนวทางของ Koblitz, ตัวแปรของมัน, บทความการเข้ารหัสฉีด). อย่างไรก็ตาม ไม่มีการรับประกันว่าจุดผลลัพธ์เป็นของกลุ่มวงจร (เช่น มีลำดับที่ถูกต้อง)
ดังนั้นการใช้ เข้ารหัสเพียงจุด EC ส่งผลให้ ไม่ปกป้อง ElGamal ในเชิงความหมาย. โดยทั่วไปจะคล้ายกับการรั่วไหลหากข้อความนั้นเป็นเศษซากกำลังสองหรือไม่เมื่อใช้ $G_q$ ในขอบเขตจำกัดด้วย $p = 2q+1$ และข้อความจาก $Z_p^*$ โดยไม่ต้องเข้ารหัส (รายละเอียดเกี่ยวกับสาเหตุที่เกิดการรั่วไหลคือ ที่นี่ หรือ ที่นี่).
มีวิธีใดในการเข้ารหัสข้อความสุ่มไปยังจุด EC ของคำสั่งที่ถูกต้อง (เช่นองค์ประกอบหมู่)? มีวิธีแปลงจุด EC เป็นองค์ประกอบกลุ่มหรือไม่?