Hallo,
ich geb dir mal einige Anregungen zu dem ganzen. Also das Knacken von
RSA würd ich über die Faktorisierung das Public Keys machen.
Gut was nimmt man dazu?
Es gibt zwei subexponentielle Verfahren dazu:
1) das Quadratische Sieb
von der Theorie noch einigermaßen verständlich, aber sicher nicht
einfach. In der deutschen Wikipedia gibt es einen sehr guten Artikel
dazu.
2) des Zahlkörpersieb (Number Field Sieve NFS)
hat die beste Laufzeit. Allerdings ist der mathematische Apparat
dahinter gewaltig und ohne Kenntnisse von höherer Mathematik aus
Zahlentheorie und Gruppentheorie sicher nicht verständlich. Und wenn
mans nicht versteht kann man es vielleichr noch implementieren aber
nicht optimieren.
Beide Algorothmen gliedern sich in zwei Teile dem Siebschritt und dem
Auswahlschritt.
Der Siebschritt ist ohne Porbleme parallelisierbar und braucht zudem
wenig Resourcen zur Kommunikation. Scheint also ideal für FPGAs
geeignet.
Der Auswahlschritt ist allerdings praktisch nicht parallelisierbar und
wird auf Großrechnern durchgeführt.
Aber auch mit diesen Algorithmen ist man weit davon entfernt praktisch
eingesetzte Schlüssellängen mal eben so zu brechen. Ab 200 stelligen
Schlüssellängen wirds sehr schwer.
Soweit ich weiß ist das einzig praktisch umgesetzte Projekt in diese
Richtung CAIRN 3 (NFS) bzw der Vorgänger CAIRN 2 (QS)
Es gibt auch einige Papers zu dem Thema eine Suche nach TWNIKLE, TWIRL
oder SHARK oder Artikel von den 3 RSA Leuten Rivest, Shamir und Adleman
ergibt einiges. Soweit ich weiß sind das aber nur Ansätze die noch nicht
realisiert wurden.
Es gibt auch einige Bücher in die Richtung:
Primer Numbers, A computational perspective von Crandal und Pommerance
"Die Bibel" vom Bruce Schneier weiß aber grad nicht den Namen des Buchs,
aber ist so der Klassiker bei den Informatikern