Zum Inhalt springen

Diskrete Exponentialfunktion

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 14. Juli 2004 um 00:11 Uhr durch Rat (Diskussion | Beiträge) (Anfang). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Die diskrete Exponentialfunktion liefert den Rest bei Divison von durch m. Synonyme Bezeichnungen sind modulare Exponentiation oder modulares Potenzieren. Die Umkehrung der diskreten Exponentialfunktion heißt diskreter Logarithmus.

Die diskrete Exponentialfunktion ist auch für große Exponenten effizient berechenbar. Für die Umkehrung, also die Berechnung des Exponenten x, bei gegebener Basis b, Modul m und gewünschtem Ergebnis, ist allerdings bis heute kein schneller Algorithmus bekannt. Die diskrete Exponentialfunktion wird daher als Einwegfunktion in Asymmetrischen Kryptosystemen verwendet.

Zur Berechnung der diskreten Exponentialfunktion kann man folgenden Algorithmus verwenden:

function expmod(x,e,m : integer) : integer;
   /* 
    Berechnet die diskrete Exponentialfunktion zur Basis e modulo m
    unter ausschließlicher Verwendung der Operationen Quadrieren
    und Multiplizieren. Der Rest wird nach jeder Operation bestimmt, 
    um große Zwischenergebnisse zu vermeiden 
   */
   var y : integer;
   begin
   if e = 0 then 
      return 1
   else 
      if e = 1 then 
         return (x mod m)
      else 
         y := expmod(x, e div 2, m);
         y := (y*y) mod m;
         if e mod 2 = 1 then
            y := (y*x) mod m;
         fi;
         return y;
      fi;
    fi;
end;

Das Verfahren benötigt höchsten 2 * log2(e) Multiplikationen modulo n