Wie man versteht, was eine Chiffre ist
Ehrlich gesagt kann der Unterschied zwischen Codes und Chiffren bei der Kryptografie ziemlich verwirrend sein. Aber im Großen und Ganzen ist eine Chiffre einfach ein Algorithmus, der lesbare Informationen in etwas Unlesbares (Chiffretext) umwandelt. Manche Leute nennen sie auch „Cypher“, was eine ältere oder alternative Schreibweise ist. Normalerweise werden die Begriffe „Code“ und „Chiffre“ synonym verwendet, aber technisch gesehen sind sie ziemlich unterschiedlich. Bei Codes geht es eher darum, Wörter oder Phrasen zu ersetzen – sie weisen ihnen eine sekundäre Bedeutung zu – wie zum Beispiel das Verstecken einer Nachricht hinter scheinbar harmlosen Worten. Bei Chiffren hingegen geht es eher darum, Zeichen oder Datenbits basierend auf einem Algorithmus und einem geheimen Schlüssel zu verschlüsseln. Das Ganze kann Kopfschmerzen bereiten, weil die Grenzen in der Praxis verschwimmen. Manchmal nennen Leute einfach alles „Codes“, besonders wenn nur Wörter ausgetauscht und nicht wirklich etwas verschlüsselt wird. Aber wenn es um echte Verschlüsselung geht – wie das Sichern von E-Mails oder Datenübertragungen –, sind Chiffren das Richtige. Denn natürlich hängt die Sicherheit davon ab, den Schlüssel geheim zu halten. Sie möchten nicht, dass jemand Ihren geheimen Algorithmus errät oder Ihre Chiffre mit Brute-Force knackt. Deshalb basiert moderne Verschlüsselung auf gemeinsam nutzbaren Algorithmen, hält aber die Schlüssel geheim. Wenn Sie jemals die Begriffe „Vigenère-Chiffre“ oder „AES-Verschlüsselung“ hören, handelt es sich dabei um spezielle Algorithmen – Chiffren mit besonderen Methoden zur Datenverschlüsselung. Moderne Chiffren sind so konzipiert, dass sie auch dann sicher sind, wenn der Algorithmus selbst – mit Ausnahme des Schlüssels – allen bekannt ist. Das basiert auf dem Kerckhoff-Prinzip, das besagt, dass die Sicherheit im Schlüssel liegen sollte, nicht in der Methode. Nur zur Info: Klassische Chiffren – wie Caesar oder ROT13 – sind veraltet. Sie sind viel zu simpel, da sie nur einfache Substitutionen oder Transpositionen beinhalten, die mit genügend Aufwand geknackt werden könnten. Moderne Kryptografie geht darüber hinaus und setzt auf mathematisch komplexe Algorithmen, die tatsächlich getestet und als sicher erwiesen sind. Sie werden heute zum Verschlüsseln von E-Mails, Bankdaten und ganz allgemein zum Bewahren von Geheimnissen im Internet verwendet. Es ist zwar hilfreich, den Unterschied zu verstehen, aber in der alltäglichen Kryptografie streben die meisten Leute einfach nach starken, getesteten Algorithmen (wie AES) und halten die Schlüssel geheim. Denn natürlich will niemand ein leichtes Ziel.
Wenn Sie neugierig sind und sich mit Verschlüsselung oder Algorithmen beschäftigen möchten, schauen Sie sich Ressourcen wie das GitHub-Repository: Winhance an. Es ist ein guter Ausgangspunkt, um zu sehen, wie einige dieser Dinge aufgebaut sind, insbesondere wenn Sie gerne basteln oder sich mit den Grundlagen der Kryptographie vertraut machen. Nur zur Info: Selbst einige moderne Algorithmen können für grundlegende Dinge übertrieben sein. Machen Sie sich also keine Sorgen, wenn es Ihnen anfangs etwas zu viel ist.
Codes sind keine Chiffren
Ein Code beschreibt typischerweise ein System, in dem bestimmten Wörtern oder Ausdrücken eine Bedeutung zugewiesen wird. Die Codewörter oder -phrasen können eine legitime, allgemein verständliche Bedeutung haben, der Code implementiert jedoch eine sekundäre Bedeutung, die nur Eingeweihte verstehen können. Alternativ kann der Code eine völlig bedeutungslose Zeichenkombination sein.
Beispielsweise können zwei Agenten, die sich gegenseitig ihr Vertrauen bestätigen möchten, ein Paar Codephrasen verwenden.„Ich habe gehört, das Wetter in Paris ist zu dieser Jahreszeit schön.“ und „Ich persönlich hatte schon immer eine Vorliebe für Dublin.“ könnten ein Paar Challenge-Response-Codephrasen sein. Ein Vorteil der Verwendung von Codephrasen mit etablierten und sekundären Bedeutungen besteht darin, dass ein Außenstehender das Gespräch möglicherweise als völlig normal und unwahrscheinlich mit versteckter Bedeutung betrachtet. Ein solches Codephrasensystem profitiert von der glaubhaften Abstreitbarkeit.
Es ist jedoch darauf zu achten, dass die gewählten Ausdrücke nicht von zufälligen Passanten verwendet werden. Wird der erste Codeausdruck einem zufälligen Passanten mitgeteilt, könnte dieser ihn als etwas seltsam empfinden, ansonsten handelt es sich jedoch nur um leeres Geplauder. Die Codeantwort sollte so gewählt werden, dass sie für jeden Zuhörer Sinn ergibt, aber höchstwahrscheinlich nicht von einer zufälligen Person ausgesprochen wird.
Manche Codes bestehen aus keinen vollständigen Wörtern. Beispielsweise könnte „UBDIBF“ ein Codewort sein, das „Mission abgeschlossen, alle Ziele erreicht“ bedeutet. Jeder, der einen solchen Code sieht oder hört, könnte annehmen, dass eine geheime Nachricht übermittelt wird. Ohne Kenntnis des Codes wäre die Bedeutung jedoch nicht erfassbar. Der Vorteil solcher Codes besteht darin, dass sie kürzer und einfacher zu übermitteln sind. Bei beiden Methoden besteht jedoch das Risiko, dass der Agent den richtigen Code vergisst.
Chiffren
Eine Chiffre ist eine algorithmische Methode, eine Nachricht so zu verändern, dass die Ausgabe, der sogenannte Geheimtext, nicht mehr verständlich ist. Um zu verhindern, dass die gesamte Chiffre unbrauchbar wird, sobald jemand ihre Funktionsweise versteht, wird die Ausgabe mithilfe eines „Schlüssels“ variiert.
In der modernen Kryptographie gibt es zwei verschiedene Möglichkeiten, Algorithmen zu definieren. Die erste ist die Art des Schlüssels. Eine symmetrische Chiffre verwendet denselben Schlüssel zum Ver- und Entschlüsseln von Daten. Ein symmetrischer Schlüssel wird allgemein als geheimer Schlüssel bezeichnet. Eine asymmetrische Chiffre verwendet zwei verschiedene Schlüssel: einen zum Verschlüsseln und einen zum Entschlüsseln von Daten. Normalerweise wird der asymmetrische Schlüssel zum Verschlüsseln von Daten als öffentlicher Schlüssel bezeichnet, während der Entschlüsselungsschlüssel als privater Schlüssel bezeichnet wird. Mit dieser Methode kann jeder eine Nachricht verschlüsseln und sich darauf verlassen, dass nur der rechtmäßige Besitzer des privaten Schlüssels die Nachricht entschlüsseln und lesen kann.
Chiffren können auch als Strom- oder Blockchiffren klassifiziert werden. Eine Stromchiffre verschlüsselt einen kontinuierlichen Strom von Symbolen. Eine Blockchiffre verschlüsselt Datenblöcke mit fester Größe. Daher benötigen solche Blockchiffren Auffüllungen, wenn die Daten nicht genau in die Blockgröße passen.
Klassische vs.moderne Chiffren
Klassische Chiffren waren relativ einfach. Das war notwendig, da das technische Niveau niedrig war und Chiffren daher von Hand oder mit einfachen Werkzeugen verwendet werden mussten. Diese beinhalteten in der Regel Transposition oder Substitution. Eine Substitutionschiffre wie die Caesar-Chiffre oder ROT13 ersetzt einen Buchstaben im Alphabet durch einen anderen. Bei ROT13 wird jeder Buchstabe durch den Buchstaben ersetzt, der 13 Zeichen im Alphabet dahinter steht. Eine Transpositionschiffre funktioniert ähnlich, hat aber nicht für jedes Zeichen die gleiche Verschiebung. Solche Techniken sind relativ leicht zu knacken, selbst wenn das Transpositionsalphabet nach jedem Buchstaben geändert wird. Das liegt daran, dass der mögliche Schlüsselraum gering ist und nur eine begrenzte Anzahl verschiedener Schlüssel verwendet werden kann. Hat ein Feind die Chiffre erst einmal verstanden, kann er einfach alle Schlüssel ausprobieren und das System knacken.
Moderne Chiffren basieren auf dem Kerckhoff-Prinzip. Dieses besagt, dass jedes Kryptosystem auch dann sicher bleibt, wenn dem Angreifer das gesamte System bis auf den Schlüssel bekannt ist. Moderne Chiffren sind daher öffentlich zugänglich und gut erforscht, ohne dass ihre Sicherheit beeinträchtigt wird. Nur der Schlüssel muss geheim gehalten werden, was deutlich einfacher ist als die Geheimhaltung des gesamten Systems.
Abschluss
Eine Chiffre ist eine andere Bezeichnung für einen Verschlüsselungsalgorithmus. Manche Leute verwenden den Begriff synonym mit Code (im Sinne von verschlüsselt = kodiert).Dies ist jedoch nicht ganz korrekt. Ein Code beruht darauf, dass die Bedeutungen des Codes geheim bleiben. Ein Code kann auch beliebig festgelegt werden. Eine Chiffre ist ein wiederholbarer Algorithmus zur Verschlüsselung beliebiger Daten. Die Sicherheit einer Chiffre beruht darauf, dass der Schlüssel geheim bleibt.
Der Begriff „Chiffre“ leitet sich vom arabischen Wort für Null صفر (sifr) ab. Im römischen Zahlensystem gab es das Konzept der Null nicht. Als sich das arabische Zahlensystem im Mittelalter in Europa verbreitete, wurde das arabische Wort daher ins mittelalterliche Latein übernommen und lautete „cifra“.Im Laufe der Zeit entwickelte sich dieser Begriff in England zum Wort „cipher“.Man geht davon aus, dass das neue Konzept der Null schwer zu verstehen war, daher wurde der Begriff verwendet, um sich auf jede Nachricht oder Kommunikation zu beziehen, die schwer zu verstehen war, auch wenn sie nicht tatsächlich verschlüsselt oder chiffriert war.