Einzelnen Beitrag anzeigen

Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#7

Re: Umstellung DEC 3.0 auf 5.2

  Alt 20. Nov 2008, 12:45
Hi automatix,

ich befürchte cmCTS aus DEC 3 != cmCTSx aus DEC 5.

Aus dem Quellcode von DEC 5:
Zitat:
cmCTSx = double CBC, with CFS8 padding of truncated final block
...
Modes cmCTSx, cmCFSx, cmCFS8 are prohibitary modes developed by me. These modes
works such as cmCBCx, cmCFBx, cmCFB8 but with double XOR'ing of the inputstream
into Feedback register.
...
Modes cmCTSx, cmCBCx need no external padding, because internal the last truncated
block is padded by cmCFS8 or cmCFB8. After padding these Mode can't be used to
process more data. If it needed to process chunks of data then each chunk must
be algined to Cipher.BufferSize bytes.
Soweit stellt Hagen schon damals klar, es handelt sich um einen eigenen Block cipher mode.

Du kannst dies nur prüfen, in dem Du mit dem alten DEC 3 unter z.B. D7 einen Text "test" mit Deinem Key verschlüsselst und das Ergebnis mit der Verschlüsselung mit dem gleichen Key und Text aus DEC 5.2 vergleichst.

Da Du keine Zufallsdaten (Salt und Default IV mit n*$FF bei cm <> cmECB) verwendest, ist das Ergebnis der Verschlüsselung bei gleichem Passwort und Eingabetext immer identisch, d.h. wenn Du die Verschlüsselung in D7 mehrmals hintereinander aufrufst und z.B. ein TMemo mit dem Ergebnis befüllst, werden alle verschlüsselten Text gleich lauten.

Dies gilt auch für D200x und DEC 5.x. Wenn nun aber das Ergebnis abweicht, bist Du hier in die Falle eines proprietären Block Modes gelaufen. Ich vermute, daß sich hier in DEC 5 damals das Padding in cmCTSx gegenüber cmCTS geändert hat.

Als Hilfe böte sich an, den Kunden eine Zwischenversion mit Dx/DEC3 zu liefern, die mittels DEC 3 die Passwörter in der Registry auf einen Standard-Blockmode umstellt. Dieser kann dann auch von der DEC 5 richtig gelesen werden.

Alternativen, ohne Zwischenversionen, sind a) Update-Tool welches DEC3 nutzt (um die alten Passwörter zu lesen und in ein DEC 5 taugliches Format zu bringen) oder b) Die Kunden bei der neuen Version einmalig zum neuen Eingeben der DB Passwörter aufzufordern.

Welche Block Modes in DEC 3 und 5 identisch sind, kann ich Dir ad hoc leider nicht sagen - ich habe die DEC 3 nicht im Einsatz... Hier hilft aber testen und vergleichen, also einmal die Ergebnisse in D7 mit Blockmode X mit D2007 Blockmode Y vergleichen.

Gute Kandidaten wären aber sicherlich: cmOFB/cmOFB8 und cmCFB/cmCFB8.

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat