Hadmut Danisch

Ansichten eines Informatikers

Kerckhoffs’ Prinzip

Hadmut
19.2.2020 22:46

Österreicher fragen – Danisch weiß es.

Ein Österreicher schreibt mir zur Causa Crypto AG und fragt:

Auch als absolutem Laien ist mir Kerckhoffs Prinzip ein Begriff, und dieses Prinzip war doch schon lange vor dem Beginn der ganzen Krypto-Affäre allgemein bekannt. Wenn ich recht verstehe, könnte sich doch jeder Käufer einer Verschlüsselungsmaschine schützen, indem er darauf besteht, daß das Verschlüsselungsprinzip lückenlos dokumentiert ist? Und jeder Hersteller könnte sich Gutachten und das Pochen auf die Schweizer Herkunft sparen, indem er das von sich aus eine Dokumentation des Verschlüsselungsprinzips beilegt?

Aber wie kann es dann sein, daß auch Großbanken, Regierungen und Geheimdienste Kerckhoffs Prinzip offenbar nicht kennen oder kollektiv ignorieren?

Also dann. Hatte ich zwar irgendwo schon mal erwähnt und damals in Vorlesungen erläutert, aber es ist ein durchaus sinnvoller Diskussionspunkt für die aktuelle Affäre, nur leider nicht ganz so erfreulich. Kann man inzwischen auch bei Wikipedia nachlesen.

Übrigens noch als Anmerkung: Wenn man von Kerckhoffs’ Prinzip oder (zu meiner Uni-Zeit als Begriff üblicher) Kerckhoffs’ Maxime schreibt, melden sich stets Leute und schimpfen über den Deppen-Apostroph. Hier gehört er aber hin. Denn der Mann hieß nicht Kerckhoff und bekam ein Genitiv-s dran, sondern der hieß schon im Nominativ Kerckhoffs, Auguste Kerckhoffs, um genauer zu sein, und weil das schon auf s endet, bekommt das als Namen im Genitiv einen Apostroph. Da guckste, was?

Was ist Kerckhoffs’ Maxime?

Sie ist ein Entwurfsprinzip für Kryptoverfahren. Oder, was nicht so bekannt ist, aber auf Wikipedia erklärt wird, eine von sechs Regeln, die er aufgestellt hat.

Ich muss dazu etwas ausholen.

Beispielsweise zur Skytale. Verschlüsselungsverfahren der Spartaner: Man wickelt einen Lederriemen um einen Holzstab, schreibt quer die Nachricht drauf, und wickelt ihn wieder ab. Dann hat man einen Riemen mit scheinbar zufälligen Buchstaben (in Cryptosprech: Eine Transpositionschiffre, weil die Buchstaben nicht verändert, nur ihre Anordnung durcheinandergewürfelt wird). Der Empfänger wickelt den Riemen um einen Stab gleichen Durchmessers, und kann den Text dann lesen. Der Durchmesser des Stabes ist der Schlüssel.

Oder die Caesar-Chiffre, bei der jeder Buchstabe durch den im Alphabet drei Buchstaben weiter stehenden Buchstaben ersetzt wird (Cryptosprech: Eine Substitutionschiffre, weil jeder Buchstabe an seiner Stelle bleibt, aber durch einen anderen ersetzt wird.) Die Verschiebung im Alphabet (hier: 3) ist der Schlüssel.

Beide haben ein Problem: Wenn der Gegner erst mal spitzbekommen hat, wie die Sache läuft, hilft einem der Schlüssel auch nichts mehr, weil es nur ganz wenige Schlüssel gibt und man die leicht ausprobieren und den richtigen detektieren kann. Verschiedene Durchmesser oder andere Verschiebungen als 3 zu probieren, ist leicht. Das heißt, dass die Verfahren total in sich zusammenfallen, wenn der Gegner das Prinzip verstanden hat. Auf den Schlüssel kommt es kaum noch an. Deshalb galt die Anforderung, das Verfahren an sich möglichst geheim zu halten, sogenannte „security by obscurity” (ganz schlecht). Man merkt schon, dass das ein rekursives oder Henne-Ei-Problem ist: Das Kryptoverfahren soll eigentlich anderes geheim halten, muss aber selbst schon geheim gehalten werden. Wie teilt man einem Freund durch Feindesland hindurch mit, wie das Verfahren aussieht?

Viele Kryptosysteme (oder fast alle) hatten bis vor einiger Zeit diese Probleme. Wenn der Gegner mal ein Kryptogerät in die Finger bekommt oder einen Agenten mal richtig „befragt”, kennt er das Prinzip, und das Verfahren ist tot, nicht mehr zu gebrauchen. Und neue zu finden war nicht leicht.

Kerckhoffs hat gemerkt und beschrieben, dass man bei Kryptoverfahren das Verfahren (den Algorithmus, die Prozedur) strikt von einem Schlüssel (Parameter) trennen muss. Das muss so gebaut sein, dass wenn das Verfahren und ein oder mehrere Schlüssel dem Gegner in die Hände fallen, das Verfahren trotzdem voll sicher mit einem anderen, neuen Schlüssel weiterverwendet werden kann.

Man muss das Verfahren also auch gegenüber dem Gegner veröffentlichen können, ohne dass es dadurch kompromittiert, geschwächt wird. Wenn der Gegner alles, nur nicht den Schlüssel kennt, muss das Ding voll sicher bleiben. (Was, wenn man es genau und haarspalterisch betrachtet, nur mit dem One Time Pad funktioniert, also der Schlüssel so lange ist wie der Klartext, wenn wenn man das Verfahren kennt und weiß, wieviele Schlüssel es überhaupt geben kann, weiß man auch, dass es nicht mehr Klartexte geben kann. Ich habe allerdings mal gezeigt, dass die in der Kryptographie allgemein herrschende Überzeugung, dass der One Time Pad total sicher sei, nicht stimmt, wenn die Nachrichten von endlicher, aber variabler Länge sind, weil der One Time Pad die Länge nicht verbergen kann und es keine längenverbergende Abbbildung endlicher Nachrichten aufeinander geben kann. Die Nachrichten müssen alle gleich oder unendlich lang sein. Das war jetzt aber schon was für Fortgeschrittene. Das muss man nicht verstehen.)

Letzlich läuft das eben darauf hinaus, dass man sich nicht einfach irgendwas ausdenkt, was die Nachricht vermanscht, sondern scharf zwischen Verfahren und Schlüssel trennt, den Schlüssel zur Laufzeit beliebig wählen kann, und das Verfahren sicher ist, wenn der Angreifer Verfahren und Chiffrat, aber nicht den Schlüssel kennt.

Zwar gab es zwar durchaus manuelle Verfahren mit Schlüsselwahl nach diesem Prinzip (die ganzen Agenten-Handchiffren, Würfel, Doppelwürfel, Bücher-Chiffren), und mechanische (Enigma, Lorenz, Hagelin, Jefferson-Walze) aber so richtig gut und mit ganz langen Schlüsseln ging das erst mit Computertechnik.

Bekommt der Verkäufer die Dokumentation?

Wichtig: Kerckhoffs’ Maxime ist ein Entwurfs- und kein Verkaufsprinzip.

Es heißt nicht, dass man das Verfahren offenlegen muss, denn auch wenn es dadurch nicht geschwächt werden darf (worin man sich auch nicht immer sicher sein kann), wird es halt auch nicht sicherer dadurch, dass es der Gegner kennt.

Insbesondere ist es kein vertraglicher Anspruch des Käufers, zu wissen, was da drin abläuft. Viele Kryptomaschinen sind in ihrem Aufbau geheim, versiegelt, mitunter ist es unter Strafe verboten, sie zu öffnen, und normalerweise sagt der Verkäufer „Ja, Du kannst es kaufen und Du kannst es bleiben lassen!” Und wenn man sie ohne Beschreibung nicht will, dann halt eben nicht. Dann verzichtet man eben auf „Made in Switzerland”.

Beispielsweise gibt es in Deutschland eine behördliche Chiffre, die geheim ist. Der Clipper-Chip der USA enthielt auch eine geheime Chiffre. Ich weiß nicht, ob das heute noch so ist, aber zu meiner Uni-Zeit wurde der russische Gost bekannt, der relativ simpel (aber mit vielen Runden) gebaut war, und bei dem es auf die Substitutionsboxen ankam, die nicht mit veröffentlicht wurden. (Kleine Mini-Tabellen, in denen steht, dass einzelne Werte im Klartext immer wieder durch Tabellenwerte ersetzt werden, verkürzt gesagt.) Es war schnell klar, dass in den Boxen der Hund begraben ist, und die nicht linear oder sonstwie abhängig sein dürfen, gleichverteilt und so weiter. Ich habe damals eine Weile gegrübelt und gebastelt, bis ich ein Verfahren entwickelt hatte, Boxen nach meinen Vorstellungen zu bauen, die gewisse Eigenschaften hatten.)

Was nutzt einem die Dokumentation?

Seien wir ehrlich: Selbst die besten Kryptologen können anhand einer Dokumentation nicht völlig ausschließen, dass da irgendwas faul ist.

Man muss sehr, sehr viel wissen und lernen, um das beurteilen zu können.

Viele Länder haben dieses Wissen nicht.

Woher weiß man, ob Dokumentation und Maschine übereinstimmen?

Könnte ja auch gut sein, dass die Dokumentation sauber ist, die Maschine aber – vielleicht auch erst später – was anderes macht. So wie auf dem Prüfstand für Dieselmotoren, die dann, wenn sie erkennen, dass sie in einem Prüfzyklus sind, sauber fahren, und draußen dann mit der Sauerei anfangen.

War übrigens auch ein Thema in meiner Dissertation: Dass man Schweinereien wie heimliche Schlüsseloffenlegungen nicht völlig verbergen kann, weil man dann durch sprungartige Entropieänderungen Übertragungsfehler provozieren kann.

Das Verfahren alleine nutzt nichts

Selbst wenn das Verfahren wahrheitsgemäß dokumentiert und sauber, ohne Schwächen ist, nutzt einem das noch nicht viel, weil ja auch die Schlüsselerzeugung, die Erzeugung von Zufallszahlen faul sein kann. Das beste Verfahren nutzt nichts, wenn das Ding nur eine kleine Auswahl von Schlüsseln zulässt, die man leicht durchprobieren kann.

Oder beispielsweise wenn das Ding den Schlüssel einfach per Funk irgendwohin überträgt oder sonstwie kompromittiert.

Das kann auch völlig am Verfahren vorbei geschwächt oder sabotiert sein. Wenn das Verfahren noch so sicher ist, hilft das nicht, wenn das Ding den Schlüssel speichert und später offenbart.

Subtile Sauereien

Selbst wenn man alles prüft und versteht, kann man auf die Schnauze fallen. Es wurde vor ein paar Jahren mal ein Angriff beschrieben, bei dem man den Zufallszahlengenerator auf dem Chip manpuliert, indem man die Halbleiter anderes dotiert.

Heißt: Selbst wenn man die komplette Dokumentation hat, alles geprüft und verstanden hat, die Chipentwürfe und -masken komplett prüft und selbst wenn man den Chip des Gerätes aufsägt und unter dem Mikroskop anschaut, es könnte alles einwandfrei aussehen, keine Hintertür enthalten und trotzdem eine haben, wenn die Zufallszahlen dann faul sind, obwohl der Chip sauber aussieht.

Vertrauen oder selber machen

Letzten Endes bleibt einem nichts anderes übrig, als die Kryptogeräte komplett selbst zu bauen (wenn man weiß, wie das geht), oder dem, von dem man sie sich bauen lässt, zu vertrauen.

Als ich damals im Institut sowas mal im Oberseminar in einem Vortrag beschrieb, fragt mich Beth, wie ich „Vertrauen” definiere.

Ich sagte damals spontan „Vertrauen ist ein Fehler in der Bedrohungsannahme”.

Genau das ist bei der Crypto AG passiert.