ElGamalDigitale Signaturen


Exkurs: Ein Lösungsansatz für das DLP,
Der Pohlig-Hellman Algorithmus

Im vorangegangenen Abschnitt haben wir ein Kryptosystem betrachtet, dessen Sicherheit darauf beruht, dass das Diskrete Logarithmusproblem (DLP) schwierig ist, also auf der Annahme, dass es keine polynomiellen Lösungsverfahren gibt. Wir wollen nun versuchen, das DLP algorithmisch zu lösen.

Diskretes Logarithmusproblem (DLP)
Gegeben: Ein Tripel , wobei Primzahl ist, und primitiv in .
Gesucht: Das mit .

Trivialer Algorithmus
Für berechne bis gilt, die Lösung ist dann .

Die Anzahl der Multiplikationen bei diesem trivialen Algorithmus ist im worst case , also nicht polynomiell in der Eingabelänge .

Der Pohlig-Hellman Algorithmus berechnet zu gegebenem Tripel ( prim, und primitiv in ) ein mit , wobei gilt und eine Primzahl ist mit , , aber .

Kennt man alle paarweise verschiedenen Primteiler von , also , so liefert das Pohlig-Hellman Verfahren Werte , . Damit kann der Wert mit , , mit dem Chinesischen Restsatz leicht berechnet werden, sodass gilt .

Bevor wir das Verfahren anwenden, machen wir zunächst einige Vorbemerkungen. Sei und für eine Primzahl . Der gesuchte Wert mit hat eine Darstellung der Form

mit für . Man berechnet nun sukzessive die Werte .

Lemma 8
Seien prim, und primitiv in . Dann gilt

Beweis Aus und folgt die Existenz von mit . Mit reicht es daher zu zeigen, dass gilt

Dieses ist nach dem Satz von Fermat äquivalent zu
was offenbar erfüllt ist.

Beim Pohlig-Hellman Verfahren wird für berechnet bis erfüllt ist, man setzt dann .

Für ist man fertig, sonst wird wie folgt berechnet: Sei und setze und . Dann gilt und somit folgt wie in Lemma 8

Also wird berechnet, , bis erfüllt ist, dann setzt man .

Das Verfahren wird fortgesetzt. Allgemein wird wie folgt vorgegangen:

Pohlig-Hellman Verfahren:
Gegeben: Ein Tripel mit prim, und primitiv in sowie eine Primzahl mit aber .
Gesucht: Ein mit und , wobei gilt .

  1. Berechne für .
  2. und

        Solange do

            Setze so, dass gilt

        Bestimme mit

           

            Setze so, dass gilt

           

        Lösung ist .

Man muss maximal Schritte durchführen, von denen jeder einzelne in Zeit durchführbar ist. Mit und folgt . Gilt für jeden einzelnen Primfaktor mit nun , so löst das Pohlig-Hellman Verfahren das Diskrete Logarithmus Problem in Polynomialzeit, wenn die Primfaktorzerlegung von gegeben ist. Letzteres ist natürlich nicht unproblematisch.

Zusammenfassend können wir sagen: Ist die Primzahlzerlegung von "leicht" zu finden, so ist das Diskrete Logarithmus Problem mit dem Pohlig-Hellman Verfahren "effizient" zu lösen.