Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#1

RSA-Verschlüsselungs Paradoxon

  Alt 30. Nov 2009, 18:19
Hallo liebe Leute,
Mir bereitet RSA Kopfzerbrechen.

Code:
Legende:
C = Chiffre
T = Text
N = RSA Modul
E & D = Enc. & Decryption exponents

Verschlüsselung:
C = T^e mod N

Entschlüsselung
T = C^d mod N
Das Problem liegt hier: das RSA-Modul (N) muss größer sein als der Text (T), den man verschlüsseln will.
Warum? Nun, da, wenn N < T, man nicht zum richtigen Ergebnis kommt.

Nimmt man beispielsweise für T = "123" (entspricht 0x313233; 3 Bytes; wobei es verkehrt rum im Speicher liegt -> 0x333231)
und N 0x333230 (N hat die Größe 2^24 -> ebenfalls 3 Bytes),
dann käme niemals wieder der ursprüngliche Text (T) nach dem Verschlüsseln & Entschlüsseln raus.
Das sollte noch verständlich sein.

Ich finde leider keine passende/elegante Lösung zu diesem Problem. Nimmt man für N eine größere Zahl (z.B: 4 Bytes (2^32)), so geht man die
Gefahr ein, nach dem Modulo bei der Verschlüsselung eine größere Zahl (> 3 Bytes) als Ergebnis zu bekommen, da eben N = 4 Bytes ist.

Das einzige, was machbar wäre, wäre, für C (je 3 Bytes) einen größeren Speicherbereich (4 Bytes) zu reservieren und anschließend bei der Entschlüsselung 4 Bytes aufeinmal entschlüsselt.



Übrigens, bitte schreibt nur, wenn ihr euch mit RSA auskennt und mir Tipps geben könnt.

Edit:

Ich bin nun nach langem Überlegen davon überzeugt, dass es anders gar nicht geht.
Ich verschlüssle 3 Bytes Datenblöcke und speichere sie in 4 Bytes. Nach dem Entschlüsseln weise ich sie in 3 Byte Datenblöcken wieder zusammen.
Falls trotzdem jeman eine bessere Idee hat, dann nur her damit

MfG
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat