Datensicherheitstechnik - Arbeitsgruppe Kryptographie und Sicherheit
Transcription
Datensicherheitstechnik - Arbeitsgruppe Kryptographie und Sicherheit
Datensicherheitstechnik (Signale, Codes und Chiffren II) Vorlesungsskript Dr. W. Geiselmann Version vom 1.4.2009 Institut für Algorithmen und Kognitive Systeme Universität Karlsruhe Vorabversion1 Copyright IAKS Nachdruck, auch auszugsweise, verboten. 1 Korrektur- und Ergänzungsvorschläge werden mit Interesse entgegengenommen Inhaltsverzeichnis 1 Grundbegriffe der Kryptographie 1.1 Aufgaben der Kryptographie . . . . . . . . . . 1.2 Begriffe aus der Kryptologie . . . . . . . . . . 1.3 Konventionelle und Public-key Kryptosysteme 1.4 Steganographie . . . . . . . . . . . . . . . . . 1.5 Analytische Angriffe gegen Kryptosysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 3 5 7 8 2 Geschichte der Kryptographie 2.1 Substitutionen und Permutationen . . . . . . . . . . . . . . . . . 2.1.1 Beispiel für eine Permutationschiffre . . . . . . . . . . . . 2.1.2 Beispiel für eine Substitutionschiffre: Die Caesar-Chiffre . . 2.1.3 Beispiel für eine Substitutionschiffre: Die Vigenère-Chiffre 2.2 Rotorchiffren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Die Hagelin-Maschine C-34 . . . . . . . . . . . . . . . . . . 2.2.2 Hagelin-Kryptoanalyse . . . . . . . . . . . . . . . . . . . . 2.2.3 Hebern Electric Code . . . . . . . . . . . . . . . . . . . . . 2.2.4 Hebern-Kryptoanalyse . . . . . . . . . . . . . . . . . . . . 2.2.5 Enigma-Variationen . . . . . . . . . . . . . . . . . . . . . . 2.2.6 Enigma-Kryptoanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 10 11 11 12 16 16 19 19 21 22 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Theoretische Beschreibung von Sicherheit 27 3.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2 Kryptosysteme mit perfekter Sicherheit . . . . . . . . . . . . . . . . . . . . 30 4 Stromchiffren 4.1 Pseudozufallsfolgen . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Definition der Pseudozufälligkeit: Die Golombschen Axiome 4.2 Linear rückgekoppelte Schieberegister . . . . . . . . . . . . . . . . . 4.2.1 Pseudozufallsgeneratoren allgemeiner Art . . . . . . . . . . . 4.2.2 Beschreibung von linear rückgekoppelten Schieberegistern . . 4.2.3 Endliche Körper und Schieberegister . . . . . . . . . . . . . 4.2.4 m-Folgen als Pseudozufallsfolgen . . . . . . . . . . . . . . . 4.2.5 Kryptographische Stärke von Schieberegisterfolgen . . . . . . i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 34 35 37 37 39 47 53 55 ii INHALTSVERZEICHNIS 4.3 4.2.6 Lineare Komplexität von Folgen . . . . . . . . . . . . Konstruktion von Folgengeneratoren . . . . . . . . . . . . . 4.3.1 Nichtlineare Verknüpfung von Schieberegisterfolgen . 4.3.2 Taktgesteuerte Schieberegister . . . . . . . . . . . . . 4.3.3 Korrelations-Immunität von Verknüpfungsfunktionen 4.3.4 Korrelationsattacke auf taktgesteuerte Schieberegister . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Blockchiffren 5.1 Grundsätzliches zu Blockchiffren . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 Diskussion von Strom- und Blockchiffren . . . . . . . . . . . . . . 5.1.2 Bausteine von Blockchiffren . . . . . . . . . . . . . . . . . . . . . 5.1.3 Betriebsarten von Blockchiffren . . . . . . . . . . . . . . . . . . . 5.2 Der Data Encryption Standard (DES) . . . . . . . . . . . . . . . . . . . 5.2.1 Der DES-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . 5.2.2 Sicherheit des DES . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 FEAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 Geschichte von FEAL . . . . . . . . . . . . . . . . . . . . . . . . 5.3.2 Funktionsweise des Algorithmus . . . . . . . . . . . . . . . . . . . 5.3.3 Kryptoanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 Differentielle Kryptoanalyse . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.1 Differentiellen Kryptoanalyse von DES . . . . . . . . . . . . . . . 5.4.2 Analyse von Skipjack mit unmöglichen Differenzen . . . . . . . . 5.5 Lineare Kryptoanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.1 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.2 Prinzip der linearen Kryptoanalyse . . . . . . . . . . . . . . . . . 5.5.3 Lineare Approximation der S-Boxen . . . . . . . . . . . . . . . . . 5.5.4 Lineare Approximation des DES . . . . . . . . . . . . . . . . . . . 5.6 Der Advanced Encryption Standard (AES) . . . . . . . . . . . . . . . . . 5.6.1 Die Grundbausteine von AES . . . . . . . . . . . . . . . . . . . . 5.7 Hashfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.7.1 Definition und Eigenschaften . . . . . . . . . . . . . . . . . . . . . 5.7.2 Erzeugen von sinnvollen Nachrichten mit diversen sinnlosen Kollisionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 58 59 63 65 68 . . . . . . . . . . . . . . . . . . . . . . . 73 73 75 76 79 87 87 96 99 99 100 104 105 105 112 116 116 117 119 120 122 123 126 126 . 128 A Übungsaufgaben 130 Literaturverzeichnis 146 Kapitel 1 Grundbegriffe der Kryptographie Das bisherige (historische) Bild von Sicherheit war durch die Ideen der Vertraulichkeit (confidentiality) und Geheimhaltung (secrecy) typischer Punkt-zu-Punkt-Beziehungen geprägt. Das sich daraus ergebende Bild ist typischerweise kommunikationsorieniert und beinhaltet all das, was bisher als COMmunication SECurity zumeist von nationalen Sicherheitsbehörden verwaltet und gehandhabt wurde. Diese gute alte Zeit“ könnte man auch als Ante-Hacker-Ära charakterisieren, in der ” Angriffe durch Kryptoanalytiker noch auf dem Papier oder unter Zuhilfenahme von abgesetzten Rechnern stattfanden. Das Auftreten von Einbrüchen“ in Rechner durch Hacker, das zunächst nur als Ver” lust der confidentiality und privacy angesehen wurde, stellte sich als eine eigene Problematik heraus, für die bald der Name COMPUter SECurity gefunden war; eine genaue Beschreibung dieses Bereichs ist jedoch nicht erfolgt. Die dann bekannt gewordenen Hacks, die nicht nur die Sicherheit der betroffenen Rechner, sondern auch die der Netze, die diese verbinden, in Mitleidenschaft gezogen haben, haben auch Bereiche wie LANSEC, MANSEC und WANSEC (Local/Middle/Wide Area Network SECurity) hochaktuell werden lassen. Der Zugang, der für uns aber Begriffe Abbildung 1.1: Klassische Sicht der COMSEC 1 2 KAPITEL 1. GRUNDBEGRIFFE DER KRYPTOGRAPHIE Rechner 1 Rechner 2 COMSEC Netz COMPUSEC L MANSEC W COMPUSEC SYSSEC Abbildung 1.2: Zusammenhang der Begriffe liefert, die das Verständnis unserer Methoden besser erfaßt, ist durch den Begriff SYStem SECurity umfassender beschrieben. Man muß sich vergegenwärtigen, daß das neue Bild solch abstrakte (und dennoch reale) Gebilde, wie • verteilte Systeme • ISO/OSI-Schichten und -Protokolle • virtuelle Verbindungen • u.ä. mit einbezieht. Der Zusammenhang der einzelnen Begriffe ist in Abb.: 1.2 darstellt. 1.1 Aufgaben der Kryptographie Das Bedürfnis der Menschen, Nachrichten so darzustellen, daß sie ausschließlich für den Schreiber und einen bestimmten Leser verständlich sind, ist so alt wie die schriftliche Kommunikation überhaupt. Angewendet wurden kryptographische Verfahren, die zuerst noch unter dem Begriff Geheimschrift“ zur Übermittlung von vertraulichen Informationen benutzt wurden, vor ” 1.2. BEGRIFFE AUS DER KRYPTOLOGIE 3 allem beim Nachrichtenaustausch zwischen Staaten im diplomatischen Bereich. Die nichtstaatlichen Anwendungen umfassen heute ein breites Spektrum und reichen vom kommerziellen Einsatz, wie z.B. im Bankverkehr, bis hin zum Datenschutz, der durch das im Volkszählungsurteil“ des BVG formulierte Recht auf informationelle Selbstbestimmung ” [28] als Persönlichkeitsrecht fest verankert wurde. Durch das populärwissenschaftliche Werk The Codebreakers“ von David Kahn [70] ” wurde erstmals eine breite Öffentlichkeit auf die Einsatzbereiche und Möglichkeiten der klassischen Kryptographie aufmerksam gemacht. Kryptographische Verfahren dienen dem Schutz von Daten oder Nachrichten vor unbefugten Manipulationen. Dadurch wird erreicht, daß die Daten bei der Übertragung vom Sender zum Empfänger geschützt sind: 1. vor unerlaubtem Zugriff (Abhören) 2. vor absichtlichen Änderungen oder Fälschungen 3. vor Änderungen von Absender oder Empfänger 4. vor dem Ableugnen, eine Nachricht gesendet (oder empfangen) zu haben. Zugleich können die Daten durch den Einsatz kryptographischer Verfahren wie auch durch die Methoden der Codierungstheorie vor zufälligen Störungen geschützt werden. Tatsächlich war die Kryptographie bis vor wenigen Jahren noch als Teil der Codierungstheorie anzusehen. Erst mit der Einführung neuer Verfahren, wie etwa der public-key Kryptosysteme (siehe 1.3), hat sie sich als selbständige Wissenschaft etabliert. In diesem Zusammenhang ist die Erläuterung einiger Begriffe sinnvoll, die im nächsten Abschnitt vorgenommen wird. 1.2 Begriffe aus der Kryptologie Kryptologie ist die Wissenschaft der sicheren (i.allg. geheimen) Übertragung von Information durch Transformation der Daten. Sie umfaßt Kryptographie und Kryptoanalysis. Kryptographie ist die Wissenschaft der Prinzipien und Methoden, mit denen Information mit Hilfe von Schlüsseln chiffriert und von berechtigten Empfängern wieder dechiffriert werden kann. Kryptoanalyse ist die Wissenschaft von den Methoden der unbefugten Entschlüsselung von Daten (Nachrichten) zum Zweck der Rückgewinnung der ursprünglichen Information. Kryptosysteme dienen zur Geheimhaltung von übertragenen oder gespeicherten Informationen gegenüber Dritten. Geheimhaltung wird dabei durch Transformation der 4 KAPITEL 1. GRUNDBEGRIFFE DER KRYPTOGRAPHIE sichere Kommunikation durch Geheimhaltung @ R @ Kryptologie Kryptographie Steganographie @ R @ Kryptoanalyse Abbildung 1.3: Zusammenfassung und Einordnung grundlegender Begriffe Nachricht erzielt, so daß die transformierte Nachricht für Dritte keine konstruierbaren semantischen, statistischen oder strukturellen Korrelationen zum Original mehr aufweist. An dieser Stelle sei bereits angemerkt, daß diese Forderung nur sehr schwer realisierbar ist. Zum Schluß noch ein Begriff, der im Zusammenhang mit der Kryptographie häufig verwendet wird, aber nicht der obigen Aufzählung zugehört. Steganographie ist die Lehre von den Methoden der Geheimhaltung von Nachrichten durch Geheimhalten der Kommunikation. (siehe Kapitel 1.4) Im folgenden wenden wir uns nochmals dem Begriff Kryptosystem zu und präzisieren, was darunter zu verstehen ist. Die Definition wird in späteren Kapiteln noch erweitert. Für den Moment reicht jedoch diese relativ einfache Definition aus. Definition 1.1 Ein abstraktes Kryptosystem ist ein System S = {M, C, E, K} bestehend aus • der nichtleeren Menge M ⊂ A+ der Klartexte. A+ stellt hierbei die Menge aller Texte (außer dem leeren Text) dar, die sich aus den Zeichen des Alphabets A bilden lassen. • der nichtleeren Menge C ⊂ B+ der Chiffretexte. B+ ist die Menge der aus Zeichen von B gebildeten nichtleeren Texte. • einer nichtleeren Menge E = {Ek : M → C | k ∈ K} von Chiffrieralgorithmen, die durch die • Schlüssel k ∈ K parametrisiert sind. In Abb. 1.4 ist das Prinzip eines abstrakten konventionellen Kryptosystems dargestellt. Der Sender chiffriert den Klartext m mittels des durch den Schlüssel k parametrisierten Chiffrieralgorithmus Ek zu einem Chiffrat c. (Es können sich beim selben Klartext 1.3. KONVENTIONELLE UND PUBLIC-KEY KRYPTOSYSTEME 5 Angreifer Chiffrefunktion E ? Dechiffrierfunktion E−1 ? ′ m∈M c ∈ CcDecryption m-′ unsicherer - Encryption ′ ′ Ek (m) = c Kommunikationskanal E−1 k (c ) = m 6 k∈K sichere Schlüsselübertragung - 6 k∈K Abbildung 1.4: Prinzip eines konventionellen Kryptosystems und Schlüssel durchaus verschiedene Chiffrate ergeben.) Das erhaltene Chiffrat wird über den unsicheren Kommunikationskanal zum beabsichtigten Empfänger gesendet. Bei dem Kommunikationskanal handelt es sich zumeist um einen Codierungs-/Decodierungskanal (siehe Signale, Codes u. Chiffren I). Der authorisierte Empfänger dechiffriert den erhaltenen Chiffretext c′ mit dem Algorithmus Ek−1 der zu c′ den Klartext liefert. Dem authorisierten Empfänger ist dazu ebenfalls der Schlüssel k bekannt. Offensichtlich wird der richtige Klartext m nur dann erhalten, wenn c′ = c ist, d.h. wenn c durch den Angreifer nicht gestört, also gefälscht, wurde. Den Kryptoanalytiker, der versucht, die übertragenen Daten unbefugt zu entschlüsseln oder zu fälschen, bezeichnen wir als den Gegner“ oder den Angreifer“. Bei der Krypto” ” analyse wird davon ausgegangen, daß der Gegner ungehinderten Zugang zum unsicheren Übertragungssystem hat, also beliebig viel Chiffretext empfangen kann. Ferner nimmt man an, daß das Kryptoverfahren bekannt, der verwendete Schlüssel dagegen geheim ist. Dies bedeutet, daß die Sicherheit des Verfahrens allein auf der Geheimhaltung des verwendeten Schlüssels beruht. Diese letzte Annahme ist ebenfalls gerechtfertigt, wenn man bedenkt, daß eine strikte Geheimhaltung des verwendeten Kryptosystems so gut wie unmöglich ist, da früher oder später stets Details über die Art der Chiffrierung nach außen dringen. Es sei in diesem Zusammmenhang darauf hingewiesen, daß mit dem Zugriff auf die verwendeten Kryptogeräte im Prinzip auch die Analyse deren technischen Aufbaus möglich ist. Der verwendete Schlüssel wird bei konventionellen Kryptosystemen auf einem sicheren Übertragungskanal, z.B. durch einen Kurier, zwischen den Kommunikationspartnern ausgetauscht. Eine Möglichkeit diesen Schlüsselaustausch innerhalb des Systems durchzuführen, besteht in der Verwendung von public-key Kryptosystemen. 1.3 Konventionelle und Public-key Kryptosysteme Verschlüsselung von Daten mittels eines Kryptosystems soll garantieren, daß der Inhalt einer gesendeten Nachricht nur den Besitzern eines bestimmten Schlüssels zugänglich ist. Hinsichtlich der erlaubten und möglichen Verteilungen dieser Schlüssel (auf sichere 6 KAPITEL 1. GRUNDBEGRIFFE DER KRYPTOGRAPHIE Angreifer Chiffrefunktion E ? Dechiffrierfunktion E−1 ? ′ m∈M c ∈ CcDecryption m-′ unsicherer - Encryption ′ ′ Ee (m) = c Kommunikationskanal E−1 d (c ) = m 6 e ∈ K sichere Schlüsselübertragung entfällt öffentlich 6 d∈K geheim Abbildung 1.5: Prinzip eines public-key Systems bzw. unsichere Stellen) unterscheidet man zwischen konventionellen und public-key Kryptosystemen. Erstere werden oftmals symmetrische Kryptosysteme, letztere asymmetrische Kryptosysteme oder Kryptosysteme mit öffentlichen Schlüsseln genannt. In einem symmetrischen Kryptosystem (siehe Bild 1.4), zu denen alle klassischen Kryptosysteme gehören (siehe Kapitel 2), wird die Kommunikation zwischen zwei Partnern dadurch gesichert, daß beide einen gemeinsamen geheimen Schlüssel kennen, der sowohl zur Chiffrierung als auch zur Dechiffrierung dient. Damit wird ein Schlüssel nicht einem bestimmten Benutzer, sondern einer bestimmten Kommunikationsbeziehung zugeordnet. Um eine Kommunikationsbeziehung gesichert beginnen zu können, müssen sich beide Partner zuvor auf einen gemeinsamen Schlüssel einigen. Da man bei offenen digitalen Systemen (prinzipiell kann jedermann am System teilnehmen, d.h. jeder hat freien Zugang zu den im System angebotenen Diensten) nicht davon ausgehen kann, daß die Partner vorher schon in Kontakt miteinander standen, muß die Schlüsselverteilung innerhalb des Systems selbst erfolgen. Die Idee der asymmetrischen Kryptosysteme, die in Bild 1.5 illustriert ist, wurde erst 1976 in [42] veröffentlicht und löst das Schlüsselverteilungsproblem auf überraschend einfache Weise: Statt einen einzigen Schlüssel zum Ver- und Entschlüsseln zu verwenden, verteilt man diese Funktionen auf zwei zusammengehörige Schlüssel e und d. Der Schlüssel d soll nur zum Entschlüsseln (decryption) dienen und muß natürlich von dem Teilnehmer geheimgehalten werden, weshalb er auch privater Schlüssel genannt wird. Der Schlüssel e hingegen soll nur das Verschlüsseln (encryption), nicht jedoch das Entschlüsseln ermöglichen. Dieser Schlüssel kann veröffentlicht werden, und wird daher auch öffentlicher Schlüssel genannt. Das Prinzip des public-key Systems ist in Bild 1.5 gezeigt: Als Konsequenz dieses Prinzips ergibt sich, daß man keine realistische Möglichkeit haben darf, ein unbekanntes d aus dem bekannten zugehörigen e herzuleiten. Rein theoretisch könnte man d aus e natürlich immer mittels Durchprobieren aller möglichen Schlüssel bestimmen, denn nur das richtige d entschlüsselt alle mit e verschlüsselten Nachrichten richtig. Es muß daher soviele Möglichkeiten geben, daß dieses Vorgehen keinerlei praktischen Erfolg verspricht. Außerdem muß, damit niemand kurze Standardnachrichten erraten und dann mit dem 1.4. STEGANOGRAPHIE 7 öffentlichen Schlüssel testen kann, jede Nachricht mehrere Verschlüsselungen besitzen. Dies kann man erreichen, indem man z.B. Nachrichten vor der Verschlüsselung mit zufällig gewählten Zeichenfolgen verlängert. Einfacher als das Herleiten von d aus e muß hingegen das Generieren eines beliebigen Paares von zueinander passenden e und d sein, da dies der Schlüsselbesitzer vor der Teilnahme an der Kommunikation selbst durchführen muß. Durch ein asymmetrisches Kryptosystem entsteht die Möglichkeit, einen Schlüssel bzw. ein Schlüsselpaar (e, d) statt einer Kommunikationsbeziehung einem einzelnen Benutzer zuzuordnen, der sich diesen Schlüssel selbst generieren kann. Möchte jemand mit diesem Benutzer gesichert kommunizieren, so muß er sich lediglich dessen öffentlichen Chiffrierschlüssel e besorgen. Dies kann entweder durch eine offene Anfrage an den gewünschten Kommunikationspartner geschehen, oder besser noch durch Verwendung zentraler gegen Manipulation gesicherter Verzeichnisse, sogenannter Schlüsselbibliotheken, in denen analog zu den heutigen Telefonbüchern zu jedem Teilnehmer dessen öffentlicher Schlüssel eingetragen ist. Wir werden uns später diesem Bereich noch ausführlicher widmen. Im nächsten Abschnitt wollen wir kurz das Gebiet der Steganographie streifen, das eine gewisse Sonderstellung einnimmt. 1.4 Steganographie Steganographie heißt übersetzt etwa verborgen geschrieben“. Hier soll ein potentieller ” Gegner nicht bemerken, daß überhaupt eine Kommunikation stattfindet. Zu erwähnen sind Geheimtinten, etwa Zitronensaft, der erst bei Erhitzen (durch Karamelisieren des Zuckers) sichtbar wird. Auch in der heutigen Zeit gibt es (moderne) Verfahren, die hier einzuordnen wären. • Spread Spectrum: Die Bandbreite des Kommunikationssignals wird derartig aufge” spreizt“ und damit die Energie des Signals über einen großen Bereich verteilt. Dann kann selbst ein Gegner, der mit Abhöreinrichtungen (Antennen, etc.) bestens ausgestattet ist, von dem stattfindenden Nachrichtenaustausch nichts bemerken, da die Sendeleistung auf den einzelnen (schmalbandigen) Kanälen unter dem Umgebungsrauschen liegt. Aus diesem Grund kann nicht einmal der Sender angepeilt werden. Diese Technik wird einerseits im militärischen Bereich von Aufklärungseinheiten, die hinter den feindlichen Linien agieren, eingesetzt und andererseits im zivilen Bereich etwa von Luftfahrtgesellschaften genutzt, um Informationen über freie Bordplätze oder benötigte Essen vom Flugzeug zum angeflogenen Flughafen zu übermitteln, da der reguläre Sprechfunkverkehr für diese Zwecke nicht verwendet werden darf. Schließlich bieten sich völlig neue Wege zur Realisierung des CSMA/CD-Prinzips (Carrier Sense Multiple Access / Collision Detection) — der heute wohl meistverbreitetsten LAN-Zugriffsmethode. Während das bestehende Prinzip aufwendige Mechanismen vorsieht, um Kollisionen von Datenpaketen auf dem gemeinsamen physikalischen Medium zu erkennen und zu beheben, ließe sich diese Aufgabe mit 8 KAPITEL 1. GRUNDBEGRIFFE DER KRYPTOGRAPHIE der Spread Spectrum Technik elegant lösen — vorausgesetzt, ein breitbandiges Medium (z.B. Ethernet) steht zur Verfügung. • Verrauschte Kanäle: In Kanälen mit großer Bandbreite und einem gewissen Grundrauschen ist es möglich Daten im Rauschen zu verstecken. Mögliche Kanäle hierbei sind z.B. Bild- oder Tondaten. In beiden Fällen ist heute eine Verteilung von großen Volumina an Daten schlechter Qualität (hohes Rauschen) unauffällig über kommerzielle CDs oder Bilder in den enstprechenden Newsgruppen weltweit unproblematisch und unauffällig möglich. Die dabei zu erzielenden steganographischen Kanalkapazitäten sind teilweise enorm. • Verdeckte Kanäle: Der (verbotene) Datenaustausch in modernen Computersystemen mittels verdeckter Kanäle ist seit langem bekannt und stellt immer noch ein kaum zu lösendes Problem dar. Eines der bekanntesten Verfahren benutzt die 1-BitInformation, ob ein bestimmtes File geöffnet ist oder nicht, um sukzessive Daten von einem sendenden Prozess mit Zugriff auf vertraulich klassifizierte Daten an einen empfangenden Prozess zu übermitteln, der im Normalfall keinen Zugriff auf diese Daten hätte. Durch wiederholtes Öffnen und Schließen eines Files kann der Sender dem Empfänger so Daten übermitteln, obwohl das Betriebssystem Mechanismen besitzt, die im Normalfall einen derartigen Informationsfluß unterbinden würden.1 Ein Beispiel, um nochmals den Unterschied zwischen Kryptographie und Steganographie zu verdeutlichen liefert das tägliche Leben: Durch Flüstern wird verhindert, daß jemand das Gespräch belauscht — die Tatsache, daß ein Gespräch stattfindet, wird nicht verschleiert. Durch Zeichensprache wie Augenzwinkern oder mimische Gesten läßt sich gänzlich verschleiern, daß überhaupt Kommunikation stattfindet. 1.5 Analytische Angriffe gegen Kryptosysteme Ziel eines kryptoanalytischen Angriffs ist das Brechen des verwendeten Kryptosystems. Das Kryptosystem ist gebrochen, wenn der Angreifer genau wie der authorisierte Empfänger zu jedem beliebigen Chiffretext den ursprünglichen Klartext ermitteln kann. Dies kann zum einen bedeuten, daß der Angreifer den verwendeten Schlüssel irgendwie berechnen“ ” kann, oder, daß er sonst ein Verfahren gefunden hat, mittels dessen er aus dem Chiffretext den richtigen Klartext erhalten kann. Selbstverständlich muß es für den Angreifer entsprechend schwer sein, das Kryptosystem zu brechen. Je schwerer es für den Angreifer ist, das Kryptosystem zu brechen, desto sicherer ist das Kryptosystem. Der Aufwand für die Analyse wird als Kryptokomplexität bezeichnet. Die Sicherheit von Kryptosystemen wird in Kapitel 3 ausführlich diskutiert. Die Klassifikation der kryptoanalytischen Angriffe benutzt als klassifizierendes Merkmal die Art der Texte, die dem Angreifer als Grundlage für das Brechen des Systems zur 1 Um dieses Verfahren tatsächlich durchzuführen, wird noch ein weiteres File zur Synchronisation beider Prozesse benötigt. 1.5. ANALYTISCHE ANGRIFFE GEGEN KRYPTOSYSTEME 9 Verfügung stehen. Die nachfolgende Auflistung der Angriffsarten ist nach der Stärke des Angriffs geordnet. ciphertext-only attack: Für die Kryptoanalyse steht dem Angreifer nur der abgefangene Chiffretext zur Verfügung. Dies bedeutet, daß der Angreifer nur Zugriff auf den unsicheren Kommunikationskanal hat, was, wie in Abschnitt 1.2 bereits erläutert wurde, stets vorausgesetzt wird. Dies ist also die schwächste aller Angriffsarten. known-plaintext attack: Bei dieser Attacke stehen dem Angreifer bekannte KlartextChiffretextpaare für die Kryptoanalyse zur Verfügung, so daß dieser versuchen kann, daraus den verwendeten Schlüssel zu ermitteln. Diese Art von Angriff ist immer dann möglich, wenn Texte mit Anfangs- oder Endphrasen verschlüsselt werden, z.B. Sehr ” geehrte Damen und Herren...“, ...mit freundlichem Gruß“, etc. ” chosen-plaintext attack: In diesem Fall stehen dem Angreifer beliebige Klartext-Chiffretextpaare für die Kryptoanalyse zur Verfügung. Er kann also den Klartext wählen, der verschlüsselt werden soll. Dies ist gleichbedeutend damit, daß der Angreifer Zugriff auf die Verschlüsselungseinheit hat. Mit Zugriff ist dabei nicht nur der direkte, sondern auch der indirekte Zugriff gemeint, der dann besteht, wenn es dem Angreifer gelingt, den authorisierten Sender zur Verschlüsselung eines von ihm selbst (dem Angreifer) gewählten Klartextes zu bewegen. Für public-key Kryptosysteme und spezielle symmetrische Systeme ist noch eine weitere Angriffsart von Bedeutung. chosen-ciphertext attack: Für die Kryptoanalyse steht dem Angreifer beliebig viel Chiffretext zur Verfügung. Der Angriff gilt dem Schlüssel, der zum Dechiffrieren verwendet wird. Es liegt in der Natur der Dinge, daß man für jedes Kryptosystem spezielle Methoden zur Kryptoanalyse entwickeln muß, wenngleich es Ansätze gibt, die für viele Systeme angepaßt werden können. Als Methoden der Kryptoanalyse ergeben sich folgende Strategien. • Vollständiges Suchen: Man durchsucht den gesamten Schlüsselraum K nach dem passenden Schlüssel. • Trial-and-Error-Methode: Man testet gewisse Möglichkeiten und überprüft diese auf Fehlerfreiheit. • Statistische Methoden: Hierzu werden Häufigkeitsanalysen wie z.B. die Buchstaben- oder Worthäufigkeiten des Klartextes und des Chiffrats benutzt. • Strukturanalyse von Kryptosystemen: Zum Beispiel das Lösen von Gleichungssystemen. Kapitel 2 Geschichte der Kryptographie In der klassischen Kryptographie gibt es im wesentlichen zwei Werkzeuge zur Transformation von Klartext in Chiffretext. Diese Werkzeuge sind Codes und Chiffren: Code: System zur Substitution ganzer Nachrichten oder Teilen von Nachrichten, Wörtern oder Silben einer Sprache durch Wörter oder Zeichenfolgen einer anderen, häufig künstlichen, Sprache. Codes arbeiten also auf semantischen Einheiten der zugrundeliegenden Sprache und entsprechen gewissermaßen einem festgelegten Wörterbuch. Wegen der offensichtlichen Nachteile (Transformation gleicher Klartextteile auf immer die gleichen Chiffretextteile, Umfang des Wörterbuches, Einschränkung auf vorher vereinbarte Sachverhalte) sind Codes zumeist unpraktikabel und werden nur noch in Sonderfällen eingesetzt. Chiffre: Universelles Verfahren, das eine Anzahl von Kryptooperationen benutzt, die durch Schlüssel gesteuert sind, um einen beliebigen Klartext in einen Chiffretext umzuwandeln. Bei einem Chiffrierverfahren werden Einheiten fester Länge des Klartextes Einheiten fester Länge des Chiffretextalphabets zugeordnet. Es wird also im Gegensatz zu einem Code auf syntaktischen Einheiten operiert, so daß nun auch vorher nicht vereinbarte Sachverhalte verschlüsselt werden können. 2.1 Substitutionen und Permutationen Die oben erwähnten Kryptooperationen zur Transformation von Klartexten in Chiffretexte werden in zwei Typen unterteilt: 1. Substitutionen und 2. Permutationen Die Permutationen operieren über syntaktischen Einheiten fester Länge, zumeist Zeichenketten des Klartextalphabets, während Substitutionen Ersetzungen des Klartextes aller Art sein können. 10 2.1. SUBSTITUTIONEN UND PERMUTATIONEN 11 Anhand von Beispielen läßt sich die Arbeisweise und die Sicherheit der Verfahren am besten erläutern: 2.1.1 Beispiel für eine Permutationschiffre Der Chiffretext B A E T R I A S G N T U B G E K Ü R P R T G Y O P R H E A I wird ohne Mühe dechiffriert zum Klartext A R B E I T S T A G U N G Ü B E R K R Y P T O G R A P H I E Die verwendete Chiffre ist eine Zeichenpermutation der Länge 6, der verwendete Schlüssel lautet π = ( 12 25 31 43 56 64 ). Der Klartext wird also in Blöcke der Länge 6 aufgeteilt, von denen jeder gemäß der Permutation π in einen Block des Chiffretextes übergeht. In komplexeren Fällen kann eine Entschlüsselung über die Bigramhäufigkeiten der entsprechenden Sprache erfolgen. Eine reine Permutationschiffre kann daher einem Entschlüsselungsangriff kaum lange widerstehen und gilt als unsicher. 2.1.2 Beispiel für eine Substitutionschiffre: Die Caesar-Chiffre Eine der ältesten Anwendungen von Substitutionschiffren wird Julius Caesar zugeschrieben. Damals wurde ein Alphabet mit 23 Buchstaben verwendet; in der Beschreibung wird hier aber das übliche Alphabet mit 26 Buchstaben benutzt, so daß sich auch deutsche Texte verschlüsseln lassen. Bei der sogenanten Caesar-Chiffre wird jedes Zeichen des Klartextes um den Betrag des Schlüssels k im Alphabet verschoben. Für den Schlüssel k = 3 (= C) ergibt sich folgende Chiffrierabbildung Ek : A 7→ D B 7→ E C 7→ F .. . Ek : W → 7 Z X 7→ A Y 7→ B Z 7→ C Sei n = |A| die Anzahl der verschiedenen Zeichen des Alphabets A. Dann kann ein Kryptoanalyst in maximal n Versuchen den Klartext zu einem Chiffretext bestimmen, d.h. auch diese Chiffre ist nicht sicher. Eine weitere Möglichkeit die Caesar-Chiffre zu knacken, besteht in der Betrachtung der Zeichenhäufigkeiten. In der deutschen Sprache ist z. B. das E der häufigste Buchstabe. Ist im Chiffrat K der häufigste Buchstabe, so wurde mit hoher Wahrscheinlichkeit der Schlüssel k = 6 verwendet. 12 KAPITEL 2. GESCHICHTE DER KRYPTOGRAPHIE Eine kleine Verbesserung ergibt sich, wenn man das Alphabet A auf den Ring Z/n = /nZ/ abbildet und neben der Addition eines Schlüssels die Multiplikation als zweite Ringoperation für die Chiffrierabbildung einführt: Z/ E(λ,α) : I 7→ (λ · I + α) mod n Dazu ein Beispiel für k = (λ, α) = (3, 1): A 7→ D B 7→ G C 7→ J .. Ek : . X → 7 U Y 7→ X Z 7→ A Für λ = 1 und den Schlüssel k = (1, α) ergibt sich die schon bekannte Caesar-Chiffre. Leider bringt auch die Einführung des zweiten Schlüsselparameters keine wesentliche Erhöhung der Kryptokomplexität mit sich, da die oben beschriebene Häufigkeitsanalyse den Kryptoanalysten fast immer zum Ziel führt. 2.1.3 Beispiel für eine Substitutionschiffre: Die Vigenère-Chiffre Eine Weiterentwicklung der Caesar-Chiffre, die mehr Sicherheit bietet, ist die sogenannte Vigenère-Chiffre, benannt nach einem Franzosen des sechzehnten Jahrhunderts, Blaise de Vigenère. Der prinzipielle Unterschied zwischen diesen beiden Chiffren besteht darin, daß nicht ein konstanter Schlüssel zur Chiffrierung jedes einzelnen Zeichens verwendet wird, sondern eine — möglichst lange — Schlüsselfolge. Ist k = (k1 , ..., kl ) eine Schlüsselfolge der Länge l, so ist die Chiffrierabbildung der Vigenère-Chiffre gegeben durch: Ek : m1 ...mr 7→ tk1 (m1 )...tkl (ml )tk1 (ml+1 )...tkr mod l (mr ) mit: m1 ...mr Klartextfolge der Länge r und tkj (mi ) := mi + kj mod n, wobei die Indices von k als die Repräsentanten 1, . . . , l der Restklassen modulo l zu verstehen sind. Der Weg über die Analyse der Häufigkeitsverteilung der Zeichen im Chiffretext (Aufstellen der Histogramme) führt hier nicht zum Ziel, da die Histogramme für große Werte von l verflachen, d.h. sich einander angleichen. Daher ist eine Vigenère-Chiffre wesentlich sicherer als eine Caesar-Chiffre; sie wurde sogar bis Mitte des letzten Jahrhunderts für unbrechbar gehalten. Als Beispiel, daß auch Vigenère-Chiffren relativ einfach zu brechen sind, diene folgender Klartext, der mit der Schlüsselfolge COVER chiffriert wird: 2.1. SUBSTITUTIONEN UND PERMUTATIONEN 1 l + 1 2l + 1 2 l + 2 2l + 2 .. .. .. . . . l 2l 3l 13 . . . ←− Cäsar ... .. . ... Abbildung 2.1: Anordnung des Chiffretextes zum Brechen der Vigenère-Chiffre TH EMATH EMAT I CA L I NTE L L I GENC E R COV E RCOV E RCOV ERCOVERCOVERCOV Chiffretext: WWARSWWARSWXYFDLCPJDOXCJFFTN Das sich wiederholende Muster WWARS läßt ohne jegliche Information über den Klartext auf die – richtige! – Periode 5 schließen. Die Methode von Kasiski und Friedman zum Brechen der Vigenère-Chiffre Der Ansatzpunkt für das Brechen der Vigenère-Chiffre ist, wie obiges Beispiel zeigt, die Periodizität der Schlüsselfolge. Ist die Periode der Schlüsselfolge erst einmal bekannt, so ist es nicht mehr schwierig, den zum Chiffretext gehörigen Klartext zu ermitteln, da dies nur noch darauf hinausläuft, Caesar-Chiffren zu brechen. Sei l die Periode der Schlüsselfolge, dann wird der Chiffretext wie in Abb. 2.1 angeordnet. Die Zeichen in einer Zeile sind dann aus einer Caesar-Chiffrierung entstanden. Es sind also l Caesar-Chiffren mittels Häufigkeitsanalyse bzw. Durchprobieren zu brechen. Es bleibt offen, wie man im allgemeinen Fall aus dem Chiffretext auf die Periode der verwendeten Schlüsselfolge schließen kann, denn nicht immer hat man das Glück, daß die Wiederholung von Teilfolgen im Chiffretext daraus resultiert, daß gleiche Teilfolgen im Klartext mit der gleichen Schlüsselteilfolge verschlüsselt wurden. Sind Teilfolgen im Chiffretext auf diese Weise entstanden, dann ist ihr Abstand ein Vielfaches der Schlüsselperiode. Im allgemeinen Fall wendet man die Methode von Kasiski und Friedman an, die die Berechnung des sogenannten Koinzidenzindex benötigt. Definition 2.1 Der Koinzidenzindex Ic eines Chiffretextes c gibt die Wahrscheinlichkeit dafür an, daß zwei unabhängig voneinander gewählte Zeichen des Chiffretextes c gleich sind. Für einen Chiffretext c, der aus einer Caesar-Chiffrierung hervorgegeangen ist, hängt der Koinzidenzindex Ic nicht vom Schlüssel k, sondern lediglich von den statistischen 14 KAPITEL 2. GESCHICHTE DER KRYPTOGRAPHIE Eigenschaften der Klartextquelle ab. Für englische Texte z. B. ist Ic ≈ 0, 065. Diese Unabhängigkeit von Ic bei Caesar-Chiffren wird für die Ermittlung der Periodenlänge, wie unten beschrieben, ausgenutzt. Es sei ni die absolute Häufigkeit des Zeichens ai in dem vorliegenden Chiffretext der Länge n. Dann gibt es n2i = ni (n2i −1) Möglichkeiten, das Paar ai ai auszuwählen. Der Koinzidenzindex ergibt sich also zu: P X ni ai ∈A ni (ni − 1) “Anzahl der günstigen Fälle“ 2 Ic (n) = (2.1) = n n(n − 1) “Anzahl der möglichen Fälle“ ai ∈A 2 X ni 2 ≈ für große n. (2.2) n a ∈A i Ordnet man den vorliegenden Chiffretext der Länge n, wie in Bild 2.1 gezeigt, in l Zeilen an, dann gilt: 1. Es gibt n( nl − 1) Möglichkeiten, Zeichenpaare in derselben Zeile auszuwählen. 2. Es gibt n(n − nl ) Möglichkeiten, Zeichenpaare in verschiedenen Zeilen auszuwählen. Falls die Anzahl der Zeilen l gleich der Periode der Schlüsselfolge ist, dann kann die Wahrscheinlichkeit dafür, in derselben Zeile gleiche auszuwählen, für P Zeichenpaare 2 genügend großes n durch den Koinzidenzindex Im ≈ ai ∈A pi approximiert werden, da hier eine Caesar-Chiffrierung vorliegt (dabei bezeichnet pi die Wahrscheinlichkeit dafür, daß die Klartextquelle das Zeichen ai aussendet). Ansonsten ist diese Wahrscheinlichkeit gleich der Wahrscheinlichkeit, in verschiedenen Zeilen gleiche Zeichenpaare auszuwählen. Hier ist von einer Gleichverteilung der Zeichen auszugehen (Schlüssel mit unendlicher Periode). Man erhält somit als Approximation für den Koinzidenzindex: X 1 n 1 n 2 Ic (n) = · (2.3) · n −1 · pi + n n − n(n − 1) l l |A| ai ∈A P 2 Für den Spezialfall englischer Texte gilt mit |A| = 26, pi ≈ 0, 065 nach etwas Umai ∈A formung: Ic (n) = (l − 1)n 1 n−l · 0, 065 + · l(n − 1) l(n − 1) 26 (2.4) Um die Periodenlänge einer Vigenère-Chiffre zu bestimmen, berechnet man zuerst den Koinzidenzindex gemäß Gleichung (2.1) oder (2.2) und vergleicht diesen mit den ermittelten theoretischen Werten für verschiedene Werte von l nach (2.4). Man kann zwar nicht erwarten, daß die Periodenlänge l, für die der theoretisch zu erwartende Wert für Ic am besten mit dem gemessenen“ Wert übereinstimmt, immer die tatsächlich verwendete ” Periodenlänge ist, aber der Vergleich des gemessenen“ Koinzidenzindex mit theoretisch ” 2.1. SUBSTITUTIONEN UND PERMUTATIONEN 15 zu erwartendem Koinzidenzindex gibt Aufschluß darüber die verwendete Chiffre; ist es eine Permutations- oder eine Caesar-Chiffre oder eine Vigenère-Chiffre mit kleinerer oder größerer Periode. Im folgenden Abschnitt werden Varianten der Vigenère-Chiffre aufgezählt, die dem Brechen mittels der Methode von Kasiski und Friedman widerstehen. Varianten der Vigenère-Chiffre Allen nachfolgend unter 1. bis 3. aufgeführten Varianten der Vigenère-Chiffre ist als Konsequenz aus der Methode von Kasiski und Friedman gemeinsam, daß sie die periodische Wiederholung des Schlüssels vermeiden. 1. Variante Man wählt einen Schlüsselanfang der Länge l und verschlüsselt die ersten l Klartextzeichen mit diesem Schlüsselanfang. Dann wird der Klartext als Schlüssel verwendet. Das folgende Beispiel verdeutlicht das Prinzip: Klartext: DATENSCHUTZ Schlüsselanfang: DAVID Schlüssel: DAVIDDATENSC Chiffretext: DAT E N S CHUTZ... +D A V I D D A T E N S C H U T Z . . . GAOMQVCAYGR... Die Schlüsselfolge wiederholt sich nicht, es sei denn, die Nachricht wiederholt sich. Kryptosysteme, die nach diesem Prinzip arbeiten, heißen auto-key Systeme. 2. Variante Eine andere Art der Vigenère-Chiffre ensteht dadurch, daß man einen sich nicht wiederholenden Text als Schlüssel benutzt. Diese Chiffre, bei der der Schlüssel die gleiche Länge wie der Klartext hat, heißt Vernam-Chiffre, nach seinem Finder Gilbert Vernam (1917) benannt. Vorsicht ist geboten, wenn als Schlüssel der Text einer natürlichen Sprache benutzt wird, wie z.B. der Text von Shakespeares MacBeth“, wobei aus Gründen der Syn” chronisation der Titel, die Seite, die Zeile und die Position des ersten Schlüsselbuchstabens angegeben werden müssen. Diese Chiffre kann gebrochen werden, da ein Großteil der Chiffretextbuchstaben aus einem Klartext- und einem Schlüsselbuchstaben entstehen, die zumindest eine mittlere oder gar große relative Häufigkeit besitzen. Im Englischen sind dies die Buchstaben: E, T, A, O, N, R, I, S, H. Ein Kryptoanalyst kann so für jeden Chiffretextbuchstaben hochwahrscheinliche Paare von Klartext- und Schlüsselbuchstaben angeben, deren Kombination den Chiffretextbuchstaben erzeugt. Als nächstes können auf diese Weise durch Ausprobieren 16 KAPITEL 2. GESCHICHTE DER KRYPTOGRAPHIE verschiedener Kombinationen gewisse Teilfolgen des Schlüssels und des Klartextes bestimmt werden. Die fehlenden bzw. unsicheren Buchstaben lassen sich dann leicht durch Kontextbetrachtungen gewinnen; hierbei sind die Häufigkeitsverteilungen von Bigrammen, Trigrammen, etc. sowie die Einzelwortwahrscheinlichkeiten der verwendeten Sprache von Bedeutung. Bei Kenntnis dieser Methode wird klar, daß man wie in 3. beschrieben vorgehen muß, um sichere Kryptosysteme zu erhalten. 3. Variante Ist die Schlüsselfolge einer Vernam-Chiffre eine echte Zufallsfolge und wird der Schlüssel nur ein einziges Mal benutzt, erhält man einen one-time-pad“. Der ” one-time-pad ist die einzige Chiffre, die theoretisch sicher ist (siehe Abschnitt 3.1). Der heiße Draht“ zwischen Moskau und Washington soll auf diesem Verschlüsse” lungsverfahren basieren. Ein Idee, die Anfang des 20. Jahrhunders aufkam war es regelmäßig wechselnde Substitutionen zum Verschlüsseln zu verwenden. Dieses Wechseln nach jedem Zeichen läßt sich von Hand kaum mehr durchführen, deshalb wurden (elektro–)mechanische Maschinen entwickelt, die diese Substitutionen durchführen. Diese Maschinen werden im nächsten Abschnitt erläutert. 2.2 Rotorchiffren Offensichtlich war Angang des Jahrhunderts die Zeit reif für diese Erfindung, denn unabhängig voneinander kamen vier verschiedene Personen fast gleichzeitig auf die Idee, eine Rotorchiffriermaschine zu bauen. Es waren der Niederländer Hugo Alexander Koch, der Amerikaner Edward Hugh Hebern, der Schwede Arvid Gerhard Damm und der Deutsche Arthur Scherbius. Größere Bedeutung erlangten Rotorchiffren im 2. Weltkrieg, als ihre Entwicklung soweit fortgeschritten war, daß die Geräte einigermaßen handlich und nicht allzu schwer waren und von Seiten des Militärs ein großer Bedarf an einfach zu bedienenden Verschlüsselungsgeräten bestand, die gleichzeitig ein, für die damalige Zeit, relativ hohes Maß an Sicherheit boten. 2.2.1 Die Hagelin-Maschine C-34 Die Hagelin C-34 wurde 1934 im Auftrag des Französischen Generalstabes von Boris Hagelin entwickelt. Sie wurde mit einigen Verbesserungen unter der Bezeichnung M-209 ab 1942 von der amerikanischen Armee eingesetzt. Die M-209 ist jedoch sowohl von ihrem prinzipiellen Aufbau, als auch von ihren Schwächen her der C-34 so ähnlich, daß hier nur auf die einfachere C-34 (hier Hagelin-Maschine genannt) eingegangen wird. Sie ist eine 2.2. ROTORCHIFFREN - 17 Rotor 1 Rotor 2 Rotor 3 Rotor 4 Rotor 5 s[0] s[1] Schlüsselliste ? ? ? ? ? s[2] s[3] .. . Index in die Schlüsselliste s[28] s[29] s[30] s[31] ? Klartext - Chiffretext - Abbildung 2.2: Struktur der Hagelin-Maschine Rotormaschine, deren Rotoren binäre Werte zurückgeben die durch zyklisch rückgekoppelte binäre Schieberegister beschrieben werden können. Die C-34 wird hier aufgeführt, da schon bei ihr einige für Rotormaschinen charakteristische Sicherheitsprobleme auftauchen. Der algorithmische Aufbau der Hagelin-Maschine läßt sich einfach anhand der Abbildung 2.2 beschreiben. Die Hagelin-Maschine arbeitet, wie die meisten historischen Rotormaschinen, über Z26 . Die Rotoren sind zyklisch rückgekoppelte Schieberegister der Längen 17, 19, 20, 21 und 23. Ihre Ausgaben werden als die Binärdarstellung eines Index in eine Schlüsselliste aufgefaßt. 18 KAPITEL 2. GESCHICHTE DER KRYPTOGRAPHIE Da die Größen der Rotoren paarweise teilerfremd sind, ergibt sich eine Periodenlänge von 17 ∗ 19 ∗ 20 ∗ 21 ∗ 23 = 3120180. Von dem so indizierten Wert wird der Klartext subtrahiert (mod 26). Es wird also eine Pseudozufallsfolge generiert, mit deren Hilfe eine Vigenère Verschlüsselung durchgeführt wird. Die hier verwendete Subtraktion hat den Vorteil, daß das System selbstinvers ist. Der Schlüssel wird von der Initialbelegung der Schieberegister und dem Inhalt der Schlüsselliste gebildet. Der Index in die Schlüsselliste ist 5 Bit lang, die somit 32 Werte aus Z26 enthält. Die Hagelin-Maschine ist im Original vollständig mechanisch realisiert. Die Schieberegister und ihr Inhalt sind durch mechanische Rotoren mit beweglichen Schiebern (für die Initialbelegung) implementiert. Durch einen Käfig mit Stangen, die durch die Schieber beeinflußt werden, wird das Schlüsselrad (auf dem die Schlüsselliste aufgetragen ist) in die vorgesehene Stellung bewegt. An einem weiteren Rad kann der Klartext eingestellt werden. Das Chiffrat wird dann auf einem Papierstreifen ausgedruckt. Formal läßt sich die Hagelin-Maschine wie folgt beschreiben: Die 5 Rotoren haben Längen mk zwischen 17 und 23: (m1 , m2 , m3 , m4 , m5 ) = (17, 19, 20, 21, 23). Die Schieber auf den Rotoren sind frei konfigurierbar und lassen sich in Listen zusammenfassen. Jede dieser Listen hat die Länge des zugehörigen Rotors: ak [jk ] ∈ {0, 1}, jk ∈ {0, 1, 2, . . . , mk − 1}, k ∈ {1, 2, 3, 4, 5}. Die Anfangsstellung der Rotoren pk [1] ist normiert: pk [1] = 0, k ∈ {1, 2, 3, 4, 5}. Die Rotoren werden mit jedem Verschlüsselungsschritt weitergedreht. Dadurch ergibt sich die Schrittfunktion, die die Positionen p1 [i] bis p5 [i] der 5 Rotoren zum Zeitpunkt i angibt: pj [i + 1] = (pj [i] + 1) mod mj , j ∈ {1, 2, 3, 4, 5}. Die Ausgabe der 5 Rotoren zum Zeitpunkt i ist nun: (Ausgabe von Rotor k zum Zeitpunkt i) = ak [pk [i]] , k ∈ {1, 2, 3, 4, 5}. Der Index in die Schlüsselliste zum Zeitpunkt i ergibt sich damit zu: (Index in Schlüsselliste zum Zeipunkt i) = 4 X k=0 2k ∗ ak+1 [pk+1 [i]] . Bezeichnet man die Schlüsselliste mit s[i] (i ∈ {0, 1, 2, . . . , 31}), so erhält man die generierte Pseudozufallsfolge b[i]: " 4 # X k b[i] := s 2 ∗ ak+1 [pk+1[i]] . k=0 Für die Verschlüsselung erhält man: c[i] := b[i] − a[i]. 2.2. ROTORCHIFFREN 2.2.2 19 Hagelin-Kryptoanalyse Das Hauptproblem der Hagelin-Maschine ist, daß der Maschinenzustand rein zeitabhängig ist, und daß so dem Angreifer der Maschinenzustand zu jedem Zeitpunkt bekannt ist. Der Angiff gegen das System wird im folgenden als Angriff mit bekanntem Klartext geschildert. Die Vorgehensweise läßt sich (bei bekannter Verteilung der Klartextquelle) jedoch einfach in einen probabilistischen ’ciphertext only’ Angriff umsetzen. Wenn man über hinreichend viele Klartext - Chiffrat Paare verfügt, so kann man einfach die verwendete Pseudozufallsfolge ermitteln. Man weiß über die einzelnen Bits der Indizes, daß sie sich mit der Periode 17, 19, 20, 21 und 23 zyklisch wiederholen. Für jedes der 5 Bit des Index wird die Schlüsselfolge in zwei Teilmengen aufgeteilt, je nachdem, ob dieses Bit 0 oder 1 ist. Die beiden Teilmengen werden im allgemeinen nicht disjunkt sein, da die Schlüsselliste 32 Zeichen umfaßt, welche aus den 26 Buchstaben des Alphabets ausgewählt sind. Sie werden jedoch meistens eine unterschiedliche Wahrscheinlichkeitsverteilung aufweisen. Da man die Periode der einzelnen Schlüsselbits kennt, kann man über diese Verteilungen die einzelnen Bits der Schieberegister identifizieren (man kann feststellen, welche Bits in einem Register gleich sind, die Zuordnung zu 0 und 1 ist willkürlich). Wenn man alle Bits der Schieberegister identifiziert hat, so ist die Schlüsselliste offensichtlich, da man mit der Ausgabe der Schiebregister die Indizes in die Schlüsselliste und mit Klartext und Chiffrat die indizierten Werte besitzt. Wie oben angesprochen, kann man bei bekannter Verteilung der Klartextquelle auf den bekannten Klartext verzichten. Wie in [62] bewiesen wird, benötigt man knapp 12000 Zeichen zusammenhängenden Chiffretext um, die Hagelin-Maschine zu brechen (bei deutschem Klartext). 2.2.3 Hebern Electric Code Hebern baute bereits 1918 den ersten Prototyp einer Rotorchiffriermaschine. 1921 gründet er in Oakland die Firma Hebern Electric Code“, die erste Chiffriermaschinenfirma der ” USA. 1924 erhielt er die US Patent Nr. 1 510 441 auf seine elektrische Chiffriermaschine“. ” Im Glauben an kommende Regierungsaufträge engagierte er sich sehr für seine Erfindung. Da er jedoch lediglich einzelne Testexemplare verkaufen konnte, ging die Firma schließlich im Juni 1926 in Konkurs. Es ist die Ironie der Geschichte, daß im 2. Weltkrieg dasselbe Prinzip von den amerikanischen Streitkräften im großem Stil benutzt wurde. Mit diesem Wissen verklagte Hebern die Streitkräfte 1947 auf eine Entschädigung in Höhe von 50 Millionen Dollar. Vier Jahre nach seinem Tod, im Jahre 1958, wurde seinen Erben 30.000 Dollar Schadensersatz zuerkannt. Wenden wir uns nun der Funktionsweise von Rotorchiffren zu. Das Folgende gilt nicht allein für Heberns Rotormaschine, sondern auch für eine Reihe ähnlicher Konstruktionen. Eine Rotorchiffre benutzt i.A. einen oder mehrere Rotoren (auch Walzen genannt). Ein Rotor besteht hier aus einem flachen Zylinder mit Kontakten auf beiden Seiten. Die Kontakte sind im Innern des Zylinders von der einen zur anderen Seite durch Drähte miteinander verbunden. Diese Verdrahtung ist fest und stellt eine Permutation π über den 20 KAPITEL 2. GESCHICHTE DER KRYPTOGRAPHIE Buchstaben des zugrundeliegenden Alphabets Zm dar. Dies bedeutet, daß bei Stromzufuhr an einem Kontakt auf der einen Seite ein anderer Kontakt auf der anderen Seite ebenfalls Strom führt. Wird der Rotor gedreht, so bleibt die Permutation im Rotor zwar die gleiche, jedoch muß die vorangegangene Drehung berücksichtigt werden. Die Wirkungsweise einer Drehung des Rotors um k Stellen entspricht am Eingang zunächst einer Caesarchiffre Ck , am Ausgang dagegen der dazu inversen Caesarchiffre C−k . Die resultierende Permutation (abhängig von k und π) ist damit Tk,π = C−k πCk . Dabei bietet sich die Kopplung der Rotordrehung mit der Anzahl i der verschlüsselten Zeichen an. Beispielsweise läßt sich damit folgende Rotorfortschaltungsfunktionen r(i) realisieren: r(i) = k + i mod m. k ist hierbei die Anfangsverschiebung vor Beginn der Verschlüsselung und m die Mächtigkeit des Alphabets. Die Verschlüsselungsfunktion für das i-te Zeichen xi lautet also Tk,π (xi ) = π(r(i) + xi ) − r(i) = yi . Um die Komplexität möglicher Angriffe und damit die kryptographische Sicherheit des Verfahrens zu erhöhen, schaltet man n Rotoren hintereinander. Die Fortschaltungsfunktion1 des s-ten Rotors (0 ≤ s < n) ist dann rs (i) = ks + ⌊ i/ms ⌋ mod m. Die resultierende Permutation einer Rotorchiffre bei n hintereinander geschalteten Rotoren ist damit Tk0 ...kn−1 ,π0...πn−1 (i) = C−rn−1 (i) πn−1 Crn−1 (i)−rn−2 (i) πn−2 . . . Cr1 (i)−r0 (i) π0 Cr0 (i) . Für ein zu verschlüsselndes Zeichen x heißt dies Tk0 ...kn−1 ,π0...πn−1 (xi ) = πn−1 (rn−1 (i) + . . . + π1 (r1 (i) + π0 (r0 (i) + xi ) −r0 (i)) − r1 (i)) . . .) − rn−1 (i) = yi . Der Schlüssel eines Rotorsystems besteht somit aus • den Rotoren bzw. ihren Permutationen π0 , . . . , πn−1 und • den Erstverschiebungen vor Beginn der Verschlüsselung k0 , . . . , kn−1 . 1 Prinzip des Kilometerzählers. 2.2. ROTORCHIFFREN 21 Betrachten wir nun einige Eigenschaften von Hebern-Rotorchiffren. Die Folge von Permutationen Tk,π (0), Tk,π (1), Tk,π (2), . . ., usw. ist unabhängig von den zu verschlüsselnden Zeichen über dem Alphabet Zm periodisch. Bei n aufeinander folgenden Rotoren ist die Periode ein Teiler von mn , d.h. nach spätestens mn Drehungen haben alle Rotoren wieder ihre Ausgangsposition erreicht. Die Menge aller Schlüsselpaare (k, π) für ein Rotorsystem mit n Rotoren läßt sich in Äquivalenzklassen unterteilen. Zwei Schlüsselpaare (k, π) und (j, ν) heißen äquivalent, wenn gilt: Tk,π (i) = Tj,ν (i) mit 0 ≤ i < mn , oder kurz Tk,π ∼ Tj,ν . Beide Maschinen liefern dann bei gleicher Eingabe die gleiche Ausgabe. 2.2.4 Hebern-Kryptoanalyse Die Beobachtung, daß sich die Rotoren π1 , π2 , . . . , πn−1 innerhalb gewisser Intervalle von Klar- und Chiffretextzeichen wie unbewegliche Statoren verhalten, bietet den Ansatzpunkt zur Kryptoanalyse. In einem solchen Intervall oder auch Block ist die Rotorfortschaltungsfunktion rs (g) (1 ≤ s < n) für alle g fest und unabhängig von diesem. Bei der Betrachtung des ersten Rotors π0 hat der f -te Klartextblock beispielsweise die Form Bf (x) = {xmf , xmf +1 , . . . , x(f +1)m−1 }. Damit läßt sich die Verschlüsselungsfunktion mit der Substitution Sf = C−rn−1 (i) πn−1 Crn−2 (i)−rn−1 (i) πn−2 . . . Cr1 (i) zu Tk0 ...kn−1 ,π0...πn−1 (i) = Sf C−r0 (i) π0 Cr0 (i) verkürzen. Ein Treffer“ innerhalb eines Blocks Bf sei als Paar (g, h) mit g 6= h definiert, ” für das gilt: Sf C−r0 (g) π0 Cr0 (g) : xg → yg Sf C−r0 (h) π0 Cr0 (h) : xh → yh mit yg = yh und xg , xh ∈ Bf (x) bzw. yg , yh ∈ Bf (y). Aus der Forderung g 6= h ergibt sich für einen Treffer bei (g, h) k0 + g + xg 6= k0 + h + xh . Andererseits gilt aber: π0 (k0 + g + xg ) − k0 − g = π0 (k0 + h + xh ) − k0 − h. Damit wird eine Beziehung zwischen zwei verschiedenen Kontakten des Rotors π0 hergestellt. 22 KAPITEL 2. GESCHICHTE DER KRYPTOGRAPHIE Ein (frei gewählter) Fixpunkt des zu konstruierenden Rotors ist π(0) = 0. Davon ausgehend wird mit Hilfe der Beziehungen zu anderen Kontakten, der restliche Rotor aufgebaut. Klar- und zugehörige Chiffretextblöcke werden also wiederholt nach Treffern abgesucht, bei denen schon bekannte Kontakte involviert sind. Unter Verwendung einer hinreichenden Anzahl aus Klar- und zugehörigem Chiffretext bestehenden Blöcken ist es bei entsprechender Anzahl von Treffern schließlich möglich, m−1 Relationen aufzustellen. Die fehlende m-te Beziehung ist dann zwingend durch die anderen vorgegeben. Somit wird ein Rotor einer, zur Originalmaschine äquivalenten, Hebernchiffre konstruiert. Dieser Rotor läßt sich jetzt abziehen“, indem Klar- und Chiffretext mit ihm ver” schlüsselt werden. Die Blocklänge wird nun an die Fortschaltungsfunktion des nächsten Rotors angepaßt (Faktor m) und das ganze Verfahren für diesen wiederholt. Auf diese Weise erhält man schließlich nach und nach eine äquivalente Hebernchiffre. 2.2.5 Enigma-Variationen Auch Arthur Scherbius war einer derjenigen, der unabhängig von den anderen Erfindern die Idee zu einer Rotorverschlüsselungsmaschine hatte. Am 8. Juli 1925 wurde ihm das, auf seine Chiffriermaschine“ bereits am 23. Februar 1918 eingereichte, Deutsche Reichs” patent Nr. 416 219 erteilt. Seinen Chiffriermaschinen gab er den bezeichnenden Namen Enigma“ — das griechische Wort für Rätsel. Scherbius gründete 1923 eine Firma — ” die Chiffriermaschinen AG in Berlin. Ohne die Früchte seiner Arbeit ernten zu können, kam Scherbius 1926 bei einem Unfall ums Leben, und seine Firma ging 1934 in Konkurs. Die von seinen Mitgesellschaftern gegründete Nachfolgegesellschaft stellte während des 2.Weltkrieges eine große Anzahl militärischer Enigma-Maschinen her. Das Bauteil, das die Enigma gegenüber normalen“ Rotorchiffren auszeichnet, ist der ” reflektierende Rotor. Während bei den übrigen Rotoren Kontakte auf beiden Seiten vorhanden sind, hat der reflektierende Rotor nur auf einer Seite Kontakte. Diese sind paarweise durch Drähte miteinander verbunden. Ein ankommendes Signal wird durch den reflektierenden Rotor wieder durch die davor geschalteten Rotoren zurückgeschickt. Aufgrund dieser Spiegelung kann kein Zeichen durch sich selbst ersetzt werden. Eine weitere Eigenschaft der Enigma ist, daß dieselbe Anordnung sowohl zur Ver- als auch zur Entschlüsselung benutzt werden kann. Wird Zeichen ’A’ beispielsweise auf das Zeichen ’K’ abgebildet, so auch umgekehrt Zeichen ’K’ auf ’A’. Eine Chiffre mit dieser Eigenschaft nennt man involutorisch. Die durch diese Maschine realisierte Permutation ist in Abhängigkeit vom Index i des eingegebenen Zeichens xi eine Verkettung der verschiedenen Rotorpermutationen πs (0 ≤ s < n) für den Hinweg, der Permutation πR des reflektierenden Rotors und den inversen Rotorpermutationen πs−1 auf dem Rückweg Ti = C−r0 (i) π0−1 Cr0 (i)−r1 (i) π1−1 Cr1 (i)−r2 (i) π2−1 . . . Crn−1 (i) πR C−rn−1 (i) . . . π2 Cr2 (i)−r1 (i) π1 Cr1 (i)−r0 (i) π0 Cr0 (i) . Dazu kommt die Verschiebung C der Rotoren gegeneinander mit den Fortschaltungs- 2.2. ROTORCHIFFREN 23 funktionen rs (i). Der reflektierende Rotor πR realisiert eine Permutation, die, zweimal hintereinander ausgeführt, die identische Abbildung ergibt: πR2 = Id Aufgrund der involutorischen Eigenschaften des reflektierenden Rotors gilt: Ti (x) = y ⇔ Ti (y) = x. Zwei Enigma-Maschinen E und E ′ mit den Rotoren πs bzw. νs heißen äquivalent, E : {π0 , π1 , . . . , πn−2 , πR } ∼ E ′ : {ν0 , ν1 , . . . , νn−2 , νR }, wenn sie bei gleicher Eingabe dieselbe Ausgabe produzieren. 2.2.6 Enigma-Kryptoanalyse Eine gewisse Bekanntheit erlangte die Enigma gerade durch die Bemühungen um ihre Entschlüsselung. Den drei beim polnischen Geheimdienst arbeitenden Mathematikern Marian Rejewski, Henryk Zygalski und Jerzy Rozycki gelang durch die Mithilfe eines Spions 1933 der Durchbruch. Wegen einer mangelhaften Schlüsselprozedur konnte schnell die ganze Maschine rekonstruiert werden. Danach konnten sie mit speziellen Maschinen, sogenannten Bomben“, den Schlüssel rekonstruieren. Französische und britische Kryp” toanalytiker wurden daraufhin von ihren polnischen Kollegen eingeweiht. Im englischen Bletchley Park, in der Government Code and Cypher School“, dem Dechiffrierzentrum ” des britischen Außenministeriums, arbeiteten ebenfalls zwei, mittlerweile legendär gewordene, Mathematiker an der Entschlüsselung der Enigma: Alfred Knox und Alan Turing. Letzterer leistete auch bedeutende Beiträge zur Automatentheorie. Gegen Ende des Krieges schließlich waren die Briten in der Lage, Enigma-verschlüsselte Nachrichten innerhalb einer Stunde zu entschlüsseln. Die Kryptoanalyse der Enigma ist eines der bestgehüteten Geheimnisse der britischen Regierung. Die unter dem Decknamen Ultra“ erzielten ” Lösungen abgefangener Nachrichten gaben dem britischen Generalstab einen recht guten Überblick über die Verhältnisse auf deutscher Seite. Unter diesen Umständen erscheinen auch bestimmte Ereignisse, wie etwa der Zusammenbruch der deutschen Afrikafront und der Wende der U-Boot Schlacht im Atlantik, in einem etwas anderen Licht. Die im Folgenden vorgestellte Methode, um mit Hilfe von Klar- und dazugehörigem Chiffretext eine Enigma zu brechen, ist im Wesentlichen eine erweiterte Variante der Methode für eine Hebernchiffre. Nach und nach werden die einzelnen Rotoren einer Enigma konstruiert, die zur Originalmaschine äquivalent ist. Folgende Voraussetzungen werden gemacht: • Fixpunkt des zu konstruierenden äquivalenten Rotors π sei π(0) = 0. • Die hier aufgestellten Gleichungen bzw. Ungleichungen gelten zunächst nur für den ersten Rotor. 24 KAPITEL 2. GESCHICHTE DER KRYPTOGRAPHIE • Die Voreinstellung aller Rotoren der zu konstruierenden Enigma ist Null. • Man geht von zusammenhängenden und jeweils miteinander korrespondierenden Blöcken von Klar- und Chiffretext der Länge m aus. Aufgrund der Äquivalenz Tg (x) = y ⇔ Tg (y) = x lassen sich folgende Gleichungen aufstellen: πR C−rn−2 (g) πn−2 Crn−2 (g)−rn−3 (g) πn−3 . . . π0 Cr0 (g) (x) = C−rn−2 (g) πn−2 Crn−2 (g)−rn−3 πn−3 . . . π0 Cr0 (g) (y), oder aber πR C−rn−2 (g) πn−2 Crn−2 (g)−rn−3 (g) πn−3 . . . π0 Cr0 (g) (y) = C−rn−2 (g) πn−2 Crn−2 (g)−rn−3 πn−3 . . . π0 Cr0 (g) (x). Betrachten wir die erste der beiden Gleichungen, so gilt πR (Sf (π0 (xg + g) − g)) = Sf (π0 (yg + g) − g). Dabei sei Sf eine einfache Substitution mit Sf = C−rn−2 (g) πn−2 Crn−2 (g)−rn−3 πn−3 . . . π1 Cr1 (g) . Dies gilt unabhängig vom Klar- oder Chiffrezeichenindex g innerhalb eines Blocks. Für zwei voneinander verschiedene Indizes g und h (g 6= h) gilt: πR (Sf (π0 (xg + g) − g)) = πR (Sf (π0 (xh + h) − h)) ⇐⇒ Sf (π0 (yg + g) − g) = Sf (π0 (yh + h) − h), oder aber auch: πR (Sf (π0 (xg + g) − g)) = Sf (π0 (yh + h) − h) ⇐⇒ Sf (π0 (xh + h) − h) = πR (Sf (π0 (yg + g) − g)). Um bestimmen zu können, ob die erste dieser Äquivalenzen gilt, muß eine Aussage darüber gemacht werden, ob die Gleichung π0 (xg + g) − g = π0 (xh + h) − h erfüllt ist. Eine Beantwortung dieser Frage setzt aber voraus, daß schon Informationen über den ersten Rotor π0 vorhanden sind. Dieser ist jedoch noch unbekannt. Das Vorgehen aus der anderen Richtung bringt uns der Lösung näher: Dieselbe Äquivalenz ist nicht erfüllt, wenn gilt xg + g = xh + h mit g 6= h. Im Gegensatz zum Treffer“ wird dies als ein sogenannter Nichttreffer“ definiert. Daraus ” ” folgt π0 (yg + g) − g 6= π0 (yh + h) − h, 2.2. ROTORCHIFFREN 25 was zu einer Einschränkung des Wertebereichs für den Rotor π0 führt. Diese Beschränkungen werden in eine Matrix Γ eingetragen. Diese Matrix ist dreidimensional und besteht aus Beschränkungsvektoren γ. Der Vektor γi,j (t) gibt Auskunft über die Beschränkung von π0 (i) − π0 (j): 0 falls π0 (i) − π0 (j) 6= t sein muß γi,j (t) = 1 falls π0 (i) − π0 (j) = t sein kann. Initialisiert wird diese Matrix Γ mit Γi,j = (0, 1, 1, . . . , 1) Γi,i = (1, 0, 0, . . . , 0) mit 0 ≤ i, j < m und i 6= j mit 0 ≤ i < m Wird ein solcher Vektor Γi,j (i 6= j) im Laufe der Suche nach Beschränkungen schließlich zu einem Einheitsvektor Γi,j = ( 0, . . . , 0 , 1, 0, . . . , 0 ), | {z } | {z } k Nullen m−k−1 Nullen so bedeutet dies, daß π0 (i) − π0 (j) ≡ k mod m ist. Bei einer genügend großen Anzahl solcher Einheitsvektoren in der Matrix kann der äquivalente Rotor schließlich konstruiert werden. Die korrespondierenden Klar- und Chiffretextblöcke werden nun nacheinander auf zwei verschiedene Weisen mehrmals hintereinander abgesucht. Beim ersten Mal gilt die Suche den Nichttreffern“. Jeder Block wird für alle k (0 ≤ ” k < m) nach Paaren (g, h) mit g 6= h abgesucht, die eine der drei folgenden Bedingungen erfüllen: xg + g = xh + h = k yg + g = yh + h = k xg + g = yh + h = k Hat man ein solches Paar gefunden, so lassen sich mit dem entsprechenden Gegenstück auf der Klar- bzw. Chiffretextseite des korrespondierenden Blocks zwei Beschränkungen aufstellen. Bei der ersten der obigen Bedingungen erhält man yg + g 6≡ yh + h ⇔ yg − yh ≡ 6 g − h mod m ⇔ yh − yg ≡ 6 h − g mod m. Die Ungleichungen auf der rechten Seite entsprechen gerade den Einträgen, die in die Nichttreffer-“ oder Beschränkungsmatrix Γ eingesetzt werden. ” Beim zweiten Mal werden zunächst die Informationen verwendet, die beim ersten Mal gewonnen wurden. Ist ein γi,j (t) = 0, wobei die trivialen Fälle wie i = j oder t = 0 weggelassen werden, so wird in jedem Block nach Paaren (g, h) gesucht, für die g − h = t ist, und eine der vier folgenden Bedingungen gilt: xg + g yg + g yg + g xg + g =i =i =i =i ∧ ∧ ∧ ∧ xh + h yh + h xh + h yh + h =j =j =j =j 26 KAPITEL 2. GESCHICHTE DER KRYPTOGRAPHIE Auch hier werden mit dem entsprechenden Gegenstück auf der Klar- oder Chiffretextseite des entsprechenden Blocks, wie schon oben beschrieben, zwei Einträge in der Matrix vorgenommen. Die dabei zustandekommenden Neueinträge werden nun wiederum zur Suche verwendet. Bei der Suche nach Einheitsvektoren lassen sich eventuell weitere Beschränkungen gewinnen. Befindet sich in der x-Richtung, der y-Richtung oder der z-Richtung der Matrix in einer Reihe nur eine 1, so ist damit festgelegt, daß sich in den anderen Richtungen des Koordinatenkreuzes, dessen Ursprung jene 1 ist, ebenfalls nur noch Nullen befinden können. Nach der Untersuchung einer ausreichenden Anzahl von Blöcken, mit entsprechenden Ergebnissen bei der Suche nach Beschränkungen, sind dann soviele Einheitsvektoren zusammengekommen, daß sich der Rotor daraus vollständig konstruieren läßt. Der so gewonnene Rotor wird danach praktisch abgezogen“: Klar- und Chiffretext ” werden mit ihm verschlüsselt (d.h. in Richtung des reflektierenden Rotors). Danach muß auch die Blockgröße an die nun zu betrachtende Fortschaltungsfunktion des nächsten Rotors angepaßt werden (Faktor m). Bei den Indizes g und h innerhalb eines m-fach vergrößerten Blocks wird dann mod m gerechnet. Schließlich gelangt man zum reflektierenden Rotor πR . An dieser Stelle, nachdem der vorletzte Rotor abgezogen“ wurde, ist es lediglich nötig, Klar- und Chiffretextzeichen ” einander zuzuordnen, um πR zu erhalten. Nachdem wir uns nun einigen Beispielen klassischer Kryptographie und den Methoden wie diese Systeme gebrochen werden können, gewidmet haben, wenden wir uns im folgenden Kapitel der Frage der Sicherheit von Kryptosystemen zu. Kapitel 3 Theoretische Beschreibung von Sicherheit Bei der klassischen Kryptographie stand sowohl beim Erfinden neuer Kryptosysteme als auch beim Brechen von Kryptosystemen der klare Menschenverstand“ von mathe” matischen Laien im Vordergrund. In der modernen Kryptoanalysis hingegen werden Methoden aus diversen Bereichen der Informatik und Mathematik eingesetzt, z. B. Zahlentheorie, Wahrscheinlichkeitstheorie, Statistik, Informationstheorie, lineare Algebra, Algebra, Schaltkreistheorie und viele andere mehr. An der Analyse eines Kryptosystems besteht sowohl von Seiten der Anwender des Systems als auch von potentiellen Opponenten Interesse - einerseits, um die Sicherheit des verwendeten Verfahrens unter Beweis zu stellen, andererseits, um den verwendeten Schlüssel bzw. den geheimen Klartext zu erhalten. Für die Kryptoanalytiker beider Seiten spielt dabei der Begriff Sicherheit des Sy” stems“ eine bedeutende Rolle. Häufig werden Kryptosysteme nach folgenden Sicherheitsstufen eingeteilt: 1. informationstheoretisch (absolut) sichere Kryptosysteme Auch bei Kenntnis von beliebig viel Chiffretext kann nicht genug Information gewonnen werden, um daraus den Klartext oder den Schlüssel zu rekonstruieren. 2. praktisch sichere (starke) Kryptosysteme Es ist kein Verfahren bekannt, mit dem das Kryptosystem mit den verfügbaren Ressourcen und vertretbarem Aufwand gebrochen werden kann. An dieser Stelle sei bemerkt, daß bisher nur ein System, nämlich der one-time-pad (vgl. Abschnitt 2.1.3), als informationstheoretisch sicheres System bewiesen wurde. Dies ist C.E. Shannon in [122] gelungen und wird im Folgenden noch genauer behandelt. 27 28 KAPITEL 3. THEORETISCHE BESCHREIBUNG VON SICHERHEIT Angesichts dieser Mißlichkeit konzentriert sich das breite Interesse der Macher und Anwender auf den Bereich der praktisch sicheren Kryptosysteme, die selbst im schlimm” sten“ anzunehmenden Fall noch sicher sein müssen. Dieser tritt dann ein, wenn der Kryptoanalytiker • detailierte Kenntnisse über das Kryptosystem besitzt, d. h. die Chiffrierfunktionen sind ihm bekannt, nicht aber die verwendeten Schlüssel (generelle Voraussetzung), • Kenntnis von relativ großen, von im selbst ausgewählten, Klartextmengen und den zugehörigen Chiffretexten hat (chosen-plaintext-attack), • die Verfügbarkeit relativ großer Mengen von ihm selbst ausgewähltem Chiffretext und den zugehörigen Klartexten voraussetzen kann (chosen-ciphertext-attack), • Zugriff zu schnellen und großen Rechnern hat und • aktuelle Kenntnisse der Kryptologie, insbesondere der Kryptoanalysis besitzt, wie sie auf den einschlägigen Crypto-Konferenzen vorgestellt werden. In den beiden nun folgenden Abschnitten werden die bisherigen Überlegungen zur Sicherheit von Kryptosystemen verfeinert und einige noch nicht betrachtete Aspekte herausgestellt. 3.1 Problemstellung Der Angreifer muß aufgrund seiner Kenntnisse eine Schätzung des Klartextes und/oder des verwendeten Schlüssels durchführen. Dabei wird generell vorausgesetzt, daß dem Angreifer • das Chiffrat, • das benutzte Kryptosystem, • die Verteilung der Klartextquelle, • die Verteilung der Schlüsselquelle bekannt sind. Dieses Schätzproblem entspricht dem aus der statistischen Nachrichtentheorie bekannten (siehe z. B. in [75]), das in Bild 3.1 gezeigt ist, wo der Empfänger aus der erhaltenen und gestörten Nachricht r aufgrund seiner Kenntnisse über die Art der Störung und die Verteilung der Senderquelle bzw. der Störquelle auf die tatsächlich gesendete Nachricht m schließen muß. Ein Kryptosystem wird dann als sicher“ gelten können, wenn ein Angreifer, selbst ” mit den oben vorausgesetzten Kenntnissen, nicht in der Lage ist, den zu einem Chiffretext gehörenden Klartext mit vertretbarem Aufwand zu bestimmen. 3.1. PROBLEMSTELLUNG 29 Störungen n Sender ? m - r Kanal - Empfänger Abbildung 3.1: Nachrichtenübertragungssystem (Detektion) Die Sicherheit eines Kryptosystems hängt u.a. wesentlich von den Verteilungen der Klartext- bzw. der Schlüsselquelle ab, so daß wir zunächst einige, aus der Wahrscheinlichkeitstheorie bekannte, Begriffe einführen. Wir erinnern hier an Definition 1.1 eines abstrakten Kryptosystems S = (M, C, E, K). Um die folgenden Untersuchungen nicht durch sehr viel Formalismus zu überladen beschränken wir uns hier auf Entschlüsselungsfunktionen Ek . M, C und K werden als Wahrscheinlichkeitsräume mit den Verteilungen pM , pC und pK betrachtet. pM,K sei die Wahrscheinlichkeitsverteilung auf M×K, analog seien pM,C auf M×C und pC,K auf C ×K definiert. Definition 3.1 Ein Kryptosystem heißt unabhängig, wenn Klartext und Schlüssel unabhängig voneinander sind. pM,K (m, k) = pM (m) · pK (k) ∀ m, k. Man kann in der Regel davon ausgehen, daß die betrachteten Kryptosysteme unabhängig sind. Weiter benötigte Wahrscheinlichkeiten ergeben sich zu: pM,C (m, c) = X pM (m) · pK (k) (3.1) X pM (m) · pK (k). (3.2) k: Ek (m)=c und pC (c) = X m k: Ek (m)=c Die bedingte Wahrscheinlichkeit pM|C (m|c) gibt die Wahrscheinlichkeit an, daß m gilt, wenn c gegeben ist. Im Unterschied dazu ist pM,C (m, c) die Verbundwahrscheinlichkeit, daß m und c gleichzeitig gelten. Zwischen pM,C und pM|C besteht nach Definition der bedingten Wahrscheinlichkeit folgende Beziehung: pM,C (m, c) = pC (c) · pM|C (m|c). (3.3) 30 KAPITEL 3. THEORETISCHE BESCHREIBUNG VON SICHERHEIT 3.2 Kryptosysteme mit perfekter Sicherheit Definition 3.2 Ein Kryptosystem liefert perfekte Sicherheit, falls pM|C (m|c) = pM (m) f ür pM (m) > 0 gilt, oder äquivalent dazu pC|M (c|m) = pC (c) f ür pC (c) > 0 ist. (Die beiden Bedingungen sind äquivalent, da pM,C = pM|C · pC = pC|M · pM gilt.) Das heißt, ein Kryptosystem ist dann perfekt, wenn die Kenntnis des Chiffretextes einen bestimmten Klartext als Lösung nicht wahrscheinlicher macht, als dies nach der Verteilung der Klartextquelle bereits zu erwarten ist. Satz 3.3 Für ein System mit perfekter Sicherheit gilt |K| ≥ |M|. Beweis: Da zu jedem Chiffrat wieder der ursprüngliche Klartext gefunden wird gilt: |C| ≥ |M| Außerdem muß jeder Klartext m auf jeden Chiffretext c abgebildet werden können, damit pM|C = pM gelten kann. Dann muß es mindestens |C| Schlüssel geben: |K| ≥ |C| Daraus folgt die Behauptung. q.e.d. Wir betrachten nun den Spezialfall eines Kryptosystems mit |M| = |C| = |K|. Satz 3.4 Es sei S ein Kryptosystem mit |M| = |C| = |K|. S liefert perfekte Sicherheit genau dann, wenn 1. ∀c ∈ C: ∀m ∈ M: ∃!k ∈ K: Ek (m) = c Jeder Chiffretext ist von jedem Klartext aus erreichbar und umgekehrt. 1 2. ∀k ∈ K: pK (k) = |K| Die Schlüssel sind gleichverteilt. Beweis: ⇒“ S sei perfekt mit |M| = |C| = |K|, dann folgt 1. mit der gleichen Begründung wie ” im Beweis zu Satz 3.3. Es bleibt 2. zu zeigen: Es sei c0 ein fest gegebenes Chiffrat, dann gilt: 3.2. KRYPTOSYSTEME MIT PERFEKTER SICHERHEIT ∀m: pC (c0 ) = pC|M (c0 |m) pM,C (m, c0 ) = pM (m) X pM (m) · pK (k) = pM (m) 31 nach (3.3) k:Ek (m)=c0 pM (m) · pK (k0 ) pM (m) = pK (k0 ) 1 pK (k) = |K| = ⇒ mit Ek0 (m) = c0 ⇐“ analog q.e.d. ” Ein Beispiel für ein Kryptosystem mit perfekter Sicherheit ist der one-time-pad mit |M| = |C| = |K|. Kapitel 4 Stromchiffren Eine Verschlüsselungsfunktion erwartet in der Regel eine Eingabe fester Länge. Daher wird ein Klartext beliebiger Länge vor der Verarbeitung in eine Folge von Blöcken oder Zeichen fester Länge aufgeteilt, die dann einzeln chiffriert werden. Ist die Verschlüsselungsoperation dabei für jeden Block dieselbe, so spricht man von Blockchiffren. Diese werden in Kapitel 5 ausführlich behandelt. Als sequentielle Chiffren oder Stromchiffren bezeichnet man Verschlüsselungsverfahren, bei denen die Folge von Klartextzeichen nacheinander mit einer in jedem Schritt variierenden Funktion verschlüsselt wird. Sequentielle Chiffren sind also polyalphabetische Substitutionen, die auf Einheiten kleinerer Länge operieren, die Zeichen“ genannt werden, auch wenn diese Zeichen nicht mit den Elementen des ” zugrundeliegenden Alphabets übereinstimmen müssen. Hier beschäftigen wir uns ausschließlich mit sogenannten synchronen Stromchiffren [53], bei denen die Verschlüsselung durch eine Verknüpfung des Klartextes mit einem unabhängig von diesem erzeugten Schlüsselstrom dargestellt werden kann. Dies ist in Abbildung 4.1 gezeigt. In den meisten Fällen erfolgt die Verknüpfung mit einer einfachen Funktion f , die sogar unabhängig vom Schlüssel ist. Das klassische Beispiel einer sequentiellen Chiffre ist die in Abschnitt 2.1.3 vorgestellte Vigenère-Chiffre. Der Zeichenvorrat ist in diesem Fall das lateinische Alphabet mit seinen 26 Buchstaben. Die Verknüpfung der Schlüsselfolge mit der Klartextfolge geschieht durch die zeichenweise Addition modulo 26. Die Schlüsselfolge besteht bei der Vigenère-Chiffre k A A AU fk m - c Abbildung 4.1: Prinzip einer (synchronen) sequentiellen Chiffre 32 33 Schlüssel (Initialwert) Schlüssel (Intitialwert) ? m ? Pseudozufallsgenerator Pseudozufallsgenerator k k ? c (Übertragung) - AA A c ? - m Abbildung 4.2: Synchrones Stromchiffrier-System aus einer sich periodisch wiederholenden Zeichenfolge, die als Schlüsselwort bezeichnet wird. Das periodische Wiederholen einer im Verhältnis zum Klartext typischerweise kurzen Schlüsselfolge ermöglicht jedoch gerade die fast mühelose Kryptoanalyse des VigenèreSystems (siehe Abschnitt 2.1.3). Ideale Sicherheit bietet hingegen eine sequentielle Chiffre, die auf einer wirklich zufälligen Schlüsselfolge basiert. Dieses aus Abschnitt 2.1.3 her bekannte Kryptosystem ist der sogenannte one-time-pad. Die Zufallsfolge, die beim one-time-pad als Schlüssel dient, muß mindestens so lang wie die zu verschlüsselnde Nachricht sein und darf nur ein einziges Mal verwendet werden. Daher erfordert dieses Verfahren einen extrem hohen Aufwand für die sichere Schlüsselverteilung und ist aus diesem Grund für die meisten Anwendugen unpraktikabel. Es liegt nun nahe, die genannte Schwierigkeit zu umgehen, indem man nach dem Vorbild des one-time-pad Stromchiffren konstruiert, die statt einer wirklichen Zufallsfolge sogenannte Pseudozufallsfolgen verwenden. Unter einer Pseudozufallsfolge versteht man dabei eine Folge von Zeichen, die mittels eines deterministischen Prozesses aus einem relativ kurzen Initialisierungswert erzeugt wird und gewisse Eigenschaften einer echt zufälligen Folge aufweist. Wenn beide Kommunikationspartner über identische Generatoren verfügen, muß nur noch der Initialwert und die gewählte Parametrisierung des Generators als Schlüssel verteilt werden. Die eigentliche Schlüsselfolge kann dann an beiden Enden des Kanals erzeugt werden. In Abbildung 4.2 ist der prinzipielle Aufbau eines derartigen sequentiellen Chiffrier-Systems gezeigt. Da Kryptoalgorithmen heute in der Regel mit Hilfe digitaler Elektronik realisiert werden, sind Klartext- und Schlüsselfolge in den meisten Fällen binär. Man überlegt sich leicht, daß unter den 16 booleschen Funktionen in zwei Variablen nur das XOR (Addition modulo 2) oder das negierte XOR als Verknüpfungsfunktionen in Frage kommen. Das Studium der sequentiellen Chiffren besteht somit in der Hauptsache aus der Untersuchung von Pseudozufallsgeneratoren. Im nächsten Abschnitt werden wir einige wichtige Kriterien für die Zufälligkeit“ von deterministisch erzeugten Folgen betrachten. Da die ” meisten für Hardware-Implementierungen vorgesehenen Generatoren auf Schieberegistern 34 KAPITEL 4. STROMCHIFFREN a2 a1 e * a0 e :e a10 e 6 a9 a3 :e 1e a11 e I e a8 je a4 e9 U ea5 e Periode p = 9 a6 a7 Abbildung 4.3: Typisches Beispiel für eine durch einen endlichen Automaten erzeugte Pseudozufallsfolge basieren, werden sich zwei Abschnitte dieses Kapitels mit dieser Technik beschäftigen. In Abschnitt 4.2 werden zunächst lineare Schieberegisterfolgen untersucht, die mathematisch sehr gut beherrschbar sind, einige für Kryptoanwendungen günstige Eigenschaften aufweisen aber, wie man seit langem weiß, nicht ausreichend sicher sind. Später werden wir sehen, daß diese Art von Pseudozufallsgeneratoren kryptographisch nicht sicher sind, dennoch ist das Studium der linear rückgekoppelten Schieberegister für die Praxis wertvoll, da sich zahlreiche der nichtlinearen und hoffentlich sicheren Verfahren stark auf diese Theorie stützen. Im letzten Abschnitt dieses Kapitels werden schließlich Verfahren zur Konstruktion und Analyse nichtlinearer Pseudozufallsgeneratoren vorgestellt und einige der neueren Ergebnisse auf diesem Gebiet zitiert. 4.1 Pseudozufallsfolgen Nimmt man bei der Entwicklung von sequentiellen Chiffren den one-time-pad als Idealbild, so stellt das Hauptproblem die Approximation einer zufälligen Folge durch eine Pseudozufallsfolge dar, die durch einen deterministischen Prozeß generiert wird. Die Erzeugung von echten Zufallsfolgen“ vor Ort, z.B. durch Münzwurf mit einer ” idealen Münze, ist in der Praxis zum einen zu teuer, und zum anderen ist die Verteilung der Zufallsfolge an Sender und Empfänger extrem aufwendig, da sie ja zumindest die gleiche Länge haben muß wie die zu sendende Nachricht. Probleme bei der Verwendung von Pseudozufallsgeneratoren ergeben sich aus dem Determinismus des generierenden Prozesses, der durch einen endlichen Automaten dargestellt werden kann. Der endliche Automat, der die Pseudozufallsfolge (ai ) erzeugt, ist per constructionem autonom, d.h. nach einer Initialisierung ist der Takt die einzige Eingabe, und er hat nur endlich viele (innere) Zustände. Damit ist aber klar, daß die durch diesen endlichen Automaten erzeugte Folge (ai ) periodisch sein muß mit einer gewissen Periode p (siehe Abbildung 4.3). Damit nun die sequentielle Chiffrierung mit einer Pseudozufallsfolge (ai ) ein hinreichendes Maß an Sicherheit bietet, muß zumindest gelten, daß die Periode p der Folge (ai ) 4.1. PSEUDOZUFALLSFOLGEN 35 größer als die Länge der zu chiffrierenden Nachricht ist. Ein weiteres Problem bei der Verwendung von Pseudozufallsfolgen ist die Frage, wann eine solche Folge, die, wie wir gesehen haben, aus einer Vorperiode und der zyklischen Wiederholung einer endlichen Folge aufgebaut ist, als zufällig“ bzw. pseudozufällig“ ” ” bezeichnet werden soll. In letzter Konsequenz besteht die Beantwortung dieser Frage in einer Definition der Eigenschaft zufällig“ für endliche Folgen. ” 4.1.1 Definition der Pseudozufälligkeit: Die Golombschen Axiome Betrachtet man das Beispiel des Münzwurfs mit einer idealen Münze, um Kriterien abzuleiten, wann eine Folge als pseudozufällig“ betrachtet werden kann, so gelangt man ” unmittelbar zu einer Reihe von Eigenschaften, die man von einer Zufallsfolge, die ein ideales Münzwurfexperiment simuliert, erwarten wird: 1. Gleiche Wahrscheinlichkeit für Nullen und Einsen: p(0) = p(1) = 12 . 2. Die Folge soll binomialverteilt sein. 3. Die Wahrscheinlichkeitsverteilung soll stationär, die einzelnen Münzwürfe“ un” abhängig sein. Es ist ganz offensichtlich, daß die oben genannten Eigenschaften nicht ohne weiteres für die Charakterisierung von pseudozufälligen Folgen herangezogen werden können. Stattdessen benötigt man eine geeignete Abwandlung dieser Eigenschaften für den Fall eines deterministischen Automaten. Die von S.W.Golomb in [59] angegebenen Pseudozufallskriterien, haben als solche eine große Bedeutung. Sie werden im folgenden vorgestellt und motiviert. Das erste Kriterium leitet sich aus der oben schon erwähnten Tatsache ab, daß man bei wirklich zufälligen Folgen im Mittel die gleiche Anzahl von Nullen und Einsen beobachtet. Es lautet: G1: In jedem Zyklus der Folge unterscheidet sich die Anzahl der Einsen von der Anzahl p der Nullen p um höchstens eins. D.h. die Anzahl von Einsen in einer Periode p ist 2 oder 2 Einen Abschnitt aufeinanderfolgender identischer Zeichen maximaler Länge bezeichnen wir als run. Das zweite Kriterium von Golomb stellt eine Forderung an die Anzahl der runs von Einsen und runs von Nullen in einer Periode der Folge. Sie entspricht der oben genannten 2. Eigenschaft der Binomialverteilung des Münzwurfexperiments: G2: In einem Zyklus haben 21i aller runs die Länge i. Für jede Länge gibt es gleichviele runs von Einsen und Nullen. 36 KAPITEL 4. STROMCHIFFREN C(τ ) 1 0 p τ Abbildung 4.4: Autokorrelationsfunktion für eine Pseudozufallsfolge Die Forderung G2 ist für jedes i sinnvoll, für das die Periode insgesamt mindestens 2i+1 runs (jeder Länge) enthält. Für die Formulierung des dritten Kriteriums muß zunächst die Autokorrelationsfunktion einer Folge definiert werden. Sei (ai )i≥0 eine Folge der Periode p und (ai+τ )i≥0 die um τ verschobene Folge. Man definiert nun: A(τ ) : = Anzahl der übereinstimmenden Glieder pro Zyklus zwischen den Folgen (ai )i≥0 und (ai+τ )i≥0 . D(τ ) : = p − A(τ ) = Anzahl der nicht übereinstimmenden Glieder pro Zyklus. Definition 4.1 Die Autokorrelationsfunktion ist dann für jedes τ definiert als C(τ ): = A(τ ) − D(τ ) . p Für τ = 0 ist der Wert der Funktion für jede Folge offensichtlich gleich Eins. Vergleicht man gegeneinander verschobene Positionen einer Folge, deren einzelne Glieder unabhängig voneinander durch einen Zufallsprozeß entstanden sind, so treten die Paare (0,0), (0,1), (1,0) und (1,1) jeweils mit der Wahrscheinlichkeit 21 · 21 = 14 auf. Man erwartet daher für τ 6= 0 im Mittel Übereinstimmungen in etwa der Hälfte der Fälle und somit einen nahezu konstanten Verlauf der Autokorrelationsfunktion außerhalb der Stelle Null. Diese Beobachtung fließt in die dritte Forderung für pseudozufällige Folgen ein. G3: Die Autokorrelationsfunktion C(τ ) der Folge ist konstant für Werte von τ zwischen 1 und p − 1 (offensichtlich ist C(τ ) = 1 für τ = 0 und alle Vielfachen der Periode p), siehe Abbildung 4.4. 4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER 37 Bemerkung 4.2 Die Postulate G1, G2 und G3 werden die Golombschen Axiome genannt. Eine periodische Folge, die die Golombschen Axiome erfüllt, heiße Pseudozufallsfolge. Die drei Golombschen Axiome sind sehr strikt, da sie die Erfüllung genau vorgegebener Werte fordern, während man bei wirklich zufälligen Folgen ja lediglich die ungefähre Übereinstimmung mit diesen Werten beobachtet. Immerhin wird sich zeigen, daß es (zumindest für gewisse Perioden) umfangreiche Mengen von Folgen gibt, die Golombs Kriterien erfüllen. Beispiel 4.3 Ein einfaches Beispiel für eine periodische Folge, die G1, G2 und G3 erfüllt, erhält man durch Wiederholen des folgenden Zyklus der Länge 15: 100011110101100 Der Zyklus enthält acht Einsen und sieben Nullen, erfüllt also die Anforderung G1. Da der Zyklus insgesamt acht runs aufweist, macht G2 eine Aussage über die runs der Längen 1 und 2. Mit je zwei runs von Einsen bzw. Nullen der Länge 1 und je einem run von Einsen bzw. Nullen der Länge 2 pro Zyklus erfüllt die Folge auch dieses Kriterium. Es ist eine leichte Rechenübung, sich davon zu überzeugen, daß die Folge mit jeder ihrer um τ = 1, 2, ..., 14 verschobenen Kopien genau sieben Übereinstimmungen pro Zyklus hat 1 und die Autokorrelationsfunktion demnach für alle diese Argumente jeweils den Wert − 15 annimmt. 4.2 Linear rückgekoppelte Schieberegister Für die Realisierung endlicher Automaten durch elektronische Schaltwerke bietet sich die Darstellung ihrer Zustände durch binäre Speicherbausteine (Flip-Flops) an. Verfügt eine Maschine über n solcher Speicherzellen, so kann sie 2n verschiedene Zustände annehmen. Die Zustandsüberführungsfunktion kann in diesem Fall durch n boolesche Schaltfunktionen f0 , f1 , ..., fn−1 dargestellt werden, die jeweils die Menge {0, 1}n in die Menge {0, 1} abbilden. Eine erhebliche Vereinfachung sowohl bezüglich der Implementierung als auch für die Beschreibung endlicher Maschinen ergibt sich durch die Beschränkung auf rückgekoppelte Schieberegister, auf die wir gleich zurückkommen. Zunächst sollen jedoch Zufallsgeneratoren allgemeinerer Art behandelt werden. 4.2.1 Pseudozufallsgeneratoren allgemeiner Art Eine Möglichkeit einen Pseudozufallsgenerator zu bauen, wäre die Konstruktion eines mehr oder weniger wirr verdrahteten Bausteins oder eines undurchschaubaren Algorithmus, der eine Zahlenfolge liefert. Es gibt jedoch genügend Gegenbeispiele, die zeigen, daß dieser Weg, der am besten mit Pseudozufall durch Chaos“ charakterisiert werden kann, nicht geeignet ist, gute ” 38 KAPITEL 4. STROMCHIFFREN - A - x(t) - C # - y(t) "! Abbildung 4.5: Lineares System Zufallsfolgen zu erstellen. Zum einen besteht die Gefahr, daß Zufallsfolgen mit kurzen Zyklen erzeugt werden, und zum anderen ist eine Bewertung der kryptographischen Stärke der so entstandenen Generatoren äußerst schwierig, wenn nicht gar unmöglich. Deshalb ist nicht anzuraten, Pseudozufallsgeneratoren pseudozufällig“ zu generieren. ” The moral of this story is that random should not be generated with a method ” chosen at random. Some theory should be used.“ (vgl. [72]) Die Beschränkung auf lineare Systeme, die sehr gut untersucht sind, zur Generierung von Pseudozufallsfolgen ermöglicht auf jeden Fall eine Sicherheitsvalidierung. Bei einem linearen System wird im Gegensatz zu nichtlinearen Systemen die Zustandsüberführungsfunktion durch eine Matrix A beschrieben. Abbildung 4.5 illustriert den Sachverhalt. Den Anfangszustand bezeichnen wir mit x(0). Die Folgezustände erhält man per Zustandsüberführung x(t + 1) = A · x(t), wobei x(t) ein Element eines endlichdimensionalen Vektorraumes, meist IFn2 , ist. Die Ausgabe y(t) ergibt sich aus x(t) durch eine Abbildung vom n-dimensionalen Vektorraum in den Grundkörper, die durch eine (1 × n)-Matrix C mit y(t) = C · x(t) beschrieben wird. Betrachtet man das so beschriebene lineare System über die Zeit, so ergibt sich • für den Zustand: x(0) → Ax(0) → A2 x(0) → A3 x(0) → · · · • für die Ausgabe: Cx(0) → CAx(0) → CA2 x(0) → CA3 x(0) → · · · Ersetzt man in diesem System A durch T AT −1 und C durch CT −1 , wobei T regulär ist, und startet dieses System im Zustand T x(0), so ergibt sich • für den Zustand: T x(0) → TAT −1T x(0) → TAT −1 TAT −1 T x(0) → · · · | {z } | {z } =TAx(0) =TA2 x(0) • für die Ausgabe: CT −1 T x(0) → CT −1TAx(0) → CT −1TA2 x(0) → · · · | {z } | {z } | {z } =Cx(0) =CAx(0) =CA2 x(0) Die Veränderung des Systems hat also keinen Einfluß auf die Ausgabefolge. Diese Beobachtung führt uns zu folgendem Satz, der an dieser Stelle vielleicht noch etwas verblüfft: Beliebige lineare Systeme sind nicht mächtiger als linear rückgekoppelte Schieberegister. 4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER a0 a1 39 an−1 a2 • • • ? ? ? cn cn−1 cn−2 ? ? • • • ? ? c1 ? Σ Abbildung 4.6: Linear rückgekoppeltes Schieberegister Eine exakte Formulierung und den Beweis dieses Satzes verschieben wir auf den nächsten Abschnitt, da uns hier die Beschreibung von linear rückgekoppelten Schieberegistern noch fehlt. 4.2.2 Beschreibung von linear rückgekoppelten Schieberegistern Ein linear rückgekoppeltes Schieberegister, im folgenden abgekürzt LFSR für Linear Feedback Shift Register genannt, besteht aus einer Reihe seriell gekoppelter Speicherzellen (im binären Fall Flip-Flops). Bei jedem Takt wird der Inhalt der Zellen um eine Stelle weitergeschoben. Der Inhalt der letzten Zelle wird ausgegeben. Die Eingabe für die erste Speicherzelle wird in Abhängigkeit vom gesamten Zustand des Schieberegisters durch die sogenannte Rückkopplungsfunktion bestimmt. Abbildung 4.6 zeigt das Blockschaltbild eines solchen rückgekoppelten Schieberegisters. Die sogenannten Rückkopplungskoeffizienten c1 , ..., cn definieren das Rückkopplungspolynom; der Wert n gibt die Länge des LFSR an. Definition 4.4 Die Rückkopplungsfunktion oder das Rückkopplungspolynom eines LFSR über dem Körper IFq ist gegeben durch f (x) = 1 − n X ci xi i=1 wobei c1 , ..., cn ∈ IFq die Rückkopplungskoeffizienten des LFSRs sind. Betrachtet man LFSR über dem Körper IF2 , so können die ci die Werte 0 und 1 annehmen, d.h. es ist eine Verbindung vorhanden oder nicht. wird eindeutig beschrieben durch das Rückkopplungspolynom f (x) = 1 − PnDas LFSR i i=1 ci x und den Anfangszustand a0 , ..., an−1 oder den Zustand des LFSR zu irgendeinem Zeitpunkt t, der mit at = (at , ..., at+n−1 ) bezeichnet wird. 40 KAPITEL 4. STROMCHIFFREN ? mod 2 Abbildung 4.7: Schieberegister für Beispiel 1 Die in Abbildung 4.6 dargestellte Rückkopplung bestimmt dann den Zustand des LFSR zum Zeitpunkt t + 1 folgendermaßen: t+1 a = (at+1 , ..., at+n ) = (at+1 , ..., at+n−1 , n X i=1 ci · at+n−i ) (4.1) Das heißt das letzte Speicherelement (rechts) bekommt einen neuen Wert zugeordnet, die Werte at+1 , ..., at+n−1 werden um eine Zelle nach links verschoben und at wird ausgegeben. Da es sich hier um eine lineare Abbildung handelt, kann die obige Zustandsüberführung durch Matrizenmultiplikation beschrieben werden: 0 1 0 ··· 0 . .. .. .. ... . . . .. .. .. .. (4.2) at+1 = A · at mit A = . . 0 . 0 ··· ··· 0 1 cn cn−1 ··· c2 c1 Die Matrix A wird als Rückkopplungsmatrix bezeichnet. Beispiel 4.5 1. In Abb. 4.7 ist ein LFSR über dem Körper IF2 gegeben. Das Rückkopplungspolynom dieses LFSR ist f (x) = 1 − x2 − x4 . Wir betrachten das Zustandsdiagramm für verschiedene in Abbildung 4.8 aufgeführte Anfangszustände. Wählt man den Anfangszustand a0 = (1, 1, 1, 1) so ist die resultierende SR-Folge periodisch mit der Periode 6. Für den Anfangszustand a0 = (0, 0, 0, 0) wird nur ein Zustand angenommen, nämlich der Nullzustand, in dem das LFSR immer verbleibt. Die erzeugte Nullfolge ist kryptographisch natürlich unbrauchbar. Aus diesen Gründen muß vermieden werden, daß ein LFSR den Nullzustand erreicht. Der Anfangszustand a0 = (0, 0, 0, 1) führt auf eine SR-Folge mit der Periode 6. 2. Gegeben sei das LFSR aus Abb. 4.9 über dem Körper IF2 mit dem Anfangszustand a0 = (1, 1, 1, 1). 4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER 41 ? ? ? ? 1111 1110 1100 1001 0011 0111 0000 0001 0010 0101 1010 0100 1000 0110 1101 1011 Abbildung 4.8: Zustandsdiagramme für Schieberegister aus Abbildung 4.7 ? mod 2 Abbildung 4.9: Schieberegister für Beispiel 2 ? 1111 1110 1101 1010 0101 1011 0110 1100 ? 1001 0010 0100 1000 0001 0011 0111 Abbildung 4.10: Zustandsdiagramm für Schieberegister aus Abbildung 4.9 Das so initialisierte Schieberegister durchläuft der Reihe nach die Zustände aus Abb. 4.10. Die resultierende SR-Folge hat die Periode 15. Es wird sich zeigen, daß dies die maximal mögliche Periode ist, die mit einem LFSR der Länge 4 erreicht werden kann. Auf die wichtige Frage, wie man zu einem LFSR die möglichen Perioden 42 KAPITEL 4. STROMCHIFFREN bestimmt, die eine mit diesem LFSR erzeugte SR-Folge haben kann, gehen wir im Abschnitt 4.2.3 detailliert ein. An dieser Stelle können wir den im vorangegangenen Abschnitt erwähnten Satz sauber formulieren und beweisen. Wir erinnern dazu daran, daß ein beliebiger linearer Generator durch eine Zustandsüberführungsmatrix A der Dimension n × n und eine (1 × n)-Matrix C zur Abbildung des Zustandsvektors auf das Ausgabeelement beschrieben werden kann. Satz 4.6 Ein lineares Systeme sei gegeben durch A ∈ IFqn×n und C ∈ IFnq \ {0}. Dann läßt sich die Ausgabe dieses Systems auch durch ein linear rückgekoppeltes Schieberegister der Länge n erzeugen. Beweis: Wähle m maximal, so daß C, CA, CA2 , . . . , CAm−1 linear unabhängig ist. Im Fall m < n ergänze C, CA, CA2 , . . . , CAm−1 zu einer Basis von IFnq und betrachte das lineare System nach Transformation in diese Basis, analog dem folgenden Fall. Wir beschränken uns hier auf den Fall m = n: Die Matrix C CA CA2 T := .. . n−1 CA ist dann regulär. Dann ergibt sich: T AT −1 = mit CAn−1 0 0 0 .. . C CA CA2 .. . 1 0 0 .. . ·A· 0 1 0 .. . C CA CA2 .. . CAn−1 0 0 1 .. . = 0 0 0 0 cn cn−1 cn−2 cn−3 −1 = CA CA2 CA3 .. . CAn ... 0 ... 0 ... 0 .. .. . . ... 1 . . . c1 (cn , ..., c1 ) = C · An · T −1 . C · T −1 = (10...0) · C CA CA2 .. . CAn−1 −1 4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER 43 Beachte bei den obigen Umformungen, daß C CA .. . CAn−1 · C CA .. . CAn−1 −1 = e1 e2 .. . en also insbesondere CAi · T −1 = ei+1 für i = 0, . . . , n − 1. Dabei bezeichnet ei den i-ten Einheitsvektor der Länge n. Die Matrix T AT −1 ist identisch mit der Rückkopplungsmatrix eines LFSR aus (4.2). Da, wie wir gesehen haben, die Ausgabefolge durch die Veränderung des Systems mittels T unberührt bleibt, d.h. y(t) = C · x(t), folgt die Behauptung. Betrachtet man die von einem LFSR erzeugten Folgen, so stellt man fest, daß sich die Folgenglieder aj für alle j ≥ n aus untenstehender Rekursionsgleichung ergeben: an+k = n X ci an+k−i i=1 k ∈ IN0 . (4.3) Dies ist äquivalent zu: 0= n X i=0 ci an+k−i k ∈ IN0 , wobei c0 : = −1. (4.4) Die Gleichung 4.4 ist die lineare Rekursion für SR-Folgen und spielt eine große Rolle. Jede Folge (ai )∞ i=0 , für die für geeignetes n und Koeffizienten c1 , ..., cn die Gleichung 4.4 gilt, ist eine SR-Folge und umgekehrt. Man erkennt ferner die Ähnlichkeit von (4.4) zum zugehörigen Rückkopplungspolynom n n P P f (x) = 1 − ci xi = − ci xi mit c0 = −1. i=1 i=0 Neben dem Rückkopplungspolynom f (x) oder der Rückkopplungsmatrix A aus (4.2) zur Beschreibung von LFSR wird zuweilen auch das charakteristische Polynom von A verwendet. Dabei besteht folgender Zusammenhang, den wir als Satz formulieren. Satz 4.7 Gegeben sei ein LFSR mit Rückkopplungspolynom f (x) = 1 − cn 6= 0, und Rückkopplungsmatrix A. Dann gilt: 1 χA (x) = x · f x n Dies bedeutet, daß χA (x) das zu f (x) reziproke Polynom ist. Pn i i=1 ci x , mit 44 KAPITEL 4. STROMCHIFFREN Beweis: 0 .. . A = ... 0 cn χA (x) : = det(xI 1 .. . ··· cn−1 − A) ··· 0 . .. . .. .. . 0 0 1 0 .. . .. . ··· ··· c2 n Für das charakteristische Polynom von A gilt χA = x − Induktion nach n: c1 n−1 X cn−i xi . Dies zeigt man durch i=0 n = 2: Es gilt: det x −1 −c2 x − c1 = x(x − c1 ) − c2 = x2 − c1 x − c2 . n − 1 → n: Wende den Entwicklungssatz für Determinanten an: χA (x) = det x 0 .. . 0 −cn = x · det −1 0 ··· 0 .. .. .. .. . . . . .. .. .. . . . 0 ··· 0 x −1 −cn−1 · · · −c2 x − c1 x 0 .. . 0 −cn−1 −1 .. . .. . ··· −cn−2 n+1 +(−cn ) · (−1) · det = x· xn−1 − n−2 X i=0 | 0 ··· 0 .. .. .. . . . .. .. . . 0 0 x −1 · · · −c2 x − c1 −1 x 0 .. . 0 c(n−1)−i · xi ! ··· ··· 0 .. .. . . .. .. .. . . . .. .. . . 0 · · · 0 x −1 {z } 0 .. . .. . .. . =(−1)n−1 − cn 4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER n = x − = xn − = xn − n−2 X i=0 n−1 X i=1 n−1 X i=0 45 c(n−1)−i · xi+1 − cn cn−i · xi − cn cn−i · xi Was die obige Formel für χA (x) zeigt. Dies ist das reziproke Polynom zu f (x), da ! n−1 n n X X X n n−i n −i n −1 n =x − ci x =x − cn−i xi , ci x x · f (x ) = x 1 − i=1 i=1 i=0 so erkennt man die Gleichheit mit χA (x), wobei cn 6= 0 sein muß. Für praktische Implementierungen von Schieberegistern, vor allem in Hardware, ist die oben eingeführte Form von LFSRs nicht so gut geeignet. Es müssen in jedem Takt die Zustandsbits aufaddiert werden, bei denen das Rückkopplungspolynom einen Koeffizienten ungleich 0 hat. In VLSI führt das zu einer großen Schaltungstiefe und damit zu einer langsamen Taktrate des ASICs. Eine andere Art dieselbe Folge zu erzeugen wird durch eine Schaltung realisiert, bei der die (gleich vielen) Additionen besser parallelisierbar sind. Diese Schaltung realisiert eine Multiplikation mit x modulo des charakteristischen Polyn−1 X n noms χA (x) = x − cn−i · xi . i=0 Definition 4.8 Die Schaltung aus Abb. 4.11 heißt Multiplikationsregister. Sie realisiert n−1 X n in einem Taktzyklus die Multiplikation mit x modulo des Polynoms x − cn−i · xi . i=0 Satz 4.9 Die Folge (ai )i≥0 sei durch ein LFSR mit dem Rückkopplungspolynom f (x) = n X 1− ci xi vom Grad n erzeugt. Dann läßt sich (ai )i≥0 auch durch ein Multiplikationsrei=1 gister modulo des Polynoms xn − n−1 X i=0 cn−i · xi erzeugen. Beweis: Um die Äquivalenz der beiden Schaltungen zu zeigen benutzen wir die Äquivalenz von linearen Systemen mit zueinander ähnlichen Übergangsmatrizen, die auf Seite 38 beschrieben ist. 46 KAPITEL 4. STROMCHIFFREN x0 cn x n-2 x1 cn-1 c2 x n-1 c1 Abbildung 4.11: Dieses Multipliktionsregister realisiert die Multiplikation mit x modulo n−1 X n des Polynoms x − cn−i · xi i=0 Das Multiplikationsregister ist als lineares System beschrieben durch die Übergangsmatrix 0 0 . . . 0 cn 1 0 . . . 0 cn−1 . . .. . . cn−2 M := 0 1 . . . . .. .. . . . . 0 0 . . . 0 1 c1 und den Vektor D = (0, . . . , 0, 1) der Länge n, mit dem das Ausgabezeichen aus dem internen Zustand berechnet wird. Jetzt kann man analog dem Beweis von Satz 4.6 vorgehen; dazu müßte allerdings e1 · M n · T −1 für die dort angegebene Matrix T berechnet werden. Über eine andere Basistransformation läßt sich die Behauptung einfacher zeigen. Die Matrix A zum LFSR ist in Gleichung 4.2 gegeben. Betrachte nun die Matrix 0 ... 0 cn 0 .. . . . . cn cn−1 0 T := 0 . . . . . . ... ... . cn cn−1 . . . c2 0 0 0 ... 0 1 Die Matix T ist wegen cn 6= 0 invertierbar. Berechne nun mit der Begleitmatix A aus Gleichung 4.2: 0 ... 0 0 cn 0 ... 0 cn cn−1 .. .. = MT .. .. .. TA = . . . . . 0 cn cn−1 . . . c2 cn cn−1 . . . c2 c1 4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER 47 womit die Ähnlichkeit der beiden Matrizen gezeigt ist. Der Vektor, der aus dem internen Zustand des LFSR die Ausgabe berechnet ist C = (1, 0, . . . , 0); durch die Schiebestruktur des LFSR liefert aber auch jeder andere Einheitsvektor dieselbe Folge, lediglich der Start ist an einer anderen Stelle. Wegen der Blockdiagonalgestalt von T mit 2 Blöcken der Größe n − 1 bzw. 1 hat auch −1 T diese Form. Betrachtet man C = (0, . . . , 0, 1), dann berechnet sich der Auswahlvektor des Multiplikationsregisters zu T −1 · C = (0, . . . , 0, 1), was zu zeigen war. Um diese Äquivalenz für die Analyse von Schieberegistern ausnutzen zu können führen wir zunächst die algebraische Struktur eines endlichen Körpers ein. 4.2.3 Endliche Körper und Schieberegister . Satz 4.10 Es sei p Primzahl, dann ist IFp := Z/ p Z/ ein Körper mit p Elementen. Beweis: Die Abgeschlossenheit liefert die Ringstruktur. Die Existenz des Inversen zu 1 ≤ a ≤ p−1 wird über den erweiterten euklidschen Algorithmus gezeigt: 1 = ggT (a, p) = a b + c p und damit 1 ≡ a b mod p. Lemma 4.11 Es sei p Primzahl, f, g ∈ IFp [x], dann gilt (f + g)p = f p + g p . Beweis: Beachte 0 mod p. p i = p·(p−1)·...·(p−i+1) 1·2·...·i ist für i = 1, . . . , p − 1 durch p teilbar und deshalb n Satz 4.12 Es sei p Primzahl, n ≥ 1 und N die Menge der Nullstellen von xp −x ∈ IFp [x] im Zerfällungskörper. Dann gilt: N ist ein Körper mit pn Elementen. n n Beweis: Es seien α, β ∈ N, dann gilt αp = α und β p = β. Damit berechnet man: n • (α ± β)p = αp ± β p = α ± β n n n • (α · β)p = αp · β p = α · β n n n n n • αp = α ⇒ αp −2 = α−1 wobei die Rechnung im Zerfällungskörper von xp − x durchgeführt wird (dort ist auch die Existenz von α−1 gesichert). n αp −2 ∈ N ergibt sich direkt. 48 KAPITEL 4. STROMCHIFFREN Weiter sind die neutralen Elemente 0, 1 in N enthalten, so daß nur noch zu zeigen bleibt: n #N = pn , also daß alle Nullstellen von xp − x verschieden sind. Betrachte dazu die Ableitung ′ n n xp − x = pn · xp −1 − 1 = −1 6= 0. n Daher hat xp − x keine mehrfachen Nullstellen. . Satz 4.13 Es sei f (x) ∈ IFp [x] irreduzibel vom Grad n. Dann gilt: IFp [x] (f (x)) ist ein Körper mit pn Elementen. Beweis: Es sind die Körperaxiome nachzuprüfen. Als Quotientenring ist die Abgeschlossenheit bzgl. Addition/Multiplikation gesichert und es bleibt lediglich die Existenz von Inversen zu zeigen. Es sei a(x) ∈ IFp [x] \ {0} vom Grad kleiner n. Aus der Irreduzibilität von f (x) läßt sich über den euklidschen Algorithmus q1 (x), q2 (x) ∈ IFp [x] berechnen mit 1 = ggT (f (x), a(x)) = q1 (x) · f (x) + q2 (x) · a(x) ≡ q2 (x) · a(x) mod f (x), was die Existenz von a−1 zeigt. Beobachtung 4.14 Die Folge (ai )i≥0 sei durch ein Multiplikationsregister mit Anfangszustand (α0 , . . . , αn−1 ) und Rückkopplungspolynom f (x) erzeugt. Dann ist ai = (α · xi )n n−1 . X i I F [x] p die letzte Komponente von α · x ∈ IFpn ≡ αi xi . (f (x)), wobei α = i=0 Im folgenden stellen wir noch einige Rechenregeln und Eigenschaften von endlichen Körpern und Polynomen über endlichen Körpern zusammen. n Lemma 4.15 Es sei α ∈ IFpn , dann gilt αp = α. Beweis: Für 0 ist die Gleichung offensichtlich erfüllt. Alle Elemente α 6= 0 bilden eine multiplikative Gruppe; nach dem kleinen Satz von Fermat n gilt also αp −1 = 1. Bemerkung 4.16 Es sei f (x) ∈ IFp [x] und α Nullstelle von f (x). Dann ist auch αp Nullstelle von f (x) für alle j ≥ 0. j Beweis: Es gilt: 0= n X i=0 i ai α = n X i=0 ai α i !p = n X i=0 api α ip = n X ai (αp )i , i=0 wobei in der letzten Umformung für api = ai Lemma 4.15 verwendet wurde. Mit diesen Hilfsmitteln können wir den Satz über die Existenz und Eindeutigkeit von endlichen Körpern zeigen. 4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER 49 Satz 4.17 Es sei p Primzahl und n ≥ 1. Dann existiert ein Körper mit pn Elementen und alle Körper mit pn Elementen sind isomorph. Beweis: Die Existenz wurde bereits in Satz 4.12 gezeigt. Sei α ∈ IF, einem Körper mit n n pn Elementen, dann gilt αp = α. Daher läßt sich α als Nullstelle des Polynoms xp − x n in den Zerfällungskörper von xp − x einbetten. Da Zerfällungskörper bis auf Isomorphie eindeutig sind, ist die Behauptung bewiesen. Eine, z. B. für die Darstellung von LFSR-Folgen, sehr hilfreiche Abbildung ist die Spur eines Körperelements. Definition 4.18 Die Abbildung trn,p : IFpn → IFp n−1 X i β 7→ βp i=0 heißt die Spur (trace) von β über IFp . Um zu verifizieren, daß die Spur von β über IFp tatsächlich in IFp liegt, betrachten wir !p n−1 n−1 n−1 X i+1 X X i p pi p βp . β = = trn,p (β) = β i=0 i=0 i=0 Damit ist trn,p (β) ∈ IFp , da ein Element γ ∈ IFp gdw. γ p = γ. Die Spur nimmt alle Werte aus IFp gleich häufig an. Dies zu zeigen ist etwas aufwendiger, für unsere Zwecke genügt aber das folgende, sehr einfach zu beweisende Lemma: Lemma 4.19 In jedem endlichen Körper IFpn existiert ein α ∈ IFpn mit trn,p (α) 6= 0. Beweis: Wir betrachte das Polynom n−1 X i=0 i xp ∈ IFp [x]. Als Polynom von Grad pn−1 hat es maximal pn−1 verschiedene Nullstellen, also gilt für mindestens pn − pn−1 der Elemente α ∈ IFpn , daß trn,p (α) = f (α) 6= 0. Die Spur ist eine IFp -lineare Abbildung. Dies zeigt der folgenden Satz. Satz 4.20 Für die Spur von β über IFp gilt: trn,p (aα + bβ) = a · trn,p (α) + b · trn,p (β) ∀a, b ∈ IFp , ∀α, β ∈ IFpn Beweis: Kann durch direktes Nachrechnen durchgeführt werden. Es werden dabei die obigen Rechenregeln in endlichen Körpern benötigt. Um eine einfache Beschreibung von Schieberegisterfolgen über die Spurabbildung von endlichen Körpern zeigen zu können benötigen wir noch das folgende Lemma: 50 KAPITEL 4. STROMCHIFFREN Lemma 4.21 Es sei α ∈ IFpn Nullstelle eines irreduziblen Polynoms f (x) ∈ IFp [x] vom Grad n und β ∈ IFpn , dann gilt: trn,p (α0 · β) = trn,p (α1 · β) = . . . = trn,p (αn−1 · β) = 0 ⇒ β = 0. Beweis: Es sei β 6= 0 mit trn,p (α0 ·β) = trn,p (α1 ·β) = . . . = trn,p (αn−1 ·β) = 0 und γ ∈ IFpn n−1 X −1 ci αi wird als Linearkombination der Basiselemente beliebig. Das Element β · γ = i=0 α0 , . . . , αn−1 dargestellt (mit c0 , . . . , cn−1 ∈ IFp ). Dann folgt: ! n−1 n−1 X X trn,p (γ) = trn,p (β · β −1 · γ) = trn,p ci · α i · β = ci · trn,p αi · β = 0 i=0 i=0 für alle γ ∈ IFpn , was Lemma 4.19 widerspricht. Nun können wir den folgenden Satz formulieren, der die Beziehung zu LFSR-Folgen herstellt: Pn−1 Satz 4.22 Es sei f (x) = xn − i=0 cn−i ·xi ∈ IFp [x] das irreduzible Rückkopplungspolynom eines Multiplikationsregisters der Länge n und α ∈ IFpn eine Nullstelle davon, dann sind die von dem Multiplikationsregister erzeugten Folgen genau die Folgen aj = trn,p (δαj ), j ≥ 0. (Der Anfangszustand des Registers steht in direkter Beziehung zu δ ∈ IFpn .) Beweis: Zunächst zeigen wir, daß die Folge (aj )i≥0 der Schieberegisterrekursion 0 = n X ci · an+j−i genügt: i=0 n X i=0 ci · an+j−i = = n X i=0 n−1 X k=0 = = ci n−1 X k=0 n−1 X k=0 δp n−1 X k=0 n X k i=0 δαn+j−i k n+j−i ci α p k δ p · α(p k pk δ p · α(p k) j n X i=0 k) j ·0 k n−i ci α p k da mit α auch αp Nullstelle des charakteristischen Polynoms ist = 0 Damit ist gezeigt, daß aj eine LFSR-Folge zum Polynom f (x) ist. 4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER 51 Seien nun umgekehrt b0 , . . . , bn−1 die ersten n Glieder einer LFSR-Folge zu f (x). Man betrachte das lineare Gleichungssystem für c0 , . . . , cn−1 : b0 = b1 = .. . bn−1 = n−1 X i=0 n−1 X i=0 n−1 X i=0 ci · trn,p (αi ) = trn,p ci · trn,p (αi+1 ) = trn,p ci · trn,p (αi+n−1 ) Die zugeordnete Matrix n−1 X i=0 n−1 X i=0 = trn,p n−1 X i=0 trn,p (α0 ) trn,p (α1 ) .. . ... ... ci · α i ! ci · αi+1 =: trn,p δ · α ! = trn,p δ · α ci · αi+n−1 trn,p (αn−1 ) trn,p (αn ) .. . trn,p (αn−1 ) . . . trn,p (α2 n−2 ) 0 ! ! ! 1 = trn,p δ · α n−1 ! ist invertierbar. Um dies zu sehen betrachten wir eine Linearkombination der Zeilen die (0, . . . , 0) ergibt: ! n−1 n−1 X X = 0; di trn,p αi di α i = trn,p α0 i=0 i=0 ! n−1 n−1 X X = 0; di trn,p αi+1 = trn,p α1 di α i i=0 .. . n−1 X i=0 i=0 di trn,p α i+n−1 = trn,p αn−1 n−1 X i=0 di α i ! = 0. Pn−1 di αi = 0 und damit d0 = . . . = dn−1 = 0. Nach Lemma 4.21 folgt i=0 Damit istP das Gleichungssystem eindeutig lösbar. Sei (ĉ0 , . . . , ĉn−1 ) diese Lösung, dann n−1 ĉi · αi , daß bj = trn,p (δ αj ) für j = 0, . . . , n − 1 und die LFSR-Folge ist gilt für δ := i=0 in der geforderten Form dargestellt. Das Rückkopplungspolynom des LFSR entspricht hier dem definierenden Polynom des endlichen Körpers, der Anfangszustand dem Koeffizienten δ. Um die Verbindung zwischen der Periode eines LFSR und Eigenschaften der Rückkopplungspolynome herzustellen zitieren wir den folgenden Satz (ohne Beweis): Satz 4.23 Es sei f (x) ∈ IFp [x] irreduzibel vom Grad n. Dann gilt n f (x) | xp − x . 52 KAPITEL 4. STROMCHIFFREN Korollar 4.24 Es sei f (x) ∈ IFp [x] irreduzibel vom Grad n und α eine Nullstelle von f (x) im Zerfällungskörper. Dann sind alle Nullstellen von f (x) einfach. 2 n−1 (Dies sind α, αp , αp , . . . , αp .) Beweis: Es gilt Y n f (x) | xp − x = (x − β). β∈IFpn Also ist f (x) Produkt von paarweise verschiedenen Linearfaktoren. Korollar 4.25 Es sei f (x) ∈ IFp [x] irreduzibel vom Grad n. Dann haben alle Nullstellen von f (x) dieselbe Ordnung. Beweis: Es sei α eine Nullstelle von f (x) der Ordnung e. Es gilt dann: 1 = αe = (αe )p = (αp )e n und damit ord αp ≤ ord α. Iteriertes Anwenden und Benutzen von αp = α liefert: n e = ord α ≥ ord αp ≥ . . . ≥ ord αp = e, was die Behauptung zeigt. Wegen dieser Eindeutigkeit der Ordnung der Nullstellen von irreduziblen Polynomen können wir die Ordnung eines irreduziblen Polynoms wie folgt definieren: Definition 4.26 Es sei f (x) ∈ IFp [x] irreduzibel und α eine Nullstelle von f (x) im Zerfällungskörper. Dann heißt ord f (x) := ord α die Ordnung von f (x). Bemerkung 4.27 Es sei f (x) ∈ IFp [x] irreduzibel das charakteristische Polynom eines Schieberegisters S, dann hat jede von S erzeugte Folge ungleich der Nullfolge die Periode ord f (x). Beweis: Es sei (bi )i≥0 mit bi = trn,p (δ · αi) eine von S erzeugte Folge ungleich der Nullfolge mit Periode k, wobei α eine Nullstelle des Polynoms f (x) von Grad n ist. Damit ist offensichtlich k ein Teiler der Ordnung der Nullstelle α von f (x), also auch der Ordnung von f (x). Es bleibt noch zu zeigen, daß die Periode k von S nicht kleiner als die Ordnung von l i i+k f (x) ist. Es gilt trn,p α δ · α − δ · α = bi+l − bi+l+k = 0 für l = 0, . . . , n − 1. Nach i i+k Lemma 4.21 folgt daraus δ · α − δ · α = 0 und damit αi = αi+k , was die Behauptung zeigt. Definition 4.28 Ein irreduzibles Polynom f (x) ∈ IFp [x] vom Grad n heißt primitiv, falls es die Ordnung pn − 1 hat. 4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER 53 Ohne Beweis zitieren wir den folgenden Satz 4.29 Die multiplikative Gruppe IF∗pn eines endlichen Körpers ist zyklisch. Korollar 4.30 Die Anzahl der normierten primitiven Polynome f (x) ∈ IFp [x] vom Grad ϕ (pn − 1) n ist , wobei ϕ (m) := |{1 ≤ j < m mit ggT (m, j) = 1}| die eulersche ϕ-Funktion n bezeichnet. n Beweis: Es sei α primitives Element von IFpn , also IF∗pn = α, α2 , . . . , αp −1 = 1 . Alle primitiven Elemente von IFpn sind genau die ϕ (pn − 1) vielen αi für diejenigen i mit ggT (i, pn − 1) = 1. Das Minimalpolynom eines jeden dieser Elemente ist primitiv vom Grad n und hat n verschiedene Nullstellen. Definition 4.31 Eine LFSR-Folge mit einem primitiven charakteristischen Polynom f (x) ∈ IFp [x] heißt m-Folge. Sie hat die maximale Periode pn − 1. 4.2.4 m-Folgen als Pseudozufallsfolgen Eine große Periode ist natürlich nur eine der notwendigen Voraussetzungen für die Eignung einer Folge als Schlüsselfolge einer sequentiellen Chiffre. Die erzeugte Folge soll schließlich eine Approximation einer zufälligen Schlüsselfolge sein, wie sie im one-time-pad benutzt wird. In Abschnitt 4.1.1 wurden Kriterien zur Beurteilung der Güte der Approximation von zufälligen Folgen durch pseudozufällige Folgen erörtert. Ausführlich wurden dort die drei von S.W.Golomb angegebenen Pseudozufallskriterien G1, G2 und G3 vorgestellt. Golomb hat gezeigt, daß die Klasse der maximalen Schieberegisterfolgen diese Kriterien erfüllt (siehe [59]). Satz 4.32 m-Folgen über IF2 erfüllen die drei Golombschen Axiome. Beweis: Der Beweis ist elementar und beruht im wesentlichen auf der angenehmen Eigenschaft, daß bei der Erzeugung einer maximalen Folge das Schieberegister alle Zustände mit Ausnahme des Nullzustandes durchläuft, so daß man die jeweils interessierenden Anzahlen ziemlich leicht ermitteln kann. G1: (0-1-Verteilung) Man erkennt sofort, daß in einem Schieberegister der Länge n mit primitivem Rückkopplungspolynom während eines vollständigen Zyklus ein Zustand der Form 1XXXX...X (wobei X als Platzhalter für 0 oder 1 steht) 2n−1 mal auftritt. Da der Nullzustand ausgeschlossen ist gibt es nur 2n−1 −1 Zustände der Form 0XXXX...X. Da das jeweils vorderste Bit als nächstes Glied der erzeugten Folge ausgegeben wird, ergeben sich daraus die entsprechenden Anzahlen für Einsen und Nullen in einer maximalen Schieberegisterfolge. 54 KAPITEL 4. STROMCHIFFREN G2: (run-Verteilung) Das Abzählen der runs eines Zyklus ist etwas aufwendiger, aber ebenso elementar. Da einmal der Zustand 1111...1 auftritt, existiert ein run von Einsen der Länge n in der zugehörigen Folge. Jeder Zustand wird aber genau einmal angenommen, so daß es keine runs von Einsen oder Nullen größer als n geben kann. Daher sind die beiden Zustände 0111...1 und 1111...10 notwendigerweise Vorgänger bzw. Nachfolger des Zustands 1111...1, so daß die Folge keinen run von Einsen der Länge n − 1 enthalten kann. Natürlich gibt es keinen run von Nullen der Länge n, da dieser nur durch den Nullzustand entstehen könnte. Aus dem Zustand 1000...0 ergibt sich aber die Existenz von genau einem run von Nullen der Länge n − 1. Für jedes k ≤ n − 2 kann nun die Anzahl der k bit langen runs von Einsen wie folgt abgezählt werden. Bei der Erzeugung eines runs von Einsen der Länge k muß das Schieberegister einen Zustand der Form 0 |11...1 | {z } {z } 0 XX...X k n−k−2 annehmen. Pro Zyklus gibt es genau 2n−k−2 verschiedener solcher Zustände und damit die gleiche Anzahl von runs von Einsen der Länge k. Die Anzahl der runs von Nullen der Länge k bestimmt man in völlig analoger Weise ebenfalls zu 2n−k−2. Damit ist gezeigt, daß die maximale Schieberegisterfolge das zweite Golombsche Kriterium erfüllt. G3: (Autokorrelation) Für den Beweis, daß auch G3 erfüllt ist, hilft die folgende, einfache Beobachtung: Es seien ai = trn,2 (δ1 · αi ) und bi = trn,2 (δ2 · αi) die Glieder zweier Folgen, die von demselben LFSR erzeugt werden. Dabei ist α Nullstelle des charakteristischen Polynoms. Dann sind die Summenfolge und jede um τ ∈ IN verschobene Folge (ai +bi = trn,2 ((δ1 + δ2 ) · αi ) und ai+τ = trn,2 ((δ1 · ατ ) · αi )) auch vom selben LFSR erzeugt. Sei nun (ai )i≥0 eine m-Folge und (ai+τ )i≥0 deren Verschiebung um τ . Um die Anzahl der übereinstimmenden Glieder der beiden Folgen zu bestimmen, genügt es, die Summe (ai + ai+τ )i≥0 zu betrachten. Diese ist nach dem oben Gesagten aber wiederum eine durch dasselbe Schieberegister erzeugbare m-Folge. Die Anzahl der Nullen in der Summe und damit die Anzahl der Übereinstimmungen zwischen der Folge (ai )i≥0 und ihren Verschiebungen ist damit 2n−1 − 1. Als Wert für die Autokorrelationsfunktion ergibt sich also C(τ ) = 2n−1 − 1 − 2n−1 −1 = n n 2 −1 2 −1 für alle τ 6= 0, womit die Gültigkeit von Kriterium G3 nachgewiesen ist. 4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER 4.2.5 55 Kryptographische Stärke von Schieberegisterfolgen Eine der wichtigsten Fragen bei der Beurteilung eines Pseudozufallsgenerators für Stromchiffren ist die Vorhersagbarkeit der erzeugten Folgen. Linear rückgekoppelte Schieberegister, wie sie im vorigen Abschnitt eingeführt wurden, erzeugen zwar Folgen großer Periode mit guten Verteilungseigenschaften, sind aber, wie wir im Verlauf dieses Abschnittes sehen werden, viel zu leicht vorhersagbar, um als Schlüsselfolgengeneratoren Verwendung finden zu können. Satz 4.33 Die Kenntnis von 2 · n konsekutiven Gliedern einer von einem LFSR der Länge n erzeugten Folge (ai )i≥0 genügt, um das Rückkopplungspolynom f (x) und damit die gesamte Folge zu berechnen. Beweis: Man betrachte die folgende Rekursionsgleichung nach Gleichung (4.3) für n aufeinanderfolgende Glieder: ak+n = n X i=1 ak+n+1 = n X ci · ak+n+1−i n X ci · ak+2n−1−i i=1 .. . ak+2n−1 = ci · ak+n−i i=1 Kennt man die Folgenglieder ak , ..., ak+2n−1 , dann erhält man ein n-dimensionales lineares Gleichungssystem für die n Unbekannten c1 , ..., cn . ak+n ak+n+1 .. . ak+2n−1 = | ak+n−1 ak+n .. . ak+n−2 ak+n−1 .. . ··· ··· .. . ak ak+1 .. . · ak+2n−2 ak+2n−3 · · · ak+n−1 {z } :=Ak c1 c2 .. . cn Die n Zeilen der Matrix Ak sind linear unabhängig, wenn die gegebene Folge (ai ) nicht auch von einem linear rückgekoppelten Schieberegister einer kürzeren Länge als n erzeugt wurde. Denn in diesem Fall wird jedes ai der Folge als Linearkombination von ai−1 , ..., ai−n gebildet, wobei n die minimale Anzahl von Folgengliedern ist, die als Linearkombination ai , i ≥ n ergeben. Das bedeutet, daß das Gleichungssystem eindeutig lösbar ist. Die eindeutige Lösung kann mit wohlbekannten Verfahren, wie etwa der Gauß-Elimination oder der Matrix-Inversion von Ak gefunden werden. 56 KAPITEL 4. STROMCHIFFREN Wenn in der Praxis der Kryptoanalyse die Zahl n unbekannt ist, aber ein Stück der Schlüsselfolge vorliegt, wird man also schrittweise immer größere Gleichungssysteme aufstellen und die jeweilige lineare Abhängigkeit feststellen. Auch im Fall, daß nicht konsekutive Bits der Schlüsselfolge bekannt sind, kann man versuchen, aus der wie immer gearteten, vorliegenden Information eine hinreichende Anzahl von unabhängigen Gleichungen für die Rückkopplungskoeffizienten aufzustellen und diese daraus zu bestimmen. Der Aufwand für die Inversion der Matrix Ak beträgt O(n3 ). Der Algorithmus von Berlekamp und Massey (vgl. [83], der vor allem auch in der Codierungstheorie eingesetzt wird, erlaubt es, das obige, ziemlich spezielle Gleichungssystem mit einem Aufwand von O(n2 ) zu lösen. 4.2.6 Lineare Komplexität von Folgen Die Tatsache, daß eine beliebige autonome Maschine durch ein LFSR simuliert werden kann, gibt Anlaß zu der Frage, wie groß die Länge des kürzesten LFSR sein muß, das dieselbe Folge wie diese Maschine erzeugt. Definition 4.34 Sei a(n) = (a0 , ..., an−1 ) ∈ IFnp . Dann heißt die Länge des kürzesten LFSR, das dieselbe Folge produziert, lineare Komplexität oder lineares Äquivalent der Folge. Es wird mit L(a(n) ) bezeichnet. (n) L a : = min L ∈ {1, . . . , n} ∃c1 , ..., cL ∈ IFp : L X ∀j ∈ {L − 1, . . . , (n − 1)}: 0 = aj − ci aj−i i=1 Es ergeben sich sofort einige einfache Eigenschaften des linearen Äquivalents, die nachfolgend jeweils mit einer kurzen Begründung zusammengestellt sind. (i) Sei (ai )i≥0 eine Folge, die von einem linear rückgekoppelten Schieberegister der Länge n erzeugt wird. Da die lineare Komplexität die Länge des kürzesten Schieberegisters angibt, mit dem die Folge erzeugbar ist, ergibt sich sofort für alle k: L(a(k) ) ≤ L(a(∞) ) ≤ n. (4.5) (ii) Jede endliche Folge der Länge k kann offensichtlich von einem Schieberegister der Länge k erzeugt werden, ohne daß überhaupt eine Rückkopplungsfunktion benötigt wird. Es gilt also: L(a(k) ) ≤ k. (4.6) (iii) Mit einem einfachen Ringschieberegister der Länge k kann jede Folge mit Periode k erzeugt werden, so daß gilt: L((a(k) )∞ ) ≤ k. (4.7) 4.2. LINEAR RÜCKGEKOPPELTE SCHIEBEREGISTER 57 (iv) Ein Schieberegister, das ein Anfangsstück a(k) der Länge k einer Folge erzeugt, kann offensichtlich auch jedes kürzere Anfangsstück erzeugen. Es gilt also für alle k ′ ≤ k: ′ L(a(k ) ) ≤ L(a(k) ). (4.8) (v) Jede Folge, die aus k aufeinanderfolgenden Nullen und einer darauffolgenden Eins besteht, kann nur von einem Schieberegister mit einer minimalen Länge von k + 1 erzeugt werden, da jedes lineare Schieberegister kürzerer Länge für die Erzeugung der k aufeinanderfolgenden Nullen notwendigerweise den Nullzustand annehmen müßte, von diesem aber nicht die darauffolgende Eins ausgegeben werden kann. Es gilt also für alle k: L(0k 1) = k + 1. (4.9) (vi) Eine nützliche Beziehung erhält man aus der Betrachtung der Summe zweier Schieberegisterfolgen. Seien die Anfangsstücke a(k) und b(k) gegeben. Dann existieren linear rückgekoppelte Schieberegister der Längen n := L(a(k) ) und m := L(b(k) ), die in ihren ersten k Schritten die beiden Folgen erzeugen. Als lineare Systeme betrachtet werden die Folgen durch die beiden Übergangsmatrizen A= 0 1 .. .. . . .. . 0 ··· cn cn−1 0 .. . .. . ··· ··· ··· 0 . .. . .. .. . 0 0 1 c2 c1 (n) mit den beiden Auswahlvektoren e1 Längen n bzw. m erzeugt. und B = (m) bzw. e1 0 1 .. .. . . .. . 0 ··· dm dn−1 0 .. . .. . ··· ··· ··· .. . .. . 0 d2 0 .. . 0 1 d1 der Gestalt (1, 0, . . . , 0) und den Das lineare System mit der Blockdiagonalmatrix A 0 0 B (n) (m) als Übergangsmatrix und dem Auswahlvektor (e1 , e1 ) der Länge n + m erzeugt die Folge (ai + bi )i≥0 . Dies liefert uns: Es seien a(k) , b(k) Folgen, dann gilt die Ungleichung: L(a(k) + b(k) ) ≤ L(a(k) ) + L(b(k) ) (4.10) Diesen Eigenschaften sind hilfreich um Folgen zu untersuchen, die mit Hilfe von Schieberegistern erzeugt werden. 58 KAPITEL 4. STROMCHIFFREN ? ? ? ? ? ? - ? 6 - Abbildung 4.12: Summe zweier Schieberegisterfolgen 4.3 Konstruktion von Folgengeneratoren In Abschnitt 4.2.5 wurde festgestellt, daß lineare Schieberegister als Pseudozufallsgeneratoren nicht genügend Sicherheit bieten, um sie zur Erzeugung von Schlüsselfolgen von sequentiellen Chiffren einsetzen zu können. Nichtlineare Folgengeneratoren können dadurch realisiert werden, daß man die Rückkopplung statt als Summe einiger Registerzellen durch eine beliebige nichtlineare Funktion berechnet. Dieser naheliegende, allgemeine Ansatz hat jedoch den Nachteil, daß eine befriedigende mathematische Analyse der Eigenschaften solcher nichtlinearer Rückkopplungen sehr schwierig ist. Um aber verläßliche Aussagen über die kryptographische Stärke eines Verfahrens gewinnen zu können, ist seine Analysierbarkeit unverzichtbar. Es liegt nahe, von den gut zu beherrschenden linearen Schieberegistern auszugehen und diese in geeigneter Weise durch nichtlineare Funktionen miteinander zu verknüpfen. Dabei möchte man erreichen, daß zum einen die guten statistischen Eigenschaften linearer Rekursionsfolgen erhalten bleiben, zum anderen aber der Aufwand für die Kryptoanalyse viel höher wird als im linearen Fall. Die Verknüpfungsfunktionen sollten so gewählt sein, daß beweisbare Aussagen über wichtige Eigenschaften der erzeugten Folgen gewonnen werden können. Das naheliegendste Beispiel einer Verknüpfung zweier Schieberegister ist die komponentenweise Addition. Eine solche Schaltung ist in Abbildung 4.12 dargestellt. Nehmen wir an, die Folgen (ai )i≥0 und (bi )i≥0 seien zufällig und voneinander unabhängig erzeugt und enthalten Nullen und Einsen mit gleicher Häufigkeit. Verknüpft man die beiden Folgen durch ein XOR, so treten am Eingang des Addierers die Kombinationen 00, 01, 10 und 11 in etwa gleichhäufig auf, und man erhält als Summe eine gleichverteilte Folge (ci )i≥0 = (ai + bi )i≥0 . Sind die Eingangsfolgen periodisch mit den Perioden pa und pb , so besitzt die Folge (ci )i≥0 die Periode pc ≤ kgV(pa , pb ). In diesem Fall ist auch die Berechnung einer guten oberen Schranke der, für die kryptographische Sicherheit wichtigen, linearen Komplexität der resultierenden Folge sehr einfach. In Abschnitt 4.2.6 auf Seite 57 wurde bereits die Schranke L(a(k) + b(k) ) ≤ L(a(k) ) + L(b(k) ) gezeigt. Im Fall daß die charakteristischen Polynome einen echten gemeinsamen Teiler haben läßt sich diese Schranke mit ähnlichen Mitteln verbessern: Es seien f (x) = f1 (x) · h(x) und g(x) = g1 (x) · h(x) die charakteristischen Polynome 4.3. KONSTRUKTION VON FOLGENGENERATOREN 59 der Folgen (ai )i≥0 und (bi )i≥0 , wobei h(x) = ggT (f (x), g(x)) von positivem Grad. Seien A1 , B1 , H die Begleitmatrizen von f1 (x), g1 (x) und h(x). Dann lassen sich (ai )i≥0 und (bi )i≥0 durch lineare Systeme mit den Übergangsmatrizen A1 0 H 0 und 0 H 0 B1 beschreiben. Die Auswahlvektoren für die Ausgabe seien entsprechen der Blockzerlegung auch aufgeteilt in (C1 , C2 ) und (D1 , D2 ), d.h. C2 und D1 sind Vektoren der Länge deg(h(x)). Die Summenfolge kann dann durch das lineare System A1 0 0 0 H 0 0 0 B1 mit dem Auswahlvektor (C1 , C2 + D1 , D2 ) realisiert werden. Dies ist ein lineares System der Größe L(a(∞) ) + L(b(∞) ) − deg(h(x)). Dies ist in dem folgenden Lemma zusammengefaßt. Lemma 4.35 Die maximal mögliche lineare Komplexität von (ci )i≥0 = (ai + bi )i≥0 ist die Summe der linearen Komplexitäten der Folgen (ai )i≥0 und (bi )i≥0 . Sie kann erreicht werden, wenn die Rückkopplungspolynome fa und fb irreduzibel und teilerfremd sind und keines der Register im Nullzustand gestartet wird. Hat der gemeinsame Teiler von fa und fb einen Grad d ≥ 1, so reduziet sich die maximal mögliche lineare Komplexität um d. Das obige Lemma zeigt, daß die Verknüpfung von Schieberegisterfolgen durch Addition keinen wirklichen Zuwachs an Sicherheit bringen kann. Denn aus zwei Folgen mit den linearen Komplexitäten na und nb , deren Rückkopplungskoeffizienten mit dem BerlekampMassey Algorithmus aus 2na bzw. 2nb Folgengliedern bestimmt werden können, erhält man lediglich eine Folge, deren Koeffizienten sich eindeutig aus höchstens 2(na + nb ) Gliedern ergeben. Ein ebenso sicherer“ Generator hätte bei gleichem Aufwand durch ” Verwenden eines einzigen linearen Schieberegisters der Länge na + nb aufgebaut werden können. Auch ohne diese Rechnung dürfte es unmittelbar einleuchten, daß aus der additiven Verknüpfung linearer Schieberegister kein echter Zuwachs an linearer Komplexität resultieren kann, da die Addition ihrerseits ein linearer Operator ist. 4.3.1 Nichtlineare Verknüpfung von Schieberegisterfolgen Im Gegensatz zur Addition ist die komponentenweise Multiplikation, die im binären Fall der UND-Verknüpfung entspricht, eine nichtlineare Operation. In Abbildung 4.13 ist das Schaltbild eines Generators angegeben, der eine Pseudozufallsfolge als komponentenweises Produkt zweier linearer Rekursionsfolgen erzeugt. Dieser Generator wird sich allerdings in der Regel nicht für die Verschlüsselung von Daten eignen, da bei gleichverteilten, 60 KAPITEL 4. STROMCHIFFREN ? ? ? ? ? ? ? 6 • - - Abbildung 4.13: Produkt zweier Schieberegisterfolgen stochastisch unabhängigen Eingangsfolgen am Ausgang des UND-Gatters nur in einem Viertel der Fälle eine Eins zu erwarten ist. Dennoch ist es wichtig, die Eigenschaften der multiplikativen Verknüpfung zu kennen, da sie als Baustein für zusammengesetzte Verknüpfungsfunktionen eingesetzt werden kann. Die Bestimmung der linearen Komplexität einer durch Multiplikation verknüpften Folge (ci )i≥0 = (ai · bi )i≥0 läßt sich durch die Darstellung der Folge über die Spurabbildung zeigen. Satz 4.36 Die maximal mögliche lineare Komplexität von (ci )i≥0 = (ai · bi )i≥0 ist das Produkt der linearen Komplexitäten der Folgen (ai )i≥0 und (bi )i≥0 . Sie wird erreicht, wenn die Rückkopplungspolynome fa und fb irreduzibel und verschieden sind, ggT (deg fa , deg fb ) = 1 und keines der Register im Nullzustand gestartet wird. Beweis: Sei deg fa (x) = n und deg fb (x) = m. Nach Satz 4.22 lassen sich aj und bj wie folgt darstellen: aj = trn,p (δαj ) bj = trm,p (εβ j ) mit α ∈ IFpn ist Nullstelle von fa∗ mit β ∈ IFpm ist Nullstelle von fb∗ Für cj folgt: cj = aj · bj n−1 m−1 X X l l pi j pi εp (β j )p = δ (α ) · = = i=0 n−1 X m−1 X l=0 i l i=0 l=0 n·m−1 X k k p p δ ε (αβ)j·p k=0 i δ p · εp (αj )p (β j )p k l 4.3. KONSTRUKTION VON FOLGENGENERATOREN 61 ? ? ? ? ? ? ? ? ? f - • • • - Abbildung 4.14: Verknüpfung von n Schieberegisterfolgen Für ggT (n, m) = 1 ist IFpn·m der kleinste Erweiterungskörper von IFp , in dem sowohl die Nullstellen von fa als auch von fb liegen. Dann gilt mit ξ := δ · ε und γ := α · β: cj = n·m−1 X k=0 k ξ p · (γ j )p k = trn·m,q (ξ · γ j ) Also ist cj nach Satz 4.22 eine Schieberegisterfolge, die von einem LFSR mit charakteristischem Polynom m·n−1 Y Y k pi pl ∗ x − γp (x − α β ) = fc (x) = i,l k=0 erzeugt wird. Der Grad von fc (x) ist deg fc = n · m; dabei entsteht aus irreduziblen Polynomen fa und fb ein irreduzibles Polynom fc . Die additive und multiplikative Verknüpfung von Folgen sind die Bausteine für viele zusammengesetzte Verknüpfungsfunktionen. Wir betrachten im folgenden das Problem der Verknüpfung von n Folgen durch eine boolesche Funktion in n Variablen, das in Abbildung 4.14 illustriert ist. Zur Darstellung boolescher Funktionen gibt es verschiedene Möglichkeiten. Die wohl elementarste Beschreibung einer Funktion ist eine Wertetabelle, die im Fall einer n-stelligen booleschen Funktion 2n Einträge hat. Aus der Wertetabelle einer Funktion läßt sich wiederum durch ein einfaches Verfahren eine Darstellung mit Hilfe von Konjunktion, Disjunktion und Negation gewinnen. Die Konstruktion zeigt auch, daß jede boolesche Funktion eine solche Darstellung hat. Auf diese Thematik soll hier jedoch nicht weiter eingegangen 62 KAPITEL 4. STROMCHIFFREN werden. Der interessierte Leser sei etwa auf [5] verwiesen. Die sogenannte algebraische Normalform erhält man, indem man durch Anwenden der Beziehungen A ∨ B = A + B + (A ∧ B) ¬A = A + 1 alle Disjunktionen und Negationen durch Additionen modulo 2 ersetzt. Da die Konjunktion der Multiplikation modulo 2 entspricht, schreiben wir im folgenden stets AB statt A ∧ B. Mit Hilfe der algebraischen Normalform kann das Studium beliebiger Verknüpfungsfunktionen auf die Grundoperationen Addition und Multiplikation zurückgeführt werden, die wir bereits studiert haben. R. Rueppel und O. Staffelbach [116] gelang es, die bisher allgemeinsten Voraussetzungen anzugeben, unter denen die lineare Komplexiät der gliedweise multiplizierten Folge das Maximum annimmt. Als Folgerung erhält man ein wichtiges Ergebnis für die Synthese und Analyse von Pseudozufallsgeneratoren. Für die bequemere Formulierungen dieses Satzes führen wir folgende Bezeichnung ein. Sei f (x1 , ..., xn ) eine boolesche Funktion in algebraischer Normalform. f˜(x1 , ..., xn ) bezeichne dann diejenige ganzzahlige Funktion, die man aus f erhält, wenn man die Additionen und Multiplikationen nicht modulo 2, sondern im Ring der ganzen Zahlen ausführt. Satz 4.37 Seien n maximale Schieberegisterfolgen durch die boolesche Funktion f verknüpft. Die Grade L1 , ..., Ln der (primitiven) Rückkopplungspolynome seien alle größer als 2 und paarweise verschieden. Die am Ausgang von f entstehende Funktion hat dann die lineare Komplexität f˜(L1 , ..., Ln ), falls alle Schieberegister nicht vom Nullzustand aus gestartet werden. Beispiel 4.38 Wir betrachten als Beispiel den Generator von Geffe in Abbildung 4.15. Die Arbeitsweise dieses Generators läßt sich anschaulich so beschreiben, daß das mittlere Schieberegister über die beiden UND-Gatter und das ODER-Gatter jeweils eines der beiden anderen Schieberegister zum Ausgang durchschaltet. Immer wenn das mittlere Register eine Eins liefert, wird die Ausgabe des oberen Registers übernommen, bei Null die des unteren. Damit wird erreicht, daß Nullen und Einsen am Ausgang mit gleicher Häufigkeit auftreten, falls man für die Eingabefolgen Gleichverteilung und stochastische Unabhängigkeit voraussetzen kann. Die Formel der dreistelligen Geffe-Funktion kann direkt aus Abbildung 4.15 abgelesen werden: f (x0 , x1 , x2 ) = (x0 ∧ x1 ) + (¬x1 ∧ x2 ) oder in algebraischer Normalform: f (x0 , x1 , x2 ) = x0 x1 + (x1 + 1)x2 = x0 x1 + x1 x2 + x2 4.3. KONSTRUKTION VON FOLGENGENERATOREN ? ? ? ? ? ? ? ? ? 63 ? 6 ? • 6 •? - 6 • Abbildung 4.15: Der Generator von Geffe Damit ist die lineare Komplexität für das Beispiel einer von einem Geffe-Generator, der drei Schieberegister der Längen 19, 20 und 21 (mit primitiven Rückkopplungspolynomen) verknüpft, erzeugten Folge f˜(19, 20, 21) = 19 · 20 + 20 · 21 + 21 = 821 Mit 19 + 20 + 21 = 60 Schieberegisterzellen und einigen wenigen Gattern gelingt es also, Pseudozufallsfolgen zu erzeugen, deren lineare Rekursion sich nur bei Kenntnis von mindestens 2 · 821 = 1642 Gliedern bestimmen läßt. Da die algebraische Normalform der Geffe-Funktion nicht symmetrisch ist, hängt die lineare Komplexität auch von der Reihenfolge der Schieberegister ab. Mit einer günstigeren Anordnung hätte in diesem Fall sogar ein etwas höherer Wert für die lineare Komplexität, nämlich 839, erzielt werden können. 4.3.2 Taktgesteuerte Schieberegister Bei den bisherigen Betrachtungen wurde stets angenommen, daß zu gewissen wohldefinierten Zeitpunkten alle beteiligten Schieberegister ihren jeweils neuen Zustand annehmen. Dies geschieht in der Implementierung dadurch, daß jede Speicherzelle gleichzeitig durch einen synchronen Taktimpuls zur Übernahme des an ihrem Eingang anliegenden Signals veranlaßt wird. Über die Takterzeugung wurde bisher nichts gesagt und die Taktleitungen wurden in den Schaltbildern wie üblich zur Vereinfachung weggelassen. Man kann diese Art der Taktsteuerung nun verallgemeinern, indem man zwar weiterhin einen synchronen Takt für alle Schieberegister zugrunde legt, jedoch die einzelnen Register mit einem Taktsteuereingang versieht. Nur wenn an diesem Eingang eine Eins anliegt, wird der Registerinhalt beim nächsten globalen Taktimpuls weitergeschoben, sonst bleibt er unverändert. In Abbildung 4.16 ist das für ein taktgesteuertes Schieberegister verwendete Symbol dargestellt. 64 KAPITEL 4. STROMCHIFFREN ? ? ? ? Abbildung 4.16: Taktgesteuertes Schieberegister ? ? ? ? ? ? ? ? ? ? ? ? Abbildung 4.17: Kaskade taktgesteuerter Schieberegister Wird nun die Taktsteuerung eines linear rückgekoppelten Schieberegisters nicht ständig mit Eins belegt, der Ausgang aber wie bisher mit jedem globalen Impuls abgefragt, so erhält man eine Folge, die aus der ursprünglichen Schieberegisterfolge dadurch hervorgeht, daß manche Folgenglieder mehrfach wiederholt werden. Es liegt nahe, den Taktsteuereingang des Schieberegisters mit einer Folge anzusteuern, die ihrerseits von einem linearen Schieberegister erzeugt wird. Hierdurch erhält man eine weitere Möglichkeit zur Verknüpfung von Schieberegistern. Die resultierende Pseudozufallsfolge kann nun als Ausgabefolge dienen oder zur Steuerung eines dritten Registers herangezogen und somit das Verknüpfungsprinzip iteriert werden. Auf diese Weise erhält man eine Kaskadenschaltung taktgesteuerter Schieberegister, wie sie von P. Nyffeler in [100] vorgeschlagen und untersucht wurde. In Abbildung 4.17 ist dieses Prinzip an einem Beispiel dargestellt. Diese Schaltung liefert Folgen mit einer statistischen Verteilung, bei der längere runs überdurchschnittlich häufig auftreten. Dies wurde bei der von D. Gollmann in [58] beschriebenen modifizierten Kaskadenschaltung behoben, indem in jeder Stufe Eingabe und Ausgabe der Register addiert werden: Betrachten wir ein Schieberegister mit einem variablen Takteingang; ist der Takteingang 1, so wird es weitergeschaltet, ist er 0, so bleibt das Register im aktuellen Zustand stehen. solche taktgesteuerte Schieberegister können zu Kaskaden verbunden werden, in- 4.3. KONSTRUKTION VON FOLGENGENERATOREN 65 Abbildung 4.18: Eine Kaskade von Schieberegistern dem die jeweils nachfolgende Stufe durch die Ausgabe der vorhergehenden Stufe getaktet wird. Um ein überdurchschnittliches Auftreten von längeren runs zu vermeiden wird als Ausgang einer jeden Stufe das XOR des Ausgangs des Registers und des Takteingangs gewählt. Diese Kaskaden können als autonome Pseudozufallsgeneratoren dienen, wenn die erste Stufe immer mit 1 getaktet wird. Eine solche Schaltung ist in Abbildung 4.18 zu sehen und heißt stop-and-go Generator. Sie wurde von Gollmann [58] eingeführt und hat eine große Periode und lineare Komplexität. In Abschnitt 4.3.4 untersuchen wir die Resistenz dieser stop-and-go Generatoren gegenüber eines Korrelationsangriffs. 4.3.3 Korrelations-Immunität von Verknüpfungsfunktionen Bisher wurde neben den statistischen Eigenschaften die lineare Komplexität der erzeugten Folgen als ein wichtiger Parameter für die Sicherheit eines Pseudozufallsgenerators eingeführt und diskutiert. Es wurde auch durch Beispiele aufgezeigt, daß weder eine hohe lineare Komplexität noch ein typischer Verlauf des Komplexitätsprofils die kryptographische Sicherheit einer Schlüsselfolge garantieren können. Im folgenden wird nun zunächst eine Methode von T. Siegenthaler (vgl. [125]) erläutert, bei der aus einer nichtlinearen Verknüpfung von Folgen durch Korrelationsanalyse die Parameter der einzelnen Schieberegister bestimmt werden. In gewissen Fällen kann dadurch der Aufwand zur Analyse einer Folge trotz sehr hoher linearer Komplexität erheblich reduziert werden. Als Beispiel wurde in Abschnitt 4.3.1 der Generator von Geffe vorgestellt, der drei Folgen durch die nichtlineare Funktion f (x0 , x1 , x2 ) = x0 x1 + x1 x2 + x2 verknüpft. Die Funktion f kann auf die in Abbildung 4.19 angegebene Weise als Wertetabelle geschrieben werden. Man erkennt, daß die x0 -Spalte in sechs der acht Zeilen mit dem Funktionswert übereinstimmt. Wenn nun stochastisch unabhängige, gleichverteilte Zufallsfolgen den Eingängen x0 , x1 und x2 zugeführt werden, kann man daher erwarten, daß die Ausgangsfolge in etwa 43 aller Fälle den gleichen Wert wie die Eingangsfolge von x0 hat. Beim Vergleich zweier unabhängiger Zufallsfolgen wäre hingegen nur in der Hälfte der Fälle Übereinstimmung zu erwarten. Die gleiche Situation ergibt sich für die Eingangsfolge von x2 , während 66 KAPITEL 4. STROMCHIFFREN X0 0 0 0 0 1 1 1 1 X1 0 0 1 1 0 0 1 1 X2 0 1 0 1 0 1 0 1 f (X0 , X1 , X2 ) 0 1 0 0 0 1 1 1 Abbildung 4.19: Wertetabelle der Geffe-Funktion man in der x1 -Spalte nur vier Übereinstimmungen mit dem Funktionswert beobachtet. Da Folgen, die von verschiedenen, hinreichend langen Schieberegistern erzeugt werden, mit ausreichender Näherung wie voneinander unabhängige Zufallsfolgen betrachtet werden können, läßt sich dieser Effekt für die Kryptoanalyse des Geffe-Generators ausnutzen. Die Ähnlichkeit zweier Folgen wird üblicherweise durch ihre Korrelation gemessen. Die Korrelation C zweier Folgenabschnitte der Länge n berechnet sich aus der Zahl A der übereinstimmenden und der Zahl D der nicht übereinstimmenden Folgenglieder nach der Formel C= A−D n Der Erwartungswert für die Korrelation zweier unabhängiger Zufallsfolgen ist demnach also Null. Zwei Folgen, die häufiger übereinstimmen, haben dagegen einen positiven Korrelationswert. Im Grenzfall völliger Übereinstimmung ist A = n, D = 0 und daher C = 1. Umgekehrt erhält man bei weniger als n2 Übereinstimmungen eine negative Korrelation. Der Betrag der Korrelation zweier Folgen ist daher ein Maß für deren Abhängigkeit. Im obigen Beispiel sind die Ausgangsfolge des Generators und die Eingangsfolge von x0 (bzw. x2 ) positiv korreliert. Weiß man beispielsweise, daß ein Geffe-Generator vorliegt und daß der Eingang xi mit einem linearen Schieberegister der Länge Li gespeist wird, so kann man die beschriebenen Zusammenhänge folgendermaßen für die Kryptoanalyse ausnutzen. Man berechnet die Korrelation sämtlicher Folgen, die von einem Schieberegister der Länge L0 erzeugt werden können, mit einem Stück bekannter Schlüsselfolge. Hat man die falschen Rückkopplungskoeffizienten oder den falschen Anfangszustand ausgewählt, so wird die damit erzeugte Folge im allgemeinen keine signifikanten Übereinstimmungen mit der Schlüsselfolge aufweisen, was sich in einem geringen Wert der Korrelation ausdrückt. Für die korrekten Parameter ergibt sich jedoch, wie oben gezeigt wurde, in 75% der Fälle eine Übereinstimmung und damit ein Korrelationswert von 0,5 . Analoge Überlegungen gelten für den Eingang x2 . Die Folge, die bei den Tests den höchsten Korrelationswert liefert, ist demnach mit großer Wahrscheinlichkeit die tatsächliche Eingangsfolge, die an x0 oder x2 4.3. KONSTRUKTION VON FOLGENGENERATOREN 67 anliegt. Ist diese bekannt, so reduziert sich das Problem auf die Analyse einer Verknüpfung von zwei Registern, die in diesem Fall auf die gleiche Weise durchgeführt werden kann. Die Anzahl der zu testenden Fälle kann dabei allerdings immer noch sehr hoch sein. Für ein Schieberegister der Länge L müssen die Korrelationen der Ausgangsfolge mit allen (2L − 1)λ(L) möglichen Eingangsfolgen berechnet werden, wobei λ(L) die Anzahl der primitiven Rückkopplungspolynome vom Grad L ist. Dies kann für große L zwar einen hohen Aufwand erfordern, der jedoch geringer ist, als das vollständige Durchprobieren aller Kombinationen der Parameter sämtlicher Schieberegister. Durch die nicht korrelationsimmune Verknüpfungsfunktion ergibt sich also eine für die Kryptoanalyse stets nützliche Partitionierung des Schlüsselraumes. D.h. die vollständige Suche nach dem verwendeten Schlüssel kann für gewisse Teilschlüssel unabhängig voneinander durchgeführt werden, wodurch die Anzahl der zu testenden Möglichkeiten oft erheblich reduziert wird. Ist etwa Mi die Anzahl der Folgen, die am Eingang xi auftreten können, so muß man, falls jede Teilfolge positiv mit der Ausgangsfolge korreliert ist, statt maximal nur mehr höchstens M = M0 · M1 · · · · · Mn M ′ = M0 + M1 + · · · + Mn Schlüssel durchprobieren. Funktionen, die wie im Beispiel Rückschlüsse von der Ausgangsfolge auf einzelne Eingangsfolgen erlauben, sind also aus den angeführten Gründen für Schlüsselfolgengeneratoren ungeeignet. Da offensichtlich jede Partition des Schlüsselraumes den Aufwand für die vollständige Suche vermindert, möchte man auch vermeiden, daß solche Rückschlüsse auf Teilmengen der Eingangsfolgen möglich sind. Dieses Problem wurde in [124] mit Begriffen der Informationstheorie präzisiert. Da es hier um die Untersuchung von Eigenschaften der Verknüpfungsfunktionen und nicht der kryptographischen Güte der Eingangsfolgen geht, betrachtet man Verknüpfungen von Folgen, die von unabhängigen binären Quellen S0 , ..., Sn−1 erzeugt werden. Definition 4.39 Eine boolesche Funktion f (X0 , ..., Xn−1 ) heißt m-korrelationsimmun, wenn Z = f (X0 , X1 , ..., Xn−1) statistisch unabhängig ist von dem Vektor (Xi1 , ..., Xim ), für jede Wahl von 0 ≤ i1 < i2 < . . . < im ≤ n − 1. Dies ist äquivalent zur Forderung, daß man aus der Kenntnis einer beliebigen Menge von m Eingangswerten von f keine Information über den resultierenden Ausgangswert erhalten kann und umgekehrt. In [124] wurde weiter die Gültigkeit des folgenden Satzes gezeigt. 68 KAPITEL 4. STROMCHIFFREN Satz 4.40 Gegeben seien zwei m-korrelationsimmune Funktionen f1 (X0 , ..., Xn−1 ) und f2 (X0 , ..., Xn−1 ) in n Variablen, deren Erwartungswerte gleich sind. Dann erhält man durch die Verknüpfung f (X0 , ., Xn ) = Xn · f1 (X0 , ., Xn−1 ) + (Xn + 1) · f2 (X0 , ., Xn−1) eine m-korrelationsimmune Funktion f in n + 1 Variablen. Mit obigem Satz erhält man ein einfaches, rekursives Verfahren zur Konstruktion korrelationsimmuner Verknüpfungsfunktionen für Schlüsselfolgengeneratoren. Ungünstigerweise sind die Forderungen nach hochgradiger Korrelationsimmunität der Verknüpfungsfunktion und nach einer hohen linearen Komplexität der damit erzeugten Pseudozufallsfolgen nicht gleichzeitig erfüllbar. Es gilt nämlich für eine m-korrelationsimmune Funktion f in n Variablen vom Grad k die Ungleichung ([124]): k + m < n, k + m ≤ n, falls m < n − 1 falls m = n − 1 Wie im vorigen Abschnitt dargelegt wurde, sind es jedoch gerade die Produkte hohen Grades, die für eine hohe lineare Komplexität der Ausgangsfolge sorgen. Insbesondere folgt aus dem zitierten Resultat, daß als (n − 1)-korrelationsimmune Funktion in n Variablen nur lineare Verknüpfungsfunktionen möglich sind, die für kryptographische Anwendungen natürlich von vornherein ausscheiden. Eine Verbesserung der Situation ergibt sich, wenn man zu Schaltwerken mit Speicherzellen übergeht. Dies wurde von Rueppel in [114] vorgeschlagen und untersucht. Dort wurde gezeigt, daß sich mit Schaltwerken mit nur einem Bit Speicher (n − 1)korrelationsimmune Verknüpfungen realisieren lassen, die Folgen maximaler linearer Komplexität erzeugen. 4.3.4 Korrelationsattacke auf taktgesteuerte Schieberegister Wir untersuchen hier die Resistenz der in Abschnitt 4.3.2 eingeführten stop-and-go Generatoren gegenüber einem Korrelationsangriff. Dazu müssen wir zunächst den Generator mathematisch modellieren. Markov-Modell In dem Markov-Modell für Kaskaden der Länge n sind die Zustände Vektoren der Länge n, wobei die i-te Komponente dem Ausgabebit des i-ten Registers entspricht. Jeder Zustandswechsel wird mit seiner bedingten Wahrscheinlichkeit bezeichnet, vorausgesetzt es wurde eine 0 beobachtet. Abbildung 4.20 zeigt das Modell für n = 2 mit den 4 Zuständen (0, 0), (0, 1), (1, 0), (1, 1). Befindet sich die Kaskade z. B. im Zustand (1, 1) (und wird eine 0 ausgegeben), so ergibt sich als Eingabe des zweiten Registers eine 1, es wird also getaktet; die Ausgabe von Register 1 ist auch eine 1, addiert mit dem Eingang desselben Registers muß sich 4.3. KONSTRUKTION VON FOLGENGENERATOREN 69 1 1/4 1/4 (0,0) (0,1) 1/4 1/2 (1,0) 1/2 1/4 (1,1) 1/2 1/2 Abbildung 4.20: Ein Markov-Modell mit den Übergangswahrscheinlichkeiten 1 ergeben, der Eingang von Register 1 ist daher 0. Das zweite Register wird demnach weitergeschaltet, das erste bleibt in seinem Zustand. Die beiden möglichen Folgezustände (1, 0), (1, 1) treten mit derselben Wahrscheinlichkeit 12 auf. Für größere Kaskaden ist dieses Modell sehr unübersichtlich; faßt man die Wahrscheinlichkeiten in einer Übergangsmatrix Mn zusammen, so läßt sich dieses Modell auch für größere n noch gut handhaben. Der Eintrag an der Postion (i, j) gibt die Wahrscheinlichkeit, daß ein Zustandswechel von i nach j stattfindet, vorausgesetzt es wurde 0 am Ausgang beobachtet. Dazu muß noch die Reihenfolge der Zustände festgelegt werden, wie sie auf die Zeilen und Spalten der Matrix abgebildet werden: Nehmen wir an, daß wir die Indizes von Mn−1 so geordnet haben, daß die Indizes (Zustände) mit gerader Parität zuerst kommen. Wir nehmen zuerst die Zustände von Mn , bei denen die erste Komponente 0 ist und die restlichen n − 1 gerade Parität haben, dann die Zustände von Mn , bei denen die erste Komponente 1 ist, und die restlichen n − 1 ungerade Parität haben, dann die Zustände von Mn bei denen die erste Komponente 1 ist und die restlichen n − 1 Register gerade Parität haben, und schließlich die Zustände von Mn , bei denen die erste Komponente 0 ist und die restlichen n − 1 Register ungerade Parität haben. In jedem der vier Teile wir die Reihenfolge von Mn−1 rekursiv genauso definiert. Für n = 1 ist die Reihenfolge der Zustände 0, 1; für n = 2 ergibt sich die Ordnung zu: (0, 0), (1, 1), (1, 0), (0, 1) und die Übrgangsmatrizen sind: M1 = 1 2 2 . 1 1 4 1 . M2 = 4 2 1 . 2 . 1 . 2 2 1 . . . . 1 70 KAPITEL 4. STROMCHIFFREN Mit dieser etwas sonderbaren Ordnung ergibt sich die folgende rekursive Konstruktion von Mk aus Mk−1 : Lemma 4.41 Die Übergangsmatrix Mn = Matrizen zerlegt. Dann gilt: Mn+1 Ãn B̃n C̃n D̃n Ãn 0 0 D̃n = 1 · Mn 2 sei für n ≥ 1 in vier 2n−1 × 2n−1 - 0 B̃n C̃n 0 . 1 · Mn 2 Beweis: Betrachten wir zunächst einen Zustand einer Kaskade der Länge n+1 mit gerader Parität. Das Eingabebit muß dann 0 sein und das erste Register schaltet nicht. Falls das erste Register eine 0 liefert, so haben die restlichen n Register gerade Parität; die Eingabe dieser Register ist 0 und sie verhalten sich wie in Ãn und B̃n angegeben. Falls das erste Register eine 1 ausgibt, so haben die restlichen Register ungerade Parität und Eingabe 1; sie verhalten sich wie in C̃n und D̃n angegeben. Im Fall ungerader Parität des Gesamtzustands ist die Eingabe in das erste Register eine 1. Die Eingabe in die n restlichen Register ist mit Wahrscheinlichkeit jeweils 12 eine 0 oder eine 1. Daher verhält sich das Register wie in Mn spezifiziert, jedoch mit halber Wahrscheinlichkeit. Korrelationsattacke In letzter Zeit sind einige Beiträge über erfolgreiche Korrelationsangriffe gegen (kurze) Kaskaden erschienen [136, 86, 102]. Sie bauen darauf auf, daß sich bei einem Takteingang 0 das Register nicht ändert und deshalb eine Korrelation zwischen der Eingabefolge und Wechseln in der Ausgabefolge besteht. Dieser Zusammenhang tritt verstärkt zu Tage, wenn der Ausgang sich lange nicht geändert hat. Der Zustand nach k Übergängen wird durch die Matrix Mnk beschrieben. Ist am Ausgang nicht ein run von 0 aufgetreten, sondern ein run von 1, so ergeben dieselben Überlegungen eine ähnliche Matrix, die hier der Einfachheit halber nicht betrachtet wird. Aus der folgenden Beobachtung ergibt sich die Definition des Korrelationsvorteils: Beobachtung/Definition 4.42 Setzen wir voraus, daß alle Zustände im Markov-Modell einer Kaskade der Länge n ≥ 1 zunächst dieselbe Wahrscheinlichkeit 21n haben. Die Wahrscheinlichkeit wkn , daß die letzte Eingabe eine 0 war, nachdem ein run der Länge k beobachtet wurde ist die Summe aller Zustände gerader Parität, nachdem k − 1 Zustandsübergange durchgeführt wurden. Es gilt also: wkn = 1 · (1, . . . , 1) · Mnk−1 · (1, . . . , 1, 0, . . . , 0)t . 2n 4.3. KONSTRUKTION VON FOLGENGENERATOREN 71 wobei (v)t für den Vektor v transponiert steht und der letzte Vektor aus 2n−1 mal 1 und 2n−1 mal 0 besteht. Der Abstand dieser Wahrscheinlichkeit von 12 gibt den Vorteil an, der für einen Korrelationsangriff existiert. Wir setzen den Korrelationsvorteil ∆nk := wkn − 1 . 2 Satz 4.43 Für den Korrelationsvorteil einer stop-and-go Kaskade der Länge n gilt, nachdem ein run der Länge k am Ausgang beobachtet wurde: ∆nk ≤ 2k−n−3. Der Beweis dieses Satzes läßt sich mit linearer Algebra durchfüren. Der zentrale Punkt dabei ist die rekursive Struktur der Übergangsmatrix Mn . Das Verhalten der Kaskade, insbesondere das Ansammeln der Wahrscheinlichkeiten“ im (0, . . . , 0) Zustand nach vie” len beobachten konstanten Ausgängen läßt sich in den hier angegebenen Potenzen von M2 und M3 erkennen. 2 6 M2 = 6 4 2 26 M2 6 4 1.0 0.25 0.75 0.4375 2 1.0 5 6 0.8125 M2 6 4 0.96875 0.84277 2 1.0 10 6 0.98926 M2 6 4 0.99902 0.99023 2 6 6 6 6 6 M3 = 6 6 6 6 4 1.0 0.0 0.0 0.0 0.5 0.0 0.25 0.125 1.0 6 0.125 6 6 0.25 6 6 0.125 2 M3 = 6 6 0.75 6 0.0625 6 4 0.4375 0.2344 2 0.0 0.5 0.0 0.0 0.0 0.25 0.0 0.125 0.0 0.25 0.0 0.0625 0.0 0.1875 0.0 0.1094 1.0 0.0 0.5 0.25 0.0 0.5 0.0 0.25 0.0 0.25 0.0 0.1875 0.0 0.5 0.25 0.3125 0.0 0.03125 0.0 0.030273 0.0 0.00097656 0.0 0.00097561 0.0 0.0 0.5 0.25 0.0 0.25 0.25 0.125 0.0 0.125 0.25 0.25 0.0 0.25 0.1875 0.1719 0.0 0.5 0.5 0.25 0.0 0.15625 0.03125 0.12598 0.0 0.0097656 0.00097656 0.00879 0.0 0.0 0.0 0.25 0.0 0.0 0.0 0.125 0.0 0.0 0.0 0.0625 0.0 0.0 0.0 0.0469 0.0 0.0 0.5 0.25 0.5 0.0 0.25 0.125 0.0 0.125 0.5 0.3125 0.25 0.1875 0.3125 0.2031 3 0.0 0.0 7 7 0.0 5 0.25 3 0.0 7 0.0 7 5 0.0 0.0625 3 0.0 7 0.0 7 5 0.0 0.00097656 3 0.0 7 0.0 7 5 0.0 0.95367E − 6 0.0 0.0 0.0 0.25 0.0 0.25 0.0 0.125 0.0 0.0 0.0 0.125 0.0 0.0625 0.0 0.0781 0.0 0.5 0.0 0.0 0.0 0.25 0.25 0.125 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.125 0.0 0.375 0.0 0.0625 0.0 0.25 0.0625 0.1407 3 7 7 7 7 7 7 7 7 7 5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0156 3 7 7 7 7 7 7 7 7 7 5 72 KAPITEL 4. STROMCHIFFREN 1.0 6 0.5957 6 6 0.8125 6 6 0.625 5 M3 = 6 6 0.96875 6 0.57031 6 4 0.84277 0.65134 2 2 6 6 6 6 6 10 M3 = 6 6 6 6 4 1.0 0.95313 0.98926 0.95809 0.99902 0.95216 0.99023 0.95906 0.0 0.03125 0.0 0.02539 0.0 0.03027 0.0 0.02634 0.0 0.00098 0.0 0.00097 0.0 0.00098 0.0 0.00097 0.0 0.09570 0.03125 0.08496 0.0 0.10059 0.03027 0.08102 0.0 0.00781 0.00098 0.00690 0.0 0.00782 0.00098 0.00689 0.0 0.0 0.0 0.00098 0.0 0.0 0.0 0.00095 0.0 0.0 0.0 0.95E − 6 0.0 0.0 0.0 0.95E − 6 0.0 0.2168 0.15625 0.21777 0.03125 0.24219 0.12598 0.19144 0.0 0.03613 0.00977 0.03215 0.00098 0.037 0.00879 0.03118 0.0 0.0 0.0 0.00488 0.0 0.00098 0.0 0.00394 0.0 0.0 0.0 0.00001 0.0 0.95E − 6 0.0 0.0000086 0.0 0.06055 0.0 0.04102 0.0 0.05566 0.00098 0.04495 0.0 0.00195 0.0 0.00189 0.0 0.0019417 0.95E − 6 0.0019 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.00003 3 7 7 7 7 7 7 7 7 7 5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.93E − 9 3 7 7 7 7 7 7 7 7 7 5 Eigenschaften der stop-and-go-Schieberegister Die entscheidenden Parameter beim Entwurf einer taktgesteuerten Schieberegisterkaskade sind die Periode p einer Stufe und die Länge der Kaskade n. Die Periode und die lineare Komplexität einer solchen Kaskade hängt im wesentlichen von der Anzahl der verwendeten Schieberegisterzellen ab. Der Korrelationsvorteil hängt lediglich von der Anzahl der Stufen ab. Es ist daher ein naheliegendes Entwurfskriterium, die Länge der einzelnen Register klein zu halten und den Aufwand in die Anzahl der Stufen zu investieren. Dies wird sehr gut durch das folgende Beispiel klar: Beispiel 4.44 Vergleichen wir eine erste Kaskade aus n = 10 Registern der Länge 100, d. h. p = 2100 − 1 und eine zweite Kaskade aus n = 100 Registern der Länge 10, d.h. p = 210 − 1 und n = 100. Für eine Korrelationsattacke betrachten wir runs bis zur Länge k = 20. Beide Kaskaden benutzen die gleiche Anzahl an Registerzellen. 1. Im ersten Fall ist die Periode der Kaskade nährungsweise 21000 , die lineare Komplexität nicht größer als 2907 und ∆10 20 = 0.39, so daß also ein Korrelationsangriff möglich erscheint. 2. Im zweiten Fall ist die Periode der Kaskade mindestens 2990 , die lineare Komplexität 1 mindestens 2984 und ∆100 20 ≤ 283 . Ein erfolgreicher Korrelationsangriff ist unmöglich. Kapitel 5 Blockchiffren 5.1 Grundsätzliches zu Blockchiffren Bei Blockchiffren wird im Gegensatz zu sequentiellen Chiffren der Klartext vor der Verarbeitung in eine Folge von Blöcken fester Länge aufgeteilt, wobei die Verschlüsselungsoperation für jeden Block identisch ist. Definition 5.1 Gegeben seien zwei endliche Alphabete A und B, m, n ∈ IN. Eine Blockchiffre ist eine Abbildung f : An → Bm , wobei f sinnvollerweise bijektiv ist. Bei einer Blockchiffre handelt es sich im wesentlichen um eine monoalphabetische und polygraphische Substitution von An nach Bm . Des weiteren stellt man unmittelbar fest: • f ist unabhängig von der Zeit t oder der Nachricht m. • Blockchiffren sind für eine bitserielle Verarbeitung nicht geeignet, da sich Verzögerungen ergeben. Sei t die Zeit, die für die sequentielle Übertragung eines Bits benötigt wird; dann beträgt diese Verzögerung ungefähr t · n. • Aus der in Abschnitt 3.1 gemachten Forderung 3.3 ergibt sich, daß für eine si” chere“ Blockchiffre |K| ≥ |M| gelten muß. Es darf also nicht weniger Schlüssel als Nachrichten geben. Für die weiteren Betrachtungen nehmen wir o.B.d.A. A = B und n = m an. Eine Blockchiffrefunktion hat dann im Normalfall die Form Ek : M −→ C An −→ An , 73 74 KAPITEL 5. BLOCKCHIFFREN m sequentiell ? • • • - - f Blockchiffre • • • - c sequentiell Abbildung 5.1: Verzögerungen der Blockchiffre bei der bitseriellen Verarbeitung k ? m - Ek - c Abbildung 5.2: Prinzip einer Blockchiffre 5.1. GRUNDSÄTZLICHES ZU BLOCKCHIFFREN k m A A AU 75 - c =m⊕k Abbildung 5.3: Prinzip einer sequentiellen Chiffre (Vernam-Chiffrierung) parametrisiert durch den Schlüssel k ∈ {0, 1}l = K. Dabei ist Ek ∈ S|An | = b Menge der Substitutionen. Es erhebt sich die Frage, wieviele bijektive Abbildungen {0, 1}n 7→ {0, 1}n n n es überhaupt gibt. Offensichtlich gibt es (2n )2 = 2n·2 Abbildungen {0, 1}n 7→ {0, 1}n, √ n n davon sind (2n )! ≈ 2π2n · (2n )2 · e−2 (Stirling’sche Formel [26]) bijektiv. Um alle bijektiven Abbildungen zu indizieren, muß also l ≈ n · 2n sein. 5.1.1 Diskussion von Strom- und Blockchiffren Das Prinzip einer sequentiellen Chiffre ist in Abbildung 5.3 nochmals aufgezeigt. Dabei ist allgemein eine Verknüpfungsfunktion f bzw. f −1 gegeben; hier sei o.B.d.A. f =XOR b (über GF (2) : f =+). b Die Vorteile (+) und Nachteile (−) von sequentiellen Chiffren sind: + Sie eignen sich gut bei sequentiellen Ende-zu-Ende-Übertragungen. + Es können sehr hohe Verschlüsselungsraten im Gbit/s-Bereich, nahe der Schaltrate eines einzelnen Gatters, erreicht werden; gerade bei Implementierungen, die auf Schieberegistern beruhen (auf einem oder als Teil eines Chips). − Sequentielle Chiffren eignen sich weniger gut für die Speichersicherung, da in eine sequentielle Chiffre die Zeit als Parameter einfließt. Zur Dechiffrierung ist also eine Vorgeschichte“, in Form der Schlüsselfolge k von Anfang an, notwendig. ” − Sequentielle Chiffren eignen sich weniger gut für den Blockmode“ bei Ende-zu” Ende-Übertragungen, wie er z.B. bei Datex-P der Deutschen Bundespost verwendet wird, da für jeden Block eine Synchronisierung erforderlich wäre. Die Vor- und Nachteile von Blockchiffren hingegen sind: − Blockchiffren eignen sich, wie bereits erwähnt, nicht bei serieller Bitverarbeitung, also auch nicht bei sequentiellen Ende-zu-Ende-Übertragungen. − Die Verschlüsselungsraten von Blockchiffren liegen i.allg. um Größenordnungen niedriger als die auf Schieberegistern basierenden Implementierungen von sequentiellen 76 KAPITEL 5. BLOCKCHIFFREN Chiffren. Gegenwärtig liegen z.B. die Verschlüsselungsraten von HW-Implementierungen des DES, auf den später noch einzugehen ist, bei 25 MByte/s [4]. − Es gibt keine Blockchiffre, die absolut sicher wäre. Die heute bekannten Blockchiffren sind allenfalls praktisch sicher. + Blockchiffren eignen sich gut für die Speichersicherung, da die Speicher blockweise (seitenweise) organisiert sind und der gleiche Schlüssel gut zur Verschlüsselung mehrerer Blöcke benutzt werden kann. + Blockchiffren eignen sich im Blockmode“ offensichtlich gut zur Ende-zu-Ende” Übertragung. Die Unterscheidung von Block- und sequentiellen Chiffren wird schwieriger, wenn wir sequentielle Chiffren über echten“ Alphabeten A betrachten, also A 6= {0, 1}. Hier läßt ” sich die Verschlüsselung eines Zeichens von A als Blockchiffre über 2|A| Zeichen interpretieren. 5.1.2 Bausteine von Blockchiffren Blockchiffren sind meist als Produktchiffren aufgebaut, d.h. es werden mehrere Verschlüsselungen benutzt, die nacheinander angewandt werden. Die Verschlüsselungen sind hierbei üblicherweise Substitutionen und Permutationen, die für sich genommen zwar kryptographisch schwach sind, aber im Produkt eine starke Chiffre ergeben. Dies ist das Konzept einer Produktchiffre. Bei einer Substitution, von Shannon confusion“ genannt, werden die Bits des Klar” textblockes in Gruppen aufgeteilt und jede Bitgruppe durch ein anderes Bitmuster entsprechend einer Substitutionstabelle (S-Box) ersetzt. Soll gleichzeitig noch eine Bitexpansion durchgeführt werden, so sind die Bitmuster, die als Output von einer S-Box erzeugt werden, von größerer Länge als die zu ersetzenden Bitgruppen, die als Input für die S-Box dienen. Der Aufbau einer solchen Substitutionsbox, die als ROM realisiert wird, ist in Abbildung 5.4 an einem Beispiel schematisch gezeigt. Das zuunterst eingezeichnete der 4 Input-Bits im obigen Abbildung fungiert dabei als Kontrollbit für die Auswahl der Substitution. Bei einer Permutation, von Shannon diffusion“ genannt, werden die Bits des Klartext” blockes permutiert. Die Bits des Klartextblockes werden dazu als Input einer sogenannten Permutationsbox (P-Box) genommen, in der die anzuwendende Permutation in Hardware verdrahtet ist. Der schematische Aufbau einer Permutationsbox ist in Abbildung 5.5 gezeigt. In der heute üblichen VLSI Technik, sind aber gerade solche Verdrahtungen mit vielen Überkreuzungen äußerst unangenehm. Man beachte, daß bei nicht flacher Wahrscheinlichkeitsverteilung der Klartexte Permutationsboxen leicht zu brechen sind. Die wiederholte Kombination von Permutationen und Substitutionen, wie in Abbildung 5.6 dargestellt, ergibt eine starke Produktchiffre, da der resultierende Chiffretext 5.1. GRUNDSÄTZLICHES ZU BLOCKCHIFFREN - Input 4 Bit S-Box - 77 input Output 4 Bit output cb=0 cb=1 000 001 1010 0011 0111 0100 • • • • • • • • • 111 0100 1001 6 control bit Abbildung 5.4: Schematischer Aufbau einer S-Box 0123- m n −2 n −1 e e e Z Z e Z e PP Z P P e Z P P ePPP Z Z h h h e h hZ hh eZ eZ P-Box e 0123- n −2 n −1 c Abbildung 5.5: Schematischer Aufbau einer P-Box 78 KAPITEL 5. BLOCKCHIFFREN - Klartext - - S S • • • S - - - - - P - S S • • • S - - - - - - - P • • • - - S S • • • S - - - - - P Chiffretext - Abbildung 5.6: Produktchiffre mit Permutation (P) und Substitutionen (S) durch den ganzen Prozeß in unvorhersehbarer Weise aus dem Klartext erzeugt wird, wenn man keine Kenntnis über die dazwischenliegenden Transformationen hat. Zum Dechiffrieren wird der ganze Prozeß umgekehrt. Auf den Chiffretext werden in umgekehrter Reihenfolge die invertierten Permutationen und das Inverse jeder S-Box angewendet. Ohne Kenntnis der P- und S-Boxen darf der Klartextblock nicht aus dem Chiffretextblock herleitbar sein. Offensichtlich erzielt man die größte Kryptokomplexität mit einer solchen Chiffre, wenn die S-Boxen in jeder Stufe verschieden gewählt werden. Falls z.B. die S-Boxen auf 4-Bit-Gruppen operieren (d.h Inputlänge = Outputlänge = 4 bit), dann gibt es bereits (24 )! oder ungefähr 2 · 1013 verschiedene S-Boxen zur Auswahl, die alle invertierbar sind. Allerdings muß man bedenken, daß eine große Anzahl davon unbrauchbar ist. Der Verschlüsselungsprozeß obiger Art muß noch durch einen Schlüssel gesteuert sein. Eine Möglichkeit für die Steuerfunktion des Schlüssels wäre die Auswahl der anzuwendenden S-Box. Nimmt man z.B. an, daß Klartextblöcke der Länge 128 bit zu verschlüsseln sind und 4-Bit-S-Boxen (s.o.) verwendet werden, dann sind in jeder Stufe 32 S-Boxen notwendig. Jede S-Box wird dann, wie wir oben bereits erwähnt haben, durch ein ROM realisiert, in dem 16 Worte von 4 bit Länge, also insgesamt 64 bit gespeichert sind. Die Information zur Auswahl einer der (24 )! möglichen invertierbaren Transformationen dieser Art benötigt allerdings selbst schon log2 (16!) ≈ 44, 3 bit Speicherplatz. Falls man 16 Stufen hintereinander geschalteter Permutations-Substitutions-Schritte hat, ergibt sich insgesamt eine totale Länge zur Speicherung der Auswahlinformation für die S-Boxen von 16 · 32 · 45 = 23040 bit. Dies wäre freilich ein viel zu langer Schlüssel! Daher werden meist nur wenige verschiedene S-Boxen spezifiziert, wobei durch den Schlüssel ausgewählt wird, welche S-Box in jeder Stufe benutzt werden soll. Die Spezifikation der S-Boxen ist dann Teil des Verschlüsselungsalgorithmus und wird nicht durch den Schlüssel beeinflußt. Bei der Lucifer-Verschlüsselung von IBM, die nach diesem Prinzip funktioniert, werden 5.1. GRUNDSÄTZLICHES ZU BLOCKCHIFFREN k k ? m - 79 Ek ? Übertragung c - L L LL c’ - Ek−1 m’ - Abbildung 5.7: ECB Mode in jeder Stufe nur zwei verschiedene 4-Bit S-Boxen spezifiziert. Die Auswahl, welche der beiden S-Boxen nun gerade benutzt werden soll, wird durch das entsprechende Bit des Schlüssels gesteuert. Da mit dem Lucifer-Algorithmus Klartextblöcke der Länge 128 bit verschlüsselt werden und 16 Permutations-Substitutions-Schritte durchgeführt werden, wäre für die Lucifer-Verschlüsselung eigentlich ein Schlüssel der Länge 16 · 32 = 512 bit notwendig. Tatsächlich wird aber nur ein 128 bit langer Schlüssel verwendet, indem jedes Schlüsselbit viermal zur Auswahl einer S-Box benutzt wird. Näheres findet sich in [39]. 5.1.3 Betriebsarten von Blockchiffren Im folgenden werden die vier verschiedenen Betriebsarten behandelt, die für die praktische Verwendung von Blockchiffren möglich sind. Die verschiedenen Anwendungsmodi einer Blockchiffre sind: 1. Electronic Codebook Mode (ECB), 2. Cipher Block Chaining Mode (CBC), 3. Cipher Feedback Mode (CFB), 4. Output Feedback Mode (OFB). 1. Electronic Codebook Mode (ECB) Beim ECB wird der Klartext in Blöcke fester Länge, sagen wir n bits, aufgeteilt und jeder Block unabhängig von den anderen einzeln chiffriert. Falls notwendig, wird der letzte Block, um die Blockgröße zu erhalten, z.B. mit Nullen oder besser noch mit einer Zufallsfolge aufgefüllt. Identische Klartextblöcke liefern damit auch identische Chiffretextblöcke; daher wird diese Betriebsart in Analogie zu einem Code-Buch als Electronic Codebook Mode bezeichnet. Diese Betriebsart hat im Hinblick auf die Sicherheit wenigstens zwei Nachteile: 80 KAPITEL 5. BLOCKCHIFFREN − Da gleiche Klartextblöcke, verschlüsselt mit dem gleichen Schlüssel, zu gleichen Chiffretextblöcken führen, kann dies einem passiven Angreifer Information über den Klartext liefern, obwohl der Angreifer die Blöcke selbst nicht entschlüsseln kann. − Der zweite, schwerwiegendere Nachteil ist darin zu sehen, daß ein Angreifer den Chiffretext selbst ändern kann, ohne daß der Empfänger der Nachricht dies bemerkt. Chiffretextblöcke, die mit dem gleichen Schlüssel chiffriert und bei vorausgegangenen Übertragungen aufgezeichnet wurden, könnten z.B. eingefügt werden, um den Sinn einer Nachricht zu ändern. Aufgrund dieser Nachteile ist der ECB Mode ungeeignet, um lange Nachrichten zu verschlüsseln. Um diesen Nachteilen abzuhelfen, sollte ein Chiffretextblock nicht nur von dem zugehörigen Klartextblock, sondern auch von allen vorausgegangenen Klar- bzw. Chiffretextblöcken abhängen. Damit liefern sich wiederholende, identische Klartextblöcke verschiedene Chiffretextblöcke. Außerdem lassen sich auf der Empfängerseite Versuche erkennen, Chiffretextblöcke zu ändern, hinzuzufügen oder zu löschen. Hinsichtlich des Auftretens von Übertragungsfehlern hat der ECB folgende Eigenschaften: • Tritt ein Bitfehler in Block ci auf, so ist wegen der Unabhängigkeit der Chiffretextblöcke untereinander nur der Block ci gestört, d.h. bei der Dechiffrierung erhält man i. allg. einen total gestörten Klartextblock. Alle folgenden Blöcke werden wieder korrekt dechiffriert. Es gibt also keine Fehlerfortpflanzung. • Tritt ein Bitslip im Block ci auf, d.h. bei der Übertragung wird ein Bit im Übertragungskanal verschluckt“, dann ist beim Empfänger keine korrekte Blocksyn” chronisation mehr vorhanden. Das heißt, daß Block ci und alle folgenden Blöcke falsch dechiffriert und damit unbrauchbar werden. Der ECB Mode ist also nicht selbstsynchronisierend. 2. Cipher Block Chaining Mode (CBC) Im CBC Mode wird eine Nachricht genau wie im ECB Mode zuerst in Blöcke gleicher Länge zerlegt. Besitzt der letzte Block die Länge l (l < n), so wird entweder aufgefüllt, oder es wird wie weiter unten beschrieben verfahren. Wie in Abbildung 5.8 gezeigt, benutzt das CBC Verfahren die Ausgabe eines jeden Chiffrierschrittes, um den folgenden Block vorzuchiffrieren“. Dieses Verfahren ist ” also für den wahlfreien Zugriff, etwa auf Speicherdaten, nicht direkt einsetzbar: Zum Entschlüsseln liefert das XOR des vorangegangenen Chiffratblocks mit dem entschlüsselten Block den Klartext. Man erhält im CBC Mode die Chiffretextblöcke c0 , c1 , c2 , ... durch: c0 : = IV (Initialisierungsvektor) ci : = Ek (mi ⊕ ci−1 ). 5.1. GRUNDSÄTZLICHES ZU BLOCKCHIFFREN 81 k k ? m- ⊕ 6 ? Übertragung c - Ek L L LL c’ - n-bit Register Ek−1 -n-bit -⊕ m’- 6 Register Abbildung 5.8: CBC Mode Der erste Block m1 und ein Initialisierungsvektor IV (Es gibt ja zu diesem Zeitpunkt noch keinen verschlüsselten Chiffretextblock) werden bitweise modulo 2 addiert, das Ergebnis wird dann wie im ECB Mode verschlüsselt und ergibt den ersten Chiffretextblock c1 . Dieser und der zweite Nachrichtenblock m2 werden bitweise modulo 2 addiert, das Ergebnis wird verschlüsselt, usw. Dieser Vorgang wiederholt sich bis zum Ende der Nachricht. Die Entschlüsselung geschieht folgendermaßen: c0 : = IV mi : = Ek−1 (ci ) ⊕ ci−1 Es gilt: mi = Ek−1 (ci ) ⊕ ci−1 = Ek−1 (Ek (mi ⊕ ci−1 )) ⊕ ci−1 = mi ⊕ ci−1 ⊕ ci−1 . Es hängt also jeder Chiffretextblock ci von den vorausgegangenen Blöcken cj , 1 ≤ j < i, und vom Initialisierungsvektor IV ab. Damit liefern gleiche Klartextblöcke mi und mj (i 6= j) i. allg. verschiedene Chiffretextblöcke ci und cj . Die Wahl des Initialisierungsvektors IV ist wichtig für die Sicherheit dieser Verschlüsselung, denn durch Änderung einzelner Bits des IV können gezielt bestimmte Bits des ersten Blockes verändert werden, der dadurch anfällig für sinnvolle Veränderungen ist. Es ist ferner nicht anzuraten, gleiche Initialisierungsvektoren für das Senden mehrerer Texte zu verwenden, da dadurch, solange sich die Klartexte nicht unterscheiden gleiche Chiffretextblöcke erzeugt werden. 82 KAPITEL 5. BLOCKCHIFFREN cr−3 ? mr−2 ? -⊕ - ? cr−2 Ek - L L LL c′r−2 - ? ? cr−1 Ek k - - L L LL c′r−1 - ? ? Ek Ek ? ?c - ⊕ r- ?m′ - ⊕ r−1 - Ek−1 k ? linke l bit mr ?m′ - ⊕ r−2 - Ek−1 k k mr−1 ? -⊕ - cr−3 k k linke l bit L L LL ′ ? cr ⊕ ′ mr Abbildung 5.9: Methode zur Verschlüsselung des letzten Blockes bei CBC Auch der letzte Block einer Übertragung ist anfällig gegen (sinnvolle) Veränderungen, da sich eine Veränderung im Chiffretext nicht mehr auf nachfolgende Blöcke auswirken kann. Ganz besonders gilt dies für folgendes Verfahren, das dann Verwendung findet, wenn der letzte Klartextblock nicht genau n bit Länge hat, aber auch nicht auf n bit aufgefüllt werden kann, weil es z.B. die Anwendung erforderlich macht, daß der gespeicherte Klartext nach der Verschlüsselung in denselben Speicher zurückgeschrieben werden muß. Um den letzten Klartextblock mr , bestehend aus l bit (l < n), zu verschlüsseln, wird der vorletzte Chiffretextblock cr−1 nochmals verschlüsselt. Von diesem Ergebnis werden die linken l bit genommen und bitweise modulo 2 zu dem Block mr addiert. Der Empfänger muß dann ebenfalls den vorletzten Block zweimal verschlüsseln um zu dechiffrieren (siehe Abbildung 5.9). Die Schwäche des Verfahrens liegt darin, daß ein Angreifer einzelne Bits des letzten Klartextblockes auswählen und deren Werte durch einfaches Ändern der entspre- 5.1. GRUNDSÄTZLICHES ZU BLOCKCHIFFREN 83 k ? ci - 1-bit Fehler Ek−1 -n-bit -⊕ Register 6 - mi mi+1 zerstörter Block 1-bit Fehler Abbildung 5.10: Fehlererweiterung beim CBC Mode chenden Bits im Chiffretext verändern kann. Daher sollte der letzte Block keine sinnvoll zu ändernden Informationen, wie z.B. Prüfsummen, enthalten. Aufgrund der Verkettung der Chiffretextblöcke im CBC Mode muß untersucht werden, welche Auswirkungen ein Fehler bei der Übertragung eines Chiffretextblockes hat. • Tritt ein Bitfehler im Block ci auf, so zeigt sich der in Abbildung 5.10 dargestellte Effekt: Die Ausgabe bei der Dechiffrierung des Blockes ci ist rein zufällig, da ein gefälschtes Bit in der Eingabe die Ausgabe völlig verändert. Der ganze Klartextblock mi ist also zerstört. Durch die Verkettung der Blöcke wird auch noch Block mi+1 in Mitleidenschaft gezogen. Im Speicher steht jetzt der bitfehlerbehaftete Chiffretextblock ci . Durch die Addition modulo 2 wird bewirkt, daß an der Stelle des Bitfehlers im Block ci im Klartextblock mi+1 nun auch ein Bitfehler entsteht. Nachfolgende Blöcke werden aber nicht mehr beeinflußt. Der CBC Mode ist selbstkorrigierend, Übertragungsfehler innerhalb eines Blockes wirken sich bei der Entschlüsselung nur auf diesen und den direkt nachfolgenden Block aus. Daraus folgt, daß der Initialisierungsvektor zum Start des Systems zwischen Sender und Empfänger nicht vereinbart sein muß. Wählen Sender und Empfänger je einen zufälligen IV, so kann nur Block m1 vom Empfänger nicht korrekt wiedergewonnen werden. Die eben erläuterte Art der Fehlererweiterung des CBC Mode beinhaltet ein Sicherheitsrisiko. Durch das gezielte Verändern eines Bits im Chiffretext wird zwar der zugehörige Klartextblock völlig zerstört, aber im nächsten Klartextblock wird genau dieses Bit negiert, was von entscheidender Bedeutung sein kann. Nach Auftreten eines Fehlers sollte also die ganze Übertragungsfolge wiederholt und nur dann akzeptiert werden, wenn alle Blöcke korrekt übertragen wurden. Um dies zu prüfen, können auf den Klartext bezogene Prüfnummern verwendet werden. • Tritt bei der Übertragung ein Bitslip auf, dann geht wie beim ECB Mode die Blocksynchronisation verloren und die Blöcke werden unbrauchbar. 84 KAPITEL 5. BLOCKCHIFFREN ? ? n-bit SR n-Bit k n-bit SR n-Bit ? ? Ek Ek n-Bit ? ? - ? -⊕ k n-Bit l-bit Ausw. m l-bit Ausw. c- L L LL c′ ? -⊕ m′ - Abbildung 5.11: CFB Mode 3. Cipher Feedback Mode (CFB) Die bevorzugte Methode, eine Folge von Zeichen einzeln zu verschlüsseln, ist der Cipher Feedback Mode (CFB). Durch diese Betriebsart wird die Blockchiffre zu einer kontinuierlichen Chiffre, die auf Klartexteinheiten von 1 bis n bit Länge operiert. Sowohl sender- als auch empfängerseitig arbeitet die Blockchiffre im Verschlüsselungsmodus und erzeugt eine pseudozufällige Bitfolge, die modulo 2 zu den Klartextzeichen bzw. empfängerseitig zu den Chiffretextzeichen addiert wird. Abbildung 5.11 zeigt den CFB Mode, die Eingänge der Blockchiffre sind dabei Schieberegister, die wie im CBC Mode zu Beginn einer Übertragung bei Sender und Empfänger mit einem Initialisierungsvektor geladen werden. Vom Ausgang der Blockchiffre werden jeweils l bit (l entsprechend der Länge des zu verschlüsselnden Zeichens) zum Klartextzeichen bitweise modulo 2 addiert, während die übrigen Bits des Blockchiffreausgangs verlorengehen. Das Ergebnis dieser Addition wird übertragen und außerdem in das Eingangsregister, dessen Inhalt zuvor um l Stellen nach links geschoben wurde, zurückgeführt. Diese Operation läuft beim Empfänger genauso ab, so daß die beiden Eingangsregister jeweils die letzten n bit (nach einer Anlaufphase) des gesendeten Chiffretextes enthalten. Die Chiffretextfolge (jeweils l bit) ist damit vom Initialisierungsvektor und allen schon übertragenen Chiffretexten abhängig. Bei diesem Betriebsmodus wird offensichtlich die Invertierbarkeit der Blockchiffrefunktion nicht benötigt. Für jedes zu verschlüsselnde Zeichen der Zeichengröße l bit ist eine Operation der Blockchiffre erforderlich, so daß diese Betriebsart nicht so effizient wie der CBC Mode ist. Trotzdem findet der CFB Mode vielfach Anwendung, da die zu übertragenden Nachrichten nicht die Blockchiffre selbst durchlaufen, sondern nur einer einfachen Operation (⊕) unterworfen werden. 5.1. GRUNDSÄTZLICHES ZU BLOCKCHIFFREN 85 • Übertragungsfehler beeinflussen die korrekte Entschlüsselung in ähnlicher Weise wie im CBC Mode. Jeder Fehler, der in das Eingangsregister auf der Empfängerseite gelangt, verhindert eine korrekte Dechiffrierung solange, bis er wieder aus dem Schieberegister hinausgeschoben ist. Sei l die Länge der übertragenen Zeichen, dann werden 1 + nl Zeichen falsch dechiffriert; das von dem Übertragungsfehler direkt betroffene und die nl folgenden. Es ist einem Angreifer also möglich, gezielt Bits eines Klartextblockes zu ändern. Er erzeugt dabei jedoch bei den nächsten Blöcken zufällige Änderungen, die sofort erkannt werden können. Gefährdet ist allerdings wieder der letzte Block, weil er keine Nachfolgeblöcke mehr hat. Bei einem 8-Bit-CFB, d.h. l = 8, ist dieser letzte Block normalerweise Teil der Prüfsumme und nicht sinnvoll zu ändern. Wie beim CBC, so ist auch beim CFB eine Initialisierung notwendig. Es sollte für jede Nachricht ein neuer Initialisierungsvektor verwendet werden. Dieser kann im CFB Mode im Klartext übermittelt werden, da er ja, bevor er den Datenstrom beeinflußt, verschlüsselt wird. Man kann somit den Initialisierungsvektor als Präambel einer Nachricht verstehen. • Tritt bei der Übertragung ein Bitslip auf, so hängt es von der Zeichenlänge l ab, ob die Synchronisation dauerhaft verloren geht, oder ob eine Selbstsynchronisation eintritt. Ist l = 1, dann wird solange falsch dechiffriert, bis der Inhalt der Schieberegister beim Sender und Empfänger wieder übereinstimmen. Dies ist nach n Takten oder gleichbedeutend n bit wieder der Fall. Für l > 1 stimmt der Inhalt der beiden Schieberegister beim Sender und Empfänger nie mehr überein, so daß alle folgenden Zeichen falsch dechiffriert werden. Allgemein gilt, daß eine Resynchronisation im CFB Mode stattfindet, wenn bei einer Zeichenlänge l im Übertragungskanal eine Gruppe von l bit oder ein Vielfaches davon verschluckt“ wird. ” 4. Output Feedback Mode (OFB) Eine weitere Möglichkeit, eine Blockchiffre als kontinuierliche Chiffre zu verwenden, ist der Output Feedback Mode (OFB). Wie aus Abbildung 5.12 hervorgeht, ist diese Betriebsart dem CFB Mode ähnlich. Auch hier arbeitet die Blockchiffre bei Sender und Empfänger im Chiffriermodus, und es werden jeweils l bit (1 ≤ l ≤ n) des Blockchiffreergebnisses bitweise modulo 2 zu dem Klartext bzw. dem Chiffretext addiert. Auch hier wird also nur eine Richtung der Chiffrierfunktion verwendet. Anders als beim CFB Mode werden hier jedoch diese l bit direkt in das Eingangsregister der Blockchiffre zurückgeführt, so daß die Inhalte dieser Register nicht vom Klartext bzw. vom übertragenen Chiffretext abhängen. Übertragungsfehler wirken sich deshalb nur auf das betroffene Zeichen aus, alle folgenden Zeichen werden davon nicht mehr berührt. Es gibt also keine Fehlerfortpflanzung wie im CFB Mode. 86 KAPITEL 5. BLOCKCHIFFREN ? ? n-bit SR n-Bit k n-bit SR n-Bit ? ? Ek Ek n-Bit ? ? - ? -⊕ k n-Bit l-bit Ausw. m l-bit Ausw. c- L L LL c′ ? -⊕ m′ - Abbildung 5.12: OFB Mode Der OFB Mode ist für solche Fälle gedacht, wo Störungen auf dem Übertragungskanal zu erwarten sind, also zum Beispiel bei Satellitenverbindungen, und eine Fehlerfortpflanzung mit dem Faktor l der Zeichengröße nicht akzeptabel ist. Diese Betriebsart hat mehrere Nachteile. Da der Chiffretext nur vom derzeitigen Klartext und der entsprechenden pseudozufälligen Bitfolge des Blockchiffreergebnisses abhängt, geht die Eigenschaft der Verkettung von Nachrichten wie im CBC oder CFB Mode verloren, und es ergeben sich ähnliche Schwierigkeiten wie im ECB Mode, wenn es darum geht, Manipulationen des Chiffrates zu erkennen. Außerdem können Probleme mit der Synchronisation von Sender und Empfänger auftreten. Arbeiten die beiden Einheiten nicht mehr synchron, so kann der Rest einer Nachricht nicht mehr korrekt entschlüsselt werden. Der CFB Mode ist dagegen, wie erwähnt, selbstsynchronisierend. Besonders wichtig im OFB Mode ist, daß zur Verschlüsselung zweier Nachrichten m und m′ nicht der gleiche Initialisierungsvektor benutzt wird. Andernfalls würden beide Nachrichten mit derselben Bitfolge verschlüsselt. Wenn c und c′ die zugehörigen Chiffretexte sind, ergibt sich bei bitweiser Addition modulo 2 c ⊕ c′ = m ⊕ m′ . Wenn es sich bei m und m′ um natürlichsprachliche Texte handelt, stellt es kein großes Problem dar, diese beiden Texte aus m ⊕ m′ zu ermitteln (vgl. Abschnitt 2.1.3). Zum Abschluß sollen die vier Betriebsarten einer Blockchiffre in tabellarischer Form verglichen werden: 5.2. DER DATA ENCRYPTION STANDARD (DES) 87 ECB Übertragung einer Nachricht, die kürzer als ein Block ist CBC Nachrichten, die länger als ein Block sind CFB Zeichenstrom, bei dem jedes Zeichen einzeln zu bearbeiten ist Synchronisation Fehlererweiterung Durchsatz (normiert) Bit-Fehler keine IV keine ja Automatisch nach 1 Block ja 1 1 l n l n 1 Block zerstört Die nächsten 1 + nl Zeichen gestört 1 Bit geändert Bit Slip Keine Synchronisation mehr 1 Block zerstört und 1 bit im nächsten Block geändert Keine Synchronisation mehr l = 1: Nach n bit Resynchronisation l > 1: Keine Synchronisation Keine Synchronisation mehr Hauptsächl. Verwendung OFB Nachrichten länger als ein Block, bei unerwünschter Fehlererweiterung IV nein Abbildung 5.13: Vergleich der Betriebsarten einer Blockchiffre 5.2 Der Data Encryption Standard (DES) Der Data Encryption Standard ist eine Produktchiffre, die im Jahre 1977 als US-Verschlüsselungsstandard vom National Bureau of Standards (NBS) als Norm eingeführt wurde. Dieser Standard wurde in Zusammenarbeit mit IBM entworfen und entstand aus dem Lucifer-Algorithmus (siehe Abschnitt 5.1.2). Den Kern der Norm bildet ein Algorithmus, der Data Encryption Algorithmus, zur Ver- und Entschlüsselung binär dargestellter Nachrichten. Dieser Algorithmus besteht aus einer Folge von Permutationen und logischen Produktbildungen zwischen dem Klartext und einem individuellen Schlüssel. Der DES hat sich trotz zahlreicher Kritiken bezüglich seiner Sicherheit bei den meisten Anwendern durchsetzen können. Dies geschah nicht zuletzt deshalb, weil sehr früh integrierte Schaltungen auf dem freien“ Markt verfügbar waren. ” 5.2.1 Der DES-Algorithmus Der DES ist eine Block-Produkt-Chiffre aus Permutationen und Substitutionen, die in einer Iterationsschleife schlüsselgesteuert 16 mal durchlaufen werden. Dazu wird der Klartext in Blöcke der Länge 64 bit zerlegt. Ein Schlüssel besteht ebenfalls aus 64 bit, von denen 56 den eigentlichen Schlüssel darstellen, während die restlichen 8 bit die Funktion von Paritätsbits haben, die die acht 7-Bit-Zeichen eines Nachrichten- 88 KAPITEL 5. BLOCKCHIFFREN Schlüssel - 64 Bit - 48 Bit ? Schlüsselauswahl 16 Auswahlen ? Input - IP 6 - Chiffrierung - IP−1 Output - 16 Iterationen Abbildung 5.14: Prinzipieller Aufbau des DES blockes auf ungerade Parität ergänzen. Somit stehen 256 ≈ 7, 2 · 1016 unterschiedliche Schlüssel zur Verfügung. Der prinzipielle Aufbau des DES ist in Abb. 5.14 dargestellt. Jeder Nachrichtenblock wird erst der Eingangspermutation IP unterzogen und durchläuft anschließend 16 schlüsselabhängige, aber funktional identische Iterationen. Jede der Iterationen (oder auch Runden genannt) benutzt unterschiedliche 48 bit als Schlüssel; diese werden als Teilschlüssel aus den 56 bit ausgewählt. Auf das Ergebnis der letzten Iteration wird zum Schluß die zu IP inverse Permutation IP −1 angewandt. Der Algorithmus ist so ausgelegt, daß sämtliche Schlüssel als gleichwahrscheinlich zu betrachten sind; außerdem ist er geeignet, sowohl Klartext zu chiffrieren, als auch chiffrierten Text zu dechiffrieren. Ver- und Entschlüsselung sind aufgrund einer Konstruktionseigenschaft des Verschlüsselungsalgorithmus (s.u.) bis auf die Reihenfolge der je Iteration verwendeten Teilschlüssel identisch. • Chiffrierung: K1 , K2 , ..., K15 , K16 • Dechiffrierung: K16 , K15 , ..., K2 , K1 Wir wollen nun den Algorithmus präzisieren. Die Teile, die dabei nicht genauer angegeben werden , findet man z.B. in [90], [39] oder [65]. 5.2. DER DATA ENCRYPTION STANDARD (DES) (58 60 62 64 57 59 61 63 50 52 54 56 49 51 53 55 42 44 46 48 41 43 45 47 34 36 38 40 33 35 37 39 26 28 30 32 25 27 29 31 18 20 22 24 17 19 21 23 10 12 14 16 9 11 13 15 89 2 4 6 8 1 3 5 7) Abbildung 5.15: Initialpermutation IP 1. Die Eingangspermutation: Der 64-Bit Eingabeblock wird zunächst einer Initialpermutation IP unterworfen. Bezeichnet X = (x1 , x2 , ..., x32 , x33 , ..., x63 , x64 ) den Eingabeblock, dann wird dieser durch die in Abbildung 5.15 dargestellte Permutation IP in den Block IP (X) überführt, IP (X) = (x58 , x50 , ..., x8 , x57 , ..., x15 , x7 ). 2. Die Verschlüsselungsiteration: Der Ergebnisblock aus 1) wird in einen linken Block L und einen rechten Block R zerlegt; beide Blöcke haben die Länge 32 bit. Es gilt: L = (x58 , ..., x8 ) R = (x57 , ..., x7 ) mit L, R = IP (X). Auf diesen 32-Bit-Blöcken wird die folgende Operation ausgeführt: L(0): = L; R(0): = R; f or i: = 1 to 16 do begin L(i): = R(i − 1); R(i): = L(i − 1) ⊕ f (R(i − 1), Ki); end; Die Beschreibung der Funktion f und der Schlüssel Ki erfolgt später. 3. Die Ausgabepermutation: Auf den Ergebnisblock R(16), L(16) = Y mit Y = (y1 , y2 , ..., y63 , y64 ) aus 2) operiert die zu IP inverse Permutation IP −1. 90 KAPITEL 5. BLOCKCHIFFREN INPUT 64 ? INITIAL PERMUTATION ? e 32 32 ? ? L(0) R(0) +j fj ? ? e ? K1 ``` ``` ``` ``` ? ? L(1) = R(0) R(1) = L(0) ⊕ f (R(0), K1 ) +j fj ? ? e ? ? L(15) = R(14) +j ? ? R(15) = L(14) ⊕ f (R(14), K15 ) fj ? ? R(16) = L(15) ⊕ f (R(15), K16 ) K2 e ? e ? L(16) = R(15) ? INVERSE INITIAL PERM 64 ? OUTPUT Abbildung 5.16: DES Verschlüsselungsalgorithmus K16 5.2. DER DATA ENCRYPTION STANDARD (DES) 91 Der gesamte Verschlüsselungsalgorithmus ist in Abbildung 5.16 ausführlich dargestellt. Bemerkung 5.2 Wir können die Verschlüsselungsoperationen aus 2) für jedes i ∈ [1: 16] auch als Abbildung hK ◦ g: {0, 1}64 7−→ {0, 1}64 schreiben, wobei g: {0, 1}32 × {0, 1}32 7−→ {0, 1}32 × {0, 1}32 mit g(L, R): = (R, L) die Vertauschungsabbildung und hK : {0, 1}32 × {0, 1}32 7−→ {0, 1}32 × {0, 1}32 mit hK (R, L): = (R, f (R, K) ⊕ L) die eigentliche Verschlüsselungsabbildung ist. Die Abbildungen g und hK sind involutorisch: g(R, L) = (L, R) hK (R, f (R, K) ⊕ L) = (R, f (R, K) ⊕ f (R, K) ⊕ L) = (R, L) Die Funktion f : {0, 1}32 × {0, 1}48 7−→ {0, 1}32 ist der Kern des gesamten Verfahrens. Sie ist in Abbildung 5.17 dargestellt. Sei Ki der Teilschlüssel (s.u.) der i-ten Iteration und R(i − 1) = (r1 (i − 1), r2(i − 1), ..., r32 (i − 1)) die rechte Hälfte des Ergebnisses der (i − 1)-ten Iteration. 1. Der 32-Bit-Block R(i − 1) wird auf einen 48-Bit-Block E(R(i − 1)) = (r32 (i − 1), r1 (i − 1), r2 (i − 1), ..., r5(i − 1), r4 (i − 1), r5 (i − 1), r6(i − 1), ..., r9 (i − 1), r8 (i − 1), r9 (i − 1), r10 (i − 1), ..., r13 (i − 1), r12 (i − 1), r13 (i − 1), r14 (i − 1), ..., r17 (i − 1), r16 (i − 1), r17 (i − 1), r18 (i − 1), ..., r21 (i − 1), r20 (i − 1), r21 (i − 1), r22 (i − 1), ..., r25 (i − 1), r24 (i − 1), r25 (i − 1), r26 (i − 1), ..., r29 (i − 1), r28 (i − 1), r29 (i − 1), ..., r32 (i − 1), r1 (i − 1)) erweitert. E ist eine lineare Expansionsabbildung, die ausgewählte Bits von R(i − 1) dupliziert und R(i − 1) zu einem 48-Bit-Block erweitert. 92 KAPITEL 5. BLOCKCHIFFREN R(i − 1) 32 ? Ej 48 ? E(R(i − 1)) 48 Ki - +j A 48 ? S1 S2 S3 S4 S5 S6 S7 S8 32 B Pj ? ? f (R(i − 1), Ki ) Abbildung 5.17: Die Funktion f (R(i − 1), Ki ) 2. Ki ist der durch eine Schlüsselauswahlfunktion (s.u.) bestimmte 48-Bit-Teilschlüssel. 3. Ki und E(R(i − 1)) werden bitweise modulo 2 addiert. Das Ergebnis ist ein 48-BitVektor A(i − 1). Zur besseren Lesbarkeit wollen wir den Bezug zu (i − 1) weglassen. A = E(R(i − 1)) ⊕ Ki = (a1 , a2 , ..., a48 ) A wird in acht 6-Bit-Blöcke A1 , A2 , ..., A8 mit A = A1 A2 ...A8 zerlegt. 4. A bildet die Eingabe für die S-Boxen S1 bis S8 . Jede S-Box Sj , j ∈ [1: 8], kann vier verschiedene Substitutionen realisieren. Sj wird durch eine 4×16-Matrix beschrieben (Abbildung 5.18). Die Zeilen werden mit 0,1,2,3 und die Spalten mit 0,1,2,...,15 bezeichnet. Jede Zeile stellt eine Substitution Sjk : {0, 1}4 7−→ {0, 1}4 dar; k bezeichnet dabei die Zeilennummer. Auf diese Weise erhält man mit den acht S-Boxen 32 verschiedene Substitutionen. Sei Aj = (aj1 , aj2 , ..., aj6) ein 6-Bit-Block, dann bestimmen die Bits aj1 und aj6 , als Binärzahl aj1 aj6 gelesen, die Zeilennummer und analog aj2 aj3 aj4 aj5 die Spaltennummer der S-Box Sj . 5.2. DER DATA ENCRYPTION STANDARD (DES) 93 0 1 2 3 4 5 6 7 0 1110 0100 1101 0001 0010 1111 1011 1000 1 0000 1111 0111 0100 1110 0010 1101 0001 2 0100 0001 1110 1000 1011 0110 0010 1011 3 1111 1100 1000 0010 0100 1001 0001 0111 8 9 10 11 12 13 14 15 0 0011 1010 0110 1100 0101 1001 0000 0111 1 1010 0110 1100 1011 1001 0101 0011 1000 2 1111 1100 1001 0111 0011 1010 0101 0000 3 0101 1011 0011 1110 1010 0000 0110 1011 Abbildung 5.18: Substitutionsbox S1 Der so eindeutig bestimmte Wert aus Sj ist das Ergebnis der S-Box. Die Konkatenation der von den acht S-Boxen gelieferten Bitfolgen ergibt einen Vektor B der Länge 32 bit. B = (S1a1 a6 (a2 a3 a4 a5 ), ..., S8a43 a48 (a44 a45 a46 a47 )) = (b1 , b2 , ..., b32 ) Beispiel: A1 = (0, 1, 1, 0, 1, 1) Aus Abbildung 5.18 entnehmen wir: S101 (1101) = (0101) Die Substitutionen sind nichtlinear. Sie stellen den kryptologisch wichtigsten Teil des Data Encryption Algorithmus dar. 5. Zum Schluß wird der Vektor B einer Permutation P unterworfen, die in Abbildung 5.19 gezeigt ist. Damit ist der Funktionswert f (R(i − 1), Ki ) = P (B) bei der i-ten Iteration bestimmt. Der Ablauf des Algorithmus ist damit vorgestellt, es bleibt zu zeigen, wie die bei jeder Iteration benutzten Teilschlüssel Ki , i ∈ [1: 16], aus dem gegebenen Schlüssel K ermittelt werden. Dies ist in Abbildung 5.20 gezeigt. Aus Gründen der Sicherheit sollten alle Teilschlüssel Ki , i ∈ [1: 16], verschieden sein. Dies wird erreicht, indem für jeden Iterationsschritt des Algorithmus eine andere 48-BitTeilmenge aus den 56 bit des Schlüssels ausgewählt wird. 94 KAPITEL 5. BLOCKCHIFFREN (16 29 1 5 2 32 19 22 7 12 15 18 8 27 13 11 20 28 23 31 24 3 30 4 21 17 26 10 14 9 6 25) Abbildung 5.19: Permutationsbox P Schlüssel K (64 Bit) ? Ci , Di: 28 Bit Ki : 48 Bit PC1 C0 D0 ? ? LS1 LS1 - C1 D1 ? ? LS2 LS2 - PC2 - C2 D2 - PC2 K1 - K2 .. . .. . .. . .. . ? ? LS16 LS16 - D16 - D16 - PC2 Abbildung 5.20: Schlüsselauswahlfunktion - K16 5.2. DER DATA ENCRYPTION STANDARD (DES) N ummer der Iteration Anzahl der Shif ts 95 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 Abbildung 5.21: Shifts der Schlüsselhälften bei der Verschlüsselung Sei nun K = (k1 , k2, ..., k64 ) ein vom Benutzer vorgegebener DES-Schlüssel, wobei die ki mit i ∈ {8, 16, 24, ..., 64} die Paritätsbits sind. Der Operator P C1 (Permuted Choice 1) entfernt die Paritätsbits des Schlüssels K und reduziert diesen damit auf 56 aktive“ Schlüsselbits; außerdem werden die verbleibenden ” 56 bit einer Permutation unterworfen. P C1(K) = (k57 , k49 , ..., k36 , k63 , ..., k12 , k4) Der resultierende Vektor der Länge 56 wird in eine linke Hälfte C0 (28 bit) und eine rechte Hälfte D0 (28 bit) aufgeteilt: C0 = (k57 , ..., k36 ) D0 = (k63 , ..., k4) Die Vektoren (Ci , Di ), i ∈ [1: 16], werden dann aus (C0 , D0 ) wie folgt abgeleitet: Sei (Ci−1 , Di−1 ) bereits bestimmt, dann erhält man (Ci , Di) durch zirkuläre Linksshifts LS der Hälften Ci−1 und Di−1 um eine oder zwei Bitpositionen. Jede Hälfte wird dabei getrennt geshiftet (vgl. Abbildung 5.21). Beispielsweise erhält man (C1 , D1 ) aus (C0 , D0 ), indem die Bits von C0 und D0 um eine Position zirkulär nach links geschoben werden: (C0 , D0 ) = ((k57 , k49 , ..., k36 ), (k63 , k55 , ..., k4 )) (C1 , D1 ) = LS(C0 , D0 ) = ((k49 , ..., k36 , k57 ), (k55 , ..., k4 , k63 )) Der Operator P C2 (Permuted Choice 2) bestimmt schließlich den Teilschlüssel Ki mit i ∈ [1: 16] aus dem Vektor (Ci, Di ) durch Entfernen der Bits auf den Positionen 9, 18, 22, 25, 35, 38, 43 und 54. Die verbleibenden 48 bit von (Ci , Di ) werden außerdem noch einer Permutation unterworfen. Durch die Angabe des Operators P C2 ist der Data Encryption Algorithmus vollständig beschrieben. 96 KAPITEL 5. BLOCKCHIFFREN Wie schon erwähnt, kann der DES-Algorithmus sowohl zum Chiffrieren als auch zum Dechiffrieren verwendet werden. Zum Dechiffrieren wird der chiffrierte Textblock genau derselben Prozedur wie beim Chiffrieren unterzogen, wobei die Ki in umgekehrter Reihenfolge angewendet werden. Der erste Dechiffrierschritt ist dann IP , der den letzten Chiffrierschritt IP −1 aufhebt. Danach dient R16 L16 als permutierter Eingabeblock, und die einzelnen Ri bzw. Li erhält man (vgl. Bemerkung auf Seite 91) durch: Ri−1 = Li Li−1 = Ri ⊕ f (Li , Ki ) Wendet man auf L0 R0 dann noch IP −1 an, so hebt man den Chiffrierschritt IP auf; der Klartextblock ist somit zurückgewonnen. 5.2.2 Sicherheit des DES Seit der Veröffentlichung des DES im Jahre 1975 als zukünftiger Verschlüsselungsstandard hat es eine Kontroverse um die Sicherheit gegeben. Die Kritik richtet sich dabei hauptsächlich gegen folgende Punkte: 1. Schlüssellänge: 56 bit Schlüssellänge erscheinen manchen Autoren schon seit einigen Jahren zu gering für ausreichende Sicherheit. 2. Entwurfskriterien: Die Auswahl der einzelnen Bestandteile des DES-Algorithmus, insbesondere die der S-Boxen, ist nicht veröffentlicht worden. 3. Sicherheitstests: Kryptoanalytische Betrachtungen des DES durch IBM und die US National Security Agency (NSA) zur Untersuchung seiner Sicherheit sind nicht veröffentlicht worden. In der Arbeit [43] von Diffie und Hellman (1977) beschreiben die Autoren eine (theoretische) Maschine, mit der der DES mit einem known-plaintext Angriff durch vollständiges Testen aller 256 Schlüssel (Exhaustive Search) gebrochen werden kann. Die Maschine besteht aus einer Million spezieller LSI Such-Chips (plus Schaltkreisen zu deren Steuerung), die einen bekannten Klartextblock mit jedem der ca. 7, 2 · 1016 Schlüssel verschlüsseln und das Ergebnis mit dem ebenfalls bekannten Chiffretextblock vergleichen. Jeder Chip testet 106 Schlüssel pro Sekunde und damit 8, 64 · 1010 Schlüssel pro Tag. Da jeder der 106 Prozessoren einen anderen Teil des Schlüsselraumes durchsucht, kann der gesamte Schlüsselraum in einem Tag durchgetestet werden. Die Kosten dieser Maschine werden mit 20 Millionen US-$ angegeben, so daß bei einer Umlegung dieser Kosten auf fünf Jahre eine Lösung pro Tag rund 10000 US-$ kosten würde. Da durchschnittlich jedoch nur die Hälfte aller möglichen Schlüssel getestet werden müßte, vermindern sich die Kosten pro Lösung auf rund 5000 US-$. 5.2. DER DATA ENCRYPTION STANDARD (DES) 97 Eine genaue Beschreibung dieser Maschine und Einwände des NBS bezüglich des Baus einer solchen Maschine findet man in der oben angeführten Arbeit [43]. Diffie [44] hat diese Schätzung 1982 korrigiert. Er kommt dabei zu dem Ergebnis, daß eine Analyse-Maschine“ ca. 50 Millionen US-$ kosten und die durchschnittliche Suchzeit ” etwa zwei Tage betragen würde. In dieser Arbeit wird auch die zukünftige Rolle des DES und anderer kryptographischer Verfahren (public-key Kryptosysteme) bis zum Jahre 1995 beschrieben. Diffie und Hellman sind davon überzeugt, daß die technologische Entwicklung die Kosten einer solchen Maschine bis 1990 wesentlich senken wird, während im September 1977 eine Studie des NBS zu folgendem Schluß gekommen ist: Eine Maschine, die durchschnittlich einen Schlüssel pro Tag findet, kann ” wahrscheinlich nicht bis 1990 gebaut werden, und die Wahrscheinlichkeit, bis zu diesem Zeitpunkt verfügbar zu sein, wird zwischen 0,1 und 0,2 geschätzt. Darüber hinaus würden die Kosten einer solchen Maschine mehrere 10 Millionen US-$ betragen.“ Michael Wiener hat 1993 eine Maschine beschrieben, die ca. 35 Stunden zum Durchsuchen des Schlüsselraumes benötigt und nur 100 000 US-$ kosten würde [133]. Die Maschine basiert ebenfalls auf speziell entwickelten Chips. Im Jahre 1998 hatten die Spekulationen über eine solche Maschine ein Ende. Von der Firma Electronic Frontier Foundation (EFF) wurde eine solche Maschine gebaut. Diese Maschine besteht aus 1800 Spezialchips, die jeweils 24 Durchprobier–Einheiten“ ” enthalten und kann damit gut 88 Milliarden Schlüssel pro Sekunde durchprobieren. Für den gesamten Schlüsselraum benötigt diese Maschine etwa 9 Tage. Die Kosten für diesen Parallelrechner betrugen etwa 250 000 $. Eine Bauanleitung [35] wurde von EFF im Selbstverlag herausgegeben. In diesem Zusammenhang sollte auch bemerkt werden, daß die Schlüssellänge im ursprünglichen IBM Entwurf (Lucifer) 128 bit betrug. Auf Ersuchen der NSA wurde die Schlüssellänge dann auf 56 bit reduziert. Der Grund hierfür ist nicht veröffentlicht worden. Auf Grund ihrer Untersuchungen schlugen Hellman und andere vor, den angekündigten Standard vor Inkrafttreten dahin zu ändern, die Schlüssellänge von 56 bit auf mindestens 128 bit zu erhöhen. W.Tuchman (vgl. [129]) dagegen meint, die gleiche Sicherheit mit zwei 56-Bit-Schlüsseln zu erreichen, indem eine Mehrfachverschlüsselung der folgenden Art vorgenommen wird: Eine Nachricht M wird mit Hilfe zweier 56-Bit-Schlüssel K1 und K2 verschlüsselt: C: = DES DES −1 (DES(M, K1 ), K2 ), K1 M wird also sukzessive verschlüsselt, entschlüsselt und nochmals verschlüsselt, wobei die Verschlüsselungen den Schlüssel K1 und die Entschlüsselung den Schlüssel K2 98 KAPITEL 5. BLOCKCHIFFREN benutzen. Aus dem Chiffrat C kann M durch Umkehrung dieser Schritte zurückgewonnen werden: M = DES −1 DES(DES −1 (C, K1), K2 ), K1 . Merkle und Hellman [87] nehmen jedoch an, daß diese Art der Verschlüsselung weniger sicher sein könnte als die Benutzung eines Standards mit 112 bit Schlüssellänge. Sie zeigen dort, daß diese Dreifachverschlüsselung theoretisch unter der Annahme eines chosenplaintext Angriffes gebrochen werden kann, wobei rund 256 Operationen und 256 64-BitWorte, gespeichert auf 4 Milliarden Magnetbändern, nötig sind. Sie schlagen deshalb eine Dreifachverschlüsselung mit drei verschiedenen, voneinander unabhängig gewählten Schlüsseln vor. Eine Dreifachverschlüsselung vermindert jedoch den Datendurchsatz um den Faktor 3, oder es müssen drei Verschlüsselungseinheiten im Pipeline-Modus“ benutzt ” werden. Bei all diesen Verfahren ist aber nicht gesichert, daß diese wirklich die kryptographische Sicherheit des DES erhöht. Es war länger unklar, ob die Menge der DES-Verschlüsselungen unter Komposition abgeschlossen ist (vgl. [69]). Es kommte 1992 aber gezeigt werden [29], daß die Hintereinanderausführung mehrerer DES-Verschlüsselungen nicht äquivalent zu einer einzigen Verschlüsselung ist. Der Entwurf des DES-Algorithmus erfordert insbesondere die Spezifikation der SBoxen, der Permutation P und die Auswahl der im Algorithmus benutzten Teilschlüssel. Die National Security Agency wies IBM an, gewisse Entwurfskriterien, insbesondere für die Auswahl der S-Boxen, nicht zu veröffentlichen, da sie der NSA als sensitiv“ er” schienen. Dieses Verhalten führte zu Kritiken von verschiedenen Seiten, wobei auch die Vermutung aufkam, es könnten gewisse Eigenschaften (trap-doors) in den Entwurf eingeflossen sein, die kryptoanalytische Vorteile für die Entwerfer brächten. Es gibt keinen Beweis für das Nichtvorhandensein möglicher trap-door Informationen, jedoch existiert, soweit bekannt, bisher kein Verfahren, das eine Lösung für auch nur ein Bit eines Schlüssels liefert. Auf Anfrage hin hat die NSA einige der Entwurfskriterien für die Auswahl der S-Boxen bekanntgegeben (vgl. [74]): • Keine S-Box ist eine lineare oder affine Funktion ihrer Eingabe. • Die Änderung eines Eingabebits einer S-Box bewirkt eine Änderung von wenigstens zwei Ergebnisbits. • Die S-Boxen sind so gewählt, daß Unterschiede in der Anzahl von Nullen und Einsen des S-Box Ergebnisses minimiert werden, wenn irgendein Eingabebit konstant gehalten wird. Neben den Entwurfskriterien wurden auch alle kryptoanalytischen Methoden seitens der NSA und der Entwickler, die Sicherheit des DES zu testen, nicht veröffentlicht. Von der 5.3. FEAL 99 IBM und der NSA wird versichert, daß keine Schwächen im DES-Algorithmus gefunden werden konnten, obwohl angeblich mehrere Mannjahre dafür aufgewendet wurden. Dieses Verhalten führte bei Kritikern des DES zu der Frage, warum die Methoden und ihre Ergebnisse, die ja die Sicherheit des DES untermauern würden, nicht veröffentlicht worden sind. In der Antwort auf diese Kritiken kam das Senate Commitee of Intelligence“ im April ” 1978 zu folgenden Schlüssen: • IBM erfand und entwarf den DES. • Die NSA griff nicht in den Entwurf ein. • Die NSA versichert, daß der DES frei von allen kryptographischen Schwächen ist. • Die NSA empfahl, daß die Federal Reserve Board“ den DES zur Abwicklung von ” Geldgeschäften auf elektronischem Weg benutzt. 5.3 5.3.1 FEAL Geschichte von FEAL Das heute wohl am häufigsten eingesetzte symmetrische Chiffrierverfahren ist der DES. Dieser Algorithmus wurde für Hardwarerealisierungen entwickelt. Aufgrund seiner Struktur lassen sich bei Implementierungen in Software nur relativ geringe Durchsatzraten bei der Verschlüsselung erreichen. Da seit der Einführung des Algorithmus Bedenken bzgl. seiner Sicherheit vorliegen, zum Teil wegen der geringen Zahl von nur 56 Schlüsselbits, und DES-Hardware zudem Exportbeschränkungen der USA unterliegt, kam es zu verschiedenen Entwicklungen alternativer Kryptosysteme, mit dem Anspruch, DES bzgl. der Sicherheit zu übertreffen und gleichzeitig größere Durchsatzraten bei deutlich niedrigeren Kosten zu erzielen. Eine dieser Entwicklungen ist der Fast Data Encipherment Algo” rithm“, der auch mit dem Kurznamen FEAL“ bezeichnet wird. 1985 trat der FEAL ” Algorithmus als Normungsvorschlag bei der ISO das erste Mal in Erscheinung. Die dort diskutierte Version findet sich u.a. in [53]. FEAL wurde von den Japanern A. Shimizu und S. Miyaguchi bei dem japanischen Unternehmen NTT entwickelt. Die erste öffentliche Vorstellung des Verfahrens fand auf der internationalen Konferenz EUROCRYPT ’87 statt. Die dort vorgestellte Version weicht leicht von der bei der ISO diskutierten Version ab. Bereits im August des gleichen Jahres veröffentlichte B. den Boer eine Attacke gegen diesen Algorithmus (siehe Abschnitt 5.3.3). Daraufhin stellten Shimizu und Miyaguchi eine zweite Version des FEAL vor, die 8 statt 4 Verschlüsselungsrunden verwendet [123]. Diese neue Version wurde mit FEAL 2.00 bzw. später als FEAL-8 bezeichnet, gegenüber der ersten Version FEAL 1.00 oder FEAL-4. 1988 wurde eine allgemeine Version von FEAL veröffentlicht, die den Namen FEAL-N trägt. N ist hierbei eine Variable, die die Anzahl der verwendeten Verschlüsselungsrunden angibt. N muß eine gerade Zahl sein, die 100 KAPITEL 5. BLOCKCHIFFREN größer oder gleich 4 ist, nach Möglichkeit eine Zweierpotenz. Die oben erwähnten Versionen FEAL-4 und FEAL-8 sind damit Spezialfälle von FEAL-N. Aus diesem Grund wird hier FEAL-N behandelt. Weiterhin gibt es eine FEAL Version mit 128 Schlüsselbits. Diese trägt den Namen FEAL-NX. FEAL-NX unterscheidet sich von FEAL-N nur durch den Schlüsselberechnungsteil. Der Datenverschlüsselungsteil beider Versionen ist identisch. 5.3.2 Funktionsweise des Algorithmus Bei FEAL handelt es sich um eine Blockchiffre, die jeweils Klartextblöcken von 64 Bit gleichgroße Chiffretextblöcke zuordnet. Die Verschlüsselung ist von einem geheim zu haltenden Schlüssel von ebenfalls 64 bit Länge abhängig. FEAL gehört, wie der bekannte DES, zur Klasse der Feistel-Chiffren. Abbildung 5.22 zeigt das vollständige Schema von FEAL-N, bei dem jedes Ki für 16 Schlüsselbits steht. Die f -Funktion operiert auf 32 Bits und liefert als Ergebnis wieder 32 Bits. Dazu wird der Eingabeblock zu Beginn in vier Blöcke zu je 8 Bit geteilt. Die einzelnen Teilblöcke werden untereinander und mit 16 Schlüsselbits durch exklusives Oder verknüpft und durch S-Boxen verändert. Den Verknüpfungen liegt dabei das Schema aus Abbildung 5.23 zugrunde: Es gibt zwei unterschiedliche S-Boxen, hier mit 0 und 1 indiziert. In diesen finden folgende Datentransformationen statt: Die beiden Eingangsblöcke von 8 bit Länge werden als Binärzahlen betrachtet und addiert. Die Summe wird in der Box S1 zusätzlich um Eins inkrementiert. Um als Output wieder 8 Bits zu erhalten, wird jeweils modulo 256 gerechnet. Bevor das Ergebnis die S-Box verläßt, findet noch eine zyklische Rotation um 2 bit nach links statt. Als Formel geschrieben sieht dies so aus: Sd (x, y) = ROT 2((x + y + d) mod 256). Dabei sind x und y Variablen für 8-Bit-Worte, d steht für ein Bit. ROT 2 bezeichnet die Funktion der zyklischen Linksrotation auf 8-Bit-Worten, ROT 2(a0, a1 , a2 , a3 , a4 , a5 , a6 , a7 ) = (a2 , a3 , a4 , a5 , a6 , a7 , a0 , a1 ). Jedes ai sei in dieser Darstellung Stellvertreter für ein Bit. Es bleibt noch zu klären, wie aus dem eigentlichen Schlüssel die einzelnen Teilschlüssel generiert werden. Die dazu verwendete Methode ähnelt dem zuvor beschriebenen Chiffrierverfahren. Die Schlüsselaufbereitung läuft nach dem im Abbildung 5.24 dargestellten Schema ab. Enthält der eingegebene Schlüssel Paritätsbits, so werden diese vor Beginn der Teilschlüsselberechnung auf 0 gesetzt. Dann werden N/2 + 4 Iterationen durchgeführt, um die benötigten Schlüssel zu erzeugen. Die hierbei benutzte Funktion fk ist eine leichte Modifikation der oben vorgestellten Funktion f . Abbildung 5.25 verdeutlicht das Innere“ ” von fk . Die hier verwendeten S-Boxen sind mit den bei f benutzten identisch. Es bleibt noch festzuhalten, daß die Entschlüsselung mit dem gleichen Algorithmus erfolgt wie die Verschlüsselung. Hierbei werden die verwendeten Schlüssel in umgekehrter Reihenfolge benutzt. 5.3. FEAL 101 Input (K N ,K N+1 ,K N+2 ,K N+3 ) f 64 bit f 32 bit 16 bit f (K N+4 ,K N+5 ,K N+6 ,K ) N+7 Output Abbildung 5.22: Struktur des FEAL-Algorithmus 102 KAPITEL 5. BLOCKCHIFFREN Input Teilschlüssel s1 s0 s0 s1 Output Abbildung 5.23: f -Funktion 5.3. FEAL 103 Input Schlüssel K 64 bit 32 bit fk Output (K 0 , K 1 ) fk Output (K 2 , K 3 ) fk Output (K N+4 , K fk N+5 ) Output (K N+6 , K N+7 ) Abbildung 5.24: Teilschlüsselgenerierung bei FEAL 104 KAPITEL 5. BLOCKCHIFFREN Input s1 Input s0 s0 s1 Output Abbildung 5.25: Die Funktion fk Eine formale Spezifikation von FEAL-N findet sich in [99]. 5.3.3 Kryptoanalyse Auf FEAL gab es sehr früh erfolgreiche Angriffe, die sich aus heutiger Sicht durch Differentielle und Lineare Kryptoanalyse sehr gut beschreiben lassen. Durch diese Angriffe wurden Grundlagen für diese beiden Analysemethoden gelegt. Bereits 1987 wurde von Bert den Boer FEAL-4 gebrochen [22]. Diese Attacke wurde 1990 von Murphy [96] weiterentwickelt. Hierbei konnte eine Verringerung der Zahl von benötigten Klartext/Chiffrat-Paare von etwa 100 – 10.000 auf 20 erreicht werden. Eine Attacke gegen die erweiterte Chiffre mit 8 Runden (FEAL-8) stammt von den Franzosen H. Gilbert und G. Chasse [55]. Der Angriff benutzt die Idee der Differentiellen Kryptoanalyse (siehe 5.4). Diese Attacke benötigt z.B. auf einer SUN 4 Workstation weniger als zwei Stunden. Fast zur selben Zeit wurde von Biham und Shamir die Differentielle Kryptoanalyse als Werkzeug allgemein vorgestellt und damit auch FEAL weitestgehend gebrochen [14]. 5.4. DIFFERENTIELLE KRYPTOANALYSE 105 Dort wird auch gezeigt: • FEAL-8 kann mit 2.000 speziell gewählten Klartexten und zugehörigem Chiffretext gebrochen werden. • Für FEAL-N mit weniger als 32 Runden ist das Brechen durch differentielle Analyse schneller als vollständige Schlüsselsuche. Das gleiche gilt für FEAL-NX, da sich FEAL-N und FEAL-NX lediglich in dem Schlüsselaufbereitungsteil unterscheiden. Dieser ist für die differentielle Analyse irrelevant, da sie die Teilschlüssel direkt ermittelt, und somit stellt FEAL-NX gegenüber FEAL-N keine Erschwernis für die Analyse dar. • Falls man 238 ≈ 2, 75 · 1011 Paare von Klar- und Chiffretext besitzt, so kann man die Analyse für FEAL-8 auch als known plaintext attack“ durchführen. ” • FEAL-4 kann mit 8 frei gewählten, oder 100.000 beliebigen Klartext/Chiffretextpaaren gebrochen werden. Die Attacke gegen FEAL-8 wurde von Biham und Shamir auf einem PC implementiert und benötigt bei Verwendung von 1.000 Textpaaren nur 2 Minuten, bis ein zu 95% korrektes Ergebnis ermittelt wird. Bei der Verwendung von 2.000 Textpaaren läßt sich der Schlüssel mit nahezu 100%iger Sicherheit finden. 5.4 Differentielle Kryptoanalyse Die Kryptosysteme, die wir in den letzten Abschnitten behandelt haben, weisen mit Ausnahme von Rijndael einen prinzipiell gleichen Aufbau auf: In mehreren Runden werden jeweils die beiden Hälften des eingehenden Textes (nur anfangs ist dies der Klartext) vertauscht und (o.B.d.A.) die rechte Hälfte mit dem Schlüssel verknüpft und einer schwierigen, nichtlinearen Funktion zugeführt. Alle Verschlüsselungsalgorithmen, die nach diesem, dem sogenannten Feistelprinzip arbeiten, ziehen ihre Sicherheit aus der Tatsache, daß die Zwischenergebnisse der einzelnen Runden nicht bekannt sind; für einen außenstehenden Beobachter stellt die Chiffrierung eine black box dar. 5.4.1 Differentiellen Kryptoanalyse von DES In [14] entwickeln E. Biham und A. Shamir ein Verfahren, das es ermöglicht, ohne Kenntnis der Zwischenresultate der einzelnen Runden den Schlüssel zu ermitteln. Wir wollen das Verfahren der differentiellen Kryptoanalyse am Beispiel des DES erläutern. Wir gehen dabei zunächst von einem 1-Runden-DES aus. Dabei vernachlässigen wir die Ein-, Ausgangs- und die Rundenpermutation, da diese alle bekannt sind und sich herausrechnen“ lassen. In Abbildung 5.26 ist diese einfache Form des DES dargestellt. ” 106 KAPITEL 5. BLOCKCHIFFREN m m l r q @ ? @ f @ ? @ R l @ ? L c k ? 1 R 1 l c r HH H j HH Abbildung 5.26: 1-Runden-DES 2. Verschlüsselung 1. Verschlüsselung m1 m2 ? m′ ? E E e1 L ? e2 L ? k sin,1 ? S-Box sout,1 ? Differenz + ? E e′ k sin,2 ? S-Box sout,2 ? = s′in = e′ ? Diff.-Tab. s′out ? Abbildung 5.27: Differenzen von zwei Verschlüsselungen in einer S-Box Bei der differentielle Kryptoanalyse betrachten wir nicht verschiedene Klar- und Chiffretexte, sondern die Differenzen der Klartexte gegenüber den Differenzen der Chiffretexte von Textpaaren ((M 1 , C 1 ), (M 2 , C 2 )). Wir beschränken uns für die Erläuterung des Verfahrens auf den Signalfluß in einer S-Box. Abbildung 5.27 (a) zeigt einen Ausschnitt aus dem Signalfluß des DES für zwei Klartexte (vergl. Abbildung 5.17); mi bzw. cj bezeichnen jeweils Blöcke des Klar- bzw. des Chiffretextes. Betrachten wir nun die Differenzen der Texte in den jeweiligen Stufen, so erhalten wir einen vom Teilschlüssel k unabhängigen Signalfluß (Abbildung 5.27 (b)). Da wir ja von einer known plaintext -Attacke ausgegangen sind, sind alle Texte, bis auf sin,1 und sin,2 , bekannt: 5.4. DIFFERENTIELLE KRYPTOANALYSE m′ : = e′ : = = ′ sin : = = s′out : = 107 m1 ⊕ m2 e1 ⊕ e2 = E(m1 ) ⊕ E(m2 ) E(m1 ⊕ m2 ) = E(m′ ) sin,1 ⊕ sin,2 = e1 ⊕ k ⊕ e2 ⊕ k e1 ⊕ e2 = E(m′ ) sout,1 ⊕ sout,2 . Um bei gegebenen m′ und s′out die Werte für sin,1 , sin,2 zu ermitteln, erstellt man zu jeder S-Box eine Tabelle (in Abbildung 5.27 Diff.-Tab.“), die die möglichen Kombinationen ” enthält. Jeder Zeile i dieser 64 × 16-Tabelle entspricht einer Eingangsdifferenz m′ = i. In der Spalte j sind alle Paare sin,1 , sin,2 eingetragen, die zu einer Ausgangsdifferenz s′out = j führen. In Abbildung 5.28 ist diese Tabelle exemplarisch für die S-Box S1 dargestellt. Aus Platzgründen ist jeweils nur ein Text eines Paares angegeben; der jeweils zweite läßt sich leicht durch eine XOR-Operation mit der Differenz (dem Zeilenindex) ermitteln. Ist ein Paar (sin,1 , sin,2 ) gefunden, das den vorgegebenen Differenzen entspricht, so läßt sich der Teilschlüssel k leicht berechnen: sin,1 = e1 ⊕ k bzw. k = e1 ⊕ sin,1 . (5.1) Im Allgemeinen wird man mit einem Textpaar den verwendeten Schlüssel nicht eindeutig bestimmmen können, sondern nur eine Menge von Schlüsseln zur Auswahl haben. Das folgende Beispiel zeigt, wie durch mehrere Textpaare die Menge der Schlüssel immer weiter eingeengt wird: Beispiel: Gegeben sei ein erstes Textpaar ((m11 , s1out,1 ), (m12 , s1out,2 )) mit der Ausgangsdifferenz (in hexadezimaler Schreibweise) (s1out )′ = F. Nach der Expansionsabbildung E erhalten wir die Werte e11 = 8, e12 = 9. Für die Eingangsdifferenz der S-Box gilt also (s1in )′ = 1. Aus der Tabelle (Zeile 1, Spalte 15) erhalten wir s1in,1 ∈ {1E, 2A, 1F, 2B} und nach (5.1) k ∈ {16, 22, 17, 23}. 108 KAPITEL 5. BLOCKCHIFFREN E i n g a n g s d i f f e r e n z e n 0 1 0 1 alle 2 3 08 11 15 18 19 25 39 .. . 3F 2 3 Ausgangsdifferenzen 4 5 6 7 8 9 A 1C 2C 3C 06 0C 16 24 32 05 0C 21 30 20 24 15 3C 2D 1C 0E 10 28 36 38 04 14 26 30 34 3A 10 00 2C 14 38 25 39 B C D E F 02 08 0A 00 1E 20 12 22 2A 18 3E 1A 2E 1D 04 08 31 01 28 09 29 34 3D 0D 35 11 18 19 00 29 38 01 0D 05 34 1C 04 0C 24 14 21 09 1D 10 3D 20 31 2D 28 2C 3C 30 35 .. . . . . Abbildung 5.28: Tabelle der Differenzen und der zugehörigen Textpaare für die S-Box S1 Gegeben sei ein zweites Textpaar ((m21 , s2out,1 ), (m22 , s2out,2 )), mit dem wir etwa (s2out )′ = B, e21 = A, e22 = 8 erhalten. Also: s2in,1 ∈ {1D, 28, 3D, 1F, 2A, 3F } und k ∈ {17, 22, 37, 15, 20, 35}. Bisher haben wir die Menge der möglichen Teilschlüssel auf {17, 22} reduziert. Um den gesamten Schlüssel zu ermitteln, müssen wir zu jeder S-Box so viele verschiedene Textpaare betrachten, wie wir benötigen um den jeweiligen Teilschlüsssel eindeutig zu bestimmen. 5.4. DIFFERENTIELLE KRYPTOANALYSE L 109 R q a @ ? @ f @ @ ? A R l @ ? L1 ? R1 q @ ? b @ f @ @ ? B R l @ ? L2 k2 ? R2 q c @ ? @ f @ @ ? C R l @ ? k1 k3 ? L3 R3 l r HH H H H j H Abbildung 5.29: 3-Runden-DES Auch bei einem 2-Runden-DES sind alle Werte der einzelnen Stufen bekannt, bis auf — wiederum — die Eingänge der S-Boxen. Für diesen Fall läßt sich die Vorgehensweise des 1-Runden-DES übertragen. Etwas anders sieht es bei einem 3-Runden-DES aus: Aus Abbildung 5.29 wird deutlich, daß nicht genügend Eingänge bzw. Eingangsdifferenzen bekannt sind, um einen solchen 3-Runden-DES analog zu den bisher besprochenen Fällen zu brechen. Wir müssen also anders vorgehen (und verwenden dabei die Bezeichnungen aus Abbildung 5.29): Es ist ersichtlich, daß die letzte Runde der Verschlüsselung einen Angriffspunkt bietet. Die letzte Eingabe (R2 ) der Funktion f ist – als L3 bzw. r – Teil der Ausgabe, also des Chiffretextes. Mit den Eingängen der letzten Anwendung von f sind natürlich auch die Differenzen dieser Eingänge für verschiedene Textpaare bekannt. Um – in einem ersten Schritt – die letzte Runde des DES zu brechen, benötigen wir noch die Ausgangsdifferenz C ′ . Gemäß dem Signalfluß in Abbildung 5.29 erhalten wir: l = R3 = C ⊕ L2 = C ⊕ R1 = C ⊕ L ⊕ A 110 KAPITEL 5. BLOCKCHIFFREN und damit C =A⊕L⊕l bzw. C ′ = A′ ⊕ L′ ⊕ l′ , wobei X ′ wieder die Differenzen der entsprechenden Größe für verschiedene Textpaare bezeichnet. Bis auf A bzw. A′ sind die Größen auf den rechten Seiten bekannt. Setzen wir nun voraus, daß wir Textpaare ((L1 R1 , l1 r 1 ), (L2 R2 , l2 r 2 )) verwenden, die sich in ihren rechten Klartexthälften nicht unterscheiden, R1 = R2 , so unterscheiden sich auch die Ausgaben der ersten Anwendung von f nicht: A1 = A2 ⇒ A′ = 0. Also ist für solche Textpaare C ′ = L′ ⊕ l′ und, zusammen mit c′ = r ′ , eine differentielle Kryptoanalyse der letzten Runde des 3Runden-DES möglich. Der verbleibende 2-Runden-DES läßt sich danach ebenfalls brechen. Bei der Übertragung der differentiellen Kryptoanalyse auf größere Anzahlen von Runden, gelangen wir zu einem probabilistischem Schema. Es gibt bestimmte Eingangsdifferenzen, die sich mit hoher Wahrscheinlichkeit nach zwei Runden DES-Verschlüsselungen wiederfinden. Solche Differenzen bezeichnen Biham und Shamir als Charakteristiken. In Abbildung 5.30 ist ein Beispiel einer solchen Charakteristik gegeben. Für einen 2n-Runden-DES läßt sich eine solche Charakteristik nicht direkt überprüfen: Wenn die Ein- und Ausgangsdifferenz der Charakteristik entspricht, so können wir aber 1 n gemäß dem Beispiel mit einer Wahrscheinlichkeit von ( 234 ) davon ausgehen, daß die Differenzen der einzelnen Runden mit denen der Charakteristik übereinstimmen. Für die Kryptoanalyse verwendet man nur Paare, die äußerlich der Charakteristik entsprechen. Überträgt man deren Eigenschaften auch auf das Verhalten des Textpaares innerhalb der Runden, so erhält man eine Eingangsdifferenz für die letzte Runde des DES. Ermittelt man, gemäß dem Vorgehen beim 1-Runden-DES, für verschiedene Textpaare die Mengen der möglichen Schlüssel, so wird man i. allg. auf eine leere Schnittmenge stoßen. Durch die nur probabilistischen Annahmen über das Verhalten der Differenzen innerhalb der Runden, können wir den verwendeten Schlüssel nur durch einen Mehrheitsentscheid aus den möglichen auswählen. Durch verschiedene Charakteristiken lassen sich so alle Teilschlüssel ermitteln. In [14] geben Biham und Shamir den Aufwand für die differentielle Kryptoanalyse verschiedener DES-ähnlicher Kryptosysteme an: In der folgenden Tabelle ist der Aufwand für das Brechen des DES in Abhängigkeit der Rundenzahl angegeben: 5.4. DIFFERENTIELLE KRYPTOANALYSE 19600000 111 00000000 r 00000000 @ ? @ @ immer f @ 00000000 @ ? R @ ? 00000000 ? 196000000 r 19600000 @ ? @ 1 @ f 234 @ 00000000 @ ? R @ ? 196000000 ? 00000000 Abbildung 5.30: 2-Runden-Charakteristik Runden 4 6 8 9 10 11 12 13 14 15 16 Komplexität 24 28 216 226 235 236 243 244 251 252 258 Für einen 16-Runden-DES bietet das Verfahren der differentiellen Kryptoanalyse keinen Vorteil gegenüber der vollständigen Suche im Schlüsselraum. Für andere Kryptosysteme z.B. FEAL-4, FEAL–8 oder PES ergibt sich durch die differentielle Kryptoanalyse ein großer Vorteil. 112 5.4.2 KAPITEL 5. BLOCKCHIFFREN Analyse von Skipjack mit unmöglichen Differenzen Im Rahmen von Standardisierungs-Bemühungen von Verschlüsselungsverfahren in den USA, bei denen auch eine staatliche Abhörmöglichkeit besteht, wurde das CLIPPERChip entwickelt, in dem u.a. auch die Blockchiffre Skipjack implementiert wurde. Diese geheimgehaltene Chiffre wurde nach dem Scheitern der Einführung von CLIPPER vom National Institute of Standards and Technology veröffentlicht [128]. Gegen eine in der Rundenzahl reduzierte Version dieser Blockchiffre wurde auf der Eurocrypt 1999 ein Angriff vorgestellt [17], der sehr schön die Möglichkeit darlegt, wie man nicht wie bei der üblichen differentiellen Analyse die überdurchschnittlich auftretenden Differenzen ausnutzt, sondern die selten bzw. gar nicht möglichen Paare. Zunächst müssen wir dazu Skipjack kurz beschreiben: Arbeitsweise von Skipjack Skipjack ist eine Chiffre, die vier 16-Bit-Worte (also 64 Bit) mit einem 80-Bit-Schlüssel in 32 Runden mit jeweils einem Teilschlüssel von vier Byte verschlüsselt. In den ersten 8 Runden wird Regel A, dann 8 Runden lang Regel B, wieder 8 Runden Regel A und nochmals 8 Runden Regel B angewendet. Dabei werden die 4 Worte entsprechend Abbildung 5.31 und 5.32 durch ein Schieberegister verarbeitet, also im wesentlichen w2 := G(w1 ) gesetzt und die anderen Worte durch Verschieben und XOR verändert. Etwas ungewohnt wird noch der Rundenzähler (1, . . . , 32) zu einem Wort addiert, was z.B. das Ausnutzen von 2-Runden Charakteristiken, wie sie beim DES verwendet werden, verhindert, da sich auch bei gleichen Eingaben die Runden unterschiedlich verhalten. w1 6 Zähler - m - G w2 - w3 - w4 ? m Abbildung 5.31: Regel A von Skipjack w1 6 - G w2 - m6 - m - w3 w4 Zähler Abbildung 5.32: Regel B von Skipjack Die Rundenfunktion G besteht aus einer Feistelchiffre mit 4 Runden, bei der die jeweiligen Teilschlüssel mit XOR zum Signalfluß addiert werden (siehe Abbildung 5.33). 5.4. DIFFERENTIELLE KRYPTOANALYSE 113 Der 32-Bit-Rundenschlüssel, der in G eingeht, wird aus dem 80-Bit-Gesamtschlüssel von Skipjack ausgewählt. Die Rundenfunktion F von G ist die (bijektive) 8-Bit- auf 8-BitSubstitution, die in Tabelle 5.1 gegeben ist. r in l in k4i k4i+1 ? ? m F m k4i+2 k4i+3 ? ? m F m ? ? - m- F - m ? ? - m- F - m ? ? l out r out Abbildung 5.33: Die Rundenfunktion G von Skipjack Differentielle Analyse von 25 Runden Skipjack Der Ablauf von Skipjack kann auch in einer anderen Form, siehe Abb. 5.34, dargestellt werden. Hier ist das Schieberegister durch einen Signalfluß ersetzt, so daß die jeweiligen Ergebnisse der Runden nur alle 4 Takte direkt mit den Registerinhalten der ursprünglichen Darstellung übereinstimmen; ansonsten sind Zwischenergebnisse gegenüber den Inhalten der Register “verschoben”. Der etwas seltsame Übergang von Runde 7 auf Runde 8 liegt am Übergang von Regel A zu Regel B. Durch diesen Übergang bleibt ein Registerinhalt 7 Runden, anstatt sonst 3 Runden (fast) konstant. Dies kann man als eine Entwurfsschwäche des Algorithmus für Angriffe ausnutzen. Unmögliche 24 Runden Charakteristik Man betrachtet Skipjack zunächst reduziert auf 12 Runden (Runde 5 bis Runde 16). Ein Paar von Eingängen in Runde 5 mit einer Differenz der Form (0, a, 0, 0), wobei a ein 16-Bit-Wort ungleich 0 ist, ergibt nach Runde 16 immer eine Ausgangsdifferenz der Form (c, d, e, 0), wobei c, d, e 6= 0 sind. Dies ist einfach durch Verfolgen der Differenzen in Abb. 5.34 zu sehen. Man muß dabei lediglich auf Differenz 0 und ungleich 0 verfolgen. Betrachtet man den Signalfluß umgekehrt (wie er bei der Entschlüsselung benutzt wird), so sieht man auf dieselbe Weise, daß eine Differenz der Form (b, 0, 0, 0) nach 114 KAPITEL 5. BLOCKCHIFFREN ? G Regel A ? j ? ? j ? ? j ? ? - j 1 ? G 2 G 3 G 4 G Regel A ? j ? ? j ? ? - j 5 ? G 6 G 7 G Regel B PP P P ? j ? ? j G ? j 8 1 ? 10 G ? G ? G ? G ? j ? - j ? - j 12 13 ? 14 G Regel B ? G ? ? ? - j 11 G ? ? - j ? ? - j 15 16 ? Abbildung 5.34: Alternative Darstellung von Skipjack (hier nur Runde 1–16, die nächsten 16 Runden sind bis auf die Zähler identisch). 5.4. DIFFERENTIELLE KRYPTOANALYSE 0x 1x 2x 3x 4x 5x 6x 7x 8x 9x Ax Bx Cx Dx Ex Fx x0 A3 E7 0A 96 39 55 35 97 42 89 70 34 AD 0C 08 5E x1 D7 2D DF 84 B6 B9 D5 FC ED CB 88 4B 04 EF 77 6C x2 09 4D 02 6B 7B DA C0 B2 9E 30 61 1C 23 BC 11 A9 x3 83 8A A0 BA 0F 85 A7 C2 6E 1F 2C 73 9C 72 BE 13 x4 F8 CE 17 F2 C1 3F 33 B0 49 8D 9F D1 14 75 92 57 x5 48 4C F1 63 93 41 06 FE 3C C6 0D C4 51 6F 4F 25 x6 F6 CA 60 9A 81 BF 65 DB CD 8F 2B FD 22 37 24 B5 x7 F4 2E 68 19 1B E0 69 20 43 AA 87 3B F0 A1 C5 E3 115 x8 B3 52 12 7C EE 5A 45 E1 27 C8 50 CC 29 EC 32 BD x9 21 95 B7 AE B4 58 00 EB D2 74 82 FB 79 D3 36 A8 xA 15 D9 7A E5 1A 80 94 D6 07 DC 54 7F 71 8E 9D 3A xB 78 1E C3 F5 EA 5F 56 E4 D4 C9 64 AB 7E 62 CF 01 xC 99 4E E9 F7 D0 66 6D DD DE 5D 26 E6 FF 8B F3 05 xD B1 38 FA 16 91 0B 98 47 C7 5C 7D 3E 8C 86 A6 59 xE AF 44 3D 6A 2F D8 9B 4A 67 31 03 5B 0E 10 BB 2A xF F9 28 53 A2 B8 90 76 1D 18 A4 40 A5 E2 E8 AC 46 Tabelle 5.1: Die SKIPJACK F-Tabelle in Hex–Format. Die höherwertigen Bits stehen in den Zeilen, die niedrigerwertigen Bits in den Spalten; z. B. findet man F (7A) = D6 in Zeile 7x und Spalte xA. Runde 28 von einer Differenz der Form (f, g, 0, h) aus Runde 17 kommen muß, wobei b, f, g, h 6= 0 wieder 16-Bit-Worte sind. Setzt man diese beiden sicheren Charakteristiken zusammen, so ergibt sich, daß eine Differenz der Form (0, a, 0, 0) vor Runde 5 nie auf eine Differenz der Form (b, 0, 0, 0) nach Runde 28 führen kann. Damit ist eine unmögliche Differenz für 24 Runden gefunden, mit der wir einen 25 Runden Skipjack angreifen wollen. Analyse von 25 Runden — Grundidee Betrachten wir dazu Runde 25: Bei den beiden Eingaben (x1 , x2 , x3 , x4 ) und (x1 ⊕ b, x2 , x3 , x4 ) ist die Ausgangsdifferenz G(x1 ) ⊕ G(x1 ⊕ b), b, 0, 0 . Betrachten wir nun alle 25 Runden: Ist ein Paar gefunden, dessen Eingangsdifferenz (0, a, 0, 0) und Ausgangsdifferenz (c, b, 0, 0) ist, so ist sicher, daß die Differenz vor der letzten Runde nicht (b, 0, 0, 0) war. Probiert man jetzt alle 232 Rundenschlüssel durch, so sind all diejenigen sicher falsch, bei denen für ein beliebiges x1 gilt c = G(x1 ) ⊕ G(x1 ⊕ b). Durch eine solche Elimination von Teilschlüsseln läßt sich der Rundenschlüssel Nr. 25 eindeutig bestimmen. Damit sind 32 der 80 Schlüsselbit bekannt. Die restlichen 48 Bit lassen sich durch Ausprobieren finden. Für einen konkreten Angriff müssen jetzt noch die (nicht unwichtigen) Details überlegt werden. Hier werden sie lediglich kurz erwähnt; genauer nachlesen kann man sie in [17]. 116 KAPITEL 5. BLOCKCHIFFREN Analyse von 25 Runden — Details und Aufwandsabschätzung Zunächst wählt man 222 Mengen von Klartexten (4 × 16 Bit), die jeweils aus den 216 Texten bestehen, die sich im zweiten der 4 Worte unterscheiden. All diese 238 Klartexte werden verschlüsselt. Bei einer Differenziellen Analyse werden Paare von Ein-/Ausgängen betrachtet. Jede der Mengen von 216 Eingängen liefert etwa 231 Klartextpaare. Daraus wählt man alle Paare aus, deren Chiffrate sich in genau den ersten beiden Worten unterscheiden. Im Schnitt liefert jede zweite Menge ein solches Paar, es werden also etwa 221 solche Paare gefunden. Dann testet man durch Berechnen von G−1 der ersten Worte der Chiffrate für alle 232 Rundenschlüssel ob die obige Gleichung für die Differenzen erfüllt ist. Falls ja kann dieser Schlüssel eliminiert werden. (Das Berechnen von G−1 für alle 232 Rundenschlüssel läßt sich effizient mit etwa 216 Entschlüsselungen realisieren. Betrachte dazu den Aufbau von G.) Für jedes Paar wird die Bedingung für etwa 216 Schlüssel erfüllt. Nach dem 221 Überprüfen aller 221 Paare bleiben etwa 232 · (1 − 2−16 ) ≈ 0, 000054 falsche Werte übrig; höchst wahrscheinlich ist also der eine richtige Rundenschlüssel gefunden. Der Aufwand für diesen letzten Schritt ist etwa 217 · 221 = 238 Berechnungen von G oder entsprechend 233 vollständige Verschlüsselungen. Anschließend werden die restlichen 48-Bit-Schlüssel durch vollständige Suche gefunden; es können allerdings auch trickreichere und deutlich effizientere Techniken verwendet werden 5.5 Lineare Kryptoanalyse Bei der linearen Kryptoanalyse wird versucht, eine lineare Approximation für den Verschlüsselungsalgorithmus zu bestimmen. Zuerst werden statistische lineare Beziehungen zwischen den Eingabe- und den Ausgabebits jeder S-Box aufgestellt. Die Beziehungen werden kombiniert und auf den gesamten Algorithmus ausgedehnt, um eine lineare Approximation des gesamten Algorithmus ohne Zwischenwerte zu erhalten. 5.5.1 Notation In Abbildung 5.35 ist die Struktur des DES-Algorithmus aufgezeigt. Die Permutation IP am Anfang und IP −1 am Ende wurden weggelassen. Es werden die folgenden Bezeichnungen verwendet, wobei das Bit am weitesten rechts als das Bit Nr. 0 bezeichnet wird: 5.5. LINEARE KRYPTOANALYSE 117 P PL F1 (X1, K1) PR K1 X1 F1 K2 F2 (X2, K2) X2 F2 Kn Fn (Xn, Kn) Xn Fn CL CR C Abbildung 5.35: DES-Aufbau P C PL PR CL CR Xi Ki Fi (Xi , Ki) A [i] A [i, j . . . , k] 5.5.2 64-Bit-Klartext der zugehörige 64-Bit-Chiffretext der linke 32-Bit-Teil von P der rechte 32-Bit-Teil von P der linke 32-Bit-Teil von C der rechte 32-Bit-Teil von C der 32-Bit-Zwischenwert in der i-ten Runde der 48-Bit-Teilschlüssel in der i-ten Runde Die F-Funktion in der i-ten Runde Das i-te Bit von A A [i] ⊕ A [j] ⊕ . . . ⊕ A [k] Prinzip der linearen Kryptoanalyse Erstes Ziel der linearen Kryptoanalyse ist es, eine lineare Abhängigkeit für die Verschlüsselung zu bestimmen: P [i1 , i2 , . . . , ia ] ⊕ C [j1 , j2 , . . . , jb ] = K [k1 , k2 , . . . , kc ] , (5.2) 118 KAPITEL 5. BLOCKCHIFFREN wobei i1 , i2 , . . . , ia , j1 , j2 , . . . , jb , k1 , k2 , . . . , kc feste Bitpositionen bezeichnen und die Gleichung mit einer Wahrscheinlichkeit von p 6= 21 für einen zufälligen Klartext P und den 1 zugehörigen Chiffretext C gilt. Die Größe p − 2 gibt die Effektivität der Gleichung 5.2 an. Wenn eine effektive lineare Approximation bekannt ist, dann kann man mit der naiven Maximum-Likelihood-Methode ein Schlüsselbit K [k1 , k2 , . . . , kc ] erraten: Algorithmus 1 Es sei N die Anzahl der Klar-/Chiffretextpaare und T die Anzahl der Klartexte, für die die linke Seite von Gleichung 5.2 gleich Null ist. Falls T > N/2, dann rate K [k1 , k2 , . . . , kc ] = 0 falls p > sonst rate K [k1 , k2 , . . . , kc ] = 1 falls p > 1 2 1 2 oder 1 falls p < 12 , oder 0 falls p < 21 . Es ist klar, daß die Erfolgswahrscheinlichkeit des Algorithmus größer wird, wenn N 1 wird im folgenden als die beste oder p − 2 größer werden. Eine lineare Approximation lineare Approximation bezeichnet, wenn p − 21 maximal ist. Die Wahrscheinlichkeit p wird in diesem Fall als die beste Wahrscheinlichkeit bezeichnet. Um diese Idee ausnuzen zu können müssen die folgenden drei Teilprobleme gelöst werden: • Wie findet man effektiv eine lineare Abhängigkeit? • Wie bestimmt man die Erfolgswahrscheinlichkeit bei gegebenem N und p? • Wie findet man effektiv die beste lineare Abhängigkeit? Das zweite Problem wird durch folgendes Lemma theoretisch gelöst. Hier wird dies nicht weiter betrachtet; der interessierte Leser sei auf [84] verwiesen. Lemma 5.3 Es sei N die Anzahl der zufälligen Klartexte und p die Wahrscheinlichkeit, daß die Gleichung 5.2 gilt. Es wird angenommen, daß p − 21 ausreichend klein ist. Dann beträgt die Erfolgswahrscheinlichkeit bei obigem Vorgehen Z ∞ 1 2 √ e−x /2 dx. √ 2π −2 N |p− 12 | Der Beweis erfolgt mit dem Grenzwertsatz von Moivre-Laplace. Die obige Maximum-Likelihood-Methode liefert lediglich ein Schlüsselbit. Um mehrere Bits gleichzeitig zu erhalten, wird für einen praktischen Known-plaintext-Angriff auf einen n-Runden-DES, die beste Approximation für den (n − 1)-Runden-DES verwendet; es sei p die Wahrscheinlichkeit, mit der diese auftritt. Man tut also so, als ob man die letzte Runde mit Teilschlüssel Kn entschlüsselt hätte. Deswegen taucht ein Term mit der F -Funktion Fn (CR , Kn ) in der linearen Approximation auf, wobei CR natürlich bekannt ist. P [i1 , i2 , . . . , ia ] ⊕ C [j1 , j2 , . . . , jb ] ⊕ Fn (CR , Kn ) [l1 , l2 , . . . , ld ] = K [k1 , k2 , . . . , kc ] , (5.3) 5.5. LINEARE KRYPTOANALYSE 119 Wenn man einen falschen Kandidaten für Kn einsetzt, dann ist klar, daß die Effektivität der Gleichung sinkt, d. h. der Teilschlüssel Kn mit der größten Effektivität ist wahrscheinlich der richtige. Deswegen kann die folgende Maximum-Likelihood-Methode verwendet werden, um den Teilschlüssel Kn für die letzte Runde und K [k1 , k2 , . . . , kc ] zu erraten. Für diesen Test müssen üblicherweise nicht alle möglichen Teilschlüssel Kn durchprobiert werden, sondern nur die Bits, die Einfluß auf [l1 , . . . , ld ] haben. Algorithmus 2 (i) 1. Schritt: Für jeden Kandidaten Kn (i = 1, 2, . . .) für den Teilschlüssel Kn sei Ti die Anzahl der Klartexte, so daß die linke Seite der Gleichung 5.3 gleich Null ist. 2. Schritt: Es sei Tmax der maximale Wert und Tmin der minimale Wert aller Ti ’s. • Falls |Tmax − N/2| > |Tmin − N/2|, dann übernehme den Schlüsselkandidaten, der zu Tmax gehört, und rate K [k1 , k2 , . . . , kc ] = 0 bei p > 21 und 1 bei p < 12 . • Falls |Tmax − N/2| < |Tmin − N/2|, dann übernehme den Schlüsselkandidaten, der zu Tmin gehört, und rate K [k1 , k2 , . . . , kc ] = 1 bei p > 12 und 0 bei p < 12 . Es bleibt jetzt noch das Problem, die beste Approximation einer n − 1-Runden Verschlüsselung zu finden. Diese wird sukzessive mit der Anzahl der Runden aufgebaut. Zunächst wird für eine Runde die beste Approximation der S-Boxen gesucht. 5.5.3 Lineare Approximation der S-Boxen In [84] werden die S-Boxen analysiert, um gute lineare Approximationen zu erhalten. Definition 5.4 Für eine gegebene S-Box Sa (a = 1, 2, . . . , 8), 1 ≤ α ≤ 63 und 1 ≤ β ≤ 15, bezeichne NSa (α, β) die Anzahl derjenigen Eingabemuster, für die gilt, daß der XOR-Wert der mit α maskierten Eingabebits mit dem XOR-Wert der mit β maskierten Ausgabebits übereinstimmt, d.h. ( ! !) 5 3 M M NSa (α, β) = # x 0 ≤ x < 64, (x [s] ∧ α [s]) = (Sa (x) [t] ∧ β [t]) . s=0 t=0 (5.4) Beispiel 5.5 Es gilt NS5 (16, 15) = 12. (5.5) Das Eingabebit vier (von rechts mit null beginnend gezählt) stimmt also in 12 der 64 Fälle (Eingaben) mit dem XOR der vier Ausgabebits überein. Wenn NSa (α, β) ungleich 32 ist, dann besteht eine gewisse Korrelation zwischen den Eingabe- und Ausgabebits der S-Box Sa . Das obige Bespiel liefert die deutlichste Abweichung einer S-Box im DES; diese Abhängigkeit tritt lediglich mit der Wahrscheinlichkeit 120 KAPITEL 5. BLOCKCHIFFREN 12/64 ≈ 0, 19 ein. Wenn man die Expansion E und die Permutation P in der F -Funktion berücksichtigt, dann sieht man, daß die folgende Gleichung X [15] ⊕ F (X, K) [7, 18, 24, 29] = K [22] (5.6) mit der Wahrscheinlichkeit 0, 19 für ein zufälliges X gilt. Ein vollständiges untersuchen aller S-Boxen zeigt, daß dies die beste lieare Approximation einer S-Box ist, die beim DES auftritt. 5.5.4 Lineare Approximation des DES Es wird nun die lineare Approximation der F -Funktion auf den ganzen Algorithmus erweitert. Als erstes Beispiel soll ein 3-Runden-DES dienen. Wenn man die Gleichung 5.6 auf die erste Runde anwendet, dann sieht man, daß X2 [7, 18, 24, 29] ⊕ PL [7, 18, 24, 29] ⊕ PR [15] = K1 [22] (5.7) mit der Wahrscheinlichkeit 12/64 gilt. Dasselbe gilt für die letzte Runde, also X2 [7, 18, 24, 29] ⊕ CL [7, 18, 24, 29] ⊕ CR [15] = K3 [22] . P PL [7,18,24,29] PR [22] [15] F1 K1 X1 K2 X2 F2 [22] [15] [7,18,24,29] F3 CL K3 X3 CR C Abbildung 5.36: Approximation eines 3-Runden DES (5.8) 5.5. LINEARE KRYPTOANALYSE 121 Aus den beiden vorhergehenden Gleichungen erhält man folgende lineare Approximation des 3-Runden-DES, indem man die beiden Gleichungen addiert und dabei die gemeinsame Term wegläßt: PL [7, 18, 24, 29] ⊕ CL [7, 18, 24, 29] ⊕ PR [15] ⊕ CR [15] = K1 [22] ⊕ K3 [22] . (5.9) Die Wahrscheinlichkeit, daß die obige Gleichung für einen zufälligen Klartext P und den zugehörigen Chiffretext C gilt, beträgt (12/64)2 + (1 − 12/64)2 ≈ 0, 70. Da die Gleichung 5.6 die beste Approximation der F -Funktion ist, ist damit die Gleichung 5.9 die beste Approximation für den 3-Runden-DES. Man kann jetzt statistisch (MaximumLikelyhood-Methode) Gleichung 5.9 lösen, um K1 [22] ⊕ K3 [22] zu erhalten. Als nächstes soll ein 5-Runden-DES betrachtet werden. In diesem Fall, wendet man die Gleichung 5.6 auf die zweite und vierte Runde an, und die folgende lineare Gleichung (abgeleitet aus NS1 (27, 4) = 22) auf die erste und die letzte Runde: X [27, 28, 30, 31] ⊕ F (X, K) [15] = K [42, 43, 45, 46] . (5.10) Die beiden Gleichungen ergeben zusammengefaßt die folgende lineraren Approximation des 5-Runden-DES: PL [15] ⊕ PR [7, 18, 24, 27, 28, 29, 30, 31] ⊕ CL [15] ⊕ CR [7, 18, 24, 27, 28, 29, 30, 31] = K1 [42, 43, 45, 46] ⊕ K2 [22] ⊕ K4 [22] ⊕ K5 [42, 43, 45, 46] (5.11) Das nächste Lemma liefert eine einfache Methode die Erfolgswahrscheinlichkeit einer solchen Gleichung zu berechnen: Lemma 5.6 (Piling-up Lemma) Es seien Xi (1 ≤ i ≤ n) unabhängige Zufallsvariablen, die den Wert 0 mit der Wahrscheinlichkeit pi und 1 mit Wahrscheinlichkeit 1 − pi annehmen. Dann ist die Wahrscheinlichkeit für X1 ⊕ X2 ⊕ . . . ⊕ Xn = 0 n Y 1 1 n−1 . pi − +2 2 2 i=1 (5.12) Das Lemma zeigt also, daß die Gleichung 5.11 mit der Wahrscheinlichkeit 1/2 + 2 (−10/64)2 ≈ 0, 519 gilt. Wenn also insgesamt |0, 519 − 1/2|−2 ≈ 2800 Klar-/ChiffretextPaare gegeben sind, dann kann man mit einer Wahrscheinlichkeit von 97, 7% die rechte Seite von Gleichung 5.11 erraten. Für einen 16-Runden DES sind bei ähnlichem Vorgehen 247 Klartext-/Chiffrat-Paare notwendig. Damit können 14 der 56 Schlüsselbits gefunden werden. Die verbleibenden 42 Bit des Schlüssels können dannn durch vollständige Suche ermittelt werden. Dieser Angriff ist deutlich schneller als ein brute-force Angriff. 3 122 KAPITEL 5. BLOCKCHIFFREN P PL [15] PR [42,43,45,46] [27,28,30,31] X1 F1 [22] [15] [7,18,24,29] F2 K1 K2 X2 K3 X3 F3 [7,18,24,29] [15] [22] [15] F4 K4 X4 [42,43,45,46] [27,28,30,31] X5 F5 CL K5 CR C Abbildung 5.37: Approximation eines 5-Runden DES 5.6 Der Advanced Encryption Standard (AES) Es wurde nach einer Ausschreibung und Sichtung der Kandidaten auf mehreren Konferenzen von der NIST (National Institute of Standards and Technology) Rijndeal als der neue Standard festgesetzt. Die genaue Spezifikation von Rijndael kann unter http://csrc.nist.gov/encryption/aes/rijndael/Rijndael.pdf 5.6. DER ADVANCED ENCRYPTION STANDARD (AES) 123 gefunden werden. Im Folgenden werden die wesentlichen Grundelemente beschrieben. Die Randbedingungen, die bei der Auswahl von AES ausschlaggebend waren, waren: 1. Sowohl die Schlüssel-, als auch die Nachrichtenlänge sollte auf 128, 196, bzw. 256 skalierbar sein. 2. Es durfte kein Angriff bekannt sein, der besser als vollständige Suche ist. 3. Last but not least war die Geschwindigkeit ein Kriterium. 5.6.1 Die Grundbausteine von AES Zunächst wählt man sich ein irreduzibles Polynom vom Grad 8, um den Körper F28 als konkreten Restklassenring zu realisieren. Im Falle von AES wurde das Polynom g(X) = X 8 + X 4 + X 3 + X + 1 gewählt und somit F28 als F2 [X]/g(X) realisiert. Als nächstes wird sowohl der Klartext, als auch der Schlüssel in ein rechteckiges Schema eingetragen, s. Abbildung 5.38. a0 a4 a8 a 12 ... a1 a5 a9 a 13 ... a2 a6 a 10 a 14 ... a3 a7 a 11 a 15 ... 128 Bit 196 Bit 256 Bit Abbildung 5.38: Schema für Klartext und Schlüssel beim AES Die Verschlüsselung dieser Klartextstruktur geschieht dann je nach Schlüssel-/BlockLänge in 10 bis 14 Runden folgendermaßen: Eine Runde besteht aus den Funktionen 1. Byte Substitution 2. Shift Row 124 KAPITEL 5. BLOCKCHIFFREN 3. Mix Column 4. Add Round Key. Diese werden in dieser Reihenfolge pro Runde abgearbeitet. Die Rundenanzahl ist je nach Blockgröße 10, 12 oder 14. Im folgenden wird nun die Arbeitsweise dieser Funktionen erläutert. Byte Substitution Die Byte Substitution wird auf alle Bytes des aktuellen Zustandes ausgeführt. Dazu wird ein Byte als Element in F28 interpretiert und invertiert. Sollte das Byte zufällig die 0 ∈ F28 repräsentieren, so bleibt es die Null. Anschließend wird dieses neue Element als Vektor über F2 in F28 interpretiert und eine affine Transformation, die durch 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 gegeben ist, darauf angewandt. Die Vorteile dieser Art der Substitution sind: 1 1 1 1 0 0 0 1 + 1 1 0 0 0 1 1 0 • Sie ist in Hardwear sehr klein realisierbar (ein normaler Computer hat sowieso eine Art F28 Arithmetik). • Man kann ein allseits beliebtes Schieberegister für die Transformation verwenden. • Hat man Platz (z.B. in Softwear), so ist diese Art der Substitution besser als eine Tabelle. Aber auch das Entschlüsseln ist sehr schnell, da man ja nur die inverse affine Transformation anwenden und dann invertieren muß. Shift Row Diese Operation ist in Abb. 5.39 schematisch im Fall des 128 Bit AES dargestellt. Bei anderen Längen der Datenblöcke werden die Zeilen teilweise etwas anders verschoben. 5.6. DER ADVANCED ENCRYPTION STANDARD (AES) a 125 a b b c c d d Abbildung 5.39: Shift Row Operation von AES für 128-Bit Datenblöcke Mix Column Bei dieser Funktion werden die Spalten als Polynome vom Grad 3 in F28 [Y ] interpretiert, anschließend mit f (Y ) = (X + 1) · Y 3 + Y 2 + Y + X · Y 0 multipliziert und zu guter letzt modulo Y 4 + 1 reduziert1 . Diese Vorgehensweise bietet den Vorteil, daß sie sehr schnell durchführbar und leicht zu berechnen ist. Außerdem ist f (Y ) wegen ggT(f (Y ), Y 4 +1) = 1 invertierbar, was die Entschlüsselung auf eine Multiplikation mit dem zu f (Y ) inversen Polynom reduziert. Add Roundkey Der Rundeschlüssel wird mit dem internen Zustand mit XOR verknüpft. Erzeugen des Rundenschlüssels Der eingegebene Schlüssel wird entsprechend der Rundenanzahl und dadurch benötigten Rundenschlüssel verlängert“. Im 128-Bit Fall werden dazu die 4 Spalten des Schlüssels, ” die 32-Bit Worte w0 , w1 , w2 , w3 mit einer temporären Variable temp per XOR verknüpft. Dies liefert die nächsten 4 Schlüsselworte. Die temporäre Variable wird aus dem letzten davor erzeugten Schlüsselwort, am Anfang also aus w3 erzeugt. Zu Anfang jedes 4-er Blocks druch SubByte(RotByte()) XOR Rundenkonstante(i/4), in den nächsten drei Fällen wird direkt das zuletzt erzeugte Wort genommen. Das erste Byte der Rundenkonstante(j) ist xj , die anderen drei Byte sind 0. 1 Man erinnere sich, daß F28 als F2 [X]/g(X) interpretiert wird. 126 KAPITEL 5. BLOCKCHIFFREN n Bit IZ m , m 1 2 Abbildung 5.40: Die Merkle-Damgard Konstruktion für Hashfunktionen 5.7 5.7.1 Hashfunktionen Definition und Eigenschaften Definition 5.7 Sei Σ ein Alphabet und n ∈ N. Eine Hashfunktion ist eine Abbildung H : Σ∗ −→ Fn2 . Also eine Abbildung, die einer beliebig langen Nachricht einen Bitvektor fester Länge zuordnet. Ein typischer Wert für n ist 160, aber auch 128 und 256 sind gebräuchlich. Aus kryptographischer Sicht soll eine Hashfunktion folgende Eigenschaften erfüllen: • Sie soll preimage resistent sein, d.h. zu einem gegebenen Hashwert h oder einer gegebenen Nachricht m mit Hashwert H(n) ist es unmöglich“ eine Nachricht m zu ” finden, die H(m) = h bzw. H(m) erfüllt. • Sie soll Kollisionsresistent sein, d.h. es soll nicht möglich“ sein zwei Nachrichten ” m1 , m2 mit H(m1 ) = H(m2 ) zu finden. Eine typische Struktur einer Hashfunktion ist die sog. Merkle-Damgard Konstruktion. Hierbei wird die Nachricht zunächst in Blöcke fester Länge m (z.B. 512 Bit) eingeteilt. Dann wird eine Kompressionsfunktion verwendet, die aus einem Initialzustand“ (z.B. ” n Bit) und einem Nachrichtenblock einen neuen Zustand“ (wieder n Bit) erzeugt, s. ” Abbildung 5.40. Der letzte Zustand ist dann der Hashwert. Der erste Initialzustand ist im Standart jeder Hashfunktion fest gewählt. Ist der letzte Block zu kurz, so wird er auf m Bit (z.B. 512) ergänzt. In dieser Ergänzung ist noch die Länge der ursprünglichen Nachricht codiert 5.7. HASHFUNKTIONEN 127 160 512 32 B A C D E 20 Runden mit f 1 + A B C 20 Runden mit f 2 D E A B C 20 Runden mit f 3 D E A B C 20 Runden mit f 4 D E + + + + 160 Abbildung 5.41: SHA-1: Schematischer Aufbau und hier nicht die Möglichkeit zu eröffnen zufällig gewählte Bits oder Verlängerungen der Nachricht für einen Angriff zu nutzen. Ein Beispiel für eine Kompressionsfunktion, die bisher2 nicht gebrochen wurde, ist SHA-1. Hierbei werden 80 Runden mit 4 verschiedenen √ Funktionen und 4 Konstanten 32 durchgeführt (der 32 Bit Wert ist hierbei z.B. mit 2 · 2 fest gegeben). Abblidung 5.41 zeigt schematisch die Vorgehensweise von SHA-1. Der Initialzustand bzw. Zwischenzustand wird in 32-Bit Worten A, B, C, D, E gespeichert. Der Nachrichtenblock (512 Bit) wird zu 80 Worten expandiert (die ersten 16 Worte w0 , ..., w15 sind die ursprüngliche Nachricht, jedes weitere Wort wt wird als zyklischer Shift des XORs von 4 vorangegangenen Worten berechnet (S 1 (wt−16 ⊕ wt−14 ⊕ wt−8 ⊕ wt−3 )). Eine Runde wird dabei entsprechend Abbildung 5.42 durchgeführt. Hirbei ist S n ein zyklischer Shift um n und die Funktion ft ist für die Runde t durch • f1 (t, B, C, D) = (B ∧ C) ∨ (B ∧ D) für 1 ≤ t ≤ 20 • f2 (t, B, C, D) = B ⊕ C ⊕ D für 21 ≤ t ≤ 40 • f3 (t, B, C, D) = (B ∧ C) ∨ (B ∧ D) ∨ (C ∧ D) für 41 ≤ t ≤ 60 • f4 (t, B, C, D) = B ⊕ C ⊕ D für 61 ≤ t ≤ 80 2 Stand Juli 2007 128 KAPITEL 5. BLOCKCHIFFREN B A D C ft S + 5 + 30 S A E B C D + Wt + Kt E Abbildung 5.42: SHA-1: Rundenfunktion gegeben. Andere Beispiele sind MD4 und MD5. Sie haben einen sehr ähnlichen Aufbau wie SHA-1, allerdings nur einen 128 Bit Zustand. Daher ist es einfach (Minuten oder Tage Rechenzeit) eine Kollision zu finden, also zwei unsinnige Nachrichten“ zu finden, die den ” selben Hashwert liefern. Für gegebenen Initialzustand können also zwei 512 Bit Worte angegeben werden, die den selben Folgezustand erzeugen. 5.7.2 Erzeugen von sinnvollen Nachrichten mit diversen sinnlosen Kollisionen Eine Möglichkeit eine Kollision auszunutzen liefert Postscript. Da es sich um eine Programmiersprache handelt, die u.a. eine if Abfrage hat, lassen sich, etwa durch eine Anweisung if t1 = t2 then Text1 Text2 Kollisionen ausnutzen. Eine weitere Möglichkeit besteht bei der Signatur von X509 Zertifikaten. Hierbei handelt es sich um Public-keys, die von einer Zertifizierungsstelle signiert sind. Um Kollisionen auszunutzen werden zwei verschiedene Zertifikate m1 und m2 mit demselben MD5-Hashwert erzeugt, die sich lediglich im RSA Modulus n unterscheiden. Das Problem hierbei ist, daß die beiden Moduli das Produkt von je zwei bekannten Primzahlen sein müssen. 5.7. HASHFUNKTIONEN 129 In [131] wird gezeigt, wie bei geeignetem Initialzustand, der vom Text im Zertifikat bis zum Beginn des Modulus des öffentlichen Schlüssels abhängt zwei verschiedene 1024 BitWerte q1′ und q2′ gefunden werden können, so daß die Hashwerte der gesamten Nachrichten gleich sind. Sind die beidem Werte q1′ und q2′ mit dem Angriff von Wang gefunden, so müssen diese Werte zu 2048-Bit Zahlen ergänzt werden, die beide Produkt von zwei (großen) Primzahlen sind. Dazu wähle man zwei Primzahlen p1 , p2 , die etwa 500 Bit lang sind, und berechne ein b0 so, daß 0 ≤ b0 < p1 · p2 ist und sowohl p1 | q1 = q1′ · 21024 + b0 , als auch p2 | q2 = q2′ · 21024 + b0 . Falls der andere Teiler von q1 bzw. q2 keine Primzahl sein sollte, so versucht man es mit q1 = q1′ · 21024 + b0 + k · p1 · p2 bzw. q2 = q2′ · 21024 + b0 + k · p1 · p2 für k = 1, 2, . . .. Ist b0 + k · p1 · p2 > 21024 , so lassen sich mit den Primzahlen p1 und p2 kein korrekten RSA-Moduli bilden und man versucht es mit zwei neuen Primzahlen. Die Erfolgswahrscheinlichkeit hängt direkt von der Wahrscheinlichkeit ab mit der eine 1500 Bit Zahl (also der zweite Faktor von q1 bzw. q2 eine Primzahl ist. Diese Wahrscheinlichkeit ist etwa 1/ ln(1500) ≈ 1/1000. Bei etwa 106 Versuchen für k kann man also bei beiden Moduli damit rechnen, daß sie Produkt von zwei Primzahlen sind. Das läßt sich mit ein paar Minuten Rechenzeit erreichen. Auf diese Weise erhält man zwei 2048 Bit Zahlen, die bei entsprechendem Zustand der Hashfunktion auf den ersten 1024 Bit denselben Hashwert liefern. Auf den zweiten 1024 Bit stimmen sie außerdem überein und somit sind verschiedene zwei Zertifikate gefunden die denselben Hashwert liefern. Anhang A Übungsaufgaben Aufgabe 1. Substitutionschiffre 1. Entschlüsseln Sie den folgenden Chiffretext mit einer Strategie Ihrer Wahl. (Hinweis: Es handelt sich um eine additive Chiffre.) 2. Wieviel (verschiedene) multiplikative Chiffren existieren bei gegebenem Klartextalphabet A, . . .,Z ?1 Was geschieht dabei mit den Buchstaben M und Z ? Welche Eigenschaft haben die zulässigen Multiplikatoren? GDVJH QHQOH LWWHQ HLXQV VDPWJ EHQGL GLHYR MHGRF HELHW HEHOJ HONHU KJDOO JDOOL HQVCH UIDHO OWLQG UHLWH LOHLQ GHPHL HULQH LQHPC ZHLWH QGLHD TXLWD QHUXQ GLPGU GLHLQ GHUOD QGHVV SUDFK HNHOW HQKHL VVHQE LHU Aufgabe 2. Rzff coü xf Oöyxy kov rxy Sjkhwvxüy fj fsöcxü kzsöxy, zy rox Rzvxy aw mjkkxy, loxpv rzüzy, rzff xf wyf yosöv pzya plxosöpelvop ofv, czf kov rxy Rzvxy oy rxy Sjkhwvxüy pxfsöoxöv, rox coü öxüfvxllxy. Rzvxyfsöwvapxfxvax lxpxy qxfv, cxlsöx hxüfjyxytxajpxyxy Rzvxy aw fsöevaxy foyr. Czf coü rzaw txovüzpxy miyyxy, ofv Sjkhwvxü fj aw tzwxy, rzff fox djü wytxqwpvxk Awpüoqq pxfsöevav cxürxy miyyxy. Fj mjkkxy Fox aczü lxorxü yosöv zy zyrxüxü Lxwvx Rzvxy; rox ztxü awk Plesm zwsö yosöv zy Oöüx. 1 Dabei seien die Buchstaben mit den Zahlen von 1 bis 26 assoziiert. 130 131 Dieses Beispiel eines Chiffretextes wurde freundlicherweise von der Firma IBM Deutschland GmbH zur Verfügung gestellt. Aufgabe 3. Vigenère-Chiffre 1. Entschlüsseln Sie den folgenden Chiffretext. (Hinweis: Sowohl Klartext als auch Schlüssel entstammen der deutschen Sprache.) Gehen Sie dabei wie folgt vor: (a) Bestimmen Sie zunächst die Schlüssellänge (bzw. Vielfache davon), indem Sie den Chiffretext auf sich wiederholende Zeichenketten hin untersuchen und die Abstände zwischen ihnen betrachten. Nach einer Faktorisierung dieser Abstände lassen häufig auftretende Faktoren bzw. aus ihnen bestehende Produkte auf die Schlüssellänge schließen. (b) Benutzen Sie den Kasiski-Test, um einen weiteren Hinweis auf die GrößenordP 2 nung der Schlüssellänge zu erhalten. Für deutschsprachige Texte gilt pi ≈ ai ∈A 0, 076. (c) Versuchen Sie nun, das Schlüsselwort zu erraten, indem Sie ausnutzen, daß der häufigste Buchstabe in deutschsprachigen Texten das E ist. 2. Vergleichen Sie die charakteristischen Häufigkeitsverteilungen der einzelnen Buchstaben bei Chiffretext und Klartext. BVRQZ CIQVH ILXRK INSHJ AEORJ SMJZW KXXEV WWEMA ESJEW ZJJMA SKWKA YECIT GPKIL BGIIM SBKYI IMPVM KAETX MEOSV LAJJW KSUEA YRYAM KECVH EMVHZ BLORH ZRLWA QMMHU MEUTL LMKSJ UKKKI GZWDC QZGPX YIAVH BTEDC IVHMK KVWMZ GPEII TGKGS EOKXV UTYVV XNWXM NEHJI GKMVM ZIRKM MVVMK EHQXM RDXRS AVHOJ GZAJE DMNGK ULCNW ZETQR FOSUY KSJGP TVGPM UILXR XHBFL SUEAL ZJBSU IALTY VZSMJ EIIMV EGQCI OSKIT JIR EYPVM KWWMV NTLZN ZWBDE VMKFO ZWITL EIMJE VZATE WETIZ NJMVV OSVKM SUYVZ JKQUT DQGDK Aufgabe 4. Rotormaschinen Ein Klartext sei mit einer zweistufigen Rotormaschine verschlüsselt worden. Das zugrundeliegende Alphabet sei A = {A, D, E, I, L, N, O, R, S, T } ≃ {0, 1, . . . , 9}. Die Verschlüsselung ist definiert durch: c1 := C1 (m + i0 ) − i0 , c2 := C2 (c1 + i1 ) − i1 . Dabei sind i0 , i1 die Einer- bzw. Zehnerstelle der laufenden Eingabe, C1 und C2 die gesuchten Permutationen auf A (innere Verschaltung der Rotoren). 132 ANHANG A. ÜBUNGSAUFGABEN Das Ergebnis einer choosen-plaintext-attack liefert: 0000000000 0123456789 TOSENDALET TLITNAETAA 1111111111 0123456789 TERANDTOST OEEAANRTON 2222222222 0123456789 OREITISNOT RSETTDNDDE 33 01 SO DN Zehnerstelle Einerstelle Klartext Chiffretext Versuchen Sie zunächst, den Einerrotor zu entschlüsseln, indem Sie die Blöcke betrachten, in denen der Zehnerrotor konstant bleibt. Anschließend sollten Sie in der Lage sein, auch den Zehnerrotor zu entschlüsseln. Beispiel: Stelle 0 und 3 ergeben jeweils T als Chiffrat, daher ist C1 (T+0)−0 = C1 (E+3)−3, d.h. C1 (9+0)−0 = C1 (2+3)−3, und damit C1 (T) = C1 (N)−3. Ermitteln Sie weitere Abhängigkeiten für C1 , aber bleiben Sie dabei innerhalb der Zehnergruppen! Da es verschiedene Darstellungen für C1 gibt (alle zyklischen Vertauschungen der Permutation), sollten Sie mit dem Bezugspunkt C1 (A) := A beginnen. Aufgabe 5. Enigma Eine Enigma mit zwei Rotoren (und Reflektor) operiere auf dem Alphabet {0, 1, 2, 3, 4}. Eine known-plaintext-attack liefert: 00000 01234 24201 10122 11111 01234 23401 34133 22222 01234 32043 22223 33333 01234 01231 41211 44444 01234 13200 21124 00000 01234 30142 04211 k j Klartext m Chiffrat c Die Maschine arbeitet wie folgt: c1 c2 c3 c4 c := := := := := C1 (m + j) − j C2 (c1 + k) − k CR (c2) C2−1 (c3 + k) − k C1−1 (c4 + j) − j Hierbei sind C1 , C2 die Permutation des ersten bzw. zweiten Rotors, CR die Permutation des Reflektors2 und j bzw. k wie oben die Einer- und Fünferstelle des Zeittaktes (zu Anfang seien die Rotoren in Nullstellung). Benutzen Sie zur Entschlüsselung des ersten (äußeren) Rotors folgende Beobachtung: Zeit = 0 : c1(0) = C1 (2 + 0) − 0, c4(0) = C1 (1 + 0) − 0 Zeit = 1 : c1(1) = C1 (4 + 1) − 1, c4(1) = C1 (0 + 1) − 1 2 −1 Berücksichtigen Sie, daß für die Permutation des Reflektors CR = CR gilt! 133 Da C1 (1) zweifach auftaucht, kann man schließen:3 c4(0) 6≡ c4(1) ⇒ c1(0) 6≡ c1(1) ⇒ C1 (2) 6≡ C1 (0) − 1 Suchen Sie solange weitere Nichtkongruenzen der Form C1 (a) 6≡ C1 (b) − c mit a, b, c ∈ {0, 1, 2, 3, 4}, bis Sie eine (bis auf zyklische Vertauschungen) eindeutige Permutation erhalten. Aufgabe 6. Methode von Friedmann Bekanntlich scheitern Brechungsversuche von Substitutionschiffren mittels KasiskiMethode oder Koinzidenzindex, sobald die Schlüsselphrase die gleiche Länge wie der Klartext besitzt. Im Jahr 1918 zeigte W. Friedmann für solche Fälle einen möglichen Brechungsansatz. Da die zehn häufigsten Buchstaben ca. 75% eines Textes ausmachen, werden mehr als 50% aller Klartext-Schlüsseltext-Buchstabenpaare durch sie gebildet. Gegeben sei folgender (deutschsprachiger) Chiffretext: XMEQKICJIE Stellen Sie zunächst die Additionstabelle (10 × 10) für die zehn häufigsten Buchstaben der deutschen Sprache {E, N, R, I, S, T, D, H, A, U} auf und vermerken Sie, wie die möglichen Chiffretextzeichen (eingeschränkt auf diese zehn Buchstaben) entstehen können. Beispiel: M = T + T = E + I = S + U Untersuchen Sie jetzt, wie Buchstabentripel des Chiffretextes zustandegekommen sein können. Gesucht werden sinnvolle Klartext- und Schlüsseltexttripel, deren Addition das Chiffretexttripel ergibt. So ergeben sich etwa für das Tripel MEQ insgesamt 6 · 6 · 4 = 96 verschiedene Möglichkeiten, z.B. SND + URN oder ERN + IND. Beachten Sie, daß man nicht bei allen Chiffretextzeichen davon ausgehen kann, daß sie auf die oben beschriebene Weise entstanden sind.4 Versuchen Sie, möglichst viele derartige Tripel zu identifizieren, um nach und nach auf Klartext und Schlüsseltext zu schließen.5 Angenommen, Sie haben die Lösung gefunden — welche Frage ist jetzt noch zu klären? Aufgabe 7. Eigenschaften der Entropiefunktion 1. Beweisen Sie: Seien (x1 , . . . , xn ) und (y1 , . . . , yn ) zwei aus positiven Zahlen beste3 Beachten Sie weiterhin, daß sämtliche Rechnungen modulo 5 ausgeführt werden! Kleiner Tip — dies ist in diesem Beispiel nur beim ersten Zeichen (X) der Fall. 5 Für ganz Ungeduldige: (05 04 17 13 17 04 08 18 04 13) + (18 08 13 03 19 04 20 17 04 17) = (23 12 04 16 10 08 02 09 08 04) 4 134 ANHANG A. ÜBUNGSAUFGABEN hende Vektoren mit Pn i=1 xi ≥ Pn i=1 n X yi, so gilt: xi log i=1 xi ≥ 0, yi (A.1) wobei das Gleichheitszeichen genau dann gilt, wenn xi = yi für alle i erfüllt ist. (Hinweis: Machen Sie sich zunächst die elementare Ungleichung ln x ≤ x − 1 ∀x > 0 durch eine Zeichnung klar.) 2. Benutzen Sie jetzt Ungleichung (A.1) um zu zeigen, daß für eine Quelle X über dem Alphabet (x1 , . . . , xn ) mit der Wahrscheinlichkeitsverteilung (p1 , . . . , pn ) gilt: H(X) = − n X i=1 pi log pi ≤ log n, wobei das Gleichheitszeichen genau dann gilt, wenn pi = Entropie der Quelle erreicht dann ihr Maximum. 1 n für alle i erfüllt ist. Die Aufgabe 8. Ternäre Codierung Gegeben seien 12 Billiardkugeln, von denen maximal eine ein abweichendes Gewicht besitzt. 1. Ist es möglich unter Zuhilfenahme einer Balkenwaage, mit nur drei Wägungen festzustellen, ob eine Kugel ein falsches Gewicht hat und wenn ja, welche und ob ihr Gewicht zu hoch oder zu niedrig ist? 2. Wie müßten dann die Wägungen durchgeführt werden? 3. Ließe sich dieses Problem auch für 13 Kugeln lösen? Aufgabe 9. One-Time-Pad“ ” Gegeben sei folgender Chiffretext: TPOGD JRJFS UBSFC SQLGP COFUQ NFDSF CLVIF OUFNW GT. Zur Verschlüsselung wurde ein One-Time-Pad, d.h. eine wirklich zufällige Folge von Nullen und Einsen verwendet. Je nachdem, ob das i-te Bit des One-Time-Pads eine Null oder eine Eins war wurde der i-te Klartextbuchstabe um ein oder zwei Zeichen (modulo 26) verschoben, d.h. im wesentlichen liegt hier eine Vigenère-Chiffre bzw. Vernam-Chiffre vor. 135 1. Versuchen Sie die Chiffre zu brechen, indem Sie einen Entscheidungsbaum benutzen und dabei möglichst frühzeitig unsinnige Teilbäume zu entfernen. 2. Warum gelang Ihnen die Entschlüsselung (hoffentlich) so leicht, obwohl der OneTime-Pad informationstheoretisch absolut sicher ist? Aufgabe 10. Wahl von Passwörtern Vorbemerkung: Der ASCII-Zeichensatz enthält 26 Klein- sowie 26 Großbuchstaben, 10 Ziffern, 33 Sonderzeichen und 33 Steuerzeichen. 1. Der System-Manager eines SUN-Clusters beobachtet eine Zunahme der Systemeinbrüche. Das installierte UNIX Betriebssystem arbeitet mit acht Zeichen langen Passwörtern. Eine Umfrage bei den Benutzern ergibt, daß sie für ihre Passwörter ausschließlich Klein- und Großbuchstaben verwenden. Was ist von dem Vorschlag des System-Managers zu halten, daß ab sofort jedes Passwort genau eine Ziffer und genau ein Sonderzeichen enthalten muß? 2. Immer häufiger wundern sich Studenten, daß nach dem Einloggen in das Ausleihsystem der Universitätsbibliothek OLAF Bücher auf ihrem Konto stehen, die sie nie bestellt, geschweige denn gelesen haben. Das OLAF-System arbeitet bekanntlich mit Passwörtern der Länge vier. Nachdem die Bibliotheksverwaltung bei Stichproben festgestellt hat, daß die Benutzer für ihre Passwörter nur“ Klein- und Großbuch” staben verwenden,6 wird jeder Student aufgefordert, in seinem Passwort exakt eine Ziffer zu verwenden. Wie ist diese Vorschrift zu bewerten? Aufgabe 11. Das Geburtstagsphänomen 1. Ein Zufallsgenerator liefert Zahlen zwischen 1 und n. Wie groß ist die Wahrscheinlichkeit, daß in einer von ihm generierten Folge von r Zahlen wenigstens eine mehrfach auftritt? 2. Nun können Sie das Geburtstagsproblem lösen: Wieviel Personen müssen sich in einem Raum aufhalten, damit die Wahrscheinlichkeit, daß wenigstens zwei von ihnen am gleichen Tag7 Geburtstag haben, 12 übersteigt? 3. Versuchen Sie für dieses Problem eine allgemeine Lösung zu finden. Hierzu ist die Abschätzung aus Aufgabenteil 1 sehr hilfreich. 4. Welche Auswirkungen hat diese Überlegung auf die Sicherheit von Kryptosystemen? 6 Wir gehen davon aus, daß nicht das Standardpasswort (die ersten vier Buchstaben des Nachnamens) verwendet wird. 7 Dabei sei das Geburtsjahr der Personen unerheblich. 136 ANHANG A. ÜBUNGSAUFGABEN Aufgabe 12. Lineare Systeme und LFSR Ein lineares System in GF (2)3 sei gegeben durch die (3 × 3)-Zustandsüberführungsmatrix A und die (1 × 3)-Matrix C zur Abbildung des Zustandsvektors auf das Ausgabeelement mit 1 0 1 A= 0 1 1 und C= 1 0 1 . 1 1 1 1. Bestimmen Sie das Übergangsverhalten und das Ausgabeverhalten dieses Systems (siehe Skriptum S. 38). 8 2. Berechnen Sie die Matrix T , ihre Inverse T −1 , und überführen Sie damit die Matrix A in die Rückkopplungsmatrix A′ eines LFSR (siehe Skriptum S. 43). 3. Zeichen Sie das zugehörige LFSR, und verifizieren Sie, daß es das gleiche Verhalten, wie das ursprüngliche lineare System aufweist. 4. Geben Sie das zugehörige Rückkopplungspolynom f (x) sowie für den Anfangszustand a0 = (0, 1, 1) die erzeugende Funktion G(x) an. Bestimmen Sie jetzt das Polynom g(x) mit G(x) = g(x)/f (x). Welchen Grad hat g(x)? 5. Sei g(x) = 1 − x fest vorgegeben. Wie lautet die zugehörige erzeugende Funktion G(x) bzw. der zugehörige Anfangszustand a0 ? 6. Berechnen Sie das charakteristische Polynom χA′ (x) der Matrix A′ , d.h. χA′ (x) := det(xI − A′ ). Verifizieren Sie, daß χA′ (x) mit dem Minimalpolynom µA′ (x) von A′ identisch ist sowie die Beziehung zwischen dem Rückkopplungspolynom f (x) und dem charakteristischen Polynom χA′ (x) 1 n . χA′ (x) = x · f x Aufgabe 13. Golomb’sche Axiome Welches Verhalten hat das folgende LFSR über GF (2)4?9 - ? i Genügt dieses LFSR den drei Golombschen Axiomen G1, G2 und G3 (Skriptum S. 35)? Aufgabe 14. Analyse von Pseudozufallsfolgen 8 9 Hinweis: Das System besitzt 4 Zyklen. Bitte nicht gleich im Skriptum nachsehen! 137 1. Wie sehen die beiden LFSR über GF (2)4 aus, die die Folgen (a) (1, 1, 1, 1, 0, 0, 1, 1) bzw. (b) (0, 0, 1, 1, 1, 0, 1, 0) erzeugen? 2. Was fällt Ihnen bei der zweiten Folge auf? Aufgabe 15. Anzahl der primitiven Polynome Beweisen Sie, daß die Anzahl λ(n) der primitiven Polynome vom Grad n über GF (q) durch ϕ(q n − 1) λ(n) = n gegeben ist. Aufgabe 16. Analyse eines LFSR Sie haben den folgenden Text abgefangen: DJFSFR UFYU WUREE NVS UOGFOVFGENE VESTCILVFTTELT Sie wissen nur, daß dieser Chiffretext durch Addition einer binären Pseudozufallsfolge zum Klartext modulo 26 entstanden ist. Als Hilfestellung sind Ihnen die Wortzwischenräume bekannt. 1. Wie lautet der Klartext? 2. Welche Periode hat die Pseudozufallsfolge? 3. Bestimmen Sie ein LFSR, das diese Folge erzeugt haben könnte. Aufgabe 17. Eigenschaften von Ringen Gegeben sei ein kommutativer Ring R mit der Charakteristik p, wobei p eine Primzahl ist. Beweisen Sie, daß für alle a, b ∈ R und n ∈ N gilt: 1. (a + b)p = ap + bp n n n n n n 2. (a − b)p = ap − bp 138 ANHANG A. ÜBUNGSAUFGABEN Aufgabe 18. Eigenschaften der Spur-Abbildung Die Spur (trace) von α über GF (q) ist folgendermaßen definiert: trn,q : GF (q n ) 7→ GF (q) n−1 X i α 7→ αq i=0 Zeigen Sie: 1. tr(α + β) = tr(α) + tr(β) für alle α, β ∈ GF (q n ). 2. tr(c · α) = c · tr(α) für alle c ∈ GF (q), α ∈ GF (q n ). 3. tr ist surjektiv. 4. tr(a) = n · a für alle a ∈ GF (q). 5. tr(αq ) = tr(α) für alle α ∈ GF (q n ). Aufgabe 19. Zusammenhang zwischen der Spur und linearen Abbildungen Zeigen Sie: Zu jeder linearen Abbildung f : GF (q n ) 7→ GF (q) existiert ein eindeutig bestimmtes δ ∈ GF (q n ), so daß f (α) = tr(δ · α) für alle α ∈ GF (q n ) gilt. Aufgabe 20. Komplexitätsprofil einer Pseudozufallsfolge 1. Wie sieht das Komplexitätsprofil der Pseudozufallsfolge aus Aufgabe 16 aus?10 2. Vergleichen Sie dieses Komplexitätsprofil mit dem Komplexitätsprofil der folgenden Pseudozufallsfolge: 101001011000111 3. Fallen Ihnen bei dieser Folge irgendwelche Regelmäßigkeiten auf? Aufgabe 21. Korrelationsimmune Funktionen 1. Konstruieren Sie eine 1-korrelationsimmune Funktion über GF (2) in drei Variablen (X0 , X1 , X2 ). 2. Zeigen Sie, daß diese Funktion tatsächlich 1-korrelationsimmun ist. 10 Betrachten Sie nur die ersten 15 Zeichen. 139 3. Ist diese Funktion auch noch 2-korrelationsimmun, oder gar 3-korrelationsimmun? Aufgabe 22. Transpositionschiffre und Hill-Chiffren Die Hill-Chiffre ist eine polygraphische Substitutionschiffre. Sei A = {1, . . . , n} das Klartext- bzw. Chiffretextalphabet und d eine fest vorgegebene Blocklänge. Die Verschlüsselung eines Klartextblockes M = (m1 , m2 , . . . , md ) in den Chiffretextblock C = (c1 , c2 , . . . , cd ) wird durch C = K · M T mod n definiert, wobei K eine (d × d)-Matrix ist. Dabei sind die mi , die ci sowie die Matrixelemente ki,j mit 1 ≤ i, j ≤ d Elemente aus A. Die Matrix K wird so gewählt, daß sie modulo n invertierbar ist. Damit ist die Entschlüsselung durch M = K −1 · C T mod n gegeben. 1. Zeigen Sie, daß jede Transpositionschiffre durch eine Hill-Chiffre ersetzt werden kann. 2. Zeigen Sie weiterhin: Wird eine Transpositionschiffre P durch die Hill-Chiffre S simuliert, so simuliert deren Transponierte S T die inverse Transpositionschiffre S −1 . Aufgabe 23. Permutationen und S-Boxen 1. Welche Beziehung besteht zwischen Permutationen (P-Boxen) und S-Boxen? 2. Wieviele verschiedene P-Boxen der Länge n und wieviel verschiedene (bijektive) S-Boxen der Länge n gibt es auf dem Alphabet {0, 1}? 3. Ist die Hintereinanderschaltung zweier S-Boxen durch eine einzige S-Box simulierbar? 4. Seien zwei S-Boxen durch eine P-Box miteinander verbunden. Kann auch diese Konstruktion durch eine einzige S-Box simuliert werden? Aufgabe 24. Vollständigkeit von S-Boxen Eine wichtige Eigenschaft, die man von einer guten S-Box fordert, ist die der Vollständigkeit. Eine Funktion f : GF (2)n 7→ GF (2)m heißt vollständig, wenn jedes Bit des Outputs von jedem Bit des Inputs abhängt, d.h. wenn es für jedes j mit 0 ≤ j < m und jedes i mit 0 ≤ i < n zumindest eine Belegung des Inputs mit der Eigenschaft gibt, daß sich bei einer Änderung des i-ten Inputbits auch das j-te Outputbit ändert. 1. Zeigen Sie, daß es keine bijektive Substitution der Länge 2 gibt, die auch vollständig ist. 140 ANHANG A. ÜBUNGSAUFGABEN 2. Zeigen Sie weiterhin, daß eine vollständige, bijektive Substitution keine lineare Abbildung sein kann. 3. Geben Sie eine vollständige S-Box der Länge 3 an. 4. Betrachten Sie folgende S-Box: Input 000 001 010 011 100 101 110 111 Output 111 001 010 011 100 101 110 000 (a) Ist diese Substitution vollständig? (b) Ist die Substitution für kryptographische Zwecke geeignet? Aufgabe 25. Unvollständigkeit und Kryptoanalyse Gegeben sei E : GF (2)l × GF (2)n 7→ GF (2)n eine Blocksubstitution und C = E(K, M), wobei M einen n-Bit Klartextblock, K einen l-Bit Schlüssel und C den resultierende n-Bit Chiffretextblock bezeichnet. Sei ferner C = (c0 , . . . , cn−1 ) mit ci = fi (k0 , . . . , kl−1 , m0 , . . . , mn−1 ) für 0 ≤ i < n. Nun seien die Koeffizienten c0 bis cr−1 des Chiffretextblockes von den Schlüsselbits ks bis kl−1 unabhängig, d.h. für 0 ≤ i < r gilt ci = fi (k0 , . . . , ks−1, m0 , . . . , mn−1 ). Wie läßt sich diese Form der Unvollständigkeit für eine known-plaintext-attack bei vollständigem Durchsuchen des Schlüsselraumes ausnutzen? Aufgabe 26. Eigenschaften des DES Sei x ein binärer Vektor, so bezeichnet x denjenigen Vektor, der aus x durch komponentenweises Negieren hervorgeht. 1. Zeigen Sie: DES(m, k) = DES(m, k) 2. Wie kann diese Eigenschaft für die Kryptoanalyse des DES ausgenutzt werden? 141 Aufgabe 27. How easy is collision search? Gegeben sei der 64-Bit Klartextblock m = 0404040404040404, sowie die beiden 64-Bit DES-Schlüssel k1 = 4A5AA8D0BA30585A und k2 = 46B2C8B628 18F884. (Beachten Sie, daß alle Angaben in hexadezimaler Schreibweise erfolgen.) 1. Berechnen Sie DES(m, k1 ) und DES(m, k2 ). Fällt Ihnen am Ergebnis etwas auf? 2. Welche Auswirkungen hat dieses Resultat auf die Eignung des DES als kryptographische Hashfunktion? 3. Finden Sie weitere Tripel (m, k1 , k2 ) mit obiger Eigenschaft. Aufgabe 28. Eigenschaften des DES bezüglich der ⊕-Operation Es bezeichne E die Expansionsabbildung und P die Permutation, die Bestandteil der Abbildung f des Data Encryption Standard sind. Weiterhin seien X, X ∗ , Y und Y ∗ 64Bit Blöcke, sowie K ein 64-Bit DES-Schlüssel. Wie lassen sich die folgenden Ausdrücke umformen? Hierbei bezeichnet ⊕ die XOR-Operation. 11 1. E(X) ⊕ E(X ∗ ) = . . . ? 2. P (X) ⊕ P (X ∗) = . . . ? 3. (X ⊕ K) ⊕ (X ∗ ⊕ K) = . . . ? 4. (X ⊕ Y ) ⊕ (X ∗ ⊕ Y ∗ ) = . . . ? Aufgabe 29. Eigenschaften der S-Boxen des DES bezüglich der ⊕-Operation 1. Wieviel verschiedene Paare (X, X ∗ ) von 6-Bit Wörtern gibt es, für die X ⊕ X ∗ = Z für ein festes 6-Bit Wort Z gilt? 2. Berechnen Sie für alle Paare (X, X ∗ ) von 6-Bit Wörtern mit X ⊕ X ∗ = 00 (hexadezimal) den Funktionswert X (X, X ∗ ) := S1(X) ⊕ S1(X ∗ ), wobei S1() den Funktionswert der S-Box S1 bezeichnet (siehe Abbildung A.1). Beachten Sie dabei, daß das erste und letzte Bit des 6-Bit Inputs der S-Box zur Auswahl der entsprechenden Substitution (Zeile) dient, und das erste Bit das höherwertige Bit ist. (Beispiel: Für das 6-Bit Wort 101010 (binär) wird die dritte Zeile der S-Box S1 ausgewählt, d.h. S1(101010) = 0110.) 3. Wiederholen Sie dies für alle Paare (X, X ∗ ) mit X ⊕ X ∗ = 34 (hexadezimal). Geben Sie die Häufigkeitsverteilung der Funktionswerte von X (X, X ∗ ) an. Kann es vorkommen, daß ein Funktionswert nur einmal auftritt? 11 Vgl. Aufgabe 26. bezüglich der Komplementbildung. 142 ANHANG A. ÜBUNGSAUFGABEN S1 0: 1: 2: 3: 0 E 0 4 F 1 2 3 4 D 1 F 7 4 1 E 8 C 8 2 4 5 6 7 2 F B 8 E 2 D 1 D 6 2 B 4 9 1 7 8 3 A F 5 9 A A 6 6 C C 9 B 3 B C C 5 B 9 7 3 E A D E F 9 0 7 5 3 8 A 5 0 0 6 D Abbildung A.1: Die erste der 8 S-Boxen des DES in hexadezimaler Schreibweise. 4. Nun betrachte man dieses Problem von der anderen Seite. Wieviele (und welche) Paare (X, X ∗ ) von 6-Bit Wörtern erfüllen die Beziehung X (X, X ∗ ) = 04 (hexadezimal)? 5. Und welche Paare (X, X ∗ ) von 6-Bit Wörtern erfüllen die Beziehung X (X, X ∗ ) = 03 (hexadezimal)? Aufgabe 30. Das Grundprinzip der Differential Cryptanalysis Es seien Y = 01 bzw. Y ∗ = 35 zwei 6-Bit Worte (hexadezimal) , die in einer DESRunde nach der Expansionsabbildung ganz links stehen. Weiterhin bezeichne K1 die linken 6 Bit des Teilschlüssels K in dieser Runde. Die XOR-Verknüpfung mit dem Schlüssel — eingeschränkt auf die linken 6 Bit — liefert X = Y ⊕ K1 bzw. X ∗ = Y ∗ ⊕ K1 , und X bzw. X ∗ bilden im weiteren Verlauf den Input der S-Box S1. Die entsprechenden Outputs seien Z = S1(X) bzw. Z ∗ = S1(X ∗ ). 1. Was können Sie über den Wert X ⊕ X ∗ beim Betrachten unterschiedlicher Werte für K1 aussagen? 2. Angenommen, Sie wissen, daß Z ⊕ Z ∗ = D gilt. Wieviele Möglichkeiten für K1 gibt es dann? Versuchen Sie diese zu bestimmen. 3. Betrachten Sie ein anderes Paar (Y, Y ∗ ) mit Y = 21 und Y ∗ = 15. Können Sie die möglichen Werte für den Teilschlüssel- Abschnitt“ K1 mit obigen Überlegungen ” weiter eingrenzen, wenn Sie wissen, daß nun der Wert für Z ⊕ Z ∗ = S1(X) ⊕ S1(X ∗ ) = S1(Y ⊕ K1 ) ⊕ S1(Y ∗ ⊕ K1 ) = S1(21 ⊕ K1 ) ⊕ S1(15 ⊕ K1 ) ist? Aufgabe 31. Hashfunktionen In der Zeitschrift Communications of the ACM wurde im Juni 1990 von Edgar H. Sibley die folgende Hashfunktion vorgeschlagen: h[0] := 0; for i := 1 to n do h[i] := T[h[i-1] ⊕ C[i]]; 143 od; return h[n]; Der Algorithmus berechnet den Hashwert für einen String, der aus n ASCII-Zeichen C[1] bis C[n] besteht, die Werte aus dem Intervall von 0 bis 255 annehmen. Weiterhin bezeichnet T eine Tabelle der Länge 256, deren Einträge aus der Menge {0, . . . , 255} stammen.12 1. Wie würden Sie diese Hashfunktion unter kryptographischen Gesichtspunkten bewerten, wenn die Tabelle T durch T[i] := i definiert wird? 2. Beantworten Sie die erste Frage nochmals unter der Voraussetzung, daß T mit zufälligen Werten aus der Menge {0, . . . , 255} besetzt wird. 3. Nehmen Sie nun an, daß T mit Werten aus der Menge {0, . . . , 255} besetzt wird, wobei jede Zahl genau einmal auftaucht. (a) Beweisen Sie die folgende Aussage: Wird die Hashfunktion auf einen String angewendet, dessen Zeichen gleichverteilt aus der Menge {0, . . . , 255} ausgewählt wurden, so ist auch der Hashwert gleichverteilt über {0 . . . 255}. (b) Gegeben seien zwei Strings C und C′ , die sich genau in einem Zeichen unterscheiden. Beweisen Sie, daß die Hashwerte beider Strings nie übereinstimmen können. 4. Wie würden Sie die Tabelle T belegen, um eine möglichst gute kryptographische Hashfunktion zu erhalten? Beachten Sie dabei, daß die Hashfunktion oft auf reine Textdateien angewendet wird. 5. Die Tabelle T sei gemäß Abbildung A.2 belegt. Berechnen Sie die Hashwerte für die folgenden Wörter: a, and, are, as, at, be, but, by, for, from, had, have, he, her, his, i, in, is, it, not, of, on, or, that, the, this, to, was, which, with, you.13 Was fällt Ihnen auf? 6. Ist es möglich, die Tabelle T so zu belegen, daß a auf 0, i auf 15 und in auf 1 gehasht wird? 7. Überlegen Sie sich eine Methode, mit der man eine Tabelle mit ähnlichen Eigenschaften, wie sie die Tabelle in Abbildung A.2 besitzt, erzeugen könnte. Aufgabe 32. Wissenswertes über Hashfunktionen Eine andere Hashfunktion, die eine Zeichenkette C[1], . . . , C[n] in die Menge {0, . . . , 255} abbildet, ist folgendermaßen definiert: 12 Natürlich würde man bei einer Implementierung die Variablen h[0] bis h[n] durch eine einzige Variable h ersetzen. Hier wurde nur zur besseren Darstellung ein Array gewählt. 13 Hinweis: Der Buchstabe a hat den ASCII-Wert 97 (dezimal). 144 ANHANG A. ÜBUNGSAUFGABEN 00 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0 0 39 157 176 75 9 254 45 42 182 189 102 220 214 11 111 134 1 159 24 131 107 139 197 1 109 217 15 32 170 236 101 141 68 2 180 137 228 169 209 80 96 4 54 3 56 144 178 34 191 93 3 252 29 64 138 40 167 18 247 199 22 181 115 243 37 103 183 4 71 147 211 195 31 153 19 72 119 188 126 205 46 194 74 241 5 6 78 106 184 202 145 62 5 174 79 83 26 44 25 245 81 6 13 121 38 70 58 129 185 151 82 113 230 125 201 50 223 196 7 164 85 27 90 179 233 234 136 57 172 53 168 250 12 20 49 8 232 112 140 61 116 132 99 0 215 28 158 249 135 87 161 192 9 35 8 30 166 33 48 16 152 41 2 52 66 186 198 235 65 A 226 248 88 7 207 246 218 148 114 222 59 175 150 173 122 212 B 155 130 210 244 146 86 95 127 208 21 213 97 221 240 63 94 C 98 55 227 165 76 156 128 204 206 251 118 255 163 193 89 203 D 120 117 104 108 60 177 224 133 210 225 100 92 216 171 149 10 E 154 190 84 219 242 36 123 17 239 237 67 229 162 143 73 200 F 69 160 77 51 124 187 253 14 23 105 142 91 43 231 238 47 Abbildung A.2: Eine mögliche Belegung der Tabelle T h[0] := 0; for i := 1 to n do h[i] := (h[i-1] + C[i]) mod 256; od; return h[n]; 1. Berechnen Sie den Hashwert für die beiden Strings anton kippenberg und benno papentrigk.14 Was fällt Ihnen auf? 2. Welche Eigenschaft der Hashfunktion ist für diese Beobachtung verantwortlich? 3. Überlegen Sie, ob diese Eigenschaft bei kryptographischen Hashfunktionen wünschenswert ist. Aufgabe 33. Was Sie schon immer über Hashfunktionen wissen wollten Hier zwei Vorschläge für eine Hashfunktion, die im wesentlichen auf dem Data Encryption Standard basieren. In beiden Fällen wird vorausgesetzt, daß die zu hashende Nachricht m in Blöcke m1 , . . . , mr zerlegt wurde, die jeweils 56 Bit lang sind. Weiterhin wird ein Parameter i festgelegt, der eine Länge von 64 Bit besitzt. 1. Sei die Verschlüsselungsfunktion des DES durch DESk (m) beschrieben, wobei m ein 64-Bit Klartext und k ein 56-Bit Schlüssel ist, so ist die erste Hashfunktion durch h(m, i) := DESmr ◦ DESmr−1 ◦ . . . ◦ DESm1 (i) definiert. 14 Das Leerzeichen (Space) hat den ASCII-Wert 32 (dezimal). 145 2. Die zweite Hashfunktion wird durch h(m, i) := zr+1 definiert, wobei z1 := i und die weiteren zj durch die Rekursion zj+1 := DESzj ⊕mj (zj ) für j = 1, . . . , r definiert sind. Hierbei bezeichnet ⊕ die bitweise XOR-Verknüpfung. Welcher Variante würden Sie den Vorzug geben? Literaturverzeichnis [1] L. M. Adleman; On Breaking the Iterated Merkle-Hellman Public Key Cryptosystem; Advances in Cryptology — Proceedings of CRYPTO ’82, pp. 303–308. [2] L. M. Adleman, C. Pomerance, R. S. Rumely; On distinguishing prime numbers from composite numbers; Ann. of Math. 117, 1983, pp. 173–206. [3] G. B. Agnew, R. C. Mullin, I. M. Onyszchuk, S. A. Vanstone; An Implementation for a Fast Public-Key Cryptosystem; Journal of Cryptology, v. 3, n. 2, 1991, pp. 63–79. [4] AT&T: Einchip-Prozessor zur Verschlüsselung digitaler Signale; Design & Elektronic, Markt und Technik, v. 21, 1986, pp. 8–11. [5] F. L. Bauer, G. Goos; Informatik, Erster Teil ; Springer, Berlin, 1973. [6] R. Berger, S. Kannan, R. Paralta; A Framework for the Study of Cryptographic Protocols; Advances in Cryptology — Proceedings of CRYPTO ’85, Springer LNCS 218, 1986, pp. 87–103. [7] E. R. Berlekamp; Algebraic Coding Theory; McGraw-Hill, New York, 1968, pp. 261– 267. [8] T. Beth; Verfahren der schnellen Fourier-Transformation; Teubner, Stuttgart, 1984. [9] T. Beth, F. C. Piper; The Stop-And-Go Generator ; Advances in Cryptology — Proceedings of EUROCRYPT ’84, Springer LNCS 209, 1984, pp. 88–92. [10] T. Beth; Efficient Zero-Knowledge Identification Scheme for Smart Cards; Advances in Cryptology — Proceedings of EUROCRYPT ’88, Springer LNCS 330, 1988, pp. 77–95. [11] T. Beth, D. Gollmann; Algorithm Engineering for Public Key Algorithms; IEEE Journal on Selected Areas in Communications, v. 7, n. 4, 1989, pp. 458–466. [12] T. Beth, S. A. Vanstone, G. B. Agnew; What One Should Know about Public Key Algorithms — Today ! ; SECURICOM ’90, 1990, pp. 47–63. [13] T. Beth, F. Schaefer; Non Supersingular Elliptic Curves for Public Key Cryptosystems; Abstracts of EUROCRYPT ’91, 1991, pp. 155–159. 146 LITERATURVERZEICHNIS 147 [14] E. Biham, A. Shamir; Differential Cryptoanalysis of DES-like Cryptosystems; The Weizmann Institute of Science, 1990. [15] E. Biham, A. Shamir; Differential Cryptanalysis of Feal and N-Hash; Abstracts of EUROCRYPT ’91, 1991, pp. 1–8. [16] E. Biham, A. Shamir; Differential Cryptanalysis of Snefru, Khafre, REDOC-II, LOKI and Lucifer ; Abstracts of CRYPTO ’91, 1991, pp. 4-1–4-7. [17] E. Biham, A. Biryukov, A. Shamir; Cryptanalysis of Skipjack Reduced to 31 Rounds Uning Impossible Differentials; Proceedings of EUROCRYPT 99; LNCS, Springer Heidelberg, S. 12–23, 1999. [18] R. Blahut; Theory and Practice of Error Control Coding; Addison-Wesley Publishing Company, Reading, Mass., 1983. [19] G. R. Blakely; Safeguarding Cryptographic Keys; Proc. NCC, v. 48, AFIPS Press, Montvale, New Jersey, 1979, pp. 313–317. [20] M. Blum; Coin Flipping by Telephone — A Protocol for Solving Impossible Problems; Digest of papers compcon spring 1982, February 22–25, pp. 133–137. [21] M. Blum; How to exchange (secret) keys (Extended Abstract); Proceedings of the 15th Annual ACM Symposium on Theory of Computing, Boston, Masssachusetts, April 25–27, 1983, pp. 440–447. [22] B. den Boer: Cryptoanalysis of FEAL; Proceedings of EUROCRYPT ’88, pp. 293– 299. [23] B. den Boer, A. Bosselaers; An Attack on the Last Two Rounds of MD4 ; Abstracts of CRYPTO ’91, 1991, pp. 4-19–4-23. [24] E. F. Brickell; Breaking iterated knapsacks; Advances in Cryptology — Proceedings of CRYPTO ’84, Springer LNCS 196, 1984, pp. 342–358. [25] E. F. Brickell, A. M. Odlyzko; Cryptanalysis: A survey of recent results; Proceedings of the IEEE, v. 76, n. 5, 1988, pp. 578–593. [26] Bronstein, Semendjajew; Taschenbuch der Mathematik ; Leipzig. [27] T. Brügemann. H. Bürk; Der Verschlüsselungsalgorithmus IDEA; Elektronik [28] Bundesverfassungsgericht; Das Volkszählungsurteil des Bundesverfassungsgerichts vom 15.12.1983 — 1 BvR 209/83 u.a.; DuD Datenschutz und Datensicherung, Informationsrecht, Kommunikationssysteme, Friedrich Vieweg & Sohn, Braunschweig, Heft 4, Oktober 1984, pp. 258–281. 148 LITERATURVERZEICHNIS [29] K. Campbell. M. Wiener; DES is not a group; Advances in Cryptology — Proceedings of CRYPTO ’92, Springer LNCS, 1992, pp. 512–520. [30] D. Chaum; Security without Identification: Transactions Systems to Make Big Brother Obsolete; CACM, v. 28, n. 10, 1985, pp. 1030–1044. [31] H. Cohen, H. W. Lenstra, Jr.; Primality testing and Jacobi sums; Math Comp., v. 42, 1984, pp. 297–330. [32] D. Coppersmith; Another Birthday Attack ; Advances in Cryptology — Proceedings of CRYPTO ’85, Springer LNCS 218, 1986, pp. 14–17. [33] D. Coppersmith, A. M. Odlyzko, R. Schroeppel; Discrete Logarithms in GF(p); Algorithmica, v. 1, 1986, pp. 1–15. [34] D. Coppersmith; Analysis of ISO/CCITT Document X.509 Annex D; ISO/IEC JTC1/SC27/ WG20.2 Paper N160, 1989. [35] Electronic Frontier Foundation; Cracking DES, Secrets of Encrytion Research, Wiretap & Chip Design Selbstverlag (www.oreilley.com/catalog/crackdes/ oder www.eff.org/descracker), 1550 Bryant Street, Suite 725, San Francisco CA, 94103– 4832 USA, 1998. [36] Z. Dai; Proof of Rueppel’s Linear Complexity Conjecture; IEEE Trans. Inform. Theory, v. IT-32, 1986, pp. 440–443. [37] D. W. Davies, G. Parkin; The Avarage Cycle Size of the Key Stream in Output Feedback Encipherment; Springer LNCS 149, Heidelberg, 1983, pp. 263–279. [38] D. W. Davies; Applying the RSA Digital Signature to Electronic Mail ; IEEE Computer, v. 16, 1983, pp. 55-62. [39] D. W. Davies, W. L. Price; Security for Computer Networks; John Wiley & Sons, Chichester, New York, 1984. [40] D. E. Denning; Digital Signatures with RSA and other Public-Key Cryptosystems; CACM, v. 27, n. 4, 1984, pp. 388–392. [41] Y. Desmedt; What happened with Knapsack Cryptographic Schemes; in Performance Limits in Communication, Theory and Practice, NATO ASI Series E: Applied Sciences — Vol. 142, ed. J. K. Skwirzynski, Kluwer Academic Publishers, 1988, pp. 113–134. [42] W. Diffie, M. Hellman; New Directions in Cryptography; IEEE Trans. Inform. Theory, v. IT-22, 1976, pp. 644–654. [43] W. Diffie, M. Hellman; Exhaustive Cryptoanalysis of the NBS Data Encryption Standard ; IEEE Computer, v. 10, n. 6, 1977, pp. 74–78. LITERATURVERZEICHNIS 149 [44] W. Diffie; Cryptographic Technology: Fifteen Years Forecast; ACM SIGACT News, v. 14, n. 4, 1982, pp. 38–57. [45] W. Diffie; The First Ten Years of Public-Key Cryptography; Proceedings of the IEEE, v. 76, n. 5, 1988, pp. 560–576. [46] J. D. Dixon; Asymptotically fast factorization of integers; Math. Comp., v. 36, 1981, pp. 255–260. [47] T. ElGamal; A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms; IEEE Trans. Inform. Theory, v. IT-31, 1985, pp. 469–472. [48] S. Even, O. Goldreich, A. Lempel; A Randomized Protocol for Signing Contracts; CACM, v. 28, n. 6, 1985, pp. 637–647. [49] A. Fiat, A. Shamir; How to Prove Yourself: Practical Solutions to Identification and Signature Problems; Advances in Cryptology — Proceedings of CRYPTO ’86, Springer LNCS 263, 1987, pp. 186–194. [50] M. Fischer, S. Micali, C. Rackoff; A Secure Protocol for the Oblivious Transfer ; Advances in Cryptology — Proceedings of EUROCRYPT ’84, Springer LNCS 209, 1984. [51] S. Fortune, M. Merrit; Poker Protocols; Advances in Cryptology — Proceedings of CRYPTO ’84, Springer LNCS 196, 1984. [52] M. Frisch; Ein Überblick zum Thema RSA; E.I.S.S.-Report 91/15, 1991. [53] W. Fumy, H. P. Ries; Kryptographie; Oldenbourg Verlag, München, 1988. [54] M. Gardner; A new kind of cipher that would take millions of years to break ; Scientific American, v. 237, 1977, pp. 120–124. [55] H. Gilbert, G, Chasse; A Statistical Attack of the FEAL-8 Cryptosystem; Abstracts of CRYPTO ’90, pp. 21–32. [56] S. Goldwasser, S. Micali, C. Rackoff; The Knowledge Complexity of Interactive Proof Systems; Proc. 17th Ann. ACM Symp. on Theory of Comp. (STOC), 1985. [57] D. Gollmann; Kaskadenschaltungen taktgesteuerter Schieberegister als Pseudozufallsgeneratoren; Dissertation, Universität Linz, 1983. [58] D. Gollmann; Linear Recursions of Cascaded Sequences; Proc. of General Algebra 3, 1984, Teubner, pp. 173–179. [59] S. W. Golomb; Shift Register Sequences; Holden-Day, San Fransisco, 1967. [60] J. A. Gordon; Strong RSA keys; Electronics Letters, v. 20, n. 12, 1984, pp. 514–516. 150 LITERATURVERZEICHNIS [61] J. A. Gordon; Strong Primes are Easy to Find ; Advances in Cryptology — Proceedings of EUROCRYPT ’84, Springer LNCS 209, 1984, pp. 216–223. [62] F.-P. Heider, D. Kraus, M. Welschenbach; Mathematische Methoden der Kryptoanalyse; Vieweg, 1985. [63] M. Hellman; Random Ciphers. [64] T. Herlestam; Critical Remarks on Some Public-Key Cryptosystems; Bit, v. 18, 1978, pp. 493–496. [65] P. Horster; Kryptologie; Reihe Informatik/47, Bibliographisches Institut, Mannheim, 1985. [66] P. Jamning; Securing the RSA-cryptosystem against cycling attacks; Cryptologia, v. 12, n. 3, 1988, pp. 159–164. [67] S. M. Jennings; A Special Class of Binary Sequences; Dissertation, University of London, 1980. [68] A. Jung; The Strength of the CCITT/ISO Hash Function; 1990, (unpublished). [69] B. Kaliski, Jr., R. L. Rivest, A. Sherman; Is The Data Encryption Standard a Group? ; Journal of Cryptology, v. 1, n. 1, 1988, pp. 3–36. [70] D. Kahn; The Codebreakers; MacMillan, New York, 1967. [71] T. Kameda, K. Weihrauch; Einführung in die Codierungstheorie I ; Bibliographisches Institut, Mannheim, 1973. [72] D. E. Knuth; The art of computer programming, Vol. 2: Seminumerical algorithms, second edition, Addison-Wesley, Reading, MA, 1981. [73] D. E. Knuth; The art of computer programming, Vol. 3: Sorting and searching, Addison-Wesley, Reading, MA, 1973. [74] A. Konheim; Cryptography: A Primer ; John Wiley & Sons, New York, 1981. [75] K. Kroschel; Statistische Nachrichtentheorie I ; Springer, Heidelberg, 2. Auflage, 1987. [76] X. Lai, J. L. Massey; A Proposal for a New Block Encryption Standard ; Advances in Cryptology — Proceedings of EUROCRYPT ’90, Springer LNCS 473, 1991. [77] X. Lai, J. L. Massey; On the Security of a Proposed Encryption Standard against Differential Cryptoanalysis; submitted to EUROCRYPT ’91. [78] A. K. Lenstra, H. W. Lenstra, Jr., M. S. Manasse, J. M. Pollard; The number field sieve; Proc. 22nd Ann. ACM Symp. on Theory of Comp. (STOC), 1990, pp. 564–572. LITERATURVERZEICHNIS 151 [79] H. W. Lenstra, Jr.; Factoring Integers with Elliptic Curves; Ann. of Math., v. 126, 1987, pp. 649–673. [80] M. Luby, S. Micali, C. Rackoff; How to Simultaneously Exchange a Secret Bit by Flipping a Symmetrically-Biased Coin; Proc. 24th IEEE Annual Symp. on Foundation of Comp. Science (FOCS), 1983. [81] H. Lüneburg; Galoisfelder, Kreisteilungskörper und Schieberegisterfolgen; Bibliographisches Institut, Mannheim, 1979. [82] U. M. Maurer; Fast Generation of Secure RSA-Moduli with almost Maximal Diversity; Advances in Cryptology — Proceedings of EUROCRYPT ’89, Springer LNCS 434, 1990, pp. 636–647. [83] J. L. Massey; Shift-Register Synthesis and BCH-Decoding; IEEE Trans. Inform. Theory, v. IT-15, 1969, pp. 122–127. [84] U. M. Matsui; Linear Cryptanalysis Method for DES Cipher ; Advances in Cryptology — Proceedings of EUROCRYPT ’93, Springer LNCS, 1994, pp. 386–397. [85] K. S. McCurley; The Discrete Logarithm Problem; in Cryptology and computational number theory, C. Pomerance (ed.), Proceedings of symposia in applied mathematics, 1989, pp. 49–74. [86] R. Menicocci; Short Gollmann cascade generators may be insecure; in Proceedings of 4th IMA Conference on Cryptography and Coding, P. G. Farrell (ed.), 1995, pp. 281–297. [87] R. C. Merkle, M. Hellman; On the Security of Multiple Encryption; CACM, v. 24, 1981, pp. 465–467. [88] R. C. Merkle; A Fast Software One-Way Hash Function; Journal of Cryptology, v. 3, n. 2, 1990, pp. 43–58. [89] R. C. Merkle; Evaluation of MD4 (as submitted to RIPE ; RIPE Internal Report 1991-5, 1991. [90] C. Meyer, S. Matyas; Cryptography — A New Dimension in Computer Data Security; John Wiley & Sons, Chichester, New York, 1984. [91] G. L. Miller; Riemann’s Hypothesis and Tests for Primality; Journal of Computer and System Science, v. 15, 1976, pp. 300–317. [92] C. Mitchel, F. Piper, P. Wild; Digital Signatures; [93] S. Miyaguchi, A. Shiraishi, A. Shimizu; Fast Data Encryption Algorithm Feal-8 ; Review of electrical communications laboratories, v. 36, n. 4, 1988. 152 LITERATURVERZEICHNIS [94] S. Miyaguchi, K. Ohta, M. Iwata; 128-bit hash function (N-Hash); Proceedings of SECURICOM ’90, 1990, pp. 123–137. [95] S. Miyaguchi, S. Kurihara, K. Ohta, H. Morita; Expansion of FEAL Cipher ; NTT Review 2, 1990, pp. 117–127. [96] S. Murphy; The Cryptoanalysis of FEAL-4 with 20 Chosen Plaintexts; Journal of Cryptologie 2, 1990, pp. 145–154. [97] M. Naor, M. Yung; Universal one-way hash functions and their cryptographic applications; Proceedings of the twenty first annual ACM Symp. Theory of Computing, STOC, 1989, pp. 33–43. [98] H. Niederreiter; Sequences with almost Perfect Linear Complexity Profile; Advances in Cryptology — Proceedings of EUROCRYPT ’87, Springer LNCS 304, 1987, pp. 37–52. [99] Communication and Information Processing Labs, NTT; FEAL-N Specifications and Program; 1989. [100] P. Nyffeler; Binäre Automaten und ihre linearen Rekursionen; Dissertation, Universität Bern, 1975. [101] A. M. Odlyzko; Discrete logarithms in finite fields and their cryptographic significance; Advances in Cryptology — Proceedings of EUROCRYPT ’84, Springer LNCS 209, 1984, pp. 224–314. [102] S.-J. Park, S.-L. Lee, S.-C.Goh; On the security of the Gollmann cascades; Proceedings of Crypto’95, D. Coppersmith, (Ed.), LNCS 963, Springer Verlag, 1995, pp. 148–156. [103] A. Pfitzmann, B. Pfitzmann, M. Waidner; Datenschutz garantierende offene Kommunikationsnetze; Informatik-Spektrum, Springer-Verlag, Heidelberg, Juni 1988. [104] S. C. Pohlig, M. E. Hellman; An improved algorithm for computing logarithms over GF (p) and its cryptographic significance; IEEE Trans. Inform. Theory, IT-24, n. 4, 1978, pp. 106–110. [105] J. M. Pollard; Theorems on Factorization and Primality Testing; Proc. Cambridge Phil. Soc. 76, 1974, pp. 521–528. [106] M. O. Rabin; Probabilistic Algorithms for Testing Primality; Journal Number Theory, v. 12, 1980, pp. 128–138. [107] R. L. Rivest, A. Shamir, L. Adleman; A Method for Obtaining Digital Signatures and Public-Key Cryptosystems; CACM, v. 21, n. 2, 1978, pp. 120–126. LITERATURVERZEICHNIS 153 [108] R. L. Rivest; Remarks on a Proposed Cryptoanalytic Attack on the M.I.T. PublicKey Cryptosystem; Cryptologia, v. 2, n. 1, 1978, pp. 62–65. [109] R. L. Rivest; Critical Remarks on “Critical Remarks on Some Public-Key Cryptosystems” by T.Herlestam; Bit, v. 19, 1979, pp. 274–275. [110] R. L. Rivest, A. Shamir; How to Expose an Eavesdropper ; CACM, v. 27, n. 4, 1984, pp. 393–395. [111] R. L. Rivest; The MD4 Message Digest Algorithm; Abstracts CRYPTO ’90, 1990, pp. 281–291. [112] R. L. Rivest; MD5 — New Message-Digest Algorithm; Presented at Rump session of CRYPTO ’91, 1991. [113] J. Rompel; One-way Functions are Necessary and Sufficient for Secure Signatures; Proceedings of the twenty second annual ACM Symp. Theory of Computing, STOC, 1990, pp. 387–394. [114] R. A. Rueppel; New Approaches to Stream Ciphers; Dissertation, Zürich, 1984. [115] R. A. Rueppel; Analysis and Design of Stream Ciphers; Springer, Berlin, 1986. [116] R. Rueppel, O. Staffelbach; Products of Linear Recurring Sequences with Maximum Complexity; IEEE Trans. Inform. Theory, v. IT-33, 1987, pp. 124–131. [117] W. Ryska, S. Herda; Kryptographische Verfahren in der Datenverarbeitung; Informatik Fachberichte, Band 24, Springer, Berlin, 1980. [118] C. P. Schnorr; An Efficient Cryptographic Hash Function; Presented at Rump session of CRYPTO ’91, 1991. [119] A. Shamir; How to share a secret; CACM, v. 22, n. 11, 1979, pp. 612–613. [120] A. Shamir; A polynomial-time algorithm for breaking the basic Merkle-Hellman cryptosystem; IEEE Trans. Inform. Theory, v. IT-30, 1984, pp. 699–704. [121] A. Shamir; Identity-Based Cryptosystems and Signature Schemes; Advances in Cryptology — Proceedings of CRYPTO ’84, Springer LNCS 196, 1984, pp. 47–53. [122] C. E. Shannon; Communication Theory of Secrecy Systems; Bell Systems Technical Journal, n. 28, 1949, pp. 657–715. [123] A. Shimizu, S. Miyaguchi; Fast Data Encryption Algorithm Feal ; Advances in Cryptology — Proceedings of EUROCRYPT ’87, Springer LNCS 304, 1987, pp. 267–378. [124] T. Siegenthaler; Correlation-Immunity of Nonlinear Combining Functions for Cryptographic Applications; IEEE Trans. Inform. Theory, v. IT-31, 1984, pp. 776–780. 154 LITERATURVERZEICHNIS [125] T. Siegenthaler; Decrypting a Class of Stream Ciphers Using Ciphertext Only; IEEE Trans. on Computers, v. 34, 1985, pp. 81–85. [126] R. D. Silverman; The multiple polynomial quadratic sieve; Math. Comp., v. 48, n. 177, 1987, pp. 329–339. [127] G. J. Simmons, M. J. Norris; Preliminary Comments on the M.I.T. Public-Key Cryptosystem; Cryptologia, v. 1, n. 4, 1977, pp. 406–414. [SiJM91] G. J. Simmons, W.-A. Jackson, K. Martin; The Geometry of Shared Secret Schemes, Bulletin of the Institute of Combinatorics, Winnipeg Canada, Januar 1991. [128] Skipjack and KEA Algorithm Specification; Version 2.0, 29. May 1998; erhältlich über die Webseite des “National Institute of Standards and Technology” unter: http://csrc.nist.gov/encryption/skipjack-kea.htm. [129] R. Sugarman; On Foiling Computer Crime; IEEE Spectrum, v. 16, 1979, pp. 31–41. [130] H. C. A. van Tilborg; An introduction to cryptology; Kluwer Academic Publishers,Norwell, MA, 1988. [131] X. Wang, X. Lai, D. Feng, H. Chen, X. Yu Cryptoanalysis of the Hash Functions MD4 and RIPEMD; Advances in Cryptology - EUROCRYPT 2005, Springer LNCS 3494 pp. 1-18. [132] M. Wang, J. Massey; The Characterization of All Binary Sequences with Perfect Linear Complexity Profiles; Presented at Eurocrypt ’86, 1986. [133] M. Wiener; Efficient DES Key Search; vorgestellt auf der Rump-session der CRYPTO ’93, August 1993 [134] H. C. Williams, B. Schmid; Some Remarks Concerning the M.I.T. Public-Key Cryptosystem; Bit, v. 19, 1979, pp. 525–538. [135] H. C. Williams; A p + 1 Method of Factorising; Math. Comp., v. 39, n. 159, 1982, pp. 225-234 [136] M. V. Živković; An algorithm for the initial state reconstruction of the clock controlled shift register ; IEEE Transactions on Intormation Theory, v. 37, n. 5, 1991, pp. 1488–1490 Index ϕ-Funktion, eulersche, 53 1-Runden DES, 105 Abbildung, bijektive, 75 abstraktes Kryptosystem, 4 Advanced Encryption Standard, 122 AES, 122 Algorithmus, Chiffrier-, 4 Angreifer, 5 Äquivalent, lineares, 56 asymmetrisches Kryptosystem, 6 attack, chosen-ciphertext-, 9, 28 attack, chosen-plaintext-, 9, 28 attack, ciphertext-only-, 9 attack, known-plaintext-, 9 Ausgangsdifferenz, 109 auto-key System, 15 Autokorrelationsfunktion, 36 Axiome, Golombsche, 35, 37 Betriebsarten von Blockchiffren, 79 bijektive Abbildung, 75 Bitfehler, 80 Bitslip, 80 Blockchiffre, 73 Blockchiffren, Betriebsarten von, 79 C-34 Rotormaschine, 16 Caesar-Chiffre, 11 Chaos, Pseudozufall durch, 37 Charakteristik, 110 Charakteristik, unmögliche, 113 charakteristisches Polynom, 43 Chiffre, 10 Chiffre, Block-, 73 Chiffre, Caesar-, 11 Chiffre, Produkt-, 76 Chiffre, sequentielle, 32 Chiffre, Strom-, 32 Chiffre, Substitutions-, 12 Chiffre, synchrone Strom-, 32 Chiffre, Vernam-, 15 Chiffre, Vigenère-, 12, 32 Chiffren, Feistel-, 100 Chiffretext, 4 Chiffrieralgorithmen, 4 chosen-ciphertext attack, 9, 28 chosen-plaintext attack, 9, 28 Cipher Block Chaining Mode, 80 Cipher Feedback Mode, 84 ciphertext-only attack, 9 Code, 10 communication security, 1 COMPSEC, 1 computer security, 1 COMSEC, 1 confidentiality, 1 confusion, 76 decryption, 6 DES, 1-Runden-, 105 DES, differentielle Kryptoanalyse am Beispiel des, 105 differentielle Kryptoanalyse, 104, 105 differentielle Kryptoanalyse am Beispiel des DES, 105 Differenz, Ausgangs-, 109 Differenz, Eingangs-, 110 Differenzen, unmögliche, 113 Diffie, Angriff auf DES, 96 diffusion, 76 Draht, heißer, 16 155 156 INDEX Körper, Prim-, 47 Kanäle, verdeckte, 8 Kasiski, 13 Klartext, 4 known-plaintext-attack, 9 Koinzidenzindex, 13 Komplexität, Krypto-, 8 Fast Data Encipherment Algorithm, 99 Komplexität, lineare, 56 FEAL, 99 konventionelles Kryptosystem, 4, 5 FEAL-N, 99 Korrelation, 66 FEAL-NX, 100 Korrelations-Immunität, 65 Feistel-Chiffren, 100 Korrelationsattacke, taktgesteuerte SchieFeistelprinzip, 105 beregister, 68 Flüstern, 8 korrelationsimmun, m-, 67 Folge, m-, 53 Kryptoanalyse, 3 Folge, Pseudozufalls-, 33, 37 Kryptoanalyse am Beispiel des DES, diffeFolgen, m-, 53 rentielle, 105 Folgen, nichtlineare Verknüpfung von SchieKryptoanalyse, differentielle, 104, 105 beregister-, 59 Kryptoanalyse, lineare, 116 Friedman, 13 Kryptoanalytiker, 5 Funktion, Autokorrelations-, 36 Kryptographie, 3 Funktion, Rückkopplungs-, 39 Kryptokomplexität, 8 Kryptologie, 3 Geffe, Generator von, 62 Kryptooperation, 10 Gegner, 5 Kryptosystem, 3 Geheimhaltung, 1 Kryptosysteme mit öffentlichen Schlüsseln, Geheimtinte, 7 6 Generator von Geffe, 62 Kryptosystem mit perfekter Sicherheit, 30 Gollmann, D., 64 Kryptosystem, abstraktes, 4 Golomb, S.W., 35 Kryptosystem, asymmetrisches, 6 Golombsche Axiome, 35, 37 Kryptosystem, informationstheoretisch siHagelin C-34, 16 cheres, 27 Hebern Electric Code, 19 Kryptosystem, konventionelles, 4 heißer Draht, 16 Kryptosystem, praktisch sicheres, 27 Hellman, Angriff auf DES, 96 Kryptosystem, Strukturanalyse von einem, 9 Immunität, Korrelations-, 65 informationstheoretisch sicheres Kryptosy- Kryptosystem, symmetrisches, 6 Kryptosystem, unabhängiges, 29 stem, 27 Eingangsdifferenz, 110 Electronic Codebook Mode, 79 encryption, 6 endlicher Körper, 47 Enigma, 22 eulersche ϕ-Funktion, 53 Initialisierungsvektor, 81 ISO/OSI-Protokolle, 2 ISO/OSI-Schichten, 2 Körper, endlicher, 47 LANSEC, 1 LFSR, 39 linear rückgekoppeltes Schieberegister, 37, 39 INDEX lineare Komplexität, 56 lineare Kryptoanalyse, 116 lineare Rekursion, 43 lineare Systeme, 38 lineares Äquivalent, 56 Lucifer-Verschlüsselung, 78 M-209 Rotormaschine, 16 m-Folge, 53 m-Folgen, 53 m-korrelationsimmun, 67 MANSEC, 1 Methode von Kasiski und Friedman, 13 Methode, Trial-and-Error-, 9 Methoden, statistische, 9 Mode, Cipher Block Chaining, 80 Mode, Cipher Feedback, 84 Mode, Electronic-Codebook, 79 Mode, Output Feedback, 85 Multiplikationsregister, 45 157 Primkörper, 47 privater Schlüssel, 6 Produktchiffre, 76 Protokolle, ISO/OSI-, 2 Pseudozufall durch Chaos, 37 Pseudozufallsfolge, 33, 37 Pseudozufallsgeneratoren, 37 public-key Kryptosystem, 5 Punkt-zu-Punkt-Beziehung, 1 Register, Multiplikations-, 45 Rekursion, lineare, 43 reziprokes Polynom, 43 Rijndeal, 122 rückgekoppeltes Schieberegister, linear, 37, 39 Rückkopplungsfunktion, 39 Rückkopplungspolynom, 39, 40 run, 35 S-Box, 76 nichtlineare Verknüpfung von Schieberegi- Schichten, ISO/OSI-, 2 Schieberegister, linear rückgekoppeltes, 37, sterfolgen, 59 39 Nyfeller, P., 64 Schieberegister, taktgesteuerte, Korrelationsattacke, 68 offenes digitales System, 6 Schieberegister, taktgesteuertes, 63 öffentlicher Schlüssel, 6 Schieberegister, Verknüpfung zweier, 58 one-time-pad, 16, 27 Schieberegisterfolgen, nichtlineare VerOperation, Krypto-, 10 knüpfung von, 59 Ordnung von Polynomen, 52 Schlüssel, 4 Output Feedback Mode, 85 Schlüssel, öffentlicher, 6 P-Box, 76 Schlüssel, privater, 6 perfekte Sicherheit, 30 Schlüsselbibliothek, 7 Permutation, 10 secrecy, 1 Permutationsbox, 76 security, communication, 1 Permutationschiffre, 11 security, computer, 1 Polynom, charakteristisches, 43 security, system, 2 Polynom, Ordnung, 52 sequentielle Chiffre, 32 Polynom, primitives, 52 Shannon, C.E., 27 Polynom, reziprokes, 43 Sicherheit, Kryptosysteme mit perfekter, 30 Polynom, Rückkopplungs-, 39, 40 Sicherheit, perfekte, 30 praktisch sicheres Kryptosystem, 27 Skipjack, 113 Skipjack, differentielle Analyse, 113 primitives Polynom, 52 158 Spectrum, Spread, 7 Sprache, Zeichen-, 8 Spread Spectrum, 7 Spur, 49 statistische Methoden, 9 Steganographie, 4, 7 Stromchiffre, 32 Stromchiffre, synchrone, 32 Strukturanalyse von Kryptosystemen, 9 Substitution, 10 Substitutionschiffre, 12 Substitutionstabelle, 76 Suchen, vollständiges, 9 symmetrisches Kryptosystem, 6 synchrone Stromchiffre, 32 SYSSEC, 2 system security, 2 System, auto-key, 15 System, offenes digitales, 6 System, verteiltes, 2 Systeme, lineare, 38 taktgesteuerte Schieberegister, Korrelationsattacke, 68 taktgesteuertes Schieberegister, 63 Text, Klar-, 4 trace, 49 Trial-and-Error-Methode, 9 unabhängiges Kryptosystem, 29 unmögliche Charakteristik, 113 unmögliche Differenzen, 113 Verbindung, virtuelle, 2 verdeckte Kanäle, 8 Verknüpfung von Schieberegisterfolgen, nichtlinear, 59 Verknüpfung zweier Schieberegister, 58 Vernam, Gilbert, 15 Vernam-Chiffre, 15 Verschlüsselung, Lucifer-, 78 verteiltes System, 2 Vertraulichkeit, 1 Vigenère, Blaise de, 12 INDEX Vigenère-Chiffre, 12, 32 virtuelle Verbindung, 2 vollständiges Suchen, 9 WANSEC, 1 Zeichensprache, 8 Zufallsfolge, Pseudo-, 33, 37