Du benutzt beim
DEC die Methode .InitKey() zum Schlüsselsetup. Wird das Password mit dieser Methode oder direkt im Contructor .Create() des Ciphers übergeben so wird intern mit Hilfe einer Hashfunktion ein SessionKey berechnet. Dies ist sicherer aber eben auch inkompatibel. Das Schlüsselsetup als solches ist in diesen Punkten nicht Standardisiert.
Damit nun mit dem
DEC absolut Standard konforme Verschlüsselungen möglich sind musst du
1.) den Cipher Mode -> Property Cipher.Mode, auf einen Standard Modus wie cmCBC, cmECB, cmCFB oder cmOFB setzen.
2.) Methode .Init() zum Setzen des Passwortes benutzen
3.) eventuell bei .Init() auch einen InitVector mit übergeben.
Nur wenn ALLE drei Punkte in jedem Tool identische Verfahren und Daten benutzen ist sichergestellt das sie auch identische Werte liefern müssen.
Ich persönlich habe
DEC auch mit DCPCrypt verglichen und auf Kompatibilität getestet.
Ein spezielles Problem bleibt aber bestehen: Twofich in der offizielle
DEC Part 3 Version hat einen klitzekleinen Bug im KeySetup.
DEC benutzt standardmäßig dem Cipher.Mode := cmCTS. cmCTS ist eine Entwicklung von mir, die sicherer als der Standard cmCBC ist. Ein fast identisches Verfahren wie mein CTS wurde in der AES Ausschreibung von Belgischen Cryptoexperten als Ersatz für CBC vorgeschlagen. Da aber CTS kein offizieller Standard ist (wobei es eigentlich bis heute überhaupt keinen offiziellen Standard gibt
) kann DCPCrypt oder andere Tools garnicht kompatibel zum
DEC sein.
Wie gesagt, eine einfache Aussage wie "alle nutzen Twofish" also müssen sie gleiche Resultate erzielen ist falsch. Es gibt zu viele weitere Einstellungen die unterschiedlich sein könnten.
Ein weiteres Problem entsteht bei vielen Cipher die unterschiedliche Schlüssellängen und Rundenanzahlen unterstützen. Twofisch ist so ein Kandidat. Um also kompatibel zu werden müssen folgende Punkte abgeklärt werden:
1.) Schlüssellänge
2.) Rundenanzahl oder andere Ciphrspezifische Einstellungen
3.) Cipher Block Modus
4.) Cipher Block Size
5.) Schlüssel Preprocessing
6.) Padding Schemata
7.) Init Vector
8.) Daten Formatierung vor & nachher
Gruß Hagen