RSA | Pohlig-Hellman Algorithmus |
Die Sicherheit des RSA-Systems basiert darauf, dass Faktorisieren von natürlichen Zahlen wahrscheinlich algorithmisch schwierig ist, das bedeutet, es sind derzeit keine Polynomialzeitalgorithmen zur Lösung dieses Problems bekannt. Ein vermutlich ähnlich schweres Problem ist das des diskreten Logarithmus in , auf dem das ElGamal Kryptosystem basiert. Hintergrund ist folgender:
Gegeben: | Ein Tripel , wobei eine Primzahl und primitiv ist, also Erzeuger von , |
das heißt , und . | |
Gesucht: | Ein mit und . |
Für kryptographische Anwendungen sollte die Primzahl mindestens Bits haben, damit ein Angreifer nicht mit Brute Force Verfahren ein geeignetes mit in vertretbarer Zeit finden kann.
Alice möchte an Bob eine Nachricht senden. Beim ElGamal Kryptosystem ist das Tripel öffentlich, während mit geheim ist. Zum Verschlüsseln einer Nachricht wählt Alice eine zufällige Zahl und berechnet
Zum Dechiffrieren wird von Bob
berechnet.
Man wählt nicht , da dann als Klartext übertragen wird.
Das Chiffrat ist doppelt so lang wie der Klartext.
Wird zweimal der gleiche Exponent verwendet, so kann ein Angreifer, wenn er zwei Chiffrate und hat und die zu zugehörige Nachricht , auch die zu gehörige Nachricht mit berechnen, denn wegen und gilt .