Zitat:
Oder anders gefragt: Welche Einstellungen muss ich im TCipher_Rijndael (
DEC) resp. im RijndaelManaged (.Net) treffen, damit das Ergebnis kompatibel ist?
Kurz gesagt: die gleichen !
Das im .NET die Länge der Nachricht 16 Bytes ist deutet darauf hin das .NET ein simples auf 16 Byte Grenze bezogenes Nachrichten-Padding vornimmt.
DEC reagiert da "cleverer" und versucht immer die Nachrichtenlänge in Bytes von der originalen Nachricht zur verschlüsselten Nachricht nicht zu verändern. Bei normalem Padding wird dies aber immer der Fall sein und verhindert somit das technologisch einfache und inplaced Verschlüsseln.
Aber! wird im
DEC die Nachricht schon vor ihrer Verarbeitung im
DEC nach einem spezifischen Paddingschema bearbeitet dann ändert
DEC daran später nichts mehr. In deinem Falle heist dies
1.) im .NET nachschauen welches Padding sie benutzen
2.) in deinen Sourcen die Nachricht vor der Verarbeitung selber padden
Warum ist ein solches Padding nicht im
DEC ?
Weil es einfach zu viele Arten dieses Paddings gibt. Jeder "Standard" benutzt sein eigenes Verfahren.
DEC benutzt sogenanntes Cipher Text Stealing und in der neuesten Version wechselt es aus Sicherheitsgründen sogar den Cipher Modus von einem Block orientiertem zu einem Byte orientiertem Modus. Das macht es weil eine Blockverschlüsselung zur kurzer Nachrichtenblöcke immer unsicherer sein muß als eine Byteweise Verschöüsselung, egal ob man ein Padding benutzt oder Cipher Text Stealing.
Würde
DEC sich also auf ein solches Paddingschemas konzentiereren so käme das einer Festlegung der Funktionalität auf diesen einen Standard gleich. Das will ich aber nicht, da es viele Standards gibt die einfach "unsicher" sind.
Gruß Hagen