![]() |
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:
So sieht die Entschlüsselung aus. Was ist denn nicht korrekt?
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; mfg fortuneNext PS: Es liegt wahrscheinlich nicht am Quellcode, da auch per Hand dasselbe raus kommt. Aber sicher ist sicher... |
Re: RSA-Entschlüsselung
Dann rechnen Du und Dein Quellcode falsch:
Hier die korrekten Werte mit meinem Rechner:
Code:
Das gleiche gibt's zB mit Pari oder Aribas.
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 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. |
Re: RSA-Entschlüsselung
Ah... okay *korrigier* danke!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 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