Einzelnen Beitrag anzeigen

Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#2

AW: RIJNDAEL_256 Entschlüsseln mit DEC 5.2

  Alt 6. Mai 2012, 07:36
Ist möglich, dass ich hier jetzt totalen Mist schreibe, wenn es so ist, bitte drauf hinweisen.

Die Schlüsselerzeugung bzw. die Verschlüsselung sieht mir völlig unterschiedlich aus.

In der PHP Variante gibt es kein Gegenstück zur Key Derivation Function (KDFx). Dazu kommt noch, dass KDFx eine Dec-Eigene Key Derivation Function ist. Die PHP Funktion errechnet einen zufälligen IV, deine Delphi Version tut dies nicht. Außerdem sehe ich in der PHP Version nicht, dass dort ein MAC irgendwo geschrieben wird. Als AHashClass ist THash_Whirlpool deklariert, bist du sicher, dass die PHP Funktion auch mit Whirlpool arbeitet? Außerdem musst du überprüfen, wo die Informationen (Salt, IV, Mac, möglicherweise Informationen zum Passwort (Hash oder ein Teil davon) ) in der verschlüsselten Datei gespeichert werden.

Aus diesen Gründen kann das gar nicht klappen.

Delphi-Quellcode:
function TDECCipher.CalcMAC(Format: TDECFormatClass): Binary;
begin
  Done;
  if FMode in [cmECBx] then raise EDECException.Create(sInvalidMACMode)
    else Result := ValidFormat(Format).Encode(FBuffer^, FBufferSize);
end;
Wie du hier ja schon gesehen hast, kann das im ECB Mode gar nicht funktionieren. Muss es aber auch nicht, denn in deiner PHP Funtion wird ja auch gar kein MAC Wert errechnet.

Edit: Der ECB Modus ist nicht sonderlich sicher, deshalb sollte man lieber einen verketteten Modus wie CBC benutzen. ECB Mode Wiki
Gruß
Cookie

Geändert von cookie22 ( 6. Mai 2012 um 08:16 Uhr)
  Mit Zitat antworten Zitat