Bei Verschlüsselungen und auch bei Signaturen mit Message-Recovery
müssem wir den Text bei den bisher gezeigten Verfahren als
Gruppenelement
darstellen; dies wird als Einbettung
von
in
bezeichnet. Die Einbettung soll effizient
sein, und außerdem wollen wir
aus
eindeutig (und
ebenfalls effizient) wiederherstellen können. Um
in
einbetten zu können, muß
i.a. zunächst in Blöcke ,,passender''
Größe unterteilt werden, denn bei festem
können höchstens
unterschiedliche Texte
eingebettet
werden. Wir gehen im weiteren davon aus, daß
binärcodiert
auf offensichtliche Weise als natürliche Zahl interpretiert werden
kann, und daß
bereits eine ,,passende'' Größe hat. Wenn
z.B.
ist, dann ergibt sich eine natürliche Möglichkeit,
auf
abzubilden, denn hier ist
identisch
mit
aufgefaßt als positive ganze Zahl.
Bei anderen Gruppen kann die Einbettung komplizierter werden. Wenn
wir einen Text als Punkt einer elliptischen Kurve über
kodieren wollen, dann müssen wir eine Repräsentation von
als Paar
finden. Auf den ersten Blick hat
man keine andere Wahl, als
z.B. auf die
-Koordinate
eines Punktes abzubilden, weil die
- und die
-Koordinaten
eines Punktes nicht unabhängig voneinander sind. Gibt man nämlich
die
-Koordinate vor, so kann man maximal nur noch das Vorzeichen
der
-Koordinate auswählen.
An dieser Stelle wird aber noch eine ganz andere Schwierigkeit offenkundig,
denn nicht zu jeder -Koordinate existiert ein Punkt auf der
Kurve. In diesem Fall müßten wir die Möglichkeit haben,
ersatzweise
auf eine andere
-Koordinate abzubilden, und zwar so, daß
aus
eindeutig rekonstruiert werden kann. Wenn
als
Element von
interpretiert wird, z.B. durch
mit
und
, dann kann für die
Einbettung das folgende Schema angewendet werden:
In Abschnitt 2.2 hatten wir dazu bereits festgestellt, daß man bei
zufälliger Wahl einer -Koordinate mit einer Wahrscheinlichkeit
von etwa
einen Punkt auf der Kurve erhält, d.h.
man erhält mit einer Wahrscheinlichkeit von etwas
keinen Punkt. Wenn wir für ein
also
Versuche für
die Einbettung haben, dann kann
mit einer Wahrscheinlichkeit
von
nicht auf die
-Koordinate eines Punktes
aus
abgebildet
werden. Dies geht natürlich mit einem Verlust einher, denn je größer
ist, desto weniger Bits können für
selber verwendet
werden, d.h. die Einbettung wird ineffizienter. Wenn wir z.B.
wählen, dann müssen wir dafür 8 Bits (für jedes
) aufwenden,
allerdings ist die Wahrscheinlichkeit eines Fehlschlages mit
verschwindend gering.
Bei anderen Gruppen kann das Einbettungs-Problem weitaus komplizierter sein. Um dieses Problem bei der Verschlüsselung zu vermeiden, kann man die folgende Variante der ElGamal-Verschlüsselung anwenden:
A führt die folgenden Schritte durch:
B führt die folgenden Schritte durch:
A führt die folgenden Schritte durch:
Die Vorteile liegen auf der Hand: wird direkt und deterministisch
in die Verschlüsselung eingebracht, ohne die u. U. probabilistische,
mühselige Suche nach einem Gruppenelement, in welches
ansonsten
eingebettet werden muß.