Irgendwie is mein Link zur Fachbereichsarbeit anscheindend nicht wirklich beachtet worden (liegt vielleicht auch daran, dass der Server zur Zeit ein paar Probleme hat).
Jedenfalls.. der Delphi-Operator mod funktioniert nur mit den Delphi-Standard Typen und ist daher für eine Implementation mit Zahlen > 10^200 gänzlich ungeeignet!
Außerdem arbeitet RSA mit ganzen Zahlen! Hier die entsprechenden Kapitel aus meiner Arbeit:
5.2 Mathematik
Die Sicherheit von RSA beruht auf der Schwierigkeit, große Zahlen zu faktorisieren (siehe auch Abschnitt 3.1.2.2). Öffentlicher und privater Schlüssel hängen von einem Paar großer Primzahlen ab (100 bis 200 Stellen und mehr). Man vermutet, dass die Wiederherstellung des Klartextes aus dem öffentlichen Schlüssel und dem Chiffretext äquivalent zur Faktorisierung des Produkts der beiden Primzahlen ist.
5.2.1 Schlüsselerzeugung
Um die beiden Schlüssel zu erzeugen, wählt man zufällig zwei große Primzahlen p und q.(Es gibt einige Kriterien, die bei der Wahl der Zahlen beachtetet werden sollten ? siehe dazu 8.1) Jetzt berechnet man:
Code:
n = p*q
phi = (p-1)*(q-1)
Anschließend wählt man den zufälligen Chiffrierschlüssel
e so, dass gilt:
Code:
1 < e < phi
ggT(e, phi) = 1
Mit Hilfe des erweiterten Euklidischen Algorithmus (siehe Anhang 3) berechnet man schließlich den Dechiffrierschlüssel
d so, dass gilt:
Code:
1 < d < phi
e*d = 1 (mod phi)
Oder anders ausgedrückt:
Die beiden Zahlen
e und
d werden Encryption Exponent bzw. Decryption Exponent genannt, während
n den Modulus bildet.
Die beiden Paare <
n, e> und <
n, d> bilden den öffentlichen und den privaten Schlüssel.
Das Aussehen der mathematischen Formeln musste leider ein bisschen leiden..
Der Rest wäre zu aufwendig hier in
BBCode umzuformatieren, aber wer Lust hat kann sich ja meine FBA zu Gemüte führen..
Edit: ich hab jetzt die FBA im PDF Format an das Posting angehängt...