JaSypt - Verschlüsselung

Du verstehst die Grundsätze der Kryptoanalyse nicht ... ed is so:

der Algorithmus selbst benutzt keine Charsets, sowas ist für ihn völlig uninteressant. "Er" nimmt lediglich die eingehenden Bytes und substituiert nach einem bestimmten Muster. "Er" fummelt _NIE_ mit Strings herum, das macht lediglich der Anwender AUSSERHALB der eigentlichen Kryptographie.

Ich interpretiere in meinem Beispiel lediglich einen beliebigen String anhand eines frei gewählten Charsets (in diesem Fall: Default-Locale-charset) als entsprechendes Byte-Array. Dieses wird dann verschlüsselt wieder ausgegeben. Das Ergebnis-Array enthält teilweise weitaus grössere Elemente als du in jedem Charset finden wirst. Wenn du nun das Ergebnis also in irgendeinen Charset zwängen willst, ohne es vorher wieder zu entschlüsseln, dann _MUSS_ das ja fehlerhaft sein. Vor dem entschlüsseln hat man lediglich das nichtsaussagende Byte-Array, es stellt keine Repräsentation von irgendetwas dar. Dass einige Zeichen tatsächlich korrekt sind ist lediglich darauf zurückzuführen dass die Entwickler von AES ihre Zeichenzuteilung anhand gängiger Charsets erstellt haben, und somit einige Zeichen gerne mal dem Ursprungs-String entsprechen. Das ist aber eher Glückssache, je nachdem wie hoch die Primzahl im aktuellen Vorgang war ;-).

Man sollte übrigens nicht glauben, dass das einzig und allein ein Symptom von AES ist, auch in allen anderen Algorithmen wirst du Probleme bekommen, wenn du die direkte crypto-Ausgabe in charsets zwängen willst ... Am besten bleiben lassen, das ist ein gern gemachter Fehler, der in produktiven Umgebungen zu nicht auffindbaren Fehlern führen kann und somit deinen Angestellten-Status ernsthaft gefährden kann

Was folgern wir daraus? Ganz einfach: Möchte man Texte verschlüsselt (!) ablegen, so muss man diese entweder als Zahlen-Sammelsurium speichern, oder eben eine eindeutige Rückführung zu den korrekten, ursprünglichen (!) Bytes ermöglichen
 
Zuletzt bearbeitet:
tha_specializt, da hast Du natürlich recht. In meinen Tests habe ich auch gemerkt, daß ein Teil der verschlüsselten Zeichen negativ sind, also (wie Du auch geschrieben hast) nicht in ein char überführt werden können. Somit erklärt sich auch meine Testausgabe. Die Bytes als Zahlen zu speichern, wäre eine Alternative.

Interessant würde ich die Möglichkeit finden, dem Verschlüsselungsalgorythmus einen Satz gültiger Zeichen zur Verfügung zu stellen (z.B. A-Z und 0-9), aus denen er dann das codierte Ergebnis macht, aber sowas scheint nicht zu gehen, oder?
Hintergrund meiner Frage ist einfach die, daß mein Beispielprogramm den codierten Text per Copy-and-Paste zur Verfügung stellen soll und er dann außerdem die Möglichkeit hätte, diesen codierten Text per Copy-and-Paste wieder decodieren zu lassen.
 
Zurück