Verschlüsselung: Allgemeine Fragen/AES
-
Hallo Forum,
ich habe einige Fragen zur Verschlüsselung:
Vorgeschichte:
Ich habe ein Programm das angeblich AES verschlüsselt. Ich nehme einen 256Bit HEX Schlüssel, eine Datei die ich verschlüsseln will und erhalte einen verschlüsselten HEX Text A. Wiederhole ich den Vorgang mit gleichem Schlüssel + gleicher Datei erhalte ich einen HEX Text B (Text A und B sind unterschiedlich!). Beim Entschlüsseln muß ich wieder den AES Key angeben. Sowohl aus Text A also auch aus Text B läßt sich die Ursprungsdatei wieder herstellen. Verändere ich beim entschlüsseln den 256 Bit Key ein wenig kommt eine Fehlermeldung das der Key falsch sei.1. Kann das sein? Ist das AES? (Eigentlich sollte doch beim Verschlüsseln immer der selber Chipertext herauskommen?)
2. Woher weiß der Algo das der Chipertext nicht mit diesem Key verschlüsselt wurde? (Setzen wir voraus das das Programm wirklich AES verwendet) Hat AES "Sicherungen"? Hier wären Stichworte hilfreich das ich weiter im Internet suchen kann.
3. Benutzen die AES Verschlüsselungsprogramme Datenkontainer? Nimmt sich das Programm den zu verschlüsselnden Text und bildet einen Header mit zB. der Textlänge und einer Checksumme, ect. (So könnte das Programm natürlich einfach herausfinden das der Key nicht zum Chipertext passt.) Gäbe es diese Container wäre es außerdem nicht so einfach möglich einen von Programm X AES-verchlüsselten Text mit Programm Y zu entschlüsseln. Wenn solche Kontainer verwendet würden, wären eine Menger meiner jetzigen Probleme erklärbar.
Hintergrund (2) der Frage ist folgender: Meine Firma hat eine Menge (angeblich) AES verschlüsselter Daten. Den Key habe ich auch. 64 Byte HEX Zeichen lang -> 256 Bit. Ich versuche nun seit Tagen ein AES Programm aufzutreiben mit dem ich entschlüsseln kann. Es will mir aber einfach nicht gelingen. Könnte es daran liegen das das Ergebnis das ich erhalte noch in dem Container steckt?
Parallel dazu habe ich andere AES Programme heruntergeladen und versucht über kreuz zu ver/entschlüsseln. Es war aber bisher immer so das ein Text den ich mit Programm X verschlüsselt habe nicht mit Program Y entschlüsseln konnte. Daher die Idee mit dem Container. Das manchmal ein Schlüssel mit einer Passphrase geschützt ist weiß ich. Ich habe immer Programme gewählt wo nichts von einer Passphrase stand.4. Verwenden vielleicht viele Programme eine konstante Passphrase ohne das der Anwender das weiß? Wenn ich also die Datei Key_AES_256.hex öffne, kann ich davon ausgehen das das dann auch der AES Key ist?
5. Kennt jemand eine genaue Implementierung von AES? Wo ich nur den Schlüssel und die zu ent- oder verschlüsselnde Datei anzugeben brauche? Es sollte soetwas wie eine Refenrenzimplementierung sein.
Vielen Dank im voraus
Otto
-
Naja, AES ist erst mal nur ein Standard, um Text symmetrisch zu verschlüsseln. Was das Programm dann genau macht, ist was anderes. Zum Beispiel könnte es den Text vorher komprimieren, timestamps einfügen, ne cheksumme, irgendwas. Anhand der checksumme könnte das Programm erkennen, dass der cipher falsch ist. Und wenn die eingefügten Informationen jedes mal anders sind (z.B. timestamp), dann ist auch zu erwarten, dass die verschlüsselte Datei jedes mal anders aussieht.
-
Kannst ja z.B. mal in den Dokus von TrueCrypt schauen wie die erkennen, ob der Schlüssel richtig ist. Die haben dazu ein paar Merkmale wodurch sie erkennen können ob es der richtige Algorithmus und der richtige Schlüssel sind (bzw. sich relativ sicher sein können).
Die unterschiedliche Signatur ist wohl darauf zurückzuführen, dass sie noch ein paar trash-daten dazugeben.Und aus den beiden Gründen ist es wohl sehr unwahrscheinlich, dass man ein mit Programm A verschlüsselten Text mit Programm B entschlüsseln kann.
Eine Referenzimplementierung, bzw. eine sehr einfache ohne extras würde dir auch wenig nützen, wenn die Dateien ursprünglich mal mit Programm X verschlüsselt wurde, das nicht einfach den Text verschlüsselt.
-
Das heißt ein AES Key ist praktisch wertlos wenn man das Programm dazu nicht hat. (Jedenfalls für Leute die keine Kryptoexperten sind.)
Kennt jemand eine Open Source AES Referenzimplementierung wo das Kontainerformat bekannt ist oder wo es gar keinen Kontainer gibt?
-
@lolz: Das alte AES Programm ist noch da (an die Daten kommen wir ran). Der Entwickler der das entwickelt hat ist nicht mehr da und ich bin dabei seine Arbeit zu übernehmen. Und ehe ich jetzt Monate verschwende um das zu verstehen was er da zusammengebastelt hat würde ich dann lieber was aus Open Source zusammenstecken.