Asymmetrische Verfahren
RSA
Benannt nach seinen Erfindern. Es werden 2 große Primzahlen gewürfelt (p, q) und miteinander multipliziert m=p*q. Zeitgleich wird Phi(m) (Eulersche Phi Funktion, Anzahl der teilerfremden Zahlen) errechnet, was in diesem Fall einfach ist phi(m)=(p-1)*(q-1). Ein beliebiger öffentlicher Exponent e wird gewählt wobei dieser Teilerfremd zu phi(m) sein muss, meist e=2^16+1. Passend zu diesem öffentlichen Exponent wird mittels erweitertem Euklid Algorithmus ein passender privater Exponent d ermittelt.
Es gilt: e*d mod phi(m) = 1.
Nun lässt sich mittels öffentlichem Exponent e ver-, und dem privaten Exponent d entschlüsseln. Warum? (Achtung: Beweisführung)
Sei p ein Klartext, wird verschlüsselt mit c=p^e mod m und entschlüsselt mit p’=c^d mod m.
Dies entspricht (Einsetzungsverfahren)
p’=(p^e)^d mod m= p^(e*d) mod m.
Der Exponent (e*d) lässt sich jedoch phi(m) reduzieren (kleiner Satz von Fermat), d.h.
p’ = p^(e*d mod phi(m)) mod m.
Oben ist festgehalten, dass e*d mod phi(m) = 1, was bedeutet: p’ = p^1 mod m bzw. p’ = p.
Zur Verschlüsselung wird nicht nur der öffentliche Exponent benötigt, sondern auch das Modul. Lässt sich dieses Modul faktorisieren (Zerlegung in Primfaktoren) kann der private Schlüssel ausrechnet werden. Dadurch ist der RSA (für dieses Modul) “geknackt”. Daher werden möglichst große Module verwendet damit dies praktisch nicht möglich ist.