Blockchiffren wie dES, 3DES und AES nur auf Blöcke von Bytes arbeiten kann. dES und 3DES arbeiten auf Block von 8 Bytes und AES auf Blöcken von 16 Bytes.
Um dies zu umgehen, wenden Sie normalerweise eine reversible Auffüllung auf Ihren Klartext an, bevor Sie ihn verschlüsseln.Es wird meistens immer "PKCS" -Padding (auch PKCS5- oder PKCS7-Padding genannt).
PKCS-Padding fügt mindestens ein Byte hinzu, so dass der aufgefüllte Text eine Länge hat, die durch die Blocklänge (8 Bytes für 3DES) teilbar ist. Der Wert der Füll-Bytes ist die Anzahl der hinzugefügten Bytes. Fx. ABCDEF wird auf ABCDEF0505050505 aufgefüllt und 0011223344556677 wird auf 0011223344566770808080808080808 aufgefüllt. Beachten Sie, dass dies leicht zu entfernen ist: Sie sehen nur das letzte Byte der aufgefüllten Bytes an, stellen sicher, dass es zwischen 1 und der Blocklänge liegt, und entfernen diese Anzahl an Bytes vom Ende (Überprüfung, dass jedes entfernte Byte den korrekten Wert hat).
Schließlich Ihre Frage zu beantworten: Angenommen, Sie sind 3DES mit CBC-Verschlüsselung und PKCS-Polsterung mit - die Sie wahrscheinlich sind - die Verschlüsselung einer Zeichenkette der Länge n Länge haben:
n + 8 - (n % 8)
Also wenn ich 64 Bytes zu verschlüsseln habe, wäre 'n' 72? – Gabe
Ja, 64 Bytes, die mit 3DES/CBC/PKCS-Padding verschlüsselt wurden, werden nach der Verschlüsselung 72 Bytes. –