Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   RSA - Problem bei der verschlüsselung/entschlüsselung (https://www.delphipraxis.net/148148-rsa-problem-bei-der-verschluesselung-entschluesselung.html)

gammatester 24. Feb 2010 18:27

Re: RSA - Problem bei der verschlüsselung/entschlüsselung
 
Leider hast Du himitsus mod_inv eingebaut (ich hatte ja schon befürchtet, daß er damit nur Verwirrung stiftet!), ohne zu beachten, daß er die Parameterreihefolge umgedreht hat. Damit mußt Du natürlich auch schreiben:
Delphi-Quellcode:
  e := 5;
  d := mod_inv(e,phi);
  writeln('d=',d);

schweindi 24. Feb 2010 18:45

Re: RSA - Problem bei der verschlüsselung/entschlüsselung
 
okay... hab jetzt doch deine functions reinkopiert und alles compiled kommt immer: 'x:5 y:5 z:5'

folglich ist i<11 & i>240 - was genau bedeutet das nun?
da der 'Fehler' nicht kommt, heißt es doch, dass i=y (Gut!)
worum gehts dann genau im x,y,z:5 ?

himitsu 24. Feb 2010 19:01

Re: RSA - Problem bei der verschlüsselung/entschlüsselung
 
Du kannst das
Delphi-Quellcode:
if (i < 11) or (i > 240) then
auch weglassen ... dieses ist praktisch nur da, damit die Anzeige nicht zu lang wird.

i = Eingabewert
x = verschlüsselter Wert
y = entschlüsselter Wert (dieser sollte ja i entsprechen)

schweindi 24. Feb 2010 19:23

Re: RSA - Problem bei der verschlüsselung/entschlüsselung
 
ahso.. naja okay, ich war mir nicht sicher, da ich bisher nur delphi 2007 verwendet hab und nicht sicher war, ob writeln das selbe ist wie bei mir :S

okay damit funktioniert das ganze mal, das ist sehr schön, danke euch Beiden.

Jetzt würde ich doch noch gerne wissen, wie ich das mit größeren Zahlen machen kann, ich denke zb (Testzweck!) an e=1024...?
Geht das nur mit BigInt?

gammatester 24. Feb 2010 19:35

Re: RSA - Problem bei der verschlüsselung/entschlüsselung
 
Zitat:

Zitat von schweindi
okay... hab jetzt doch deine functions reinkopiert und alles compiled kommt immer: 'x:5 y:5 z:5'

folglich ist i<11 & i>240 - was genau bedeutet das nun?
da der 'Fehler' nicht kommt, heißt es doch, dass i=y (Gut!)
worum gehts dann genau im x,y,z:5 ?

Hast Du in Deinem Code
Delphi-Quellcode:
writeln(i:5, x:5, y:5);
stehen oder nicht? Ich denke nicht, sondern etwas wie
Delphi-Quellcode:
writeln('i:5, x:5, y:5');
//oder noch schlimmer
ShowMessage('i:5, x:5, y:5');
Das writeln(i:5, x:5, y:5); gibt in der Schleife i,x und y jeweils 5-stellig aus. Aber wenn Du keine Fehler 'Fehler: y<>i für i=5' mehr bekommst, hast Du jetzt eine Basis, auf der Du Deine Ideen weiter entwickeln kannst.

Gruß Gammatester

schweindi 24. Feb 2010 19:48

Re: RSA - Problem bei der verschlüsselung/entschlüsselung
 
ja, wie gesagt, ich programmiere in Delphi 2007 und da kann ich nicht writeln() aufrufen, wenn ich es nicht in eine Datei schreiben will.

und x:5 / z:5 / y:5 kenn ich garnicht.

habs jetzt so probiert:

Delphi-Quellcode:
AssignFile(F, 'z.txt');
Rewrite(F);
writeln(x:5,y:5,z:5);
CloseFile(F);
da kommt I/O Error 105 raus... ist aber nicht so wichtig, danke für die Erklärungen, ich mach mal weiter mit dem, was ich vor hatte!

gammatester 24. Feb 2010 19:54

Re: RSA - Problem bei der verschlüsselung/entschlüsselung
 
Wie schon gesagt, e ist überhaupt keine Problem. In der Praxis werden Werte wie e=3, e=17=2^4+1 oder e=65537=2^16+1 benutzt. Mit Deinen int64 könntest Du Werte nehmen, die unsinnig groß sind und normalerweise nicht verwendet werden. Du scheinst zu vergessen, daß e öffentlich ist, also nix geheimes, schwer knackbares etc. Das Problem ist (wie ele schon geschrieben hat) die Größe von N. Mit den 63 Bit bist Du um den Faktor ca 20 [editiert] zu klein.

Wenn Du wirklich (hoffentlich nachdem Du die Grundlagen sauber mit longint oder int64 implementiert hast) an große Zahlen rangehen willst, kannst Du zB die RSA-Funktionen aus meiner Opensource Bigint-Bibliothek MPArith benutzen.

PS: IO Error 105: Du hast {$apptype console] nicht mit eingegeben.

schweindi 24. Feb 2010 19:59

Re: RSA - Problem bei der verschlüsselung/entschlüsselung
 
okay danke sehr :)

ja ich spiel mich jetzt mal mit den kleinen zahlen herum, bis ich es wirklich verstanden hab, das könnte noch bisschen dauern und dann wag ich mich erst weiter... vllt liest man sich ja.

lg
Schweindi

PS: Danke, jetzt gehts!

himitsu 24. Feb 2010 20:01

Re: RSA - Problem bei der verschlüsselung/entschlüsselung
 
Delphi-Quellcode:
AssignFile(F, 'z.txt');
Rewrite(F);
WriteLn(F, x:5, y:5, z:5); // die Datei nicht vergessen
CloseFile(F);
Delphi-Quellcode:
Jetzt würde ich doch noch gerne wissen, wie ich das mit größeren Zahlen machen kann, ich denke zb (Testzweck!) an e=1024...?
Geht das nur mit BigInt?
Ja, also nun hast du die Qual der der Wahl.

Es gibt tausende Big-Math-Libs
und welche du jetzt nimmst, das ist dir überlassen.

negaH's DECMath ist superschnell und leistungsstark, da es speziell für Verschlüsselungen entwickelt wurde.
Ansonsten gibt es alleine in der DP mehrere Libs.
Schau einfach mal nach Hier im Forum suchenBigMath Hier im Forum suchenBigInt Hier im Forum suchenTBigInt, da sollten sich einige Threads finden lassen.

Meine Hier im Forum suchenStringMatheLib wurde speziell auf Einfachheit hin entwickelt, aber sie ist auch relativ langsam.
(absichtlich nicht zu sehr optimiert .. halt einfacher Code)

Aber für "kleine" Verschlüsselungen scheint sie nutzbar zu sein ... es gibt hier schon einige Threads, wo jemand damit versuchte eine RSA zu erstellen.

gammatester 24. Feb 2010 22:45

Re: RSA - Problem bei der verschlüsselung/entschlüsselung
 
Zitat:

Zitat von schweindi
ich denke zb (Testzweck!) an e=1024...? Geht das nur mit BigInt?

Versuch als kleine Übung mal herauszufinden, warum RSA mit e=1024 nicht funktionieren kann! (Weder mit int64 noch mit BigInt).

Gammatester


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 Uhr.
Seite 3 von 3     123   

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