Forum: Sonstige Fragen zu Delphi
Delphi
by Bjoerk,
11. Nov 2011
Okay. Aber mal was anderes. Wenn man mit mehr als 2 Primzahlen arbeiten möchte, ist das Procedere dann analog, also N=P*Q*R M:=(P-1)*(Q-1)*(R-1) usw. ?
Forum: Sonstige Fragen zu Delphi
Delphi
by Bjoerk,
11. Nov 2011
Du kennst dich da mit Sicherheit besser aus als ich, ein Vorteil dabei ist m. E. jedoch nicht von der Hand zu weisen: Es gibt dann mehrere Möglichkeiten, aus denen sich N zusammensetzen kann, was den Hackeraufwand erheblich verlängern dürfte.
Forum: Sonstige Fragen zu Delphi
Delphi
by Bjoerk,
11. Nov 2011
Was auch ganz interessant ist, daß P und Q nicht unbedingt Primzahlen sein müssen. Dann muß man aber vorher auf Plausibilität prüfen, d.h. für alle zu verschlüsselnden I muß die Bedingung I = Decrypt(Encrypt(I)) erfüllt sein.
P: 190
Q: 129
N : 24510
M: 24192
E: 14417
D: 11825
Für I im Bereich 1..255 getestet.
Forum: Sonstige Fragen zu Delphi
Delphi
by Bjoerk,
11. Nov 2011
Also, Copy and Paste Fähigkeiten hab' ich jetzt einfach mal vorausgesetzt...:roll:
Edit: Die while Schleife braucht übrigens nur bis <= N div 2 zu laufen
Forum: Sonstige Fragen zu Delphi
Delphi
by Bjoerk,
11. Nov 2011
Nö, probier #15 (mit #20) selbst aus. Für Zahlen im int64 Bereich sollte das in vergleichsweiser kurzer Rechenzeit erledigt sein. Und dein Kommunikationsparter muß über die entsprechende CharTable auch verfügen, sonst kann er dir keine Nachricht schicken.
Bei Zahlen dürfte die RSA allerdings relativ sicher sein, weil man einer Zahlenfolge 7139 nicht ansieht, ob sie Sinn ergibt oder nicht, im...
Forum: Sonstige Fragen zu Delphi
Delphi
by Bjoerk,
11. Nov 2011
Doch, genauso einfach ist es. Siehe #18.
Forum: Sonstige Fragen zu Delphi
Delphi
by Bjoerk,
11. Nov 2011
Gut, Programmtechnisch habe ich das so gemacht. Man könnte aber auch eine Tabelle erstellen und hieraus P und Q ablesen. Eine direkte Berechnung dafür gibt es nicht, da hast du völlig Recht.
Forum: Sonstige Fragen zu Delphi
Delphi
by Bjoerk,
11. Nov 2011
function GreatestCommonDivisorAdvanced
(A, B: int64; var U, V: int64): int64;
var
U0, V0: int64;
begin
if B = 0 then
begin
Result:= A;
U:= 1;
V:= 0;
Forum: Sonstige Fragen zu Delphi
Delphi
by Bjoerk,
10. Nov 2011
Doch, da N das Produkt von 2 Primzahlen ist, gibt es genau eine Möglichkeit. Und D = InversMod(E, M)
Forum: Sonstige Fragen zu Delphi
Delphi
by Bjoerk,
10. Nov 2011
Das ist leider nicht richtig.
RSA-Encryption:
2 Prime P, Q
P <> Q
N = P*Q
M = (P-1)*(Q-1)
Find an E and a D so that is:
S * M + 1 = E * D, E <> D, E relatively prime to M, D 1..M, E 1..M, S > 0
Encrypt: J = I^E mod N, I 0..N