![]() |
Re: RSA verschlüsselung funktioniert nicht...
Liste der Anhänge anzeigen (Anzahl: 1)
dann haut der mir noch mehr fehler raus aus der system datei...
ich hab mal das projekt in den anhang gestellt, vielleicht kannst du damit ja was anfangen *hoff* danke nochmal.. ich hab solangsam keine ahnung mehr woran das liegt... nice greetz Bblackhaek |
Re: RSA verschlüsselung funktioniert nicht...
Zitat:
Verschlüsseln:
Delphi-Quellcode:
Hinweis: round(exp(7*ln(5)) mod 187 = 5^7 mod 187 = 146.
// 2 Durch formel ( C = M^e mod N ) verschlüsseln
// acode := (acode + round(exp(7*ln(5))) mod 187); acode := (acode + 146) mod 187; Entschlüsseln:
Delphi-Quellcode:
Hinweis: 41 = -146 mod 187.
// 2 Durch formel ( M = C^d mod N ) verschlüsseln
// acode := (acode - round(exp(23*ln(146))) mod 187); acode := (acode + 41) mod 187; Gruß Gammatester |
Re: RSA verschlüsselung funktioniert nicht...
das das noch kein wirklicher rsa ist, ist mir klar, anstatt der zahlen, kommen da noch varablen hin, nur erstmal muss das generell funktionieren...
die zahlen sind nur ein beispiel, ich werde das, wenn das mit den beispielzahlen klappt, noch erweitern und mit edit fenstern machen... muss nur erstmal klappen ;) |
Re: RSA verschlüsselung funktioniert nicht...
Hallo,
im Prinzip sollte RSA so laufen. Problem dabei ist, es kommen dabei sehr große Zahlen ins Spiel. Da reicht int64 nicht mehr. Hier im Forum gibt es einige Beispiele mit BigInt. Diese Typen wären dazu eher geeignet. Grüße Klaus
Delphi-Quellcode:
{
RSA : p=7 q=11 p * q = 77 = N phi(N) = (p-1)* (q-1) = 60 e teilerfremd zu phi(N) = 23 -> e=23 und N=77 public Key wird zum Verschlüsseln benötigt Berechnung der inversersen zu e e* d +k * phi(N) ? 1 = ggT(e,phi(N)) 23 * d + k * 60 = 1 = ggT(23,60) 23 * 47 + (-18) * 60 = 1 -> d = 47 N=77 -> privater Schlüssel } // für power die math unit einbinden procedure tcodiermaschine.verschluesseln; var i, acode : integer; begin // Klartext zu ASCII for i := 1 to length (klartext) do begin // 1 ASCII- Code der i-ten Buchstaben ermitteln acode := ord(Klartext[i]); // 2 Durch formel ( C = M^e mod N ) verschlüsseln acode := round(power(acode,23)) mod 77; // 3 Das Zweichen mit dem ASCII- Code acode an der i-ten Stelle im chiffre ablegen codetext[i] := chr(acode); end; end; procedure tcodiermaschine.entschluesseln; var i : integer; var acode : int64; begin // Klartext zu ASCII for i := 1 to length (klartext) do begin // 1 ASCII- Code der i-ten Buchstaben ermitteln acode := ord(codetext[i]); // 2 Durch formel ( M = C^d mod N ) verschlüsseln acode := round(power(acode,47)) mod 77; // 3 Das Zweichen mit dem ASCII- Code acode an der i-ten Stelle im chiffre ablegen klartext[i] := chr(acode); end; end; |
Re: RSA verschlüsselung funktioniert nicht...
vllt dummer frage, aber wie binde ich die "math" unit ein??
:oops: |
Re: RSA verschlüsselung funktioniert nicht...
Zitat:
Delphi-Quellcode:
uses math
|
Re: RSA verschlüsselung funktioniert nicht...
wenn ich jetz versuche mein projekt zu compilieren kommt folgender fehler:
Erste Gelegenheit für Exception bei $7C812A7B. Exception-Klasse EInvalidOp mit Meldung 'Invalid floating point operation'. Prozess krypto.exe (2096) ich weiß nicht mehr was ich machen soll :( |
Re: RSA verschlüsselung funktioniert nicht...
Guten Morgen,
die Meldung kommt nicht beim Kompilieren sondern wenn Du das Programm ausführst. Wie in meinem letzten Beitrag schon erwähnt kommen hier recht schnell sehr große Zahlen zustande. Deine Fehlermeldung ist das Resultat davon. Die Zahlen verlassen den zulässigen Wertebereich. Du könntest Deinen Versuch mit kleineren Primzahlen durchführen. Damit wird auch e und d kleiner. Oder schau Dir einmal das ![]() großen Zahlen umgehen. Grüße Klaus |
Re: RSA verschlüsselung funktioniert nicht...
Zitat:
Statt der Powerroutine aus math kann er mal folgende Integer-Power-Funktionn verwenden:
Delphi-Quellcode:
Ergebnis von IPowMod(123,60000,997) ist zB 966. 123^60000 ist ein Zahl mit über 400000 Bits also riesig im Verbleich mit den 64 Bits von double.
function IPowMod(a,b,n: int64): int64;
{-Berechnet a^b mod n} var p: int64; begin p := 1; while b > 0 do begin while b and 1 = 0 do begin b := b shr 1; a := (a * a) mod n; end; dec(b); p := (p * a) mod n; end; IPowMod := p; end; Gruß Gammatester |
Re: RSA verschlüsselung funktioniert nicht...
warscheinlich nerv ich euch schon so richtig, aber entweder bin ich einfach zu dumm oder es geht einfach nicht...
wenn ich die function IPowMod inplementiere, dann bekomm ich schon wieder fehlermeldungen rausgehaun... und zwar folgende: [DCC Fehler] ukrypto.pas(17): E2065 Ungenügende Forward- oder External-Deklaration: 'tcodiermaschine.IPowMod' [DCC Fehler] krypto.dpr(5): F2063 Verwendete Unit 'ukrypto.pas' kann nicht compiliert werden könnt ihr mir vllt nochmal helfen, wär echt nett von euch :oops: Vielen dank nochmal und nochmal im voraus... nice greetz Bblackhawk |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz