Frage zu AES und Blockgröße
-
Hi, ich habe mal eine theoretische frage: mit dem verschlüsselungsstandard AES (siehe http://de.wikipedia.org/wiki/Advanced_Encryption_Standard ) kann man ja blockweise verschlüsseln. Hat man also daten, die sich genau auf 16 byte große blocks aufteilen, ist das ja kein problem... . wie kann man damit allerdings daten verschlüsseln, die beispielsweise 1025 byte lang sind (
1025 % 16 != 0
, sondern eben 1), sich also nicht genau auf 16 byte große blocks aufteilen lassen?ich habe mir als work-around schon überlegt, dass man den block einfach auffüllen kann, aber das ist sehr unschön und in bezug auf eine dateiverschlüsselung auch sehr inkompatibel bzw. fehleranfällig (man müsste die 'wahre' dateigröße irgendwo mit in der datei ablegen, um diese korrekt rekonstruieren zu können
).schonmal vielen dank für eure antworten!

PS: das ist zwar nicht direkt C++, war mir aber nicht sicher, wo ich den post sonst platzieren soll und habe meine AES-Klasse auch bisher in C++ realisiert
.
-
Die übliche Variante ist, wie du vorgeschlagen hast, eine Padding Sequenz einzufügen -> z.B. mit Nullen auffüllen.
http://en.wikipedia.org/wiki/Padding_(cryptography)
http://en.wikipedia.org/wiki/Block_cipher_modes_of_operationSimon