Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi RSA verschlüsselung funktioniert nicht... (https://www.delphipraxis.net/112042-rsa-verschluesselung-funktioniert-nicht.html)

Bblackhawk 14. Apr 2008 14:06

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

gammatester 14. Apr 2008 15:07

Re: RSA verschlüsselung funktioniert nicht...
 
Zitat:

Zitat von Bblackhawk
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

Wie schon gesagt, Du benutzt gar kein RSA. Man kann Dein Programm so ändern, daß wieder "Klartext" erscheint:

Verschlüsseln:
Delphi-Quellcode:
      // 2 Durch formel ( C = M^e mod N ) verschlüsseln
      //  acode := (acode + round(exp(7*ln(5))) mod 187);
      acode := (acode + 146) mod 187;
Hinweis: round(exp(7*ln(5)) mod 187 = 5^7 mod 187 = 146.

Entschlüsseln:
Delphi-Quellcode:
      // 2 Durch formel ( M = C^d mod N ) verschlüsseln
      // acode := (acode - round(exp(23*ln(146))) mod 187);
      acode := (acode + 41) mod 187;
Hinweis: 41 = -146 mod 187.

Gruß Gammatester

Bblackhawk 14. Apr 2008 15:22

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 ;)

Klaus01 14. Apr 2008 15:25

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;

Bblackhawk 14. Apr 2008 15:58

Re: RSA verschlüsselung funktioniert nicht...
 
vllt dummer frage, aber wie binde ich die "math" unit ein??

:oops:

TeronG 14. Apr 2008 16:14

Re: RSA verschlüsselung funktioniert nicht...
 
Zitat:

Zitat von Bblackhawk
vllt dummer frage, aber wie binde ich die "math" unit ein??

:oops:

Delphi-Quellcode:
uses math

Bblackhawk 14. Apr 2008 21:27

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 :(

Klaus01 15. Apr 2008 06:47

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 DecMath von Hagen an. Das kann mit solchen
großen Zahlen umgehen.

Grüße
Klaus

gammatester 15. Apr 2008 08:35

Re: RSA verschlüsselung funktioniert nicht...
 
Zitat:

Zitat von Klaus01
Du könntest Deinen Versuch mit kleineren Primzahlen durchführen.
Damit wird auch e und d kleiner.

Oder schau Dir einmal das DecMath von Hagen an. Das kann mit solchen
großen Zahlen umgehen.

Das mit den kleineren Primzahlen wird wohl wenig bringen, und auch DEC erscheint mir hier für jemanden, der nicht weiß, wie Unit math benutzt wird, nicht Erfolg versprechend.

Statt der Powerroutine aus math kann er mal folgende Integer-Power-Funktionn verwenden:

Delphi-Quellcode:
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;
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.

Gruß Gammatester

Bblackhawk 15. Apr 2008 16:04

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 19:29 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz