Eine Einweg-Funktion ist eine umkehrbare Funktion
f: {Klartexte} ® {Geheimtexte},wobei
Gegeben sei ein Blockverschlüsselungssystem
F = {fk | k in K} mit K Teilmenge von M = F2l,das sicher vor Angriff mit bekanntem Klartext ist (z. B. DES).
Gewählt wird eine feste (bekannte) Nachricht m0 (z. B. der Nullstring).
Dann ist durch
c = f(m) : = fm(m0)eine Einweg-Funktion f definiert.
Klassische Anwendung dieses Konstruktionsprinzips: Speicherung von Passwörtern unter UNIX [Needham 1967].
Achtung: Bitstrom-Verschlüsselung ist hierfür nicht geeignet! Denn ist c = m XOR m0, so m = c XOR m0.
Verfahren:
Nachteile:
Behebung durch Zusatzmaßnahmen:
Exponentiation in endlichen Körpern (Einweg-Eigenschaft - wie auch sonst - mathematisch unbewiesen):
Fp, p Primzahl, sei der endliche Körper mit p Elementen. Die multiplikative Gruppe Fp× ist zyklisch. Sei a ein erzeugendes Element dieser Gruppe, eine »Primitivwurzel« modulo p. (Eine solche kann man probabilistisch effizient finden.)
Dann ist die Exponentialfunktion
Ea: {0, ..., p-2} ® Fp×, c = Ea(m) = am mod peffizient auswertbar mit dem binären Potenzalgorithmus:
Ist | so |
Die Umkehrfunktion von Ea, der »diskrete Logarithmus modulo p zur Basis a«, ist vermutlich nicht effizient auswertbar.
... ist ein weiteres wichtiges praktikables Beispiel:
Sei m eine Blum-Zahl, also ein Produkt zweier (großer) Primzahlen p und q, beide kongruent 3 mod 4. Die Rabin-Funktion ist einfach die Quadrat-Funktion
s: (Z/nZ)× ® (Z/nZ)×, s(x) = x2 mod m.
Die Berechnung der Umkehrfunktion s-1, also das Quadratwurzelziehen mod m, ist äquivalent zur Primzerlegung von m, also vermutlich nicht effizient ausführbar.