Einwegfunktion
Multiplikation mit einer natürlichen Zahl als Einwegfunktion
Für große Zahlen ist die Vervielfachung eines Punktes auf einer elliptischen Kurve zunächst sehr aufwendig, da wiederholte Additionen ausgeführt werden müssen.
Zum Beispiel müsste zur Berechnung von der Punkt insgesamt mal zu sich selbst addiert werden. Allerdings gibt es hierfür einen Trick, der die Berechnung deutlich beschleunigt. Dazu wird die Zahl zunächst in ihre binäre Darstellung umgewandelt:
Wegen der Rechengesezte für die Addition auf elliptischen Kurven gilt nun:
Diese Summe kann nun durch die folgenden Schritte berechnet werden:
Dieser Trick nennt sich Double and Add-Verfahren. In unserem Beispiel wird damit in insgesamt nur noch Schritten statt der ursprünglichen Schritte berechnet.
Effizienz des Double and Add-Verfahrens
Die Anzahl der Additionen, die für die Berechnung von mit dem
Double and Add-Verfahren notwendig sind, hängt von der Anzahl der Einsen in der binären Darstellung von ab. Für eine natürliche Zahl mit Einsen in der binären Darstellung sind insgesamt höchstens Additionen notwendig, um zu berechnen.
Damit lässt sich für eine natürliche Zahl die Anzahl an Additionen nach oben wie folgt abschätzen. Die Anzahl an Einsen in der binären Darstellung von ist kleiner als . Also ist die Anzahl der Additionen kleiner als .
Das Double and Add-Verfahren hat also die Ordnung , was bedeutet, dass die Anzahl der Additionen für die Multiplikation mit einer natürlichen Zahl logarithmisch mit wächst. Da der Logarithmus eine sehr langsame Wachstumsrate hat, wächst die Anzahl der Additionen also nur sehr langsam mit der Größe der Zahl .
Einwegfunktion
Durch das Double and Add-Verfahren wird die Multiplikation mit einer sehr großen natürlichen Zahl zu einer Einwegfunktion. Das bedeutet, dass für einen gegebenen Punkt die Berechnung von effizient mit der Ordnung möglich ist, während die Rückrechnung von der Summe auf mit so aufwendig ist, dass sie in der Praxis nicht durchgeführt werden kann.
Da bei der Rückrechnung die binäre Darstellung von unbekannt ist, bleibt nur die
Brute-Force-Möglichkeit, alle möglichen Summen für alle natürlichen Zahlen zu berechnen und mit der gegebenen Summe zu vergleichen. Dies ist jedoch aufgrund der großen Anzahl an möglichen Summen so ineffizient, dass es in der Praxis nicht durchgeführt werden kann.
Aufgabe 1
- Wie viele Additionen sind mit dem Double and Add-Verfahren notwendig, um zu berechnen?
- Wie viele Additionen sind mit dem Double and Add-Verfahren notwendig, um zu berechnen?
Aufgabe 2
Berechne das Produkt nach dem Double and Add-Verfahren. Wie viele Additionen sind dazu notwendig?
Achtung: In dieser Aufgabe ist mit Addition die herkömmliche Addition natürlicher Zahlen gemeint, als nicht die Addition von Punkten auf elliptischen Kurven!