Inhaltsverzeichnis[Verbergen]

Solitaire erhält seine Sicherheit durch die einem gemischten Kartenspiel eigene Zufälligkeit. Durch das hantieren mit diesem Kartenspiel kann ein Absender eine Reihe "zufälliger" Buchstaben erzeugen, die er dann mit seiner Botschaft kombiniert. Natürlich kann Solitaire auf einem Computer simuliert werden, aber es ist dafür ausgelegt, per Hand eingesetzt zu werden.

Solitaire mag low-tech sein, aber seine Sicherheit ist dazu gedacht, high-tech zu sein. Ich habe Solitaire dafür entworfen, selbst den bestens ausgestatteten militärischen Gegnern mit den größten Computern und den cleversten Kryptanalytikern gegenüber sicher zu sein. Es gibt natürlich keine Garantie, daß nicht irgendjemand eine clevere Attacke gegen Solitaire findet (beobachtet diese Seite für Updates), aber der Algorithmus ist mit Sicherheit besser als jeder andere Papier-und-Stift Algorithmus, den ich je gesehen habe.

Allerdings ist er nicht schnell. Es kann einen Abend dauern, eine halbwegs lange Botschaft zu ver- oder entschlüsseln. In David Kahn's Buch "Kahn on Codes" beschreibt er einen echten Papier-und-Stift Algorithmus, der von einem sowjetischen Spion benutzt wurde. Sowohl der sowjetische Algorithmus als auch Solitaire benötigen in etwa dieselbe Zeit, um eine Botschaft zu verschlüsseln: Den größten Teil eines Abends.

Mit Solitaire verschlüsseln

Solitaire ist eine Stromchiffrierung im Output-Feedback-Modus. Dies wird manchmal auch "Schlüsselgenerator" (KG in der U.S.-amerikanischen Militärsprache) genannt. Das grundlegende Prinzip ist es, daß Solitaire einen Strom von Zahlen zwischen 1 und 26 erzeugt, oft auch "Schlüsselstrom" genannt. Um zu verschlüsseln, werden dieselbe Anzahl von Schlüsselstrombuchstaben wie Klartextbuchstaben erzeugt. Dann werden sie modulo 26 zu den Klartextbuchstaben addiert, einer nach dem anderen, um den Chiffretext zu erhalten. (Keine Angst, ich werde "modulo" gleich erklären.)

Um also, zum Beispiel, die erste Botschaft, die in Stephenson's Roman erwähnt ist, zu verschlüsseln, "DO NOT USE PC":

  1. Teile den Klartext der Botschaft in Gruppen zu je 5 Buchstaben auf. (Es steckt keine Magie dahinter, 5er Gruppen zu benutzen, es ist einfach Tradition.) Verwende X, um die letzte Gruppe zu füllen. Wenn also die Botschaft "DO NOT USE PC" lautet, so lautet der Klartext:

    DONOT USEPC

  2. Benutze Solitaire um zehn Schlüsselstrombuchstaben zu erzeugen. (Wie's geht, steht unten.) Angenommen, sie lauten:

    KDWUP ONOWT

  3. Wandle den Klartext von Buchstaben in Zahlen um, A=1, B=2, usw.:

    4 15 14 15 20 21 19 5 16 3

  4. Wandle die Schlüsselstrombuchstaben ebenso um:

    11 4 23 21 16 15 14 15 23 20

  5. Addiere den Zahlenstrom des Klartextes zu den Schlüsselstromzahlen, modulo 26. (Das alles bedeutet nichts anderes als: wenn die Summe größer als 26 ist, ziehe vom Ergebnis 26 ab.) Beispiel: 1+1=2, 26+1=27, und 27-26=1, also 26+1=1.

    15 19 11 10 10 10 7 20 13 23

  6. Konvertiere die Zahlen zu Buchstaben zurück.

    OSKJJ JGTMW

Wenn man damit wirklich gut ist, kann man lernen, Buchstaben im Kopf zu addieren und zählt einfach die Buchstaben von Schritt (1) und (2) zusammen. Es ist einfach sich zu merken, daß A+A=B, aber sich an T+Q=K zu erinnern, ist schwieriger.

Entschlüsseln mit Solitaire

Der Hintergedanke ist es, daß der Empfänger denselben Schlüsselstrom erzeugt, und dann die Schlüsselstrombuchstaben von den Chiffretextbuchstaben subtrahiert.

  1. Nimm den Chiffretext der Botschaft und teile ihn in Gruppen zu je 5 Buchstaben. (Er sollte schon in dieser Form sein.)

    OSKJJ JGTMW

  2. Benutze Solitaire, um zehn Schlüsselstrombuchstaben zu erzeugen. Wenn der Empfänger denselben Schlüssel verwendet wie der Absender, so werden die Schlüsselstrombuchstaben dieselben sein:

    KDWUP ONOWT

  3. Wandle den Chiffretext von Buchstaben zu Zahlen um:

    15 19 11 10 10 10 7 20 13 23

  4. Wandle die Schlüsselstrombuchstaben ebenso um:

    11 4 23 21 16 15 14 15 23 20

  5. Ziehe die Schlüsselstromzahlen von den Zahlen des Chiffretextes ab, modulo 26. Beispiel: 21-1=20, 1-22=5. (Ganz einfach: Wenn die erste Zahl kleiner oder gleich der zweiten Zahl ist, addiere vor der Subtraktion 26 zu der ersten Zahl. Also 1-22=? wird zu 27-22=5.)

    4 15 14 15 20 21 19 5 16 3

  6. Konvertiere die Zahlen wieder zu Buchstaben.

    DONOT USEPC

Wie man sieht, ist entschlüsseln dasselbe wie verschlüsseln, außer daß man den Schlüsselstrom von dem Chiffretext abzieht.

Erzeugung der Schlüsselstrombuchstaben

Dies ist das Herzstück von Solitaire. Die obigen Beschreibungen von Ver- und Entschlüsselung funktionieren für jede Stromchiffrierung im Output-Feedback-Modus. Dieser Abschnitt beschreibt, wie Solitaire arbeitet.

Solitaire generiert einen Schlüsselstrom mit Hilfe eines Kartenspiels. Man kann sich ein Kartenspiel mit 54 Karten (man denke an die Joker!) als eine 54-elementige Permutation vorstellen. Es gibt 54!, d.h. 2,31*10^71, mögliche Reihenfolgen der Karten in einem Spiel. Besser noch, es gibt 52 Karten in einem Spiel (ohne Joker) und 26 Buchstaben im Alphabet. Diese Art von Zufall ist einfach zu gut, um sie zu ignorieren.

Um für Solitaire geeignet zu sein, muß ein Spiel die vollen 52 Karten plus 2 Joker besitzen. Die Joker müssen in irgendeiner Weise unterschiedlich sein. (Das ist die Regel. Das Spiel, das vor mir liegt während ich dies schreibe, hat Joker mit unterschiedlichen Farben: Einer ist schwarz, der andere rot.) Nenne den einen Joker A und den anderen B. Es gibt generell irgendein Element auf beiden Jokern das gleich ist, aber vielleicht in der Größe/Farbe verschieden. Nimm als Joker "B" den, bei dem es größer ist. In meinem Fall nenne ich den schwarzen Joker A, und den roten Joker B. Wenn es einfacher ist, kann man auch "A" und "B" auf die Karten schreiben, aber man muß das möglicherweise der Geheimpolizei erklären, falls man je erwischt wird.

Um das Kartenspiel zu initialisieren, nimm das Spiel in die Hand, Bilder nach oben. Ordne dann die Karten in der ursprünglichen Reihenfolge, die den Schlüssel darstellt. (Ich gehe später auf den Schlüssel ein; er ist aber etwas anderes als der Schlüsselstrom.) Jetzt ist man soweit, eine Reihe von Schlüsselstrombuchstaben zu erzeugen.

Dies ist Solitaire:

  1. Finde den Joker A. Plaziere ihn eine Karte nach unten. (Das heißt, vertausche ihn mit der darunterliegenden Karte.) Ist der Joker die letzte Karte im Spiel, plaziere ihn genau unter der obersten Karte.

  2. Finde den Joker B. Plaziere ihn zwei Karten nach unten. Ist der Joker die letzte Karte im Spiel, plaziere ihn genau unter der zweiten Karte. Ist der Joker die vorletzte Karte, plaziere ihn genau unter die erste Karte. (Nimm einfach an, das Kartenspiel sei eine Schleife...)

    Es ist wichtig, diese beiden Schritte in der richtigen Reihenfolge zu tun. Es ist verlockend, einfach die Joker so zu plazieren wie man sie findet. Das ist in Ordnung, solange sie nicht sehr nahe beieinander liegen.

    Wenn also das Spiel vor Schritt 1 so aussieht:

    Karo 3 Joker Schwarz/Joker A Joker Rot/Joker B Pik 8 Herz 9

    dann sollte es nach Schritt 2 so aussehen:

    Karo 3 Joker Schwarz/Joker A Pik 8 Joker Rot/Joker B Herz 9

    (Es scheint, als hätte sich Joker schwarz=A nicht bewegt. Tatsächlich wurde er aber im ersten Schritt unter den Joker rot=B bewegt. Dann wurde Joker rot=B um zwei Karten, also unter Joker schwarz und Pik acht, nach unten verschoben.)

    Ein weiteres Beispiel vorher:

    Joker Schwarz/Joker A Herz 7 Joker Rot/Joker B Kreuz 4 Karo 2

    Nachher:

    Herz 7 Joker Schwarz/Joker A Kreuz 4 Karo 2 Joker Rot/Joker B

    Im Zweifelsfall sollte man sich daran erinnern, den Joker A vor dem Joker B zu bewegen. Und man muß sorgfältig arbeiten, wenn die Joker am Ende des Spiels liegen.

  3. Führe ein dreigeteiltes Abheben durch. Das heißt, vertausche die Karten vor dem ersten Joker mit denen nach dem zweiten Joker. Sah das Spiel vorher so aus:

    Kreuz 2 Pik 4 Herz 6 Joker Schwarz/Joker A Karo 5 Herz 8 Kreuz 7 Pik 10 Joker Rot/Joker B Karo 3 Karo 9

    so wird es nach dem dreigeteilten Abheben so aussehen:

    Karo 3 Karo 9 Joker Schwarz/Joker A Karo 5 Herz 8 Kreuz 7 Pik 10 Joker Rot/Joker B Kreuz 2 Pik 4 Herz 6

    "Erster" und "zweiter" Joker bezeichnet hier den Joker der näher zur, bzw. entfernter von der obersten Karte liegt. Die Namen "A" und "B" werden in diesem Schritt ignoriert.

    Beachte, daß die Joker, und die Karten dazwischen sich nicht bewegen; die anderen Karten bewegen sich darum herum. Das kann man einfach in den Händen machen. Sollte in einer der drei Abschnitte keine Karte sein (entweder liegen die Joker direkt nebeneinander, oder einer ist selbst die oberste oder unterste Karte), nimmt man einfach an, dieser Abschnitt sei leer, und bewegt ihn trotzdem.

    Im nächsten Beispiel befinden sich keine Karten vor dem ersten Joker. Sieht es vorher so aus:

    Joker Schwarz/Joker A Karo 5 Herz 8 Kreuz 7 Pik 10 Joker Rot/Joker B Karo 3 Karo 9

    dann sieht es hinterher so aus:

    Karo 3 Karo 9 Joker Schwarz/Joker A Karo 5 Herz 8 Kreuz 7 Pik 10 Joker Rot/Joker B

    Sind weder vor dem ersten noch nach dem zweiten Joker irgendwelche Karten, so verändert sich das Kartenspiel gar nicht:

    Joker Schwarz/Joker A Karo 5 Herz 8 Kreuz 7 Pik 10 Joker Rot/Joker B

  4. Führe ein Zählabheben durch: sieh auf die unterste Karte. Wandle sie in eine Zahl zwischen 1 und 53 um. (Wir benutzen hier die Bridge-Reihenfolge: Kreuz, Karo, Herz und Pik. Ist die Karte eine Kreuz, hat sie den gezeigten Wert. Ist es eine Karo, hat sie den Wert plus 13. Ist es eine Herz, so hat sie den gezeigten Wert plus 26. Ist es eine Pik, hat sie den Wert plus 39. Beide Joker zählen 53.) Zähle von der obersten Karte bis zu dieser Zahl. (Ich zähle grundsätzlich von 1 bis 13, immer wieder, wenn es sein muß; das ist einfacher, als bis zu hohen Zahlen zu zählen.) Hebe nach der Karte, bis zu der Du gezählt hast, ab, und lasse die unterste Karte zuunterst. Sah das Kartenspiel vorher so aus:

    Kreuz 7 ... Karten ... Pik 4 Karo 5 ... Karten ... Pik 8 Herz 9

    und die neunte Karte wäre die 4, so würde das Ergebnis sein:

    Karo 5 ... Karten ... Pik 8 Kreuz 7 ... Karten ... Pik 4 Herz 9

    Der Grund dafür, die unterste Karte dort zu belassen ist, diesen Schritt reversibel zu machen. Das ist für die mathematische Analyse seiner Sicherheit wichtig.

    Ein Kartenspiel mit einem Joker als unterste Karte verändert sich hierbei gar nicht.

    Pass auf, daß die Reihenfolge der Karten beim Abzählen nicht vertauscht wird. Der richtige Weg ist, die Karten eine nach der anderen von einer Hand in die andere zu geben. Mache keine Stapel auf dem Tisch.

  5. Finde die Ausgabekarte. Sieh Dir dafür die oberste Karte an. Konvertiere sie zu einer Zahl zwischen 1 und 53, so wie zuvor. Zähle soviele Karten von oben ab. (Zähle die oberste Karte als Nummer 1.) Schreibe die Karte nach derjenigen, zu der Du gezählt hast, auf ein Stück Papier. (Falls Du auf einen Joker triffst, schreibe nichts auf, sondern beginne erneut bei Schritt 1.) Dies ist die erste Ausgabekarte. Die Reihenfolge der Karten wird bei diesem Schritt nicht verändert!

  6. Wandle die Ausgabekarte in eine Zahl um. Wie zuvor verwenden wir die Bridge-Reihenfolge. Von der niedrigsten zur höchsten Farbe haben wir Kreuz, Karo, Herz und Pik. Also stehen Kreuz-As bis Kreuz-König für 1 bis 13, Karo-As bis Karo-König stehen für 14 bis 26, Herz-As bis Herz-König stehen für 1 bis 13, und Pik-As bis Pik-König stehen für 14 bis 26. (Wir benötigen 1 bis 26, nicht 1 bis 52, damit wir Buchstaben erhalten.)

Das ist Solitaire. Man kann es benutzen, um soviele Schlüsselstromzahlen zu generieren, wie man braucht, und man wird eine pro Buchstabe des Klartextes brauchen. Führe einfach die Schritte 1 bis 6 einmal für jede Ausgabezahl durch ohne jedesmal erneut den Schlüssel neu einzustellen.

Ich weiß, daß es regionale Unterschiede in Kartenspielen gibt, abhängig vom Land. Generell macht es keinen Unterschied, welche Reihenfolge man verwendet, oder wie man Karten zu Zahlen konvertiert. Worauf es ankommt ist, daß Absender und Empfänger sich auf die Regeln einigen. Wenn man nicht konsistent ist, kann man nicht kommunizieren.

Den Schlüssel im Kartenspiel einstellen

Bevor man damit anfangen kann, Ausgabekarten zu erzeugen, muss man das Kartenspiel mit einem Schlüssel einstellen. Das ist wahrscheinlich der wichtigste Teil des ganzen Verfahrens und der, auf dem die gesamte Sicherheit beruht. Solitaire ist nur so sicher wie sein Schlüssel. Das heißt, die einfachste Möglichkeit, Solitaire zu knacken ist, sich zu überlegen, welchen Schlüssel die kommunizierenden Parteien verwenden. Wenn man keinen guten Schlüssel hat, macht das, was folgt, keinen Sinn. Hier sind einige Vorschläge zu Austausch von Schlüsseln.

  1. Mische die Karten. Ein zufälliger Schlüssel ist der beste. Eine der Parteien kann durch Mischen ein zufälliges Spiel erzeugen und ein weiteres, identisches Spiel nachmachen. Eines erhält der Absender, das andere der Empfänger. Die meisten Leute sind keine guten Mischer, also sollte man das Spiel mindestens zehnmal mischen, und versuchen, ein Kartenspiel zu benutzen, mit dem schon gespielt wurde, und kein neues frisch aus der Verpackung. Denk daran, ein Ersatzspiel in der gewählten, zufälligen Reihenfolge aufzubewahren; wenn man sonst einen Fehler macht, wird man nie in der Lage sein, die Botschaft zu entschlüsseln. Denk auch daran, daß der Schlüssel ein Risiko darstellt, solange er existiert; die Geheimpolizei könnte das Spiel finden und die Reihenfolge aufschreiben.

  2. Benutze eine Bridge-Reihenfolge. Die Beschreibung von Karten, die ein Bridge-Spieler auf der Hand hat, und die man in der Zeitung oder in einem Bridge-Buch findet, stellt etwa einen 95-bit-Schlüssel dar. Wenn beide Parteien sich auf eine Möglichkeit einigen, das zu einer Reihenfolge des Kartenspiels zu verwandeln, und die Joker zu verteilen (möglicherweise nach den ersten beiden Karten, die erwähnt werden), kann das funktionieren. Achtung: Die Geheimpolizei kann Deine Bridge-Kolumne finden, und sich die Reihenfolge kopieren. Man kann versuchen, eine wiederholbare Konvention dafür aufzustellen, welche Bridge-Kolumne verwendet wird; zum Beispiel, "benutze die Kolumne in der Zeitung Deiner Heimatstadt des Tages, an dem Du die Botschaft verschlüsselst", oder etwas ähnliches. Oder verwende eine Liste von Suchbegriffen für die Website der New York Times und benutze die Bridge-Kolumne des Tages des Artikels der erscheint, wenn Du nach diesen Begriffen suchst. Sollten die Suchbegriffe gefunden oder abgefangen werden, werden sie wie ein Passwort aussehen. Und such Deine eigene Konvention aus, denk daran, daß die Geheimpolizei auch Neal Stephenson's Bücher liest.

  3. Benutze ein Passwort um das Spiel zu sortieren. Diese Methode benutzt den Solitaire Algorithmus, um die Initiierung des Spiel zu kreieren. Beide, sowohl der Absender als auch der Empfänger, teilen ein Passwort. (Zum Beispiel, "SECRET KEY".) Beginne mit dem Kartenspiel in festgelegter Reihenfolge; niedrigste bis höchste Karte, in der Bridge-Reihenfolge, gefolgt von Joker A, dann Joker B. Führe die Soitaire-Schritte durch, aber statt Schritt 5, führe ein weiteres Zählabheben durch, das auf dem ersten Buchstaben des Passwortes (in diesem Beispiel, 19) basiert. Mit anderen Worten, führe Schritt 4 ein zweites Mal durch, benutze aber die 19 als Abhebezahl, nicht die letzte Karte. Denk daran, die oberen Karten gerade über der untersten Karte einzufügen, so wie auch vorher.

    Führe die Schritt einmal für jeden Buchstaben des Schlüssels durch. Also, beim zweiten Durchlauf durch den Solitaire-Algorithmus, verwende den zweiten Buchstaben des Schlüssels, und so weiter.

    OPTIONAL: (Dieser Schritt wird in den Beispielen unten nicht verwendet!) Verwende die beiden letzten Buchstaben des Schlüssels, um die Position der Joker festzulegen. Ist zum Beispiel der vorletzte Buchstabe des Schlüssels ein E (eine 5), so positioniere Joker A hinter die fünfte Karte. Ist der letzte Buchstabe ein Y (eine 25), so lege Joker B hinter die fünfundzwanzigste Karte.

    Denk aber daran, daß es pro Buchstaben im Englischen nur 1,4 bit Zufälligkeit gibt. Man benötigt ein Passwort von mindestens 64 Buchstaben um Sicherheit zu bekommen; ich empfehle mindestens 80 Buchstaben, nur für den Fall. Sorry, mit einem kürzeren Schlüssel bekommt man einfach nicht so gute Sicherheit.

Beispielausgaben

Hier sind einige beispielhafte Daten, um die eigene Solitaire-Fertigkeit zu schulen:

Beispiel 1: Beginne mit einem nicht-verschlüsselten Spiel: Kreuz-As bis Kreuz-König, Karo-As bis Karo-König, Herz-As bis Herz-König, Pik-As bis Pik-König, Joker A, Joker B. (Man kann sich das vorstellen als 1 ... 52, A, B.)

Die ersten beiden Ausgabekarten werden wie fologt erzeugt. Das Kartenspiel sieht am Anfang so aus:

1 2 3 4 ... 52 A B

Nach dem ersten Schritt (Der Joker A wird bewegt):

1 2 3 4 ... 52 B A

Nach dem zweiten Schritt (Joker B wird bewegt):

1 B 2 3 4 ... 52 A

Nach dem dritten Schritt (dreifaches Abheben):

B 2 3 4 ... 52 A 1

Nach dem vierten Schritt (Zählabheben):

2 3 4 ... 52 A B 1

Anmerkung zu Schritt vier: Die letzte Zahl nach Schritt drei ist eine 1, das bedeutet: Bewege eine Karte. Bedenke, dass die 1 bleibt, wo sie ist, also bewegt sich die oberste Karte (Joker B), nach unten vor die Karte 1.

Der fünfte Schritt verändert das Kartenspiel nicht, sondern produziert eine Ausgabekarte. Die oberste Karte ist die 2, also zähle zwei Karten abwärts bis zur 4. Die erste Ausgabe von Solitaire ist also die 4. (Achtung: An dieser Stelle soll das Kartenspiel nicht verändert werden. Die 4 wird also nicht dem Kartenspiel entnommen, sondern diese Ausgabe wird irgendwo notiert.)

Um die zweite Ausgabe zu erhalten, führe die fünf Schritte erneut durch:

Schritt 1:

2 3 4 ... 49 50 51 52 B A 1

Schritt 2:

2 3 4 ... 49 50 51 52 A 1 B

Schritt 3:

A 1 B 2 3 4 ... 49 50 51 52

Schritt 4:

51 A 1 B 2 3 4 ... 49 50 52

Anmerkung zu Schritt 4: Die letzte Karte nach Schritt 3 ist die 52,zähle also 52 Karten runter bis zur 51. Hebe die einzelne Karte (51) ab vom restlichen Kartenspiel (die 52 bleibt unten).

Schritt 5 erzeugt die Ausgabe: Die erste Karte ist die 51. Zählt man 51 Karten runter, kommt man zur 49, und diese ist die zweite Ausgabekarte. (Wiederum gilt: Die Karte bleibt im Kartenspiel!)

Die ersten zehn Ausgaben sind:

4 49 10 (53) 24 8 51 44 6 4 33

Die 53 wird natürlich übersprungen, aber ich habe sie zur Demonstration mit angegeben.

Wenn der Klartext wie folgt lautet:

AAAAA AAAAA

dann lautet der Chiffretext:

EXKYI ZSGEH

Beispiel 2: Benutze Methode 3, und den Schlüssel "FOO". Die ersten 15 Ausgabe sind:

8 19 7 25 20 (53) 9 8 22 32 43 5 26 17 (53) 38 48

Wenn der Klartext aus lauter "A"s besteht, lautet der Chiffretext:

ITHZU JIWGR FARMW

Beispiel 3: Mit Methode 3 und dem Schlüssel "CRYPTONOMICON" wird die Botschaft "SOLITAIRE" verschlüsselt zu:

KIRAK SFJAN

Denk daran, daß X verwendet werden, um die letzte 5er Gruppe aufzufüllen.

Natürlich sollte man einen längeren Schlüssel verwenden. Diese Beispiele dienen nur Testzwecken. Es gibt weitere Beispiele auf dieser Website und man kann das Perl Script benutzen um weitere zu erstellen.

Echte Sicherheit, nicht Sicherheit durch Verschleierung

Solitaire wurde dafür entworfen sicher zu sein, selbst wenn der Gegner weiß, wie der Algorithmus funktioniert. Ich nehme an, daß "Cryptonomicon" ein Bestseller werden wird und daß es überall verfügbar sein wird. Ich gehe davon aus, daß die NSA und jede andere Person den Algorithmus studieren und danach Ausschau halten wird. Ich setze voraus, daß das einzige Geheimnis der Schlüssel sein wird.

Deshalb ist es so wichtig, den Schlüssel geheim zu halten. Wenn Du ein Kartenspiel an einem versteckten Ort aufbewahrst, solltest Du davon ausgehen, daß der Gegner zumindest mit dem Gedanken spielt, Du könntest Solitaire benutzen. Wenn Du die Bridge-Kolumne in Deinem Bankschließfach hast, solltest Du mit ein paar fragenden Blicken rechnen. Ist irgendeine Gruppierung dafür bekannt, den Algorithmus zu verwenden, gehe davon aus, daß die Geheimpolizei eine Datenbank mit Bridge-Kolumnen besitzt, um sie bei Entschlüsselungsversuchen zu benutzen. Solitaire ist selbst dann stark, wenn Dein Gegner weiß, daß Du es benutzt, und ein einfaches Kartenspiel ist immer noch viel weniger verdächtig als eine Verschlüsselungssoftware, die auf Deinem PC läuft; aber der Algorithmus ist kein Ersatz für gesunden Menschenverstand.

Bemerkungen zum Gebrauch

  1. Die erste Regel für eine Stromchiffrierung im Feedback-Output-Modus, für jede davon, ist, niemals denselben Schlüssel zu verwenden, um zwei verschiedene Botschaften zu verschlüsseln. Sprich mir nach: VERWENDE NIEMALS DENSELBEN SCHLÜSSEL UM ZWEI VERSCHIEDENE BOTSCHAFTEN ZU VERSCHLÜSSELN. Wenn man das tut, zerstört man die gesamte Sicherheit des Systems. Und zwar deshalb: Hat man zwei Chiffretexte, nämlich A+K und B+K, und man subtrahiert den einen vom anderen, so erhält man (A+K)-(B+K)=A+K-B-K=A-B. Das sind zwei Klartexte, die ohne jede Schlüssel miteinander kombiniert sind, und das ist sehr leicht zu knacken. Vertraue mir: Du magst nicht in der Lage sein, A oder B aus A-B herauszufinden, aber ein professioneller Kryptanalytiker ist es. Das ist wirklich wichtig: Benutze niemals denselben Schlüssel, um zwei verschiedene Botschaften zu verschlüsseln.

  2. Halte Deine Botschaften kurz. Dieser Algorithmus wurde entworfen, um mit kurzen Botschaften eingesetzt zu werden: Ein paar tausend Buchstaben höchstens. Benutze Abkürzungen und Slang in Deinen Botschaften. Rede nicht viel herum. Wenn Du einen Roman mit 100 000 Wörtern verschlüsseln willst, benutze einen Computeralgorithmus.

  3. Wie alle Stromchiffrierungen im Output-Feedback-Modus hat auch dieses System die Eigenschaft, sich niemals von einem Fehler zu erholen. Wenn man eine Botschaft verschlüsselst, und man macht in einer der Operationen einen Fehler, dann wird jeder folgende Buchstabe falsch verschlüsselt. Man wird nichts mehr entschlüsseln können, selbst mit dem Schlüssel nicht. Und man wird es nie erfahren. Wenn man also eine Botschaft verschlüsselt, sollte man diesen Prozess zweimal durchlaufen um sicher zu gehen, daß beide übereinstimmen. Wenn man entschlüsselt, sollte man nachprüfen, ob das, was man entschlüsselt, einen Sinn ergibt. Und wenn man von einem zufällig erzeugten Spiel ausgeht, sollte man genau deswegen eine genaue Kopie davon aufbewahren.

  4. Solitaire ist reversibel. Das bedeutet, daß wenn man das Kartenspiel nach dem Verschlüsseln einer Nachricht herumliegen läßt, die Geheimpolizei es finden kann und den Algorithmus rückwärts durchlaufen kann. Dieser Vorgang bringt alle Ausgabekarten hervor und entschlüsselt die Nachricht. Daher ist es wichtig, daß das Kartenspiel vollständig mindestens sechsmal durchgemischt wird, wenn man mit dem Verschlüsseln einer Nachricht fertig ist.

  5. Um maximale Sicherheit zu erreichen, versuche, alles in Kopf und Händen zu tun. Wenn die Geheimpolizei Deine Tür einrennt, mische einfach ruhig Dein Kartenspiel. (Wirf es nicht in die Luft; es ist überraschend, wieviel von der ursprünglichen Reihenfolge der Karten übrigbleibt.) Denk daran, das Ersatzspiel zu mischen, wenn Du eines hast.

  6. Sei vorsichtig mit Arbeitspapieren, wenn Du Dir Notizen machen mußt. Sie werden vertrauliche Informationen enthalten. Verbrennen ist wahrscheinlich die beste Methode der Datenvernichtung, aber mache Dir Gedanken über das Papier. Einfaches Zigarettenpapier scheint für diesen Zweck ideal geeignet zu sein. Ein Kollege führte ein paar Tests mit Club Cabaret Width-Papier durch, und es verbrennt vollständig. Es ist nicht so schwierig, auf Zigarettenpapier zu schreiben, wie man glaubt. Ein Bleistift No. 2 mit einer feinen aber stumpfen Spitze funktioniert hier gut. Ein No. 3 funktioniert besser, läßt sich aber schlechter mit sich tragen. Kugelschreiber haben hier eine Reihe von Problemen. Zum einen hinterläßt die harte Spitze eines Kulis mit größerer Wahrscheinlichkeit einen Abdruck auf der Unterlage. Außerdem besteht die Gefahr, daß die Tinte durchsickert. Gute Zigarettenpapiere sind dafür gemacht, sauber und vollständig zu verbrennen. Die Club-Papiere brennen am besten, wenn man sie an der freien Luft verbrennen läßt, das heißt, auf Brusthöhe anzündet und losläßt. Dieses Papier hat auch den Vorteil, daß es sehr fein ist, und leicht gegessen werden kann, falls das erforderlich ist. Es ist außerdem extrem dünn. Ein Papier mit 3 Zoll im Quadrat kann sechsmal gefaltet werden, bis es etwa 1cm groß und 1mm dick ist. Auf ein Stück Papier passen bequem 80 Zeichen in 8 Zeilen zu je 2 5er-Gruppen. Es scheint durchaus möglich, daß ein sorgfältiger Schreiber etwa 120 Zeichen darauf unterbringen kann.

  7. Solitaire kann auf PCs arbeiten. Häufig muß eine der kommunizierenden Parteien das Kartenspiel benutzen; die andere kann einen PC verwenden. Benutze einen PC wenn Du kannst: es geht schneller, und der PC macht niemals einen Fehler.

  8. Die meisten Kartenspiele enthalten keine Joker, es könnte etwas verdächtig erscheinen, ein solches Spiel mit zusätzlichen Jokern mit sich herumzutragen. Halte eine gute Ausrede parat.

  9. Die Effektivität von Solitaire ist nicht davon abhängig, ob man die Methode geheimhält. Ich gehe davon aus, daß die Geheimpolizei weiß, daß man es benutzt.

Sicherheitsanalyse

Weiterführende Literatur

Ich empfehle Bruce Schneiers Buch, Angewandte Kryptographie (Addison-Wesley (Deutschland) GmbH, 1996) als Ausgangspunkt. Dann gibt es The Codebreakers, von David Kahn (Scribner, 1996). Danach existieren einige Bücher über Computerkryptographie und ein paar über manuelle Kryptographie. Es ist ein spannendes Gebiet, viel Spaß!

Hinweise des Übersetzers

Der 'Solitaire'-Verschlüsselungsalgorithmus wurde entwickelt von Bruce Schneier (Chief Security Technology Officer of BT), Version 1.2 vom 26.05.1999
Erschienen in Neal Stephenson's Cryptonomicon
Übersetzung aus dem amerikanischen: Nils Plaumann

Diese Seite steht in keiner Verbindung zu BT, diese Übersetzung ist nicht von BT abgesegnet worden, keine Haftung bei Übersetzungsfehlern, dies ist eine private Site, etc. pp. blah blah blah.

Links

Test Vektoren - Perl - Ada - C (#1) - C (#2) - C++ - C++ GUI - C# - Delphi (#1) - Delphi (#2) - Erlang - Forth (#1) - Forth (#2) - Java - Javascript - K - Palm OS - Pascal - Perl CGI - Python (#1) - Python (#2) - Ruby - TCL
Anmerkung: Nur die Perl implementation wurde durch Counterpane getestet.

Weitere Übersetzungen gibt es in Französisch von Fernandes Gilbert, und in Spanisch von Jesús Cea Avión.

  • Gast - Bastian

    Du schreibst erst

    "5. Finde die Ausgabekarte. Sieh Dir dafür die oberste Karte an. Konvertiere sie zu einer Zahl zwischen 1 und 53, so wie zuvor. Zähle soviele Karten von oben ab. (Zähle die oberste Karte als Nummer 1.)"

    Dann aber

    "2 3 4 ... 52 A B 1 [...]
    Der fünfte Schritt verändert das Kartenspiel nicht, sondern produziert eine Ausgabekarte. Die oberste Karte ist die 2, also zähle zwei Karten abwärts bis zur 4."

    Da hast du die 2 doch nicht als Nummer 1, sondern als Nummer 0 gezählt.

    Gut. Solange du das konsequent so machst, sollte das auch eine gleichwertige Verschlüsselung geben. Aber es ist nicht die, die du oben beschreibst.

    Antworten
  • Gast - Lewton

    5.Finde die Ausgabekarte. Sieh Dir dafür die oberste Karte an. Konvertiere sie zu einer Zahl zwischen 1 und 53, so wie zuvor. Zähle soviele Karten von oben ab. (Zähle die oberste Karte als Nummer 1.) Schreibe die Karte nach derjenigen, zu der Du gezählt hast, auf ein Stück Papier. (Falls Du auf einen Joker triffst, schreibe nichts auf, sondern beginne erneut bei Schritt 1.) Dies ist die erste Ausgabekarte. Die Reihenfolge der Karten wird bei diesem Schritt nicht verändert!

    ---------------------------------

    Die 2 ist die erste Karte, die 3 die Zweite. Somit ist die 4, die Karte nach derjenigen, zu der Du gezählt hast.

    Antworten
Kommentar hinzufügen
Powered by Komento
   
© Nils im Netz 2013