Hallo,
Ich bin der Projektleiter des CrypTool 2-Projekts.
CrypTool 2 nutzt und verarbeitet verschiedene Datentypen. Im Fall vom AES werden CrypToolStreams (binäre Datenströme) für die Daten (Geheimtext, Klartext) als Eingaben benötigt und als Ausgaben ausgegeben. Der Schlüssel vom AES kann 128 bit, 192 bit oder 256 bit breit sein (je nach Einstellung der Komponente). Auch er wird er als binäres Datum (Byte-Array) dem AES gegeben.

Im oben aufgeführten Beispiel werden ein Klartext als Text (String) eingegeben. Die Textinput-Komponente ist direkt mit dem oberen AES verbunden. Das geht, führt aber zu einer impliziten Konvertierung von String nach CrypToolStream. CT2 nutzt dafür automatisch UTF-8 als Codierung. Der AES wiederrum liefert im AusgabeStream binäre Daten. Diese werden auch automatisch vom TextOutput als solche erkannt und dann in hexadezimaler Codierung ausgegeben.

Der untere AES erhält nun wiederrum einen String welcher in einen binären Datenstrom implizit umgewandelt wird. So werden die Hex-Werte nicht in einen binären Stream umgewandelt sondern der String an sich. Um allerdings den Inhalt des Strings als binäre Daten zu interpretieren muss dieser bzw sein Inhalt (die Hex-Werte) in binäre Daten umgewandelt werden. Dafür kann man da eine String-Decodierer-Komponente zwischenschalten. Diese wandelt dann die Hexwerte (z.B. A0 1B AF CC... ) in einen Strom binärer Daten um.

Ebenso müssen bei der finalen Ausgabe (unterer AES) die Ausgabedaten von einem binären Strom wieder in Text (String) umgewandelt werden. Dafür brauchen wir eine String-Codierer-Komponente, die dann von ByteArray (der Ausgabe des unteren AES) in einen UTF-8 String umwandelt.

Ebenso gibt man den Key nicht als String bzw Passwort an, sondern man gibt den Key ebenfalls als Hex-String ein, welcher dann in ein Byte-Array umgewandelt wird. Beispiel: "FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF" (16 bytes = 128bit; alle bits auf 1 gesetzt). Dies gibt man in die TextEingabe-Komponente des Keys eing und wandelt das dann ebenfalls mit einer String-Decodierer-Komponente in ein ByteArray um.

Falls das alles zu theorisch ist, habe ich übrigens ein YouTube-Video (Englisch) auf meinem Kryptographie-Kanal, welches genau solche Dinge (Datentypen und Konvertierung) ausführlich erklärt: https://www.youtube.com/watch?v=1P00GGmx7o8

Viele Grüße,
Nils

...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.