Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi RSA-Entschlüsselung (https://www.delphipraxis.net/131100-rsa-entschluesselung.html)

fortuneNext 18. Mär 2009 21:04


RSA-Entschlüsselung
 
Hi,
ich habe RSA umgesetzt und folgenden Fall probiert:

p = 7
q = 13
N = 91
Eul N = 72
e = 23
d = 47
Klartext = 1337
(Eingabe direkt als Zahlen)
Verschlüsselt: 84
( 7^23 mod 91 = 84 )
Entschlüsselt: 63
( 84^47 mod 91 = 63 )

Warum kommt bei der Entschlüsselung etwas anderes heraus als der Klartext?

Delphi-Quellcode:
function TRSA.Decrypt(text:String; d, N:integer):string;
var
  x, temp:integer;
begin
  temp := 1;
  for x := 1 to d do
    temp := (temp * StrToInt(text) mod N);
  Result := IntToStr(temp);
  //Result := IntToStr(ExpMod(StrToInt(text), d, N));
end;
So sieht die Entschlüsselung aus. Was ist denn nicht korrekt?

mfg
fortuneNext

PS: Es liegt wahrscheinlich nicht am Quellcode, da auch per Hand dasselbe raus kommt. Aber sicher ist sicher...

gammatester 18. Mär 2009 21:36

Re: RSA-Entschlüsselung
 
Dann rechnen Du und Dein Quellcode falsch:

Hier die korrekten Werte mit meinem Rechner:
Code:
MPArith>T_CALC.EXE
Test of MP library V1.11.07 (15/16 bit) [mp_calc]  (c) W.Ehrhardt 2006-2009
Type "?<enter>" to get some info about commands, "\q" or "quit" to end.

[D]:=> 7^23 mod 91
Result = 28
[D]:=> 28^47 mod 91
Result = 7
Das gleiche gibt's zB mit Pari oder Aribas.

Gammatester

Edit: Sehe gerade, daß 1337^23 mod 91 = 84 ist. Das heißt, Du hast wahrscheinlich die ganze 1337 auf einen Schlag verarbeitet und nicht wie angegeben, die Ziffern einzeln. Das ist natürlich nicht zulässig da immer nur Blöcke=Integerwerte potenziert werden dürfen die < N sind.

fortuneNext 18. Mär 2009 22:43

Re: RSA-Entschlüsselung
 
Ah... okay *korrigier* danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:17 Uhr.

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