Georg Doll Pädagogische Hochschule Karlsruhe Wissenschaftliche Hausarbeit zum Thema: Verschlüsselungsverfahren und ihre Bedeutung für die mathematische Bildung Fach: Mathematik Erstschrift ( ) Zweitschrift ( ) Referent: Korreferent: Prof. Dr. J. Ziegenbalg Prof. Dr. U. Beck Anlage: Diskette Abgabetermin: 11. Januar 1997 2 1 Einleitung.........................................................................................................................4 1.1 Von Goldkäfern, tanzenden Männern und Chipkarten..........................................................4 1.2 Zum Aufbau der Arbeit..............................................................................................................6 2 Begriffsbestimmungen und Begriffsabgrenzungen......................................................7 3 Codierung und Kryptographie - Ein Streifzug durch Geschichte und Unterricht... .11 3.1 Die Genesis - Am Anfang war der Code................................................................................11 3.2 Skytale - Die Anfänge der Kryptographie..............................................................................11 3.3 Die Cäsar-Chiffre - Der Urahn der modernen Kryptographie..............................................13 3.4 Die erste Blütezeit der Kryptologie im 16. und 17. Jahrhundert.........................................14 3.5 Die Enigma - Besser als ihr Ruf.............................................................................................17 3.6 Neue Aufgabenfelder - Kryptologie im Computerzeitalter..................................................18 4 Mathematische Grundlagen..........................................................................................21 4.1 Der größte gemeinsame Teiler...............................................................................................21 4.1.1 Der Euklidische Algorithmus..............................................................................................22 4.1.1.1 Anwendung des Algorithmus.....................................................................................23 4.1.2 Lineare diophanische Gleichungen mit zwei Variablen Vielfachsummen.........................24 4.1.2.1Ein verständliches Beispiel.........................................................................................24 4.2 Kongruenzen und Restklassen..............................................................................................26 4.3 Exkurs / Anwendung: Potenzieren modulo m......................................................................28 4.3.1 Schrittweises Vorgehen.....................................................................................................29 4.3.2 Schnelles Rechnen durch Verkettung...............................................................................29 4.4 Abbildungen - Funktionen......................................................................................................30 4.4.1 Einwegfunktionen ((trapdoor) one way functions).............................................................31 4.4.1.1 Ein einführendes Beispiel..........................................................................................31 4.4.1.2 Diskrete Exponentialfunktion modulo m - Diskrete Logarithmen modulo m.............32 4.4.1.3 Multiplikation von Primzahlen - Primfaktorzerlegung................................................33 4.4.1.4 Exkurs: Das Auffinden großer Primzahlen................................................................34 5 Symmetrische Verschlüsselungsverfahren.................................................................37 5.1 Mathematischer Hintergrund..................................................................................................37 5.1.1 Bitweise Verschlüsselung: Bitweise Addition - Die logische Verknüpfung XOR...............37 5.1.2Rechenoperationen bei zeichenweiser Verschlüsselung...................................................38 5.2Die Cäsar-Verschlüsselung ....................................................................................................38 5.2.1Der klassische und der allgemeine Cäsar..........................................................................38 5.2.2ROT13 - Der besondere Cäsar..........................................................................................40 5.2.3Die Sicherheit der Cäsar-Chiffren.......................................................................................40 5.2.3.1Entzifferte Geheimnisse.............................................................................................42 5.2.4Die Vigenère-Chiffre...........................................................................................................43 5.2.5Weiterentwicklungen der Vigenère-Chiffre.........................................................................45 6 Asymmetrische Verschlüsselungsverfahren ..............................................................47 6.1Das RSA-Verfahren...................................................................................................................48 6.1.1 Mathematischer Hintergrund: Der Satz von Euler ............................................................48 6.1.2 Praxis: Der Algorithmus im Einzelnen:..............................................................................49 3 6.1.2.1 Schlüsselerzeugung..................................................................................................49 6.1.2.2 Verschlüsseln von Nachrichten ................................................................................50 6.1.2.3 Entschlüsseln von Nachrichten.................................................................................51 6.2Das Verschlüsselungsverfahren von Rabin..........................................................................52 6.2.1 Mathematischer Hintergrund: Quadratwurzel modulo n und Chinesischer Restsatz.........................................................................................................52 6.2.1.1 Der chinesische Restsatz..........................................................................................52 6.2.1.2 Quadratischer Rest und Quadratwurzel modulo n....................................................53 6.2.1.3 Das Verfahren von Rabin..........................................................................................53 7 Kryptologie im Mathematikunterricht - Zwei Vorschläge...........................................55 7.1 Die Darstellung von Buchstaben durch natürliche Zahlen (und umgekehrt) als Möglichkeit der Selbstkontrolle / Die Cäsar-Chiffre als Anwendung der Division mit Rest (Sekundarstufe I).............................................................................................................55 7.1.1 Codierteil............................................................................................................................55 7.1.1.1 Motivation: ................................................................................................................55 7.1.1.2 Erarbeitung:...............................................................................................................55 7.1.1.3 Anwendung / Transfer...............................................................................................56 7.1.2 Kryptographieteil - Anwendung und Transfer des unter 7.1.1 Gelernten..........................57 7.1.2.1 Motivation..................................................................................................................58 7.1.2.2 Erarbeitung................................................................................................................59 7.1.2.3 Transfer - Variabilität und Sicherheit der Cäsar-Chiffre............................................60 7.2 Kryptanalysen und Beurteilung der Sicherheit verschiedener Chiffren mittels grundlegender kombinatorischer und statistischer Einsichten (Klassen 1035)................61 7.2.1 Vorbereitung (in Zusammenarbeit mit dem Fach Deutsch)..............................................61 7.2.2 Motivation...........................................................................................................................61 7.2.3 Erarbeitung .......................................................................................................................62 7.2.4 Transfer.............................................................................................................................63 8 Kryptologie - Der weiße Fleck im Curriculum?...........................................................64 9 Literatur zum Thema......................................................................................................65 9.1 Deutschsprachige Literatur, allgemein.................................................................................65 9.2 Deutschsprachige Kinder- und Jugendliteratur zum Thema..............................................68 9.3 Englischsprachige Literatur, allgemein.................................................................................68 9.4 Englischsprachige Kinder- und Jugendliteratur..................................................................71 10 Anhang..........................................................................................................................72 10.1 Programme zu den symmetrischen Verschlüsselungsverfahren....................................72 10.1.1 Das Programm SYMMETR.PAS.....................................................................................72 10.1.2 Das Programm STAT.BAS..............................................................................................72 10.1.3 Das Programm CAESAR.BAS........................................................................................73 10.2 Programme zu den asymmetrischen Verschlüsselungsverfahren..................................74 10.2.1 Das Notebook KEYS.......................................................................................................74 10.2.2 Das Notebook RSA..........................................................................................................75 10.3 Kopiervorlagen und Texte zu Kapitel 7...............................................................................77 10.2.1 Die Schatzkarte................................................................................................................77 10.2.2 Die Chiffrier-Scheibe nach Leon Battista Alberti.............................................................78 10.2.3 Edgar Alan Poe: Der Goldkäfer.......................................................................................79 10.4 Rechtlicher Hinweis...............................................................................................................80 Einleitung 4 1 Einleitung 1.1 Von Goldkäfern, tanzenden Männern und Chipkarten „...»Doch ist es bekannt, daß Kidd ungeheure Schätze aufgespeichert hat. Ich hielt deshalb für gewiß, daß sie noch immer in der Erde verborgen lägen und Sie werden kaum noch überrascht sein, wenn ich Ihnen sage, daß ich die Hoffnung, ja, fast die Gewißheit in mir aufsteigen fühlte, das unter so sonderbaren Umständen gefundene Pergament enthalte die verlorene Nachricht über den Ort, an dem der Schatz vergraben lag. (...) Dann legte ich es, den Schädel nach unten, in eine zinnerne Pfanne über ein Steinkohlenfeuer (...) und nahm es in dem Zustand heraus, in dem Sie es jetzt hier erblicken.« Hier zeigte mir Legrand das Pergamentstück, das er eben wieder erwärmt hatte. Zwischen dem Totenkopf und dem jungen Bock erblickte ich folgende, anscheinend von ungeübter Hand geschriebene Zeichen: 53 Ø Ø Å 305 ) ) 6 * ; 4826 ) 4 Ø . ) 4 Ø ) ; 806 * 48 Å 8 ]/ 60 ) ) 85 ; 1 Ø ( ; : Ø * 8 Å 83 (88) 5 * Å ; 46 ( ; 88 * 96 * ? ; 8) * Ø ( ; 485 ) ; 5 * Å 2 : * Ø ( ; 4956 * 2 ( 5 * - 4 ) 8 ]/ 8 * ; 40 69 285 ) ; ) 6 Å 8 ) 4 Ø Ø; 1 ( Ø 9 ; 48 0 81 ; 8 : 8 Ø 1 ; 48 Å 85 ;4 ) 485 Å 52 8806 * 81 ( Ø 9 ; 4 8 ; ( 88 ; 4 ( Ø ? 34 ; 48 ) 4 Ø ; 161 ; :188 ; Ø ? ; »Ich bin allerdings noch gerade so im unklaren wie früher«, antwortete ich und gab Legrand das Blatt zurück. »Und verspräche mir jemand für die Lösung des Rätsels alle Edelsteine von Golconda, ich könnte sie nicht verdienen.« »Und doch ist sie keineswegs so schwierig«, meinte Legrand, »wie diese Zeichen auf den ersten Blick vermuten lassen. Sie bilden, wie leicht zu erraten ist, eine Chiffre, das heißt, sie drücken einen Sinn aus. (...)“ aus: Edgar Allan Poe „Der Goldkäfer“, Quelle: http://gutenberg.aol.de Wir unterbrechen an dieser Stelle den Fortgang der Geschichte und verschieben die Entzifferung der Chiffre auf einen Zeitpunkt, an dem wir die erbrachte Leistung Legrands besser zu würdigen wissen. Aber nicht nur Legrand, bzw. sein Schöpfer Edgar Allan Poe verspürte den besonderen Reiz, geheime Einleitung 5 Schriften zu entziffern, auch Sir Arthur Conan Doyle schuf einen literarischen Helden, der solche Herausforderungen mit Bravour bestand: aus: Arthur Conan Doyle „The Adventure of the dancing man“, entnommen aus: Bauer / Goos, Informatik I Und auch Joachim Ringelnatz gestand „Ibich habibebi dibich, Lobittebi, sobi liebib. (...)“. Ob die Angebetete die Nachricht verstand ist nicht überliefert, aber es ist klar, dass nichts interessanter ist, als die Geheimnisse anderer, zumal, wenn es sich so offensichtlich um Geheimnisse handelt. Und so gilt die Regel: Wo eine Chiffre ist, ist auch ein Kryptanalytiker, der keine Ruhe geben wird, bis er nicht nur das Geheimnis kennt, sondern auch den Schlüssel zu allen weiteren. Die Literatur ist voll von fehlgeschlagenen Versuchen der Geheimhaltung. Doch findet und fand Kryptologie nicht nur in der Literatur statt. Ursprünglich hauptsächlich von militärischem Interesse, hat sie heute in viele Bereiche des täglichen Lebens Einzug gehalten. So begegnen wir ihr am Geldautomaten bei der Eingabe der Geheimzahl ebenso, wie - unbemerkt - beim Telefonat übers Handy. Aber was wissen wir darüber? - Warum sind z.B. --. . .... . .. -- und 01000111 01000101 01001000 01000101 01001001 01001101 Codierungen (Codes), HFIFJN aber eine Chiffre von GEHEIM? Was waren die Anfänge der Kryptologie? Was hat sich seitdem verändert? Gibt es überhaupt sichere Verschlüsselungsverfahren, die auch ohne abgeschlossenes Studium verstanden werden können und wenn ja: Kann ein Chiffrier-Algorithmus überhaupt noch sicher sein, wenn man seine Funktionsweise überall nachlesen kann? Und die Frage aller Fragen beim Lehrer: Wo und wie kann ich das in meinen Unterricht einbauen, wenn es überhaupt möglich und nötig ist? Einleitung 6 1.2 Zum Aufbau der Arbeit Wir werden uns in den folgenden Kapiteln dieser Fragen annehmen und versuchen, anwendbare Antworten zu finden. Dabei Kapitel 2 versuchen Licht in das eben angerichtete Begriffswirrwar (Kursivstellungen) zu bringen. In Kapitel 3 werden wir erleben, wie sich die Kryptologie in den letzten 2500 Jahren als Spezialdisziplin der Codierungstheorie entwickelt hat, die wesentlich älter ist. Wir werden auch sehen, dass letztere, völlig unbemerkt, überall im Unterricht verankert ist, was eine Eingliederung der Kryptologie zumindest vereinfacht. Ab Kapitel 4 wenden wir uns dann der Mathematik in der Kryptologie und der Kryptologie in der Mathematik zu. Dabei werden wir zunächst die Grundlagen für das weitere Arbeiten schaffen und unter anderem z.B. einen Weg finden, wie man bei einer Division mit Rest mit einem unverschämt großen Divisor den Rest findet ohne bei der Berechnung mit dem Divisor selbst arbeiten zu müssen. Kapitel 5 beschäftigt sich mit symmetrischen Verschlüsselungsverfahren, Kapitel 6 entsprechend mit asymmetrischen. Wir werden dabei die Verfahren an Beispielen genau auf ihre Funktionsweise, ihren mathematischen Gehalt und ihre Algorithmisierbarkeit hin untersuchen. Einige Verfahren liegen sogar in Pascal oder Mathematica programmiert vor und können ausgiebig getestet werden. Kapitel 7 enthält zwei konkrete Vorschläge zur Behandlung kryptographischer Inhalte im Mathematikunterricht. Als Nebenprodukt lernen wir ein Verfahren zur Selbstkontrolle von Rechenaufgaben außerhalb der Kryptologie kennen. Die Literaturliste enthält nicht nur die verwendete Literatur, sondern versucht eine möglichst umfassende Sammlung themenspezifischer Bücher aus dem deutsch- und englischsprachigen Raum. Bemerkenswert ist die große Auswahl an englischsprachiger Kinder- und Jugendliteratur, die sich mit Kryptographie und Kryptanalyse beschäftigen. Das empfohlene Lesealter liegt hier meist zwischen 9 und 12 Jahren, was zeigt, dass ein Einstieg in die Thematik durchaus nicht fortgeschrittene Mathematikkenntnisse voraussetzt. Hinweis: In dieser Arbeit wurden die Regeln der neuen deutschen Rechtschreibung angewandt. Begriffsbestimmungen und Begriffsabgrenzungen 7 2 Begriffsbestimmungen und Begriffsabgrenzungen Wir nehmen uns zunächst noch einmal ein Beispiel aus Kapitel 1 vor: Klartext G E H E I M Morse-Code --. . .... . .. -ASCII-Code 0100011 0100010 0100100 0100010 0100100 0100110 1 1 0 1 1 1 Cäsar-Chiffre H F I F J N Zunächst wirken Codes und Chiffre unverständlich, aber sie haben unterschiedliche Zielsetzungen: Der Morse-Code diente der Übermittlung von Mitteilungen mittels Telegraphie, d.h. durch elektrische Impulse. S. Morse1 übersetzte das uns bekannte Alphabet, das 26 Zustände (Buchstaben) kennt, in eines mit nur zwei Zuständen, nämlich kurze und lange elektrische Signale. A .H .... O --V ...B -... I .. P .--. W .-C -.-. J .--Q --.X -..D -.. K -.R .-. Y -.-E . L .-.. S ... Z --.. F ..-. M -T G --. N -. U ..Die 26 Buchstaben des Alphabets in Morse-Code übersetzt, Quelle: Bertelsmann, Discovery 97 Die Entwicklung des ASCII-Codes (American Standard Code for Information Interchange) wurde notwendig, um Texte mit Computern, die ebenfalls nur ein Alphabet mit zwei Buchstaben (an bzw. aus) beherrschen, verarbeiten zu können. Der ASCII-Code war ursprünglich 7 Bit (Zeichen) lang, jedoch reichten die dadurch darstellbaren 32 Zeichen bald nicht mehr den wachsenden Ansprüchen, so dass er auf 8 Bit erweitert wurde. 1 Samuel Finley Breese Morse, US-amerikanischer Maler und Erfinder, * 27. 4. 1791 Charlestown, Mass., + 2. 4. 1872 Poughkeepsie, N. Y. Begriffsbestimmungen und Begriffsabgrenzungen A B C D E F G 01000001 01000010 01000011 01000100 01000101 01000110 01000111 H I J K L M N 01001000 01001001 01001010 01001011 01001100 01001101 01001110 Die 26 Buchstaben des Alphabets im ASCII-Code O P Q R S T U 8 01001111 01010000 01010001 01010010 01010011 01010100 01010101 V W X Y Z 01010110 01010111 01011000 01011001 01011010 Das heißt, der Morse-Code und ASCII ermöglichen erst die Weitergabe von Information mittels bestimmter Medien. Dagegen benutzt die Cäsar-Chiffre einen bereits bestehenden Code, unser Alphabet, und macht die damit übermittelte Nachricht für Außenstehende unleserlich. Entsprechend ergeben sich zwei Wissenschaftsbereiche die Codierungstheorie und die Kryptologie, die sich wie folgt voneinander abgrenzen lassen: Definitionen und Abgrenzung: Die Codierungstheorie beschäftigt sich mit der Weitergabe von Informationen (über verschiedene Medien) mittels geeigneter Alphabete, sogenannter Codes. Der Vorgang der Übersetzung einer Information in die Code-Sprache, den Wortschatz des Codes, wird Codierung genannt, meist auch die Übersetzung selbst. Wir werden zur besseren Unterscheidung für die Übersetzung Codewort bzw. Codewörter verwenden. Aufgabengebiet der Kryptologie sind Verfahren zur Sicherung codierter Informationen vor unbefugtem Zugriff (Verschleierung des Inhalts) mittels spezieller Chiffrier-Vorschriften (Chiffrier-Verfahren, Verschlüsselungsverfahren, -algorithmen, -Systeme) oder unbefugtem Verändern (Integrität) und Verfahren, welche die Anonymität des Senders (Verschleierung der Herkunft) sichern, bzw. umgekehrt die Urheberschaft einer Nachricht beweisen (Authentifikation). Die Kryptologie teilt sich dabei in zwei Teilbereiche: die Kryptographie, welche solche Verfahren entwickelt und die Kryptanalyse, welche die Sicherheit der Verfahren überprüft. Dabei werden jedoch Kryptologie und Kryptographie oft synonym verwendet. Begriffsbestimmungen und Begriffsabgrenzungen 9 Solange die Existenz von Einwegfunktionen2 nicht bewiesen ist, kann die Kryptanalyse jedoch bestenfalls die Unsicherheit eines Chiffrier-Systems beweisen. Dank der sich rasant entwickelnden Computertechnologie gilt daher bis zum Beweis die Regel: Ein Chiffrier-System ist solange sicher, bis es geknackt ist. Ein verständliches Beispiel zu Code und Chiffre: Wenn ich vor mir eine ebene Platte von vier gleichlangen Stäben getragen sehe, auf der sich ein wildes Chaos von verschiedenen Dingen ausbreitet, so ist dies zunächst reine Information, die nur ich nutzen kann. Sollen auch andere an diesem Wissen partizipieren, so muss ich diese Information in eine CodeSprache übersetzen, mit dem auch andere, die nicht die Möglichkeit haben, dieses Objekt selbst zu betrachten, diese Information verarbeiten können. Eine solche geeignete Code-Sprache ist z.B. die deutsche (Schrift-)Sprache (der zugehörige Code ist der Wortschatz der deutschen Sprache), das Codewort für das eben beschriebene Objekt lautet „Tisch“, mit Hilfe der Beschreibung der auf dem Objekt vorherrschenden Ordnung kann ich die Information sogar noch genauer codieren; nämlich zu „mein Tisch“ vervollständigen. Jeder, der den verwendeten Code (er)kennt, wird die von mir übermittelten Codewörter auswerten können. Bezeichne ich dagegen das Objekt mit „Frosch der Sonne“ kann der Empfänger mit dieser Information nichts mehr anfangen, solange ich nicht mit ihm vereinbare, dass „Frosch“ in dieser Information „Tisch“ meint und „Sonne“ (das Zentrum unseres Sonnensystems) meine eigene Person repräsentiert. Ohne diese zusätzlichen Vereinbarungen kann kein Informationsaustausch stattfinden, die Codewörter wurden zusätzlich chiffriert. Wir können hier bereits die gegensätzlichen Zielsetzungen einer Codierung und einer Chiffrierung erkennen: Die Codierung soll den Informationsaustausch zwischen verschiedenen Parteien ermöglichen, weshalb bevorzugt Codes mit einer ausreichenden Verbreitung benutzt werden. Dagegen soll eine Chiffrierung den Informationsaustausch einschränken, reglementieren. 2 siehe Kapitel 4 „Mathematische Grundlagen“ Begriffsbestimmungen und Begriffsabgrenzungen 10 Folgende Begriffe aus der Kryptologie spielen im Folgenden noch eine wichtige Rolle: Klartext meint die unverschlüsselte Nachricht / Information, Chiffre, ChiffreText oder Geheimtext entsprechend die verschlüsselte Botschaft. Mit Sender ist, wie im herkömmlichen Sinne auch, der Absender einer Nachricht, mit Empfänger der autorisierte Empfänger gemeint. Ein Angreifer versucht, einen abgefangenen Geheimtext ohne Erlaubnis, also ohne Schlüssel, lesbar zu machen. Gelingt ihm dies, so sagt man, die Chiffre sei geknackt (gebrochen, komprimittiert). Der Schlüssel ist jene Information, mit der die Nachricht in einem bestimmten Chiffrier-Verfahren verschlüsselt (chiffriert, verziffert) wurde, und mit deren Kenntnis sie vom Empfänger (oder auch Angreifer) wieder einfach und schnell lesbar gemacht (entschlüsselt, dechiffriert, entziffert) werden kann. Codierung und Kryptographie - Ein Streifzug durch Geschichte und Unterricht 11 3 Codierung und Kryptographie - Ein Streifzug durch Geschichte und Unterricht 3.1 Die Genesis - Am Anfang war der Code Codes und Codierungen sind in allen Schulfächern zu finden, man braucht nur die Evolution und die technische Entwicklung vom Urknall bis heute verfolgen: Der erste nachweisbare Code ist so alt, wie das Leben selbst; es ist die DNA, die mit einem Alphabet mit nur vier „Buchstaben“ auskommt. Die DNA ist als materielle Grundlage der Vererbungslehre dem Biologieunterricht zuzuordnen (Hauptschule, Klasse 9, Lehrplaneinheit 1: Vererbung und Evolution; Realschule, Klasse 9, Lehrplaneinheit 3: Grundlagen der Vererbung; Gymnasium, Klasse 10, Lehrplaneinheit 4: Vererbung beim Menschen und weite Teile des Biologieunterrichts der Klassen 12 und 13). Aber auch alle Körperfunktionen basieren auf Codes, welche auf chemischer und physikalischer Ebene permanent zwischen allen Körperzellen hin- und herlaufen. Ein von allen Menschen zur Informationsübermittlung täglich und mit wechselndem Erfolg benutzter Code ist die Sprache. Die Komplexheit dieses Codes ist nicht zu überschätzen. Es gibt Bausteine, die bestimmte Informationen über die Umwelt direkt übermitteln (Morpheme) aber auch andere, die beispielsweise Zeitbezüge herstellen (Präfixe, Sufixe). Über die Grammatik werden Einzelinformationen miteinander verbunden, es handelt sich also um die Codierung einer Codierung. Schließlich sei auch noch die Rechtschreibung erwähnt, ein Code, deren Beherrschung vorwiegend in Personalbüros bei Einstellungstests von größter Wichtigkeit zu sein scheint. 3.2 Skytale - Die Anfänge der Kryptographie Seit Informationen durch Sprache übermittelt werden, versuchen die Menschen auch, diese vor Unbefugten geheim zu halten; zu diesem Zweck entwickelten sie Geheimschriften und Verschlüsselungsverfahren. Das wohl älteste bekannte Verschlüsselungsverfahren wurde nach der Überlieferung des griechischen Historikers Plutarch3 vor ungefähr 2500 Jahren von den Spartanern entwickelt 3 Plutarch von Chäronea: griechischer Philosoph und Historiker der hellenistisch-römischen Zeit, ca. 45 - 125 n. Chr. Codierung und Kryptographie - Ein Streifzug durch Geschichte und Unterricht 12 und basiert auf der sogenannten Skytale. Eine Skytale ist nichts anderes als ein runder Stab eines bestimmten Durchmessers (siehe Abb.) Die Skytale von Sparta aus: Beutelspacher, Kryptlogie Der Sender wickelt einen Papierstreifen um den Stab und schreibt seine Mitteilung ganz einfach von links nach rechts. Nach dem Abwickeln des Papierstreifens bleibt von der Nachricht nur noch ein Buchstabensalat. Nur der Besitzer eines Stabes mit identischem Durchmesser, und das ist hoffentlich nur der autorisierte Empfänger, kann die Nachricht ganz leicht lesbar machen; er wickelt den Streifen einfach auf seinen Stab und liest4. Da der „Algorithmus“ vom Umfang des Stabes abhängig ist, ist er nicht nur für den Geschichtsunterricht von Interesse (Hauptschule, Klasse 6, Lehrplaneinheit 4: Die Griechen - Nachwirkungen bis heute; Realschule, Klasse 7, Lehrplaneinheit 3: Frühe Formen der Staatenbildung; Gymnasium, Klasse 7, Lehrplaneinheit 4: Die griechische Poliswelt), er kann auch im Mathematikunterricht analysiert werden (Hauptschule, Klasse 8, Lehrplaneinheit 2: Geometrie; Realschule, Klasse 9, Lehrplaneinheit 3: Kreis, Zylinder, Kugel; Gymnasium, Klasse 10, mathematisch-naturwissenschaftlicher Zug, Lehrplaneinheit 4: Kreisberechnungen, Darstellung und Berechnung von Körpern). 3.3 Die Cäsar-Chiffre - Der Urahn der modernen Kryptographie Sueton5 berichtet davon, dass auch der römische Feldherr C. Julius Cäsar6 kryptographische Techniken benutzt haben soll. Das Verfahren, bei dem Cäsar jeden Buchstaben einfach durch den drittnächsten, A durch D, B durch E, ..., X durch A, Y durch B, Z durch C, ersetzt haben soll und das nach ihm CäsarChiffrierung genannt wird, wurde in den sich immerhin bietenden 25 (!) Möglichkeiten der Verschlüsselung noch bis in die Neuzeit benutzt. So wurde 4 5 6 vgl. BEUTELSPACHER, Kryptologie, S. 11f. Gaius Suetonius Tranquillus, römischer Schriftsteller, ca. 70 - 140 n. Chr. Gaius Iulius Cäsar, römischer Feldherr, Staatsmann und Schriftsteller, * 13. 7. 100 v. Chr., + 15. 3. (an den Iden des März) 44 v. Chr. Rom (ermordet) Codierung und Kryptographie - Ein Streifzug durch Geschichte und Unterricht 13 1915 eine Cäsar-Chiffre in der russischen Armee eingeführt, nachdem sich andere Verfahren als für die Stäbe zu kompliziert erwiesen hatten7. Ein früher Chiffrierautomat, mit dem sich alle Cäsar-Chiffrierungen realisieren lassen stammt aus dem Jahre 1466 von Leon Battista Alberti8, der wohl erkannte, dass es sich bei der Cäsar-Chiffre um eine einfache Verschiebung handelte und diesen Vorgang in Mechanik umsetzte. Der Automat sah etwa wie der folgende aus: Chiffrierautomat nach Leon Battista Alberti aus: BEUTELSPACHER, Geheimsprachen, S.20 Auf zwei konzentrischen Scheiben wird jeweils das Alphabet in natürlicher Reihenfolge angebracht. Wenn man nun die innere Scheibe gegen die äußere verdreht, so zeigt die innere den zum Klartextbuchstaben auf der äußeren Scheibe korrespondieren Geheimtextbuchstaben an. Giambattista della Porta9 verfeinerte um 1560 das Verfahren (ohne es nachhaltig zu verbessern!), indem er das Geheimalphabet durch andere Zeichen austauschte. Er benutzte also zusätzlich zur Chiffre auch noch eine andere Codierung für die Geheimzeichen. Wir ersparen es uns ab hier, jede geschichtliche Epoche der entsprechenden, gleichnamigen Lehrplaneinheit zuzuordnen. In Kapitel 7 werden wir an zwei Beispielen sehen, wo und wie die Cäsar-Chiffrierung zum mathematischen Problem gemacht werden kann. 7 8 9 vgl. BAUER, Kryptologie. Methoden und Maxime, S. 39 Leon Battista Alberti, italienischer Künstler und Wissenschaftler, * 18. 2. 1404 Genua, + April 1472 Rom Giambattista della Porta, italienischer Naturforscher und Schriftsteller, * um 1535 Neapel, + 4. 2. 1615 Neapel; Naturforscher und Schriftsteller, Erfinder der Camera obscura Codierung und Kryptographie - Ein Streifzug durch Geschichte und Unterricht 14 Die Chiffrierscheibe von Porta, ursprünglich aus: KAHN, The Codebreakers, S. 14 3.4 Die erste Blütezeit der Kryptologie im 16. und 17. Jahrhundert Die Namen Alberti und Porta im letzten Abschnitt deuteten schon an, dass es mit dem ausklingenden 15. und dann im 16. und 17. Jahrhundert auf dem Gebiet der Kryptologie rund geht. Der bedeutendste deutsche Kryptologe dieser Zeit ist wohl der Abt Johannes Trithemius10, dessen beide mehrbändigen Werke Steganographia und Polygraphia erst nach seinem Tod im Jahr 1518 (Polygraphia) bzw. 1531 (Steganographia). Dies sei nur am Rande erwähnt: Trithemius war der William von Baskerville11 seiner Zeit und durch die durch ihn in den Klostern Sponheim und St. Jakob in Würzburg aufgebauten für ihre Zeit umfangreichen Bibliotheken und seine eigenen Bücher sicherlich eine interessante Persönlichkeit in der Kirchengeschichte im Religionsunterricht beider Konfessionen. In der Polygraphia, dem wohl ersten gedruckten Buch über die Kryptographie, befindet sich u.a. die von Kryptologen so genannte „Ave-Maria-Chiffre“, bei der jeder Buchstabe durch ein lateinisches Wort ersetzt wird. Trithemius beachtet bei diesen Ersetzungsregeln gleichzeitig die lateinische Grammatik, so dass sich der Chiffre-Text zumindest für den ungeübten Lateiner wie ein Gebet liest: 10 11 Johannes von Trittenheim (Trithemius), * 1462 Trittenheim, + 1516 Würzburg William von Baskerville ist Hauptperson in Umberto Ecos Roman „Der Name der Rose“ Codierung und Kryptographie - Ein Streifzug durch Geschichte und Unterricht a b c d Deus Creator Conditor Opifex a b c d clemens clementissimus pius pijissimus a b c d creans regens conseruans moderans a b c d Der Anfang der „Ave-Maria-Chiffre“, Quelle: STRASSER, Lingua Universalis12, S. 45 15 celos celestia supercelestia mundum Dabei wird der erste Buchstabe durch ein Wort der ersten Spalte, der zweite durch ein Wort der zweiten, ..., der fünfte schließlich wieder durch ein Wort der ersten Spalte usw. Aus abbas Trithemius wird so „Deus clementissimus regens celos [manifestet optantibus lucem serphicam / cum omnibus / dilectis / suis in / perpetuum / amen / Suauitas potentissimi motoris deuotis / semper vbique / ...]“ schreibt G. F. STRASSER in Lingua Universalis (S. 45) und fügt in einer Fußnote an: „Rechts neben manche Spalte sind Präpositionen, Pronomen oder auch Adverbien eingedruckt, die den syntaktischen Zusammenhang des Textes herstellen. Im Beispiel sind sie kursiv zwischen Schrägstriche gesetzt, um erkennbar zu werden.“ Wäre es nicht lohnend, sich neben Asterix, im Latein-Unterricht auch einmal der Ave-Maria-Chiffre zu widmen? In Steganographia befassen 31 Kapitel des I. Buches mit kryptographischen Methoden. Strasser schreibt in Lingua Universalis, S. 39 ff, jedes der 31 Kapitel stünde „unter dem Zeichen und Schutz eines Geisternamens, einem der Kabbala entnommenen Wort. Dieser Geist verfügt über (...) einen Geheimcode. (...) Für die Dechiffrierung aller 31 Codes hat Trithemius eine einzige Regel aufgestellt: Das jeweils erste und letzte ‘Wort’ ist nicht signifikant (...) und kann gestrichen werden; das zweite, vierte, sechste Wort (usw.) ist hintereinander zu lesen, wobei daraus aber wiederum nur der zweite, vierte, sechste Buchstabe signifikant ist.“. Im II. Buch der Steganographia verwendet Trithemius ein noch komplizierteres Chiffriersystem, auf das an dieser Stelle aber nicht mehr eingegangen werden soll13. 12 13 Den gesamten Code findet man in Trithemius: Polygraphia, Bl. A1r - A1v. Genauere Informationen über die Kryptographie des Trithemius finden sich in: Herzog Augustus Handbuch der Kryptographie: Apologie des Trithemius und wissenschaftliches Sammelwerk, in: Wolfenbütteler Beiträge 8 (1988). Codierung und Kryptographie - Ein Streifzug durch Geschichte und Unterricht 16 Titelseite (Holzschnitt) der Polygraphia, ursprünglich aus: KAHN, The Codebreakers, S. 134 Mit der tabula transpositionis (Substitutionstabelle), entwickelt Trithemius im Buch V der Polygraphia eine polyalphabetische Chiffre, deren Konzeption bereits auf, die sich von der 1586 von dem französischen Diplomaten Blaise de Vigenère veröffentlichten und nach ihm benannten Chiffre nur dadurch unterscheiden, dass statt eines Schlüsselwortes einfach die Zeilen der Substitutionstafel der Reihe nach verwendet werden. Auch der bereits erwähnte Giambattista della Porta stellt bereits 1558 in seinem Buch Magia Naturalis ein der Vigenère-Chiffre ähnliches Verschlüsselungsverfahren vor. Die Entwicklung der Substitutionstabelle wird von vielen Kryptologen als der Beginn der modernen Kryptologie betrachtet. Die Vigenère-Chiffre, eigentlich ja nur eine raffinierte Weiterentwicklung der Cäsar-Chiffre, bleibt über dreihundert Jahre sicher und kann erst von dem preußischen Infantriemajor Friedrich Wilhelm Kasisky geknackt werden14. Allerdings lässt sich die Vigenère-Chiffre zum perfekten Krypto-System ausbauen. Wählt man als Schlüsselwort eine zufällige Buchstabenfolge, welche die selbe Länge hat wie der zu verschlüsselnde Text, so hat man ein One-Time-Pad, das 1917 vom 14 siehe Kapitel 5 Codierung und Kryptographie - Ein Streifzug durch Geschichte und Unterricht 17 amerikanischen Ingenieur Gilbert S. Vernam vorgeschlagen wird. Mit diesem Chiffrier-System gelingt es den Alliierten im Zweiten Weltkrieg vor den Deutschen verbergen, dass sie die Chiffre der Enigma geknackt haben. 3.5 Die Enigma - Besser als ihr Ruf Die Enigma, die Verschlüsselungsmaschine der Deutschen im Zweiten Weltkrieg, sieht von außen aus wie eine altmodische Schreibmaschine. Ihr Innenleben wird von drei bis fünf Rotoren (die deutsche Wehrmacht benutzte die Variante mit drei Rotoren) zu je 26 Einheiten bestimmt, die miteinander gekoppelt sind und nach jeder Eingabe um eine Einheit weitergedreht werden. So ergibt sich eine sehr große Periode möglicher Einstellungen, bis die Enigma wieder ihren Anfangszustand erreicht. Zusätzlich ist durch eine feste Verdrahtung unter den Rotoren eine monoalphabetische Verschlüsselung eingebaut. Die Verdrahtung kann nicht geändert werden, wohl aber der Anfangszustand der Rotoren. Wird nun ein Buchstabe eingetippt, so schließt sich ein Stromkreis, der zunächst über Kontaktstellen von Rotor zu Rotor weitergeleitet wird. Der letzte Rotor wirkt dabei wie ein Umlenkspiegel, der den Kontakt wieder über einen anderen Weg bis zum ersten Rotor zurückleitet, wo schließlich ein Lämpchen den entsprechenden Geheimtextbuchstaben anzeigt. Die Anfangseinstellung der Rotoren wird durch Schlüsselwörter festgelegt und diese waren wohl auch einer der Knackpunkte im System. Beliebte Schlüsselwörter waren nämlich so phantasievolle wie „AAA“, „AAB“, „ABC“, ..., ein gefundenes Fressen für Kryptanalytiker15. Dieses Verfahren zur Festlegung von Schlüssel- und Passwörtern hat sich erstaunlicherweise bis heute gehalten (Internet-Zugang, PINs für Online-Banking usw.) und sollte den Nutzern, mit dem eben Erfahrenen, doch zu denken geben. „Beliebte Passwörter aus dem letzten Krieg“ wäre sicher ein lehrreiches Kapitel im Fach Wirtschaftslehre/Informatik (Hauptschule Klasse 8, Lehrplaneinheit 4: Einsatz des Computers zur Bearbeitung und Darstellung wirtschaftlicher Sachverhalte und Aufgaben, Datenschutz). 15 Das Drama um die Enigma ist ausführlich beschrieben an verschiedenen Stellen in BAUER, Entzifferte Geheimnisse Codierung und Kryptographie - Ein Streifzug durch Geschichte und Unterricht Die Enigma, aus: BAUER, Entzifferte Geheimnisse, Farbtafel G 18 Stromlaufplan einer Rotormaschine, wie der Enigma, aus: W OBST, Abenteuer Kryptologie, S. 40 3.6 Neue Aufgabenfelder - Kryptologie im Computerzeitalter Das Computerzeitalter stellt neue Anforderungen an die Kryptologie. Die ständig wachsende Arbeitsgeschwindigkeit der elektronischen Helfer ermöglichen es dem Kryptanalytiker, einen abgefangenen Geheimtext binnen kurzer Zeit mit vielen verschiedenen Schlüsseln zu dechiffrieren und bei begrenzter Schlüsselzahl in erträglicher Zeit den ursprünglichen Text zu finden und so den dazugehörigen Schlüssel zu erraten. Deshalb müssen Verschlüsselungsverfahren heute so beschaffen sein, dass die Anzahl der Schlüssel auch für moderne Rechner immer noch zu gewaltig ist. Mehr denn je gilt heute das Prinzip von Kerckhoffs: „Die Sicherheit eines Kryptosystems darf nicht von der Geheimhaltung des Algorithmus abhängen. Die Sicherheit gründet sich nur auf die Geheimhaltung des Schlüssels.“ (BEUTELSPACHER, Kryptologie, S. 23) Codierung und Kryptographie - Ein Streifzug durch Geschichte und Unterricht 19 In diesem Prinzip steckt bereits ein weiteres Aufgabenfeld der Kryptologen. Wenn es nur eine Frage der Zeit ist, bis ein Schlüsselwort erraten werden kann, so sollte dieses kurzfristig, am besten vor jedem Chiffriervorgang, geändert werden. Damit steigt aber die Wahrscheinlichkeit, dass bereits das Schlüsselwort abgefangen wird; die Kryptologie hat deshalb Verfahren, sogenannte Protokolle, entwickelt, die den Passworttausch vor unbefugtem Abhören sichern. Passwörter spielen aber nicht nur beim Verschlüsseln von Botschaften, sondern auch bei dem Nachweis der Authentizität einer Person (Authentikation) eine Rolle. Dieser Nachweis wird nicht nur im Hochsicherheitstrakt sensibler Forschungsabteilungen verlangt, sondern begegnet uns täglich, z.B. am Geldautomat, wenn wir die geforderte Geheimzahl eingeben, um uns zu identifizieren. Weitere Aufgaben der Kryptologie sind die Sicherung der Integrität von Mitteilungen, d.h. deren Sicherung vor Fälschung und die Sicherung der Anonymität. Anwendungsfelder sind z.B. elektronische Wahlen und elektronisches Geld. Beim Verschlüsseln von Nachrichten spalten sich die Verfahren inzwischen in die symmetrischen, also solche in denen Sender und Empfänger das Schlüsselwort kennen (müssen) und die asymmetrischen, bei denen der Schlüssel aus zwei Schlüsselwörtern besteht, einem (wirklich) geheimen zum Entschlüsseln und einem allgemein zugänglichen zum Verschlüsseln von Nachrichten (Public-Key-Cryptography). Bei den symmetrischen hat sich das in den sechziger Jahren von Horst Feistel entwickelte Lucifer-Verfahren, das mit einigen Veränderungen 1977 vom National Bureau of Standards in den USA unter dem Namen DES (Data Encryption Standard) genormt wurde, durchgesetzt. Es hat bis heute, allen geäußerten Bedenken zum Trotz, allen Angriffen (bis auf einige Spezialfälle) standgehalten. Das Problem, das sich aus dem Prinzip Kerckhoffs’ ergibt, die Geheimhaltung des Schlüsselwortes, blieb aber auch mit DES ungelöst. Absolute Geheimhaltung ist nur dann möglich, wenn ich das Schlüsselwort niemandem mitteile. Doch wie sollte damit eine sinnvolle und geheime Kommunikation möglich sein? 1976 veröffentlichten nun Whitfield Diffie und Martin Hellman eine Codierung und Kryptographie - Ein Streifzug durch Geschichte und Unterricht 20 Arbeit, in der sie das Problem der Verschlüsselung ohne Schlüsselaustausch mathematisch genau spezifizierten. Sie kamen zu dem Schluss, dass die Möglichkeit der Lösung des Problems von der Existenz einer „trapdoor Einwegfunktion“16 abhängt. Dies rief ein Forscherteam, bestehend aus Ronald Rivest, Adi Shamir und Len Adleman auf den Plan, die zunächst beweisen wollten, dass es solche Einwegfunktionen nicht geben kann. Der Versuch schlug fehl! Rivest, Shamir und Adleman stießen bei ihren Forschungen auf trapdoor Einwegfunktionen und erfanden - entgegen ihrer ursprünglichen Zielsetzung - ein KryptographieSystem ohne Schlüsseltausch (also asymmetrisch), den RSA-Algorithmus, der zudem auf einem „uralten“ Satz des genialen schweizerischen Mathematikers Leonhard Euler17 basiert. Seither wurden zwar weitere asymmetrische Verfahren entwickelt, diese erwiesen sich aber inzwischen als unsicher oder sind wesentlich komplizierter als RSA18. DES und RSA haben, wie alle modernen Verschlüsselungsverfahren, eine Gemeinsamkeit. Sie verschlüsseln nicht mehr buchstaben-, sondern blockweise; die Chiffre ergibt im allgemeinen keinen Buchstabensalat sondern Zahlenkolonnen. Die Verschlüsselung erfolgt ausschließlich auf Zahlenebene, was das Vorliegen des Klartextes in einem Zahlencode (ASCII) voraussetzt. Damit schließt sich der Kreis und wir wären wieder am Ausgangspunkt dieses Kapitels. Der letzte Abschnitt demonstrierte wohl die überwältigende Bedeutung der Kryptologie im Alltag, die eine genauere Betrachtung der Materie im Unterricht rechtfertigt, wenn nicht gar fordert. 16 17 18 siehe Kapitel 4: Mathematische Grundlagen Leonhard Euler, * 15. 4. 1707 Basel, + 18. 9. 1783 St. Petersburg; vgl. BEUTELSPACHER, Geheimsprachen, S. 52f. Mathematische Grundlagen 19 21 4 Mathematische Grundlagen 19 Die im Weiteren beschriebenen Verschlüsselungsverfahren basieren auf Addition und Multiplikation über Restklassen („Division mit Rest“). Deshalb ist es lohnend, vorweg die Begriffe zu definieren und die Eigenschaften von Restklassen zu zeigen, die in den späteren Kapiteln immer wieder gebraucht werden. 4.1 Der größte gemeinsame Teiler Definition: Teiler Die ganze Zahl t heißt Teiler von der ganzen Zahl a, wenn a von t ohne Rest . Wir schreiben geteilt wird, d.h. wenn es eine ganze Zahl m gibt mit dann . Definition: größter gemeinsamer Teiler Sei T(a) die Menge aller Teiler der natürlichen Zahl a und T(b) die Menge aller Teiler der natürlichen Zahl b. Dann heißt d = max{T(a)∩T(b)} der größte gemeinsame Teiler von a und b, kurz: ggT(a,b) := max{T(a)∩T(b)}. Satz von der Division mit Rest: Sind a, b ∈ N, so gibt es genau zwei Zahlen p, r ∈ N0 mit und 0 ≤ r < b. Anmerkung: In vielen Programmiersystemen sind mathematische Funktionen zur Berechnung von p und r implementiert. Im allgemeinen erhält man p mit p = DIV(a,b) und r mit r = MOD(a,b) Beweis der Existenz mit vollständiger Induktion über a: Für a = 1 und b = 1 ist q = 1 und r = 0, für a = 1 und b > 1 ist q = 0 und r = 1. Unter der Annahme, dass der Satz für a = k gelte, folgt für . Beweis der Eindeutigkeit: 19 alle Sätze und Definitionen dieses Kapitels (soweit nicht anders angegeben): vgl. PADBERG, Elementare Zahlentheorie, Kapitel III u. IV Mathematische Grundlagen 19 Sei und 22 mit 0 ≤ r1, r2 < b. Dann ist . Da r1 - r2 < b folgt unmittelbar, dass q1 = q2 und r1 = r2. Hilfssätze: (1) Aus t|a und t|b folgt dass t|ma+nb für alle ganzzahligen a,b,m,n. Beweis: Sei t Teiler von a. Dann gibt es ein ganzzahliges p mit , ebenso ist . Analog gelangen wir zu . Es ist und daraus folgt, dass t auch teilt. (2) Für Beweis: Wir ist ggT(a, b) = ggT(b,r) zeigen, dass T(a)∩T(b) = T(b)∩T(r) für t ∈ T(a)∩T(b). Dann gilt t|b und t|a und damit mit Hilfssatz (1) : Sei und damit t ∈ T(r) ∩T(b) . Sei nun umgekehrt t ∈ T(r) ∩T(b). Dann gibt es ganzzahlige m und n mit und . Subtraktion ergibt , also und damit a ∈ T(a). Somit folgt t ∈ T(a)∩T(b) und damit insgesamt T(a)∩T(b) = T(b)∩T(r). Zum Schluss noch die triviale Eigenschaft: (3) ggT(a,0) = a. 4.1.1 Der Euklidische Algorithmus Der Euklidische Algorithmus bestimmt den größten gemeinsamen Teiler zweier Zahlen und nutzt dabei die eben gewonnene Eigenschaften - ggT(a,b) = ggT(b,r) für und ggT(a,0) = a: Mathematische Grundlagen 19 23 Euklidischer Algorithmus: Seien a und b zwei natürliche Zahlen. 1. Setze r0 := a und r1 := b 2. Berechne q1, r2 ∈ N0, 0 ≤ r2 < b so, dass 3. Solange ri ≠ 0: Berechne qi, ri+1 ∈ N0, 0 ≤ ri+1 < ri so, dass 4. ggT(a,b) = ri (also der letzte von Null verschiedene Rest) Die Korrektheit des Algorithmus wurde bereits in den obigen Hilfssätzen bewiesen. 4.1.1.1 Anwendung des Algorithmus Der Euklidische Algorithmus eignet sich sehr gut zum automatisierenden Üben der (schriftlichen) Division mit Rest. Hier ein Beispiel: Aufgabe: Wie lautet der größte gemeinsame Teiler von a = 2257 und b = 1739? Üblicherweise bestimmt (errät) man hier die Primfaktoren und / oder stellt die Teilermengen auf und bestimmt deren gemeinsames Maximum, man sucht also die natürlichen Zahlen t, die a und b ohne Rest teilen. Der Leser versuche ruhig einmal an dieser Stelle den ggT nach diesem Verfahren zu finden. Der Euklidische Algorithmus fordert diese Kreativität nicht: Mathematische Grundlagen 19 24 4.1.2 Lineare diophanische Gleichungen mit zwei Variablen / Vielfachsummen Definition: Jede Gleichung ax + by = c mit a,b ∈ N und diophanische Gleichung mit zwei Variablen. c,x,y ∈ Z heißt lineare Satz/Definition: Vielfachsummen Für alle natürlichen Zahlen a, b gibt es nichtnegative ganze Zahlen x, y mit . Diese Darstellung heißt Vielfachsummendarstellung von a und b. Beweis-Skizze: Durch eine Umstellung der Gleichungen im Euklidischen Algorithmus gelangen wir zu . Durch sukzessives Einsetzen der errechneten ri von rn := ggT(a,b) rücklaufend bis r0 := a gelangt man schließlich zu der gesuchten Vielfachsumme. 4.1.2.1 Ein verständliches Beispiel Unter der Voraussetzung, dass der euklidische Algorithmus bereits durchgenommen wurde, könnte eine Aufgabe in einer Mathematikstunde (frühestens ab dem siebten Schuljahr) z.B. so lauten: a) Bestimme den größten gemeinsamen Teiler d von 514 und 130. b) Suche zwei ganze Zahlen a und b, so dass Lösung von a) (mit dem euklidischen Algorithmus): Antwort: Es ist d = 2 Mathematische Grundlagen 19 25 Lösung von b) Wir schreiben die obigen Gleichungen anders auf: In der letzten Zeile steht zumindest bereits eine Gleichung der Form „d gleich irgendwas“. Wir ersetzen die 4 durch den Term gleichen Wertes in der Zeile darüber: Für die 6 steht eine Zeile darüber ein Term, den wir jetzt verwenden: Mit der ersten Zeile gelangen wir schließlich zu: Eine Probe ergibt, dass die Rechnung stimmt. Antwort: Die gesuchten Zahlen sind a = -22 und b = 87. Zum Abschluss dieses Abschnitts noch eine Verallgemeinerung des Satzes über Vielfachsummen: Satz: Die lineare diophanische Gleichung ax + by = c ist lösbar, wenn Beweis: Aus Lösbarbkeit der Gleichung. . mit ganzzahligem u folgt unmittelbar die Mathematische Grundlagen 19 26 4.2 Kongruenzen und Restklassen Definition: „Seien a, b ∈ Z, m ∈ N. Man sagt: a ist kongruent b modulo m, geschrieben a ≡ b (mod m), genau dann, wenn m|a-b.(...) Die Zahl m ∈ N bezeichnet man (...) als Modul.“ (PADBERG, Elementare Zahlentheorie, S. 57) Satz: Für a, b ∈ Z, m ∈ N gilt: a ≡ b (mod m) genau dann, wenn a und b bei Division durch m den selben Rest 0 ≤ r < m, r ∈ N lassen. Beweis: Sei a ≡ b (mod m). Für und mit 0 ≤ r1, r2 < . Da b – a von m m (Satz über Division mit Rest) ist ohne Rest geteilt wird, und r1, r2 < m, muss r1 = r2 sein. Gilt umgekehrt und , so ist und damit a ≡ b (mod m). Satz: Die Kongruenz modulo m ist eine Äquivalenzrelation. Beweis: Reflexivität und Symmetrie sind trivial. Wenn a ≡ b (mod m) und b ≡ c (mod m) folgt mit obigem Hilfssatz (1) a ≡ c (mod m). Definition: Restklasse Jede Menge x∈ sind Repräsentanten von Restklassen modulo m. heißt Restklasse modulo m, alle . Mit Rm bezeichnen wir die Menge aller Mathematische Grundlagen 19 27 Satz: Bei festem m ist Rm eine Klasseneinteilung (Partition) von Z. Beweis: Da wegen a ∈ ∩ ≠∅ ist, muss nur noch gezeigt werden, dass , =∅ und . (Achtung: Das Summenzeichen meint hier „Vereinigung über”. Das Vereinigungszeichen war in diesem Kontext in StarOffice 6 nicht darstellbar.) ∩ Sei ≠∅. Dann existiert ein t mit t ≡ a (mod m) und t ≡ b (mod m) und wegen Symmetrie und Transitivität der Kongruenzrelation a ≡ b (mod m), also = . Die Vereinigung aller Restklassen ergibt Z, denn jedes z ∈ Z liegt in (mindestens) einer Restklasse, nämlich . Satz: , d.h. Rm besitzt genau m Restklassen. Es ist ist trivial. Umgekehrt gibt es für jedes a ∈ Z ein Beweis: q ∈ Z und ein r ∈ N, 0 ≤ r ≤ m-1 mit a∈ und deshalb ist auch , d.h. a ≡ r (mod m), also . Der Beweis, dass paarweise diskjunkt sind verläuft wie oben (Satz: Rm ist eine Klasseneinteilung). Definition: Restklassenaddition und Restklassenmultiplikation Seien , zwei Restklassen aus Rm. Die Verknüpfung ⊕ := bzw. ⊗ := heißt Restklassenaddition bzw. Restklassenmultiplikation. Häufig schreibt man anstelle von ⊕ bzw. ⊗ auch a + b mod m bzw. . Eigenschaften: Kommunativität, Assoziativität und Gültigkeit des Distributivgesetzes lassen sich direkt aus den entsprechenden Operationen in Z ableiten. Neutralelement ist , Einselement ist . Zu ∈ Rm ist die additiv Inverse. Genau dann gibt es für jedes ∈ Rm ein multiplikativ Inverses modulo m, wenn m prim ist. Sind a und m teilerfremd (zueinander prim), so gibt es ein multiplikativ Inverses modulo m. Mathematische Grundlagen 19 28 Wir beweisen die beiden letzten Behauptungen unter Verwendung der Vielfachsummendarstellung: Ist m prim, so ist für alle 0 < a < m ggT(a,m) = 1 = für geeignete ganzzahlige x und y. Es ist und daher . Dagegen besitzt z.B. in R4 kein multiplikativ Inverses. Der Beweis für die letzte Behauptung verläuft analog (ggT(a,m) = 1 !). Satz: Für natürliche Zahlen z, a, b, m gilt. Ist za ≡ zb mod m und ggT(z,m) = d, so ist . Beweis: Nach Voraussetzung ist m Teiler von z(b – a). Es gibt also ein p mit z(b – a) = pm. Bei Division durch d erhält man teilerfremd sein müssen, muss . Da und Teiler von (b – a) sein und damit ist . Folgerung: Sind z ≠ 0 und m teilerfremd, dürfen wir durch z teilen. 4.3 Exkurs / Anwendung: Potenzieren modulo m Zu lösen sei folgende Aufgabe: Welchen Rest lässt a = 517 bei Division durch 47? Gesucht ist also ein r ∈ N, r < 47 mit r ≡ 517 (mod 47). Mathematische Grundlagen 19 29 4.3.1 Schrittweises Vorgehen Wir wenden schrittweise die Restklassenmultiplikation an. Bei allgemeinen natürlichen a und d ist ⊗ . Wir erhalten folgendes Schema: Für unsere Aufgabe rechnet man also in 17 Schritten: 1) 5 mod 47 = 5 2) 3) 4) 16) 17) 4.3.2 Schnelles Rechnen durch Verkettung Zerlegt man d in eine Summe aus Zweierpotenzen - , bi ∈ {0,1}, 20 i ∈ {0,1,...,N}, gelangt man zu folgender Darstellung: Diese, auf den ersten Blick unübersichtliche, Variablen-Wüste gibt uns bei genauem Hinsehen ein sehr schnelles und handliches Verfahren zur Berechnung des oben gesuchten Restes an die Hand. Sie sagt nämlich aus, dass wir zum einen den Rest einer Zahl mit Potenz mit N Binärstellen (N Bit) in N Schritten ausrechnen können. Darüber hinaus können wir den im i-ten Schritt berechneten Rest qi im nächsten Schritt recyclen, denn es ist qi+1 = qi2 mod m. 20 d = bNbN-1...b1b0 im Dualzahlsystem Mathematische Grundlagen 19 30 Die bi schließlich geben an, ob qi zum zu berechnenden Rest r modulo m hinzumultipliziert wird oder nicht. Wir erhalten folgenden auf Restklassen erweiterten - binären - Square-andMultiply-Algorithmus: für i > 0 r = rN. Die obige Aufgabe lösen wir nun wie folgt: 17 = 16 + 1 = = 100012 (Für größere Zahlen lohnt sich hier das einmalige Anlegen einer Tabelle der Zweierpotenzen, etwa bis N=10) q0 = 5 mod 47 = 5 r 0 = q0 = 5 r1 = r0 = 5 r2 = r1 = 5 r3 = r2 = 5 4.4 Abbildungen - Funktionen Wir werden der Vollständigkeit halber folgende Definitionen voranstellen: Definitionen: Seien X, Y zwei nicht Mengen. Wir bezeichnen eine Zuordnung, die jedem Element x ∈ X genau ein Element y ∈ Y zuordnet, als Abbildung oder Funktion f von X in Y (f: X → Y, y = f(x)). Weist f unterschiedlichen x ∈ X auch unterschiedliche y ∈ Y zu, so ist f injektiv. Gibt es für jedes y ∈ Y ein x ∈ X, so ist f surjektiv. Ist f injektiv und surjektiv, so sagt man f ist bijektiv.21 Satz: 21 vgl. W INKLER, Mengen,Relationen, Abbildungen S. 124ff. Mathematische Grundlagen 19 Genau dann ist 31 bijektiv, wenn ggT(k,n) = 1. Beweis: Sei f(m) bijektiv und ggT(k,n) > 1. Dann lässt sich ein Widerspruch ableiten: z.B. ist . Sei nun umgekehrt ggT(k,n) = 1: Injektivität: Für (k,m1), (k,m2), m1 ≠ m2 sei Aus c1 = c2 folgt: und . und damit m1 = m2 im Widerspruch zur Annahme. Surjektivität: Um von f(m) = c wieder auf m zu kommen braucht man die Inverse von k modulo n. Diese exisiert aber immer, da ggT(k,n) = 1 ist. Trivialerweise ist , d.h. jedes c ∈ Rn lässt sich als Produkt darstellen. 4.4.1 Einwegfunktionen ((trapdoor) one way functions) 4.4.1.1 Ein einführendes Beispiel Einwegfunktionen gehören nicht gerade zur mathematischen Grundbildung, deshalb wollen wir (ausnahmsweise) mit alltäglichen Beispiel beginnen: Will man die Pädagogische Hochschule in Karlsruhe anrufen, so schlägt man einfach das Telefonbuch auf und sucht unter „h“ wie Hochschulen oder „p“ wie pädagogische Hochschule. (Wenn man nach der Nummer einer Familie Schmidt sucht, kann es hilfreich sein, auch Straße und Hausnummer zu wissen.) Eine Telefonnummer eines speziellen Teilnehmers im Telefonbuch zu finden, ist also - gesunde Augen oder eine griffbereite Brille vorausgesetzt - keine große Herausforderung. Findet umgekehrt ein Familienmitglied unter dem Telefon einen Zettel mit der Notiz: „Fax 06213 - 780614“ wird man die Frage, ob man die Nummer noch braucht ohne das Wissen zu welchem Teilnehmer diese gehört höchst wahrscheinlich nie beantworten können22. Wenn das Lösen eines Problems in der einen Richtung sehr einfach, in der umgekehrten aber unendlich schwer ist, hat dieses eine Einwegeigenschaft; lässt sich das Problem mittels einer mathematischen Funktion lösen, so spricht man von einer Einwegfunktion. Wir unterscheiden Einwegfunktionen mit und ohne Falltür (trapdoor): 22 Die Nummer existiert wirklich. Der Zweifler möge selbst versuchen, den Teilnehmer mit Hilfe eines normalen Telefonbuchs aufzuspüren. Mathematische Grundlagen 19 32 Definition: Sei f: X → Y eine injektive Funktion. Hat f die Eigenschaft, dass sich für jedes x ∈ X der Funktionswert f(x) sehr leicht berechnen, sich aber umgekehrt aus y = f(x) ∈ Y nur extrem schwer (mit extrem hohem Aufwand) das Urbild x = f-1(y) ∈ X bestimmen lässt, so heißt f echte Einwegfunktion (one way function). Lässt sich das Urbild mittels einer zusätzlichen (geheimen) Information bestimmen, so heißt f Einwegfunktion mit Falltüre (trapdoor one way function).23 Einwegfunktionen sind die Grundlage eines jeden erfolgreichen Verschlüsselungsverfahrens. Mathematisch ist die Existenz von Einwegfunktionen noch nicht einmal bewiesen, insbesondere durch die rasante Entwicklung bei Rechnergeschwindigkeiten und den Verfall der Speicherpreise muss die Aufwandsgrenze ständig neu gezogen werden. Auch den bisher aussichtsreichsten Kandidaten, der Exponentialfunktion in endlichen Zahlenkörpern dem Produkt von (sehr großen!) Primzahlen, rückt die moderne Elektronik zunehmend zu Leibe. Um noch einmal das obige Beispiel aufzugreifen: Ein inverses Telefonbuch wäre eine Falltür. Telefonbücher auf CD-ROM mit umfangreichen Suchfunktionen haben diese jedoch längst überflüssig gemacht und gezeigt, dass dieses Problem inzwischen keine Einwegeigenschaft mehr besitzt. 4.4.1.2 Diskrete Exponentialfunktion modulo m Diskrete Logarithmen modulo m Wir betrachten uns als Beispiel folgendes Problem in R251: Für x = 3 ist mod 251 = 64; das ist schnell berechnet. Welches Problem darin steckt, aus Schaubild, das 23 das x zu berechnen, zeigt das folgende für alle x ∈ {1,2,...,100} abbildet: vgl. BAUER, Entzifferte Geheimnisse, S. 159 Mathematische Grundlagen 19 33 Der diskrete Logarithmus springt in Rp scheinbar chaotisch hin und her. Zu beachten ist auch, dass nicht alle diskreten Logarithmen Lösungen haben, z.B. besitzt keine Lösung. Hat das Modul p eine Länge von 512 Bit (2512 < p ≤ 2511) oder gar 1024 Bit (21024 < p ≤ 21023), scheidet die Brute-ForceMethode zur Ermittlung von x endgültig aus; in vielen Fällen würde sie auch auf den schnellsten heute verfügbaren Computern länger als die restliche Lebensspanne unserer Sonne (230 Jahre) dauern. 4.4.1.3 Multiplikation von Primzahlen - Primfaktorzerlegung Über die Multiplikation von Zahlen muss an dieser Stelle nichts mehr gesagt werden. Wie schwierig es sich gestaltet, Zahlen ab einer bestimmten Größe in Primfaktoren zu zerlegen, kennt jeder noch von der Bestimmung des größten gemeinsamen Teilers in Schulmathematik, die auf die Verwendung des sehr einfachen und effektiven Euklidischen Algorithmus meistens verzichtet. F. L. BAUER ist in seinem Buch „Entzifferte Geheimnisse“ dennoch skeptisch, was die Einweg-Eigenschaft angeht. Er verweist auf den Algorithmus von R. Schroeppel, der zur Primfaktorzerlegung einer Zahl n „asymptotitsch von der Größenordnung Operationen“ (S. 157) benötigen soll. Unter Berücksichtigung der Entwicklung bei der Rechenzeit moderner Computer, kommt er zu dem Schluss, dass Zahlen mit 512 Dualstellen (beim RSAVerfahren benutzt man derzeit zur Schlüsselerzeugung zwei 512-Bit-Primzahlen) ab 2004 keine Sicherheit mehr bieten. Hier zeigt sich aber bereits ein weiteres Problem: Wie findet man (viele !) Primzahlen p mit 2512 < p < 2 513. Mathematische Grundlagen 19 34 4.4.1.4 Exkurs: Das Auffinden großer Primzahlen Am einfachsten findet man die Primzahlen bis zur Zahl n mit dem Sieb des Eratosthenes: (1) Schreibe alle Zahlen 1 bis n auf. (2) Streiche die 1 durch. (3) Schreibe die Zahl 2 auf ein anderes Blatt und streiche alle Vielfachen von 2. (4) Solange finde die kleinste nicht durchgestrichene Zahl a, schreibe a hinter die Zahlenliste auf dem anderen Blatt und streiche alle Vielfachen von a durch. Die so erhaltene Liste enthält alle Primzahlen zwischen 1 und n. Das Verfahren lässt sich auch leicht auf jedem Rechner implementieren. Bei Suche nach einer Primzahl mit einer Länge von 512 Bit mittels des Siebs sind allerdings sämtliche verfügbaren Speicherressourcen überfordert. Erzeugen von Pseudoprimzahlen / Primzahltests In der Praxis begnügt man sich daher mit sogenannten Pseudoprimzahlen; das sind beliebig gewählte Zahlen, die lediglich mit einer bestimmten Wahrscheinlichkeit Primzahlen sind. Für eine Pseudoprimzahl mit einer Länge von 512 Bit untersucht man also nicht den gesamten Zahlenraum von 1 bis 2512-1, sondern man erzeugt einen Zufallszahl der entsprechenden Länge und führt sogenannte Primzahltests durch. Eine Zahl, die einen solchen Test besteht ist mit berechenbar großer Wahrscheinlichkeit tatsächlich eine Primzahl. Als Primzahltests stehen z.B. die Algorithmen von Solovay-Strassen, Lehmann und Rabin-Miller zur Verfügung. Wir wollen uns hier den Rabin-Miller-Algorithmus genauer ansehen, da hier die Wahrscheinlichkeit, dass eine zusammengesetzte Zahl den Test besteht schneller abnimmt, als bei den beiden anderen. „Wähle eine Zufallszahl p, die getestet wird. Berechne die Zahl b, die angibt, wie oft 2 die Zahl p – 1 teilt, d.h. 2b ist die größte Zweierpotenz, die p – 1 teilt. Bestimme m so, dass p = 1 + 2bm. (1) Wähle eine Zufallszahl a, die kleiner ist als p. Mathematische Grundlagen 19 35 (2) Setze j = 0 und z = am mod p. (3) Falls z = 1 oder z = p – 1, besteht p den Test und ist möglicherweise prim. (4) Falls j > 0 und z = 1, so ist p nicht prim. (5) Setze j = j + 1. Falls j < b und z ≠ p –1, setze z = z2 mod p und gehe zurück zu Schritt (4). Falls z = p – 1, besteht p den Test und ist möglicherweise prim. (6) Falls j = b und z ≠ p – 1, so ist p nicht prim.“ (SCHNEIER, Angewandte Kryptologie, S. 304) Der Test baut auf dem kleinen Satz von Fermat auf und ist sehr sicher. Die meisten zusammengesetzten Zahlen würden bei 99,9 % aller möglichen Werte für a durchfallen. Im Algorithmus brauchen wir die zu testende Zahl p in der Form p – 1 = 2bm. Die Parameter b und m lassen sich aber sehr leicht finden, denn es gilt der folgende, triviale Satz: Satz: Sei d eine n Bit lange binäre Zahl der Form , ai ∈ {0,1} ! . Dann lässt sich d darstellen als d = 2bm. Beweis durch Induktion über b: Sei d eine beliebige binäre Zahl. b = 0, d.h. d = 1an-1...a21 = m und 2bm = 20d = d b = 1: d.h. d = 1an-1...a310, m = d / 2 und daher Sei die Behauptung war für ein beliebiges b = k. b = k + 1: . ! Um von d auf m zu kommen, muss d für jede zu streichende Null durch 2 geteilt werden. Es ist also und damit . In der Praxis wählt man im Allgemeinen eine Kombination von Brute-ForceMethode und Rabin-Miller-Algorithmus: Mathematische Grundlagen 19 36 „(1) Erzeuge eine zufällige Zahl p der Länge n Bit. (2) Setze das höchstwertige und das niederwertigste Bit auf 1. Das höchstwertige Bit stellt sicher, dass die Zahl die gewünschte Länge hat, das niederwertigste garantiert für eine ungerade Zahl. (3) Stelle sicher, dass p durch keine kleine Primzahl teilbar ist: 3, 5, 7, 11 usw. Viele Implementierungen testen die Teilbarkeit von p durch alle Primzahlen bis 256. Die effizienteste Variante bis 2000. (...) (4) Führe den Test von Rabin-Miller für ein zufällig gewähltes a durch. Besteht p, so erzeuge ein weiteres zufälliges a und führe den Test erneut durch. Wähle einen kleineren Wert für a, um die Berechnung zu beschleunigen, und führe fünf Tests durch. (...) Fällt p bei einem dieser Tests durch, so erzeuge ein neues p und versuche es noch einmal.“ (SCHNEIER, Angewandte Kryptologie, S. 304f.) Genaueres zum Rabin-Miller-Algorithmus findet man z.B.: M.O. Rabin, „Probalistic Algorithms for Testing Pimality“ im Journal of Number Theory, Jahrgang 12, Nr. 1, Februar 1980, S.128-138. Symmetrische Verschlüsselungsverfahren 37 5 Symmetrische Verschlüsselungsverfahren Die klassischen Verfahren der Verschlüsselung waren und sind symmetrisch, d.h. Sender und Empfänger benutzen denselben Schlüssel. Es handelt sich im Allgemeinen um Verschiebe- und Tauschverfahren, wobei die alten Verfahren zeichenweise, moderne Algorithmen dagegen bitweise (blockweise) verschlüsseln. 5.1 Mathematischer Hintergrund 5.1.1 Bitweise Verschlüsselung: Bitweise Addition - Die logische Verknüpfung XOR Wir interpretieren jedes Zeichen und damit jeden Text (jede Datei) als eine Folge von Bits. Es sind nur zwei Operationen auf Bits möglich: entweder Verschieben um 1 Bit oder nicht verschieben. Dies geschieht mit der bitweisen Addition oder XOR-Verknüpfung. Definition: XOR Die logische Verknüpfung XOR (exclusive or) hat das Verknüpfungszeichen ⊕ und ist für die Wahrheitswerte 0 (False) und 1 (True) wie folgt definiert: x y x⊕y 0 0 0 0 1 1 1 0 1 1 1 0 In der Mathematik bezeichnet man die logische XOR-Verknüpfung oft als bitweise Addition oder Addition modulo 2. Aus der Definition lässt sich unmittelbar die für die bitweise Verschlüsselung entscheidende Eigenschaft der bitweisen Addition ableiten: Für alle x ∈ {0,1} gilt: x ⊕ x = 0. Symmetrische Verschlüsselungsverfahren 38 5.1.2 Rechenoperationen bei zeichenweiser Verschlüsselung In Verschiebe- und Tauschverfahren auf Zeichenebene kommen ausschließlich Restklassenaddition und -multiplikation zum Einsatz. Deshalb sei an dieser Stelle auf den entsprechenden Abschnitt in Kapitel 4 verwiesen. Auch bei der zeichenweisen Verschlüsselung werden die Buchstaben durch Zahlenwerte repräsentiert. Zweckmäßigerweise werden wir uns im Folgenden bei konkreten Beispielen auf die Buchstaben A, B, ..., Z beschränken und diese mit den Zahlen aus R26 = {0, 1, ..., 25} darstellen. Üblicherweise setzt man A mit 1, B mit 2, usw. und Z mit 0 gleich. Dies ist im Unterricht methodisch nicht besonders sinnvoll, da zum einen im „üblichen Zählen“ die 0 vor der 1 kommt, also die erste natürliche Zahl (nach neuer Definition) ist, ebenso ist A der erste Buchstabe im Alphabet. Ein weiteres Problem ergibt sich bei der Programmierung symmetrischer Verschlüsselungsverfahren. Diese würden bei üblicher Vereinbarung eine Sonderbehandlung des Buchstaben Z erfordern. Wir weisen daher dem Buchstaben A die 0, B die 1 usw. und schließlich Z die 25 zu. 5.2 Die Cäsar-Verschlüsselung 5.2.1 Der klassische und der allgemeine Cäsar Der römische Feldherr und Staatsmann C. Julius Cäsar (100 bis 44 v. Chr.) verschlüsselte, wie wir schon wissen, wichtige Nachrichten indem er jeden Buchstaben durch den drittnächsten ersetzte. Aus der Einleitung wissen wir noch, dass es sich bei der Cäsar-Chiffre um eine Verschiebung oder anders ausgedrückt um eine Addition handelt. Somit erhält man, bezogen auf R26, aus dem Klartextbuchstaben m den Geheimtextbuchstaben c durch Addition von 3 modulo 26, c = m + 3 mod 2624. Allgemein bezeichnet man jede Verschlüsselung der Form c = m + s mod n als (klassische) Cäsar-Verschlüsselung. Man sieht leicht ein, dass es bei einem Alphabet mit n Zeichen n -1 sinnvolle (klassische) „Cäsaren“ gibt, der römische Feldherr hatte also die Auswahl zwischen 25 verschiedenen Chiffren. Alle 24 Einen weiteren Zugang zu dieser etwas eigentümlichen Interpretation des Alphabets findet der Leser in Kapitel 6. Symmetrische Verschlüsselungsverfahren 39 Verschlüsselungsverfahren, bei denen jeder Klartextbuchstabe immer mit dem selben Geheimtextbuchstaben verschlüsselt wird, nennt man monoalphabetisch. " Häufig werden auch Chiffrierungen der Form mod n als (allgemeiner) Cäsar bezeichnet. Dabei ist zu beachten, dass durch diese Funktion jeder Klartextbuchstabe genau einem Geheimtextbuchstaben zugeordnet sein muss. Dies ist nicht selbstverständlich. In unserem Beispielalphabet R26, würde bei k = 2 z.B. sowohl der Buchstabe a, als auch der Buchstabe n durch den gleichen Geheimtextbuchstaben ersetzt. Für die Verschlüsselung mittels Multiplikation (und anschließender Addition) gilt der folgende Satz: Satz: Allgemeiner Cäsar " mod n genau dann ein Bei einem Alphabet mit n Buchstaben, ist allgemeiner Cäsar, der den Klartextbuchstaben m durch den Geheimtextbuchstaben c ersetzt, wenn ggT(k,n) = 1 ist. Das Paar (k,s) ist der Schlüssel des allgemeinen Cäsars. Einen klassischen Cäsar erhält man mit k = 1, eine Verschlüsselung nur mit Multiplikation erhält man mit s = 0. Als Beweis sei auf den korrespondierenden Satz über die Bijektivität der Funktion mod n in Kapitel 4 verwiesen. Der Schlüssel für die Verschlüsselung und die Entschlüsselung ist zwar derselbe, allerdings müssen sich daher die Funktionen, welche die beiden Aufgaben erfüllen unterscheiden. Für die Umkehrfunktion zur Entschlüsselung gilt: Satz: Sei mod n, s < n, ein allgemeiner Cäsar. Dann entschlüsselt " die Funktion Dabei ist " mod n den Geheimtext. das multiplikativ Inverse von k modulo n und nicht ! (Wer sich daran stört, dass evtl. c – s < 0 werden könnte, rechne m = k–1(c + (n – s) mod n.) Beweis: Die Existenz von k–1 ist wegen ggT(k,n) = 1 garantiert. Somit ist trivialerweise " " " .) Symmetrische Verschlüsselungsverfahren Beispiel: Dem Schlüssel Klartext Zeichencode m Zeichencode c Geheimtext (3,11) sei das Alphabet , . H A L L O 7 0 11 11 14 6 11 18 18 1 G L S S B 40 R26 zugrunde gelegt, also 5.2.2 ROT13 - Der besondere Cäsar Lange Jahre war in UNIX-Kreisen eine Verschlüsselung unter dem Namen ROT13 in Gebrauch. ROT13 hat die besondere Eigenschaft, dass wiederholtes Anwenden der Verschlüsselungsfunktion wieder der Klartext zu Tage befördert, also ROT13(ROT13(m)) = m. Bei ROT13 handelt es sich um einen einfachen (klassischen) Cäsar mit dem Schlüssel (1,n/2), wobei n die Anzahl der Zeichen des Alphabets ist und gerade sein muss. Seinen Namen erhielt das Verfahren aus der Tatsache, dass unser Alphabet aus 26 Buchstaben besteht (26/2 = 13). ROT13 wird heute noch gerne in Buchstabenrätseln eingesetzt. 5.2.3 Die Sicherheit der Cäsar-Chiffren Wie wir gleich sehen werden, müsste die Überschrift „Die Unsicherheit der Cäsar-Chiffren“ lauten. Wir haben schon gesehen, dass Cäsar fünfundzwanzig verschiedene Schlüssel zur Verfügung standen. (Die sechsundzwanzigste, bei der Klartextbuchstabe und zugehöriger Geheimtextbuchstabe identisch sind, dürfte den römischen Feldherrn wohl kaum befriedigt haben.) Weiß ein Angreifer, dass eine Mitteilung mit einer solchen Chiffre verschlüsselt wurde, braucht er eigentlich keinen Computer mehr, um den Schlüssel herauszufinden. Er nimmt einfach die ersten paar Wörter und probiert alle Schlüssel durch. Durch Kombination mit einer multiplikativen Chiffre hätte Cäsar die Sicherheit drastisch erhöhen können. Bei einem Alphabet mit 26 Buchstaben gibt es 12 multiplikative Schlüssel, also 312 Schlüssel insgesamt25, für ein Durchprobieren aller Möglichkeiten ist dies doch schon etwas viel. Es wäre auch möglich, das Geheimtextalphabet in beliebiger Reihenfolge festzulegen und damit 26! mögliche Schlüssel zu erhalten. Trotzdem wäre die Herausforderung für einen 25 Die Herleitung dieser Zahl erfolgt, um an dieser Stelle nicht schon alles zu verraten, in Kapitel 6. Symmetrische Verschlüsselungsverfahren 41 Angreifer nicht größer, als bei der Beschränkung auf 312 Schlüssel. Grund ist die Tatsache, dass nicht alle Buchstaben gleich häufig benutzt werden, wie folgende Tabelle belegt: Die Buchstaben der deutschen Sprache nach Häufigkeit sortiert Buchstabe Häufigkeit in % Buchstabe Häufigkeit in % e 17,40 m 2,53 n 9,78 o 2,51 i 7,55 b 1,89 s 7,27 w 1,89 r 7,00 f 1,66 a 6,51 k 1,21 t 6,15 z 1,13 d 5,08 p 0,79 h 4,76 v 0,67 u 4,35 j 0,27 l 3,44 y 0,04 c 3,06 x 0,03 g 3,01 q 0,02 Quelle: BEUTELSPACHER, Kryptologie, S. 18 Mit diesem Wissen lassen sich zumindest bei längeren Texten die Buchstaben e und n mit großer Sicherheit isolieren und die Kandidaten für die Buchstaben i, s, r, a, t feststellen. Um diese auch zu isolieren, muss der Angreifer etwas tiefer in die Trickkiste greifen. Auch die Bigramme sind in der deutschen Sprache unterschiedlich verteilt: Buchstabenpaar en er ch te de Häufigkeit (in %) 3,88 3,75 2,75 2,26 2,00 Buchstabenpaar nd ei ie in es Häufigkeit (in %) 1,99 1,88 1,79 1,67 1,52 Häufigkeiten der Bigramme der deutschen Sprache, Quelle: Beutelspacher, Kryptologie, S. 18 Mit „en“ kann er nichts mehr anfangen, aber mit „er“ kann er den Buchstaben r isolieren. Ein Zeichenpaar, das ebenso häufig in der einen wie in der anderen Reihenfolge vorkommt ist in Indiz für „ei“ und „ie“ im Klartext, isoliert also den Buchstaben i. Ein e, das sich im Klartext an der zweiten Stelle des Bigramms befindet ist nun ein Hinweis auf d oder t (da beide Buchstaben ziemlich gleich lautend sind, ist es aber zunächst nicht tragisch, sie nicht sicher unterscheiden zu können. Befindet sich das e im Bigramm vorne, so folgt wahrscheinlich ein s. Man beachte hier insbesondere das entsprechende Wort „es“. c und h kann er herausfinden, da die Buchstaben einzeln nur sehr selten vorkommen, als Paar Symmetrische Verschlüsselungsverfahren 42 aber sehr häufig. Der Angreifer hat nun die Buchstaben e, n, i, s, r, a, t/d, h, c isoliert und kann damit knapp drei Viertel des Textes entschlüsseln. Nun sollte es kein Problem mehr sein, aus fast vollständig entschlüsselten Wörtern weitere Buchstaben zu isolieren, so dass der Text nun binnen relativ kurzer Zeit entziffert werden kann. 5.2.3.1 Entzifferte Geheimnisse Jetzt ist der richtige Zeitpunkt um die Geheimnisse aus Kapitel 1 zu lüften. Legrand entschlüsselt die Botschaft auf dem Pergament wie folgt: „Doch da die Worte eben nicht abgeteilt waren, beschränkte ich mich darauf, die am häufigsten sowie die am seltensten vorkommenden Buchstaben ausfindig zu machen. Als ich alle gezählt hatte, fertigte ich folgende Tabelle an: Die Chiffre 8 kommt 35 mal vor die Chiffre ; kommt 26 mal vor die Chiffre 4 kommt 19 mal vor (...) Nun kommt in der englischen Sprache der Vokal e am öftesten vor. (...) Unsere vorherrschende Chiffre ist 8, und wir wollen damit beginnen, sie als das e des natürlichen Alphabetes anzusehen. Um uns von der Richtigkeit unserer Vermutung zu überzeugen, forschen wir noch nach, ob die Zahl 8 oft paarweise vorkommt - ein doppeltes e findet man im Englischen sehr häufig, man denke nur an meet, fleet, speed, seen, been, agree usw. Wir finden denn auch die Zahl nicht weniger als fünfmal doppelt vor, obwohl die ganze Mitteilung nur sehr kurz ist. (...)“ Legrand untersucht nun den Text nach häufigen Wörtern mit e, isoliert so Buchstabe um Buchstabe und stellt schließlich fest: „Doch müssen wir nun unseren Schlüssel, soweit wir ihn fanden, in einer Tabelle ordnen, um größere Klarheit zu erhalten. Wir wissen, dass 5 = a , 4 = h , ( = r , å = d , 6 = i , ; = t , 8 = e , * = n , 3 = g , Ø = o ist. Wir kennen also bis jetzt nicht weniger als zehn der wichtigsten Buchstaben, und es ist unnötig, auf die Details der Lösung noch weiter einzugehen. (...) Ich will Ihnen nun eine vollständige Übersetzung der Zeichen geben, die das Pergament enthielt: >A good glass in the bishop' s hotel in the devil' s seat forty-one degress and thirteen minutes northeast and by north main branch seventh limb east side shoot from the left eye of the death' s head a bee line from the tree through the shot fifty feet out.< Symmetrische Verschlüsselungsverfahren 43 Ein gutes Glas im Bischofshotel in des Teufels Sitz einundvierzig Grad und dreizehn Minuten nordöstlich und nördlich Hauptast siebenter Ast Ostseite schieß von dem linken Auge des Totenkopfes eine kerzengerade Linie von dem Baum durch den Schuss fünfzig Fuß hinaus.« Wer an der Aussage der immer noch ziemlich wirren Nachricht interessiert ist, sollte die ganze Geschichte lesen. Sie befindet sich als HTML-Datei und WordDokument auf der Diskette zu dieser Arbeit. Die tanzenden Männer verbergen folgende Nachricht: „Am here Abe Slaney“ 5.2.4 Die Vigenère-Chiffre Wir haben gesehen, dass alle monoalphabetische Verschlüsselungsverfahren relativ leicht zu knacken sind. Die Schwäche dieser Verfahren ist, dass die Häufigkeitsverteilung der Buchstaben erhalten bleiben; Grund dieser Schwäche ist, dass jeder Buchstabe immer mit dem selben Schlüssel und damit dem selben Geheimzeichen chiffriert werden. Man sollte also einen Weg finden, den Schlüssel innerhalb des Verschlüsselungsvorgangs - am besten nach jedem Zeichen - zu wechseln. Dies leistet die Vigenère-Chiffre, benannt nach dem französischen Diplomaten Blaise de Vigenère (1523 - 1596), der es 1586 veröffentlichte. Er legte der Verschlüsselung eines Textes alle 26 möglichen „Cäsaren“ zugrunde, das sogenannte Vigenère-Quadrat, und legte den Schlüssel pro Buchstaben durch ein Schlüsselwort fest. Zur Demonstration führen wir das Verfahren nun an einem konkreten Beispiel durch: Symmetrische Verschlüsselungsverfahren ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 ! Das Vigenère-Quadrat # $ % & ' ( ) * + , . / 0 1 2 3 4 5 $ % & ' ( ) * + , . / 0 1 2 3 4 5 % & ' ( ) * + , . / 0 1 2 3 4 5 44 & ' ( ) * + , . / 0 1 2 3 4 5 ' ( ) * + , . / 0 1 2 3 4 5 ( ) * + , . / 0 1 2 3 4 5 ! ! " ! " # ! " # $ ! " # $ % ! " # $ % & " # $ % & ' ) * + , . / 0 1 2 3 4 5 ! " # $ % & ' ( * + , . / 0 1 2 3 4 5 ! " # $ % & ' ( ) + , . / 0 1 2 3 4 5 ! " # $ % & ' ( ) * , . / 0 1 2 3 4 5 ! " # $ % & ' ( ) * + . / 0 1 2 3 4 5 ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 ! " # $ % & ' ( ) * + , - / 0 1 2 3 4 5 ! " # $ % & ' ( ) * + , . 0 1 2 3 4 5 ! " # $ % & ' ( ) * + , . / 1 2 3 4 5 ! " # $ % & ' ( ) * + , . / 0 2 3 4 5 3 4 5 4 5 5 ! " # $ % & ' ( ) * + , . / 0 1 ! " # $ % & ' ( ) * + , . / 0 1 2 ! " # $ % & ' ( ) * + , . / 0 1 2 3 ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 Über den zu verschlüsselnden Text schreibt man - fortlaufend - das Schlüsselwort. Der Buchstabe des Schlüsselwortes entscheidet, mit welchem Cäsar der darunterstehende Klartextbuchstabe verschlüsselt wird. Es ist jener, der im Quadrat mit dem entsprechenden Buchstaben beginnt. Zu verschlüsseln sei das Wort „GEHEIMBOTSCHAFT“, das Schlüsselwort laute „MATHE“: Schlüsselwort (S) Klartext (M) M G A E T H H E E I M M A B T O H T E S M C A H T A H F E T Wir gehen in die Zeile, die mit einem und suchen die Spalte, in der in der obersten Zeile ein g steht; dort finden wir ein S, damit verschlüsseln wir das G. Dann gehen wir in die Zeile, die mit A beginnt und chiffrieren analog zum ersten Buchstaben das E mit einem E usw. Schließlich erhalten wir den Geheimtext „SEALMYBHAWOTMX“. Hat man gerade kein Vigenère-Quadrat zur Hand, genügt auch die Verschlüsselungsmaschine von Albertini. Man muss nur immer den gerade Symmetrische Verschlüsselungsverfahren 45 aktuellen Schlüsselwortbuchstaben als Geheimbuchstaben unter das Klartext-A drehen und kann dann wie gewohnt ablesen. Sowohl das Ablesen aus dem Vigenère-Quadrat als auch das Gefummel am „Albertini-Automaten“ kann bei längeren Texten in Arbeit ausarten. Wir erinnern uns deshalb an dieser Stelle an die mathematische Interpretation der klassischen Cäsar-Chiffre. Sowohl Schlüsselwort, als auch Text lassen sich auch als Zahlen im R26 darstellen und wir kommen zu folgender / folgendem: Definition / Satz: Sei S = {s0,s1, s2, ..., st} ⊆ R26 das Schlüsselwort der Vigenère-Chiffre und M = {m0, ..., mL} ⊆ R26 der Klartext . Dann ist die Verschlüsselungsfunktion f wie folgt definiert: f(mi) = ci := mi + sk mod 26 für i ≡ k mod t, i = 0, 1, ..., L. Die Richtigkeit lässt sich leicht überprüfen. Der zu „GEHEIMBOTSCHAFT“ gehörige Geheimtext lässt sich nun ganz einfach berechnen: Schlüsselwort (S) Klartext (M) mi si ci Geheimtext (C) M G 6 12 18 S A E 4 0 4 E T H E M H E I M 7 4 8 12 19 7 4 12 0 11 12 24 A L M Y A B 1 0 1 B T H E M O T S C 14 19 18 2 19 7 4 12 7 0 22 14 H A W O A H 7 0 7 H T H E A F T 0 5 19 19 7 4 19 12 23 T M X Natürlich lässt sich eine Vigenère-Chiffre analog über jedem beliebigen Alphabet Rn erzeugen. 5.2.5 Weiterentwicklungen der Vigenère-Chiffre Die Vigenère-Chiffre ist bereits deutlich sicherer als monoalphabetische Verschlüsselungsverfahren und hielt über 300 Jahren allen Angriffen stand. Der preußische Infantriemajor Friedrich Wilhelm Kasisiski (1805-1881) entdeckte aber den Schwachpunkt und knackte das Verfahren über die Schlüsselwortlänge, die sich zumindest bei kurzen Schlüsseln relativ leicht ermitteln lässt. Hierin liegt aber bereits die Antwort für Verbesserungen. Wenn das Verfahren besser wird, je länger das Schlüsselwort ist, dann ist die bestmögliche Vigenère-Chiffre jene, deren Schlüsselwortlänge der Länge des Symmetrische Verschlüsselungsverfahren 46 Textes entspricht. Dann spricht man allerdings nicht mehr von einer VigenèreChiffre, sondern von One-Time-Pad, das 1917 von dem amerikanischen AT&TIngenieur Gilbert S. Vernam (1890 - 1960) erfunden wurde. Diese Verschlüsselungsart wurde von den Briten im Zweiten Weltkrieg benutzt, um die abgefangenen und entschlüsselten Mitteilungen des Deutschen Reiches an den Premierminister zu übermitteln. Auf diese Weise blieb den Deutschen bis zum Ende des Krieges verborgen, dass die Engländer die ENIGMA-Chiffre geknackt hatten. In modernen Systemen wird heute das One-Time-Pad auf Bit-Ebene angewandt, als Schlüssel dient hier eine (Pseudo-)Zufallsbitfolge. Diese Art der Verschlüsselung ist theoretisch absolut sicher, problematisch ist aber die Erzeugung hinreichend zufälliger langer Bitfolgen und deren Übermittlung. In der Tat ist eine mit diesem Verfahren verschlüsselte Botschaft ohne Kenntnis des Schlüsselworts nicht mehr zu entschlüsseln. Legt man nämlich z.B. dem Geheimtext TFZZGREDFYABXIFFHXY den Schlüssel QXVHCAMDMZSJECBYDPM zugrunde, erhält man als Klartext DIESERSATZISTGEHEIM. Mit dem Schlüssel HAUIQHGBYFFTMXNQHFG wird der selbe Geheimtext aber zu MATHEMACHTVIELSPASS. Man kann also jeden Geheimtext in jeden beliebigen Klartext „entschlüsseln“. Darum hilft hier auch der schnellste Computer mit der intelligentesten Software nicht mehr weiter. Der Preis für die absolute Sicherheit ist ein recht aufwendiges 26 Schlüsselmanagement. 26 vgl. BEUTELSPACHER, Geheimsprachen, S. 37 ff. Asymmetrische Verschlüsselungsverfahren 47 6 Asymmetrische Verschlüsselungsverfahren Kennzeichen der symmetrischen Verschlüsselungsverfahren ist es, dass sich aus dem Schlüssel für die Verschlüsselung der Schlüssel für die Entschlüsselung einfach berechnen lassen muss; oft sind beide Schlüssel identisch. In einer n-köpfigen Gruppe sind aber n(n – 1)/2 Schlüssel notwendig, da jeweils zwei der Gruppe einen eigenen Schlüssel benötigen. Zur mit wachsendem n immer aufwendigeren Schlüsselverwaltung, kommt noch das Problem des sicheren Schlüsseltauschs. Beide Probleme lassen sich auf einen Schlag mit asymmetrischen Verfahren lösen. Die Idee ist folgende: Jeder Teilnehmer erhält zwei Schlüssel – E (zur Verschlüsselung) und D (zur Entschlüsselung) – die folgende Eigenschaften haben: • Aus der Kenntnis nur eines Schlüssels, lässt sich der andere nicht (nur mit sehr geringer Wahrscheinlichkeit) berechnen. • Für jede Mitteilung m gilt: D(E(m)) = m, wobei E(m) die verschlüsselte Mitteilung sei. Jeder Teilnehmer veröffentlicht den Schlüssel E und hält Schlüssel D geheim. Wegen der Veröffentlichung von Schlüsseln werden asymmetrische Verfahren auch Public-Key-Verfahren genannt. Will nun Teilnehmer B an A eine Mitteilung m schicken, so sucht er sich zunächst in einem öffentlichen Verzeichnis den Schlüssel EA von A heraus und verschlüsselt damit m. EA(m) schickt er an A, der aus EA(m) mittels DA DA(EA(m)) = m, also die ursprünglich Klartext-Nachricht rekonstruiert. Wir sehen, dass bei n Teilnehmern so nur noch 2n Schlüssel gebraucht werden. Da die zur Kommunikation notwendigen Schlüssel öffentlich zugänglich sind, entfällt das Problem des Schlüsseltauschs vollständig. Wir haben uns dafür ein neues Problem eingehandelt: Aus der Kenntnis von E darf sich D nicht berechnen lassen; hier kommen Einwegfunktionen zum Einsatz27. 27 siehe Kapitel „Mathematische Grundlagen“ Asymmetrische Verschlüsselungsverfahren 48 6.1 Das RSA-Verfahren Der RSA-Algorithmus wurde 1977 von Ronald Rivest, Adi Shamir und Leonard Adleman entwickelt und ist wohl das inzwischen berühmteste Verschlüsselungsverfahren. Das Besondere an diesem Algorithmus ist wohl die Tatsache, dass er auf einem einfachen Satz von Leonhard Euler (1707 - 1783) aus der Zahlentheorie aufbaut und die darin beschriebene Eigenschaft von Potenzen in Restklassen konsequent ausnutzt. 6.1.1 Mathematischer Hintergrund: Der Satz von Euler Für den Satz von Euler benötigen wir die ϕ-Funktion, die wir nachfolgend definieren: Definition: ϕ-Funktion Sei n eine natürliche Zahl. Dann definieren wir ϕ(n) als die Anzahl der zu n teilerfremden natürlichen Zahlen die kleiner als n sind. Einige Eigenschaften der ϕ-Funktion: (1) ϕ(p) = p – 1, für alle Primzahlen p. Diese Eigenschaft folgt unmittelbar aus der Definition der Primzahlen. (2) ϕ(pq) = (p – 1)(q – 1), für alle Primzahlen p und q, d.h. ϕ ist multiplikativ, wenn p und q Primzahlen sind. Beweis: Es gibt insgesamt pq – 1 Zahlen, die kleiner als pq sind. Davon sind die q – 1 Zahlen 1 ≤ 1p, 2p, ..., (q - 1)p < pq durch p teilbar, ebenso sind die p – 1 Zahlen 1 ≤ 1q, 2q, ..., (p – 1)q < pq durch q teilbar. Die restlichen Zahlen zwischen 1 und pq sind zu pq teilerfremd und damit ist ϕ(pq) = pq – 1 – (p – 1) – (q – 1) = pq – p – q – 1 = (p – 1)(q – 1) Asymmetrische Verschlüsselungsverfahren 49 Der Satz von Euler besagt nun folgendes: Satz von Euler Sind a und n teilerfremde, natürliche Zahlen, so ist . # Beweis: Seien r1, r2, ..., rϕ(n) nach Definition alle zu n teilerfremden Zahlen kleiner als n. Dann sind auch ar1, ar2, ..., arϕ(n) zu n teilerfremd. Zusätzlich folgt aus mod n , dass i = j sein muss # , d.h. alle ari lassen bei Division durch n einen 28 anderen Rest. Da es nur ϕ(n) Restklassen modulo n gibt folgt, dass jedes der ar1, ar2, ..., arϕ(n) zu genau einem der r1, r2, ..., rϕ(n) modulo n kongruent sein muss. Also gilt für die Produkte Nach Division durch # $ # # # 29 erhalten wir schließlich # # .30 Der RSA-Algorithmus basiert nun auf dem Sonderfall, dass n eine aus zwei Primzahlen p und q zusammengesetzte Zahl, also n = pq, ist. Dann ist nämlich . 6.1.2 Praxis: Der Algorithmus im Einzelnen: 6.1.2.1 Schlüsselerzeugung Jeder Teilnehmer erhält von der Schlüsselvergabestelle einmal einen öffentlichen und einen privaten Schlüssel. Dazu werden zwei große Primzahlen p und q erzeugt und miteinander multipliziert (n = pq). Als nächstes wird ϕ(n) = (p – 1)(q – 1) berechnet. Schließlich wird willkürlich eine zu ϕ teilerfremde Zahl e festgelegt und eine weitere Zahl d bestimmt mit ed ≡ 1 mod ϕ(n). e ist der öffentliche, d der entsprechende private (geheime) Schlüssel. Beide werden dem Teilnehmer zugesandt. Für e wird gerne die vierte Fermat-Zahl % . Die Tatsache, dass hier nur zwei Binärstellen besetzt sind, ermöglicht eine schnelle Verschlüsselung mit 28 29 30 siehe Kapitel 4: Mathematische Grundlagen siehe Kapitel 4: Mathematische Grundlagen Definition und Satz vgl. PADBERG, Elementare Zahlentheorie, S. 68f. Asymmetrische Verschlüsselungsverfahren 50 minimaler Anzahl an Rechenoperationen31. Durch die für jeden Teilnehmer unterschiedlichen Module n kann e ohne Bedenken mehrfach benutzt werden. Der Teilnehmer hinterlegt nun e und n an einem allgemein zugänglichen Ort, d hält er geheim. p und q werden im Weiteren nicht mehr benötigt und sollten, da aus ihnen mit Kenntnis von e und n leicht d berechnet werden kann, gelöscht werden. Beispiel: Um die Vorgänge besser verfolgen zu können, wählen wir relativ kleine Primzahlen p und q. Es sei n = 845332 und ϕ(8453) = 8268. Als zu 8268 teilerfremdes e wählen wir und erhalten durch Berechnung mit dem erweiterten euklidischen Algorithmus33 d = 4697. 6.1.2.2 Verschlüsseln von Nachrichten Die Nachricht m muss zunächst ist Zahlenblöcke mi umgewandelt werden, die um später wieder eindeutig entschlüsselt werden zu können - alle kleiner als n sein müssen. Eine Codierung, in der Buchstaben durch Zahlenwerte repräsentiert wird, ist z.B. ASCII (American Standard Code for Information Interchange). Nun werden die Blöcke nacheinander mittels e und n verschlüsselt. Für die Chiffre E(mi) gilt dabei: . Beispiel: (Fortsetzung) Die zu verschlüsselnde, wichtige Botschaft laute: Klartext H a l l o ASCII-Wert 072 097 108 108 111 Hieraus lassen sich nun die Blöcke bestimmen: m1 = 07209, m2 = 7108, m3 = 1081, m4 = 11. 31 32 33 siehe Kapitel 4: Mathematische Grundlagen - Exkurs Man versuche p und q selbst herauszufinden. Hinweis: ROT13(p) = ARHAHAQFVROMVT siehe Kapitel 4: Mathematische Grundlagen. Asymmetrische Verschlüsselungsverfahren 51 Hieraus lassen sich die Chiffre-Blöcke berechnen: E(mi) = mi257 mod 8453 mi 7209 7108 1081 11 E(mi) 5501 1429 6563 2925 Der erweiterte Square-and-Multiply-Algorithmus34 berechnet jedes E(mi) in 10 Multiplikationsschritten mit anschließender Modulo-Rechnung. Die E(mi) werden nun zum Empfänger geschickt. 6.1.2.3 Entschlüsseln von Nachrichten Der Empfänger wendet seinen geheimen Schlüssel d auf alle E(mi) an und erhält D(E(mi)) = E(mi)d mod n = (mie mod n)d mod n = mod n = mi ist: zeigen, dass e und d wurden so gewählt, dass damit Euler ist aber mod n. Es ist nun zu mod n = mi1+k(p-1) mod n = # , also # # # und mod n ist. Nach dem Satz von und daraus folgt unmittelbar mod n = mi. Beispiel: (Schluss) Umrechnen der empfangenen Chiffreblöcke: D(E(mi)) = E(mi)4697 mod 8435 E(mi) 5501 1429 6563 2925 D(E(mi)) 7209 7108 1081 11 Jetzt müssen aus der Zahlenkolonne 72017108108111 die ursprünglichen Zeichencodes (ASCII) ermittelt und daraus die Buchstaben gewonnen werden: Alle ASCII-Werte von 0 bis 255 sind erlaubt, wir müssen also mit dreistelligen Codes rechnen. Die Zahlenkolonne hat 14 Ziffern, d.h., dass bei dreistelligen Codes 5 Buchstaben codiert wurden, wobei beim ersten Buchstaben eine führende Null verloren ging. Daraus ergibt sich ASCII-Wert 72 097 108 108 111 Klartext H a l l o Im Anhang findet sich der komplette RSA-Algorithmus inklusive Schlüsselerzeugung. Diese Implementierung weicht aber vom obigen Beispiel in zwei Punkten ab: 34 siehe Kapitel 4 „Mathematische Grundlagen - Exkurs“ Asymmetrische Verschlüsselungsverfahren 52 1) Die mi bestehen immer aus kompletten Zeichenblöcken, d.h. wenn durch die Hinzunahme des ASCII-Wertes des Zeichens c der Wert von mi größer als n würde, so wird dieser Wert komplett zu mi+1 gerechnet. 2) Bei der Wiederherstellung des Textes aus den entschlüsselten Zahlenblöcken, arbeitet sich der Algorithmus innerhalb jedes Blockes von hinten nach vorne und dreht die ermittelte Zeichenkette anschließend um. 6.2 Das Verschlüsselungsverfahren von Rabin Rabin benutzt die Quadratwurzel modulo einer zusammengesetzten Zahl als Einwegfunktion für sein Verschlüsselungsverfahren. Für die Entschlüsselung wird der Chinesische Restsatz benötigt. 6.2.1 Mathematischer Hintergrund: Quadratwurzel modulo n und Chinesischer Restsatz 6.2.1.1 Der chinesische Restsatz Der chinesische Restsatz basiert auf einer Entdeckung, die der chinesische Mathematiker Sun Tse bereits im ersten Jahrhundert gemacht hat. Chinesischer Restsatz: Für (alle ni paarweise zueinander prim) besitzt das eine eindeutige ganzzahlige Kongruenzensystem Lösung x<n (d.h., sind x’ und x’’ Lösungen des Kongruenzensystems, dann ist x’ ≡ x’’ (mod n)). Verfahren: 1. Bestimme für i = 1,2,...,t 2. Berechne die xi aus immer und ist eindeutig ( für i = 1,2,...,t. Diese Lösung existiert , die Inverse von ki existiert und ist eindeutig, da nach 1. ggT(ki,ni) = 1 ist). 3. x = k1x1 + k2x2 + ... + ktxt ist eine Lösung, die modulo n eindeutig ist. Asymmetrische Verschlüsselungsverfahren 53 Beweis: kixi wird von allen nj geteilt, d.h. kixi ≡ 0 (mod nj), für alle i ≠ j. Damit bleibt in jeder Zeile des Kongruenzensystems nur noch kixi ≡ ai (mod nj). Dies ist aber Lösung nach 2; somit existiert eine Lösung. Die Eindeutigkeit modulo n folgt aus ggT(ni,nj) = 1 für i ≠ j. 6.2.1.2 Quadratischer Rest und Quadratwurzel modulo n Definition: Quadratischer Rest Jede Zahl a ∈ Rn für die es mindestens ein w ∈ Rn gibt mit & heißt quadratischer Rest modulo n. Jede andere Zahl heißt quadratischer Nichtrest. Definition: Quadratwurzel modulo n Jede Zahl w ∈ Rn für die gilt a. & & heißt Quadratwurzel modulo n von Wir benutzen weitere folgende Eigenschaften: (1) Ist a ein quadratischer Rest modulo p, p prim, so hat a genau zwei Quadratwurzeln w1 ≤ w2 mit w2 = p – w1. Beweis: Aus w2 ≡ a (mod p) folgt unmittelbar, dass (p – w)2 = p2 – 2pw + w2 ≡ a2 (mod p) Die Eindeutigkeit folgt aus der Transitivität der Kongruenzrelation. (2) Sind die Primzahlen p und q kongruent 3 modulo 4, so besitzt jeder quadratische Rest modulo n, n = pq, genau 4 Quadratwurzeln. (ohne Beweis) 6.2.1.3 Das Verfahren von Rabin Für den privaten Schlüssel wählt man zwei Primzahlen p und q, die beide kongruent 3 modulo 4 sind, als öffentlicher Schlüssel dient n = pq. Das Verschlüsseln einer Nachricht M ist denkbar einfach: C := E(M) = M² mod n. (Wie bei RSA muss natürlich auch hier M ein Zahlenwert kleiner als n sein.) Zur Entschlüsselung benötigt man den Chinesischen Restsatz und die eben beschrieben Eigenschaften von quadratischen Resten. Die vier möglichen Lösungen erhält man nach Schneier mit folgendem Verfahren: Asymmetrische Verschlüsselungsverfahren 54 „Berechne: ' ' ' ' Wähle dann zwei ganze Zahlen a = q(q-1 mod p) und b = p(p-1 mod q). Die vier möglichen Lösungen lauten: ( ( ( $ ( $ Einer der vier Werte M1, M2, M3, M4 liefert M.“ (SCHNEIER, Angewandte Kryptologie, S. 542) Handelt es sich bei M nicht um eine lesbare Mitteilung (z.B. Binärdateien), so muss sie durch einen eindeutig identifizierbaren Kopf erweitert werden. Genauere Informationen zum Verfahren von Rabin findet man in: M.O. Rabin: „Digital Signatures and Public-Key Functions as Intractable as Factorization“, im MIT Laboratory for Computer Science, Technical Report, MIT/LCS/TR-212, Januar 1979. Hugh Williams überarbeitete das Verfahren von Williams so, dass bei der Entschlüsselung das Ergebnis eindeutig ist. Eine Beschreibung dieser und Literaturhinweise auf weitere Varianten des Verfahren von Rabin findet man in SCHNEIER, Angewandte Kryptologie, S. 542f. Kryptologie im Mathematikunterricht - Zwei Vorschläge 55 7 Kryptologie im Mathematikunterricht - Zwei Vorschläge 7.1 Die Darstellung von Buchstaben durch natürliche Zahlen (und umgekehrt) als Möglichkeit der Selbstkontrolle / Die Cäsar-Chiffre als Anwendung der Division mit Rest (Sekundarstufe I) Das nachfolgende Beispiel könnte beispielsweise in Klasse 5 in die Lehrplaneinheit 1: Natürliche Zahlen eingebaut werden. 7.1.1 Codierteil 7.1.1.1 Motivation: Wie wird aus „MATHE“ die Zahl 1.201.974 ? 7.1.1.2 Erarbeitung: Schüler erfragen benötigte Informationen Angabe weiterer „Zahlwörter“: 1 2 0 1 9 MATHE 1 2 4 8 1 MEINE 3 4 8 1 DEINE 1 8 4 8 1 SEINE 2 5 4 8 1 ZEILE vom Lehrer. Hilfestellung des Lehrers: 7 3 3 3 1 4 4 4 4 4 Die Schüler sollten aus diesen Angaben selbstständig erarbeiten können, dass der Buchstabe E durch die Zahl 4 ersetzt wurde (E ist letzter Buchstabe bei jedem Wort, bei den Zahlen ist nur die letzte Stelle (4) immer gleich. Die Stellenschreibweise, ebenfalls Inhalt dieser Lehrplaneinheit, erfüllt auch hier gute Dienste, da sie den Code durchschaubarer macht.) Daraus ergibt sich unmittelbar: M = 12, D = 3, S = 18, Z = 25 (jeweils erster Buchstabe). Durch Eintragen der gefundenen Werte in eine Tabelle (siehe 1.), lässt sich der „Schlüssel“ für das gesamte Alphabet finden. Kryptologie im Mathematikunterricht - Zwei Vorschläge 56 Darstellung des Alphabets durch Zahlenwerte {A,B,...,Z} → {0,1,...,25} =: Z26 A 0 B 1 C 2 D 3 E 4 F 5 G 6 H 7 I 8 J 9 K 10 L 11 M 12 N 13 O 14 P 15 Q 16 R 17 S 18 T 19 U 20 V 21 W 22 X 23 Y 24 Z 25 MATHE „=“ 12 0 19 7 4 „=“ 1.201.974 Lerninhalte: gemeinsame Entwicklung von Lösungsstrategien, Arbeiten mit Tabellen, Vorbereitung auf andere Zahlsysteme / Zahlzeichen (in Lehrplaneinheit 1 z.B. Römische Zahlzeichen) 7.1.1.3 Anwendung / Transfer • Rechnen mit Buchstaben: z.B.: C + G = 7, W : L = 2, usw. • Rechnen innerhalb von Z26 (ohne „Z-Übergang“): B + F = 1 + 5 = 6 = G, O - H = 14 - 7 = 7 = H • Rechnen innerhalb von Z26 (mit „Z-Übergang“ - Division (durch 26) mit Rest): K + W = ? => K + W = 10 + 22 = 32 = 1*26 + 6 = G • Rechnen „modulo 26“: z.B. 12345 = 474*26 + 21 (12345 : 26 = 474 Rest 21) 21 = V Direkter Nutzen der eben beschriebenen Einheit: Nun ist einfache Selbstkontrolle bei „Rechenkästchen“ möglich. Die Ergebnisse ergeben, ggf. nach erforderlicher Konvertierung, bei Division durch 26 immer ein „Lösungswort“. Kryptologie im Mathematikunterricht - Zwei Vorschläge 57 Konvertierung von Ergebnissen, die nicht aus N sind: Zahlenraum Konvertierung |y| Z Q kürzen, und als zwei ganze Zahlen betrachten (ergibt zwei R C Lösungsbuchstaben) y auf n Stellen runden und mit mit Re(z), Im(z) ∈ R Lösungsbuchstaben) weiterarbeiten weiterarbeiten (ergibt zwei Die Zuordnung „Ergebnis der Rechenaufgabe → Lösungsbuchstabe“ ist übrigens eine (fast) Einwegfunktion. Wer den Rechenweg der gestellten Aufgabe kennt, wird von der richtigen Lösung leicht auf den richtigen Lösungsbuchstaben schließen können, die Kenntnis der Lösungsbuchstaben hilft aber umgekehrt beim Auffinden des richtigen Ergebnisses nicht weiter, da sich jeder Buchstabe aus unendlich vielen natürlichen Zahlen modulo 26 ergibt. Fast deshalb, weil ein Computer in kurzer Zeit Millionen möglicher Ergebnisse einfach durchprobieren und so zumindest im ganzzahligen Bereich innerhalb von Sekunden, wenn nicht Sekundenbruchteilen das richtige Ergebnis „erraten“ kann. Für „Klassenzimmerzwecke“ ist die Einwegeigenschaft aber ausreichend. Lerninhalte: Wiederholung der Grundrechenarten, Division mit Rest, Vorbereitung auf das Rechnen in anderen Zahlsystemen, (evtl. Einführung in die Eigenschaft / Problematik von Einwegfunktionen (auch als Vorbereitung zu einer späteren expliziten Behandlung)) 7.1.2 Kryptographieteil - Anwendung und Transfer des unter 7.1.1 Gelernten Einordnung der Anwendung: Lehrplaneinheit 1: Natürliche Zahlen; Sachaufgaben (Realitätsbezogene Aufgaben zum Rechnen mit natürlichen Zahlen); evtl. Lehrplaneinheit 4: Arbeiten am Computer Kryptologie im Mathematikunterricht - Zwei Vorschläge 58 7.1.2.1 Motivation Ausgangspunkt könnte folgende (oder eine ähnliche) Schatzkarte sein (Hinweis: „Die Schatzinsel“ ist als Lektüre für die 5. Klasse vorgesehen!): „GX ILQGHVW GHQ RUW EHL HLQKXQGHUWVLHEHQGVLHECLJ JUDG RHVWOLFKHU ODHQJH XQG CZRHOI JUDG VXHGOLFKHU EUHLWH“ Die Koordinaten der „Schatzinsel“ (Rotuma (Fidschi)) in Cäsar-Chiffre mit Schlüssel 3 (Eine große Karte zur weiteren Verwendung findet sich im Anhang.) Quelle der Originalkarte: http://www2.hawaii.edu/oceanic/rotuma/ Zwar ist auf der Karte der Weg von der Küste zum Schatz beschrieben, um herauszufinden, wo sich die Schatzinsel befindet, muss aber der verschlüsselte Text unter der Karte enträtselt werden. Der Lehrer fungiert hier weniger als Trainer, denn als Quizmaster. Achtung! Es handelt sich hier um einen einfachen Cäsar-Code, wie er heute auch in Agenten-Spielen verwendet wird. Es kann also durchaus vorkommen, dass sich „lokale Experten“ in der Klasse befinden. Diese sollten frühzeitig in den Geheimdienst aufgenommen und zu absolutem Stillschweigen verpflichtet werden. Kryptologie im Mathematikunterricht - Zwei Vorschläge 59 7.1.2.2 Erarbeitung Die Schüler dürfen Fragen stellen, der Lehrer lässt sich zu einem chosenplaintext-attack „überreden“, d.h. er verschlüsselt ein Wort, das ihm die Schüler vorgeben (evtl. auch weitere Wörter). Diese werden in folgender Form an die Tafel geschrieben: Beispiel: Die Schüler lassen sich die Worte „THOMAS“ und „KERSTIN“ verschlüsseln: Wort T H Geheimwort W K O R M P A D S V K N E H R U S V T I W L N Q (Der Lehrer sollte darauf achten, dass einige Buchstaben in mehreren Wörtern vorkommen und mehrere direkt aufeinander folgende Buchstaben, im Beispiel MNO und RST, verschlüsselt werden.) Die gewonnen Erkenntnisse können nun in eine Buchstabentabelle (wie oben) eingetragen werden: A B C D E F G H I J K L M N O P Q R S T U V WX Y Z Thomas D K P R V W Kerstin H L N Q U V W Das folgende sollte von den Schülern ohne weitere Hilfestellung des Lehrers entdeckt (erarbeitet) werden können: Die Buchstaben S und T wurden zweimal verschlüsselt und dabei jedes Mal in den selben Geheimtextbuchstaben. Wir können daraus schließen, dass dies auch für die übrigen Buchstaben gilt. Der bekannte Teil des Geheimalphabets kann in eine Zeile eingetragen werden: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z D H K L N P Q R U V W Die Stellen „PQR“ und „UVW“ lassen auf fortlaufende Notation des Geheimalphabets schließen und damit die Lücken füllen: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z D E F G H I J K L M N O P Q R S T U V W X Y Z A B C Kryptologie im Mathematikunterricht - Zwei Vorschläge 60 Damit kann der Text entschlüsselt werden. Dies wäre auch am Computer möglich. Ein entsprechendes Programm in QuickBasic und als ausführbares Programm befindet sich im Anhang. Lerninhalt: gemeinsame Lösungsstrategien entwickeln 7.1.2.3 Transfer - Variabilität und Sicherheit der Cäsar-Chiffre Man sollte nicht darauf verzichten, die Schüler auch mit den Chiffrierscheiben (Albertini) arbeiten zu lassen. Diese sind - pro Schüler - mit etwas Karton und einer Musterklammer leicht und schnell hergestellt (Kopiervorlage in der Anlage) und erlauben den Schülern unmittelbar, die begrenzte Variabilität der CäsarChiffre (nur 25 (ohne die „identische“) verschiedene Chiffrierungen) und damit deren Unsicherheit zu erkennen. Kryptologie im Mathematikunterricht - Zwei Vorschläge 61 7.2 Kryptanalysen und Beurteilung der Sicherheit verschiedener Chiffren mittels grundlegender kombinatorischer und statistischer Einsichten (Klassen 1035) 7.2.1 Vorbereitung (in Zusammenarbeit mit dem Fach Deutsch) Edgar Alan Poe: „Der Goldkäfer“; evtl. zusammenstellen einer Sammlung häufiger Wörter in deutschsprachigen Texten (Statistik) 7.2.2 Motivation Vorgelegt wird ein kurzer Auszug (max. 100 Buchstaben) aus einer bereits gelesenen Pflichtlektüre der Klasse 10, verschlüsselt mit einer allgemeinen (!) Cäsar-Chiffre oder einer Chiffre nach Porta (Verwendung von graphischen Zeichen anstatt Buchstaben). Dabei sollten die Leerzeichen erhalten bleiben. Aufgabe: Finde heraus, aus welcher Lektüre der Text stammt. Als Hilfsmittel können ein Computerprogamm, das die Häufigkeit von Buchstaben in Texten ermittelt, sowie einige Texte in elektronisch gespeicherter Form zur Verfügung gestellt werden. Die Entwicklung eines entsprechenden, einfachen Computerprogramms kann aber auch, bei entsprechender Vorbildung, auch den Schülern überlassen werden oder sogar Bestandteil der Einheit sein. 7.2.3 Erarbeitung Die Schüler ermitteln mit Hilfe des Programms die Häufigkeit von Buchstaben in Texten deutscher Sprache und anwenden der Erkenntnisse auf den Chiffretext. Das Verfahren funktioniert gut bei den Buchstaben E (häufigstes Vorkommen) und N (zweithäufigstes Vorkommen), bei allen anderen wird es wahrscheinlich versagen, da hier die Häufigkeiten zu dicht beieinanderliegen. Hier müssen andere Techniken angewandt werden, die aber ebenfalls in „Der Goldkäfer“ beschrieben wurden: 35 Werkrealschule, Lehrplaneinheit 1: Sachrechnen und Statistik; Gymnasium, Lehrplaneinheit 3: Wahrscheinlichkeiten; im Mathematikunterricht der Realschule ist weder Statistik noch Wahrscheinlichkeitsrechnung vorgesehen. Kryptologie im Mathematikunterricht - Zwei Vorschläge 62 • Ausnutzen häufig gebrauchter kurzer Wörter, die ein e oder ein n enthalten, z.B. es, der, die, den, ein, und - Damit lassen sich die nächsten Buchstaben isolieren. Diese lassen sich nun überall im Chiffretext dechiffrieren. • Erraten von fast vollständig dechiffrierten Wörtern. Wieder lassen sich weitere Buchstaben isolieren. Es versteht sich von selbst, dass auch diese wieder überall im Chiffretext dechiffriert werden, wodurch sich wieder neue Wörter erraten lassen. • Sollte es den Schülern trotzt sorgfältiger Anwendung der ersten beiden Techniken nicht möglich sein, den Text zu dechiffrieren, kann der Lehrer mit einer Einführung in die Kryptanalyse monoalphabetischer Chiffrierungen, wie in Kapitel 5 beschrieben, weiterhelfen. Die Motivation zur Aneignung dieses zusätzlichen „Stoffs“ darf man in diesem Stadium der Ermittlungsarbeit wohl als gegeben voraussetzen. Kryptologie im Mathematikunterricht - Zwei Vorschläge 63 7.2.4 Transfer • Ermittlung der Variabilität / Sicherheit des eben geknackten Verfahrens. Hierbei sind folgende Fragen zu lösen: • Welche Eigenschaften muss eine Chiffre erfüllen, um als solche wenigstens technisch zu taugen? - Jedes Geheimtextzeichen muss genau einem Klartextbuchstaben zugeordnet sein. Warum muss die Umkehrung nicht gegeben sein? • Wie viele Verschiebechiffren (additive Schlüssel) gibt es? - 26 Achtung! Bei Kombination mit einer multiplikativen Chiffre ist auch der Schlüssel 0 (Null) sinnvoll!) • Wie viele multiplikative Schlüssel gibt es? - 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 und 25 also 12 Schlüssel. Es sind dies übrigens die zu 26 teilerfremden Zahlen. • Wie viele Chiffren gibt es also? Jeder der zwölf multiplikativen Schlüssel kann mit jedem der 26 additiven Schlüssel kombiniert werden, • je nach zur Verfügung stehendem Zeitrahmen und Leistungsfähigkeit des Kurses: Verbesserung des Verfahrens und Analyse der Sicherheit des eigenen Chiffrierverfahrens: Die Erhöhung der Anzahl der möglichen Schlüssel, z.B. indem man die Geheimtextzeichen in beliebiger Reihenfolge den Klartextbuchstaben zuordnet (26! mögliche Schlüssel) erhöht die Sicherheit nur scheinbar, da die Häufigkeitsverteilung der Buchstaben erhalten bleibt. Diese lässt sich z.B. dadurch verschleiern, dass man den Klartextbuchstaben entsprechend ihrer Häufigkeit eine unterschiedliche Anzahl von Geheimtextzeichen zuordnet und darauf achtet, dass alle Geheimtextzeichen eines Klartextbuchstaben mit gleicher Häufigkeit verwendet werden. Wieviele Stunden in 7.1 bzw 7.2 jeweils inverstiert werden müssten, hängt von der Leistungsfähigkeit der Klasse ab, allerdings wären Doppelstunden wohl geeigneter als Einzelstunden. Kryptologie - Der weiße Fleck im Curriculum? 64 8 Kryptologie - Der weiße Fleck im Curriculum? Wo eine Frage ist, beginnt Unterricht! Wir haben in den vergangenen Kapiteln gesehen, dass die Kryptologie viele Fragen von allgemeinem Interesse aufwirft und längst keine Wissenschaft der „Freaks“ mehr ist. Was den Bedarf, unsere persönlichen Daten vor unbefugtem Zugriff zu schützen angeht, sind wir von geeigneten Möglichkeiten umzingelt. Umzingelt deshalb, weil wir zwar tagtäglich mit kryptographischen Methoden konfrontiert werden, wir aber nur selten wissen, was diese leisten können und vor allen Dingen was nicht. Dass sich immer wieder sogenannte Cracks Zutritt in geschützte Datenbereiche verschaffen können, hängt oft nicht mit der Unsicherheit des verwendeten kryptographischen Algorithmus zusammen, sondern mit dem falschen Gebrauch von Passwörtern (Kerckhoffs’ Prinzip). Daher sollten heute grundlegende Kenntnisse über die Kryptologie zur Allgemeinbildung gehören und damit auch Bestandteil allgemeinbildenden Unterrichts an öffentlichen Schulen sein. Wir haben gesehen, dass die Bildungspläne Baden-Württembergs in vielen Fächern Raum für die Behandlung dieser Thematik bieten, einige Aspekte der Kryptologie sogar teilweise fächerübergreifend unterrichtet werden könnten (Kapitel 3). Anregungen, wie dieser Raum - insbesondere im Mathematikunterricht - genutzt werden kann, ziehen sich wie ein roter Faden durch sämtliche Kapitel. Gerade dem Mathematikunterricht bietet die Kryptologie die Möglichkeit, sonst eher trockene Theorie (Division mit Rest) auf verschiedenen Ebenen des Spiralprinzips mit einer spannenden Anwendung zu bereichern und mit anderer angewandter Mathematik (Statistik, Kombinatorik) anschaulich zu verbinden. Kryptologie und Kryptanalyse setzen Neugierde im Unterricht nicht voraus, sie machen die Neugierde selbst zum Inhalt und sind daher von nicht zu unterschätzender Bedeutung für die - nicht nur - mathematische Bildung! Literatur zum Thema 65 9 Literatur zum Thema 9.1 Deutschsprachige Literatur, allgemein AMMON, U. V. / TRÖNDLE, K.: Mathematische Grundlagen der Codierung; Oldenburg Verlag, München 1974 BAUER, F. L. / GOOS G.: Informatik. Eine einführende Übersicht. Erster Teil; Springer-Verlag, Berlin 1982 BAUER, F. L.: Entzifferte Geheimnisse. Methoden und Maximen der Kryptologie; Springer-Verlag, Berlin 1997 BAUER, F. L.: Kryptologie. Methoden und Maximen; Springer-Verlag, Berlin 1994 BETH, TH. / HESS, P. / W IRL, K.: Kryptographie; Teubner Verlag, Stuttgart 1983 BEUTELSPACHER, A. / SCHWENK, J. / W OLFENSTETTER K.-D.: Moderne Verfahren der Kryptographie; Verlag Vieweg, Braunschweig 1995 BEUTELSPACHER, A.: Geheimsprachen. Geschichte und Techniken; Beck, München 1997 BEUTELSPACHER, A.: Kryptologie; Verlag Vieweg, Braunschweig 1994 Discovery 97. CD-ROM; Bertelsmann, Gütersloh 1997 DUSKE, J. / JÜRGENSEN, K. H.: Codierungstheorie; BI - Wissenschaftsverlag, Mannheim 1977 FORNECK, H. J.: Bildung im informationstechnischen Zeitalter; Verlag Sauerländer, Aarau 1992 FUHRBERG, K.: Internet - Sicherheit. Browser, Firewalls und Verschlüsselung; Hanser Elektronik, München 1998 FUMY, W. / RIES, H. P.: Kryptographie; Oldenburg Verlag, München 1994 GARFINKEL, S.: PGP. Pretty Good Privacy. Verschlüsselung von E-Mail; O’Reilly/VVA 1996 GIESEKE, W.: Hände weg von meinem PC; DATA Becker, Düsseldorf 1998 GOEBEL, J. W. / SCHELLER, J.: Elektronische Unterschriftsverfahren in der Telekommunikation; Verlag Vieweg, Braunschweig 1991 GOLLMANN, D.: Algorithmenentwurf in der Kryptologie; Spektrum Akademischer Verlag, Heidelberg 1994 GORSKI, H.-J.: Zum Einsatz des Computers als Werkzeug beim interaktiven Programmieren im Mathematikunterricht der Hauptschule; Verlag Barbara Franzbecker, Bad Salzdetfurth 1991 GRAMS, T.: Codierungsverfahren; BI Wissenschaftsverlag, Mannheim 1986 GRAUBNER, B.: ICD-10 Verschlüsselungsanleitung; Deutscher Ärzte-Verlag, Köln 1997 HAMM, R. / MÖLLER, K. P.: Datenschutz durch Kryptographie - ein Sicherheitsrisiko?; Nomos, Baden-Baden 1998 HARRIS, R.: Enigma; Heyne-Verlag, München 1995 Literatur zum Thema 66 HEISE, W. / QUATTROCCHI P.: Informations- und Codierungstheorie; Springer Verlag, Berlin 1989 HENZE, E. / HOMUTH H. H.: Einführung in die Codierungstheorie; Verlag Vieweg, Braunschweig 1974 HENZE, E. / HOMUTH H. H.: Einführung in die Informationstheorie; Verlag Vieweg, Braunschweig 1970 HIRSEMANN, H. / HIRSEKORN, H. / KADERALI, F.: Kryptologie. Interaktives Training. CD- ROM für Windows 3.1/95/ NT; Addison-Wesley, Bonn 1997 HIRZEBRUCH, F.: Codierungstheorie und ihre Beziehung zu Geometrie und Zahlentheorie. Westdeutscher Verlag, Opladen 1989 HOLE, V.: Erfolgreicher Mathematikunterricht mit dem Computer. Methodische und didaktische Grundfragen in der Sekundarstufe I; Auer - Verlag, Donauwörth 1998 HORSTER, P. / SPERLING, R.: Das Kryptosystem von McEliece. Ein Public-KeyKryptosystem auf der Basis von Goppa-Codes. Hochschultexte Informatik; Hüthig Verlag, Heidelberg 1989 HORSTER, P.: Kryptologie. Reihe Informatik. Band 47; BI Wissenschaftsverlag, Mannheim 1985 JUNGNICKEL, D.: Graphen, Netzwerke und Algorithmen; BI Wissenschaftsverlag, Mannheim 1990 KAMEDA T. / W EIHRAUCH K.: Einführung in die Codierungstheorie I; BI Wissenschaftsverlag, Mannheim 1973 KIPPENHAHN, R.: Verschlüsselte Botschaften. Geheimschrift, Enigma und Chipkarte; Rowohlt, Reinbeck 1997 KLIMANT, H. / PIOTRASCHKE, R. / SCHÖNFELD, D.: Informations- und Kodierungstheorie; Teubner Verlag, Stuttgart 1996 KÖBLER, J.: Kryptologie; Spektrum Akademischer Verlag, Heidelberg 1998 MILDENBERGER, O.: Informationstheorie und Codierung; Verlag Vieweg, Wiesbaden 1990 MINISTERIUM FÜR KULTUS UND SPORT (Hrsg.): Bildungsplan für das Gymnasium; Neckar-Verlag, Stuttgart 1994 MINISTERIUM FÜR KULTUS UND SPORT (Hrsg.): Bildungsplan für die Hauptschule; Neckar-Verlag, Stuttgart 1994 MINISTERIUM FÜR KULTUS UND SPORT (Hrsg.): Bildungsplan für die Realschule; Neckar-Verlag, Stuttgart 1994 PADBERG, F.: Elementare Zahlentheorie; BI Wissenschaftsverlag, Mannheim 1993 PETERSON, N. W.: Prüfbare und korrigierbare Codes; Oldenburg Verlag, München 1967 Literatur zum Thema 67 RADTZ, H. / SCHIPPER, W.: Handbuch für den Mathematikunterricht an Grundschulen REICHEL, H.-C. (Hrsg.): Computereinsatz im Mathematikunterricht; BI Wissenschaftsverlag, Mannheim 1995 ROHLING, H.: Einführung in die Informations- und Codierungstheorie; Teubner Verlag, Stuttgart 1995 SAUERBREY, J.: Langzahl-Modulo-Arithmetik für kryptographische Verfahren; Deutscher Universitätsverlag, Wiesbaden 1993 SCHÄFER, G.: Mit Sicherheit erfolgreich; v. Deckers, Heidelberg 1997 SCHMEH, K.: Safer Net. Kryptografie im Internet und Intranet; dpunkt-Verlag, Heidelberg 1998 SCHULZ, R.-H.: Codierungstheorie. Eine Einführung; Verlag Vieweg, Braunschweig 1991 SMITH, R. E.: Internet- Kryptographie; Addison-Wesley, Bonn 1998 SPITZNAGEL, A.: Geheimnis und Geheimhaltung. Erscheinungsformen, Funktionen, Konsequenzen; Hogrefe Verlag, Kornwestheim 1998 STALLINGS, W.: Datensicherheit mit PGP, Prentice Hall 1995 STEINACKER, A.: Anonyme Kommunikation in Netzen; BI Wissenschaftsverlag, Mannheim 1993 STRASSER, F. G.: Lingua Universalis. Kryptologie und Theorie der Universalsprachen im 16. und 17. Jahrhundert. Wolfenbütteler Forschungen. Band 38; Harrassowitz Verlag, Wiesbaden 1988 VELTEN, P.: Befugnisse der Ermittlungsbehörden zu Information und Geheimhaltung. Über Umfang und Kontrolle daraus resultierender Macht; Duncker u. H., Berlin 1995 W EIKERT, A.: Kryptographie mit dem Computer; Pflaum, München 1996 W ELSCHENBACH, M.: Kryptographie in C und C++; Springer-Verlag, Berlin 1998 W ELSH, D.: Codes und Kryptographie; Wiley/VCH, Weinheim 1991 W INKLER, K.: Mengen, Relationen, Abbildungen. Skript zur Vorlesung B1 (Basiswissen) „Mengen, Relationen, Abbildungen“ WS 1995/96, 1996 ZIEGENBALG, J.: Algorithmen. Von Hammurapi bis Gödel; Spektrum Akademischer Verlag, Heidelberg 1996 ZIEGENBALG, J.: Informatik und allgemeine Ziele des Mathematikunterrichts; In: Zentralblatt für Didaktik der Mathematik, 1983, S. 215 - 220 ZIEGENBALG, J.: Programmiersprachen und Programmierstile. In: Allgemeine Gesichtspunkte zum Computereinsatz im Mathematikunterricht. Mathematik / Informatik. Computer im Mathematikunterricht. Heft CM 4. Deutsches Institut für Fernstudien an der Universität Tübingen; Beltz Verlag, Weinheim 1989 Literatur zum Thema 68 ZIMMERMANN, P.: PGP. Pretty Good Privacy; Art D' Ameublement, Bielefeld 1997 9.2 Deutschsprachige Kinder- und Jugendliteratur zum Thema BOIE, K. / BRIX-HENKER, S.: Alles total geheim; Oetinger, Heidelberg 1990 CREYNFELD, C. / FRORATH, G.: Streng geheim. Das Buch für Detektive und Agenten; Edition moses, Kempen 1995 CRUMMENERL, R.: Streng geheim!; Arena-Verlag, Würzburg 1997 Die Knickerbocker-Bande. Geheim-Kalender; hpt Neuer Breitschopf Verlag 1998 FREY, J.: Achtung, streng geheim; Loewes Verlag, Bindlach 1998 Top Secret. Streng geheim. Wissen-, Witz- und Wunder- Mappe; Braun und Schneider, München 1993 9.3 Englischsprachige Literatur, allgemein ADAMEK, J.: Foundations of Coding. Theory and Applications of Error-Correcting Codes With an Introduction to Cryptography and Information Theory; Wiley 1991 Advances in Cryptology. ASIACRYPT ' 94; Springer-Verlag 1995 Advances in Cryptology. CRYPTO ' 96; Springer-Verlag 1995 Advances in Cryptology. EUROCRYPT ' 94; Springer-Verlag 1995 Advances in Cryptology. EUROCRYPT ' 96; Springer-Verlag 1996 BARKER, W. G.: Cryptanalysis of the Double Transposition Cipher. Includes Problems and Computer Programs (Cryptographic Series , No 69); Aegean Park Press 1996 BERNSTEIN, T. / BHIMANI, A. B. / SCHULTZ, E. / SIEGEL, C.: Internet Security for Business; Wiley 1996 BIHAM, E. / SHAMIR, A.: Differential Cryptanalysis of the Data Encryption Standard; Springer-Verlag TELOS 1993 CHOR, B.: Two Issues in Public Key Cryptography. RSA Bit Security and a New Knapsack Type System; M I T Press 1986 CHRISTIANSON, B. / LOMAS, M.: Security Protocols. 5th International Workshop, Paris, France, April 7-9, 1997. Proceedings (Lecture Notes in Computer Science, 1361); Springer-Verlag TELOS 1998 DAM, K. W. / LIN, H. S.: Lin Cryptography' s Role in Securing the Information Society; National Academy Press 1996 DEAVOURS, C. A.: Selections from Cryptologia. History, People, and Technology (The Artech House Telecommunications Library); Artech House 1998 DREW, G. N.: Using Set for Secure Electronic Transactions; Prentice Hall 1998 ELECTRONIC FRONTIER FOUNDATION: Cracking Des. Secrets of Encryption Research, Wiretap Politics & Chip Design; O' Reilly & Associates Inc. 1998 Literatur zum Thema 69 GAINES, H. F.: Cryptanalysis a Study of Ciphers and Their Solutions; Dover Publications 1993 GARDNER, M.: Codes, Ciphers and Secret Writing; Dover Publications 1984 GLEASON, N.: Cryptograms and Spygrams; Dover Publications 1981 GOLDREICH, O.: Modern Cryptography, Probabilistic Proofs and Pseudorandomness (Algorithms and Combinatiorics , Vol 17); SpringerVerlag TELOS 1999 GOLLMANN, D.: Fast Software Encryption; Springer-Verlag 1995 GREENFIELD, J. S.: Distributed Programming Paradigms with Cryptography Applications; Springer-Verlag 1994 GUTHERY, S. / JURGENSEN, T. M.: Smart Card Developer' s Kit; Macmillan 1997 HENDRY, M.: Smart Card Security and Applications (Artech House Telecommunications Library); Artech House 1997 HINSLEY, F. H. / STRIPP, A.: Codebreakers. The Inside Story of Bletchley Park; Oxford University Press 1994 HOFFMAN, L. J.: Building in Big Brother; The Cryptographic Policy Debate; Springer-Verlag TELOS 1995 Information Hiding; Springer-Verlag 1996 JENKINS G. / W ILD, A.: Be a Code Breaker!; Mystery Messages to Puzzle Over and Decipher; Parkwest Publications 1997 KAHN, D.: The Codebreakers; The Comprehensive History of Secret Communication from Ancient Times to the Internet; Scribner Book Company 1996 KNUDSEN, J. B.: Java Cryptography; O' Reilly & Associates Inc. 1998 KOBLITZ, N.: A Course in Number Theory and Cryptography (Graduate Texts in Mathematics, No 114); Springer-Verlag TELOS 1994 KOBLITZ, N.: Algebraic Aspects of Cryptography (Algorithms and Computation in Mathematics, Vol 3); Springer-Verlag TELOS 1998 KRIPPENHAHN, R.: Code Breaking. A History and Exploration; Overlook Press 1998 LUBY, M. G.: Pseudorandomness and Cryptographic Applications (Princeton Computer Science Notes); Princeton University Press 1995 LUGER, J.: Code Making and Code Breaking; LoomPanics Unlimited 1990 MENEZES, A. J. / VAN OORSCHOT, P. C. / VANSTONE, S. A.: Handbook of Applied Cryptography (CRC Press Series on Discrete Mathematics and Its Applications); CRC Press 1996 MERLIN HUGHES M. / HUGHES, C.: Applied Java Cryptography; Manning Publications 1998 MITCHELL, C.: Cryptography and Coding, II (The Institute of Mathematics and Its Applications Conference Series. New Series, No 33); Oxford University Press 1992 Literatur zum Thema 70 MOLL, L. B. / SHARPE, J.: Clever Cryptograms; Sterling Publishing 1994 MOLL, L. B.: Baffling Cryptograms; Sterling Publishing 1996 MOLL, L. B.: Cryptogram-A-Day Book; Sterling Publishing 1996 MOLL, L. B.: Literary Cryptograms; Sterling Publishing 1998 NASH, H. / MASTERSON, D.: Humorous Cryptograms; Sterling Publishing 1995 NASH, H.: Challenging Cryptograms; Sterling Publishing 1994 NEWTON, D. E.: Encyclopedia of Cryptology; ABC-CLIO 1997 NICHOLS, R. K.: ICSA Guide to Cryptography; McGraw-Hill Book Company 1998 NICKELS, H.: Secrets of Making and Breaking Codes; Carol Pub. Corp. 1994 PARKINSON, C. L.: Gospel Cryptograms (Quiz and Puzzle Books); Baker Book House 1994 PRADOS, J.: Combined Fleet Decoded. The Secret History of American Intelligence and the Japanese Navy in World War II; Random House 1995 RHEE, M. Y.: Cryptography and Secure Communications (McGraw-Hill Series on Computer Communications); McGraw-Hill Book Company 1993 ROSENHEIM, S. J.: The Cryptographic Imagination. Secret Writing from Edgar Poe to the Internet (Parallax (Baltimore, Md.).); The Johns Hopkins University Press 1996 ROUSE BALL, W. W. / COXETER, H. S. M.: Mathematical Recreations and Essays; Dover Publications 1987 SALOMAA, A.: Public- Key Cryptography; Springer-Verlag 1996 SCHNEIER, B. / BANISAR, D.: The Electronic Privacy Papers. Documents on the Battle for Privacy in the Age of Surveillance; Wiley 1997 SCHROEDER, M. R.: Number Theory in Science and Communication. With Applications in Cryptography, Physics, Digital Information, Computing, and Self-Similarity (3rd Ed); Springer-Verlag TELOS 1997 SEXTON, D. J.: Signals Intelligence in World War II. A Research Guide (Bibliographies of Battles and Leaders, No 18); Greenwood Publishing Group 1996 SIMMONS, G. J.: Contemporary Cryptology. The Science of Information Integrity; IEEE 1991 SMITH, L. D.: Cryptography the Science of Secret Writing; Dover Publications 1955 SMITH, R. E.: Internet Cryptography; Addison Wesley 1997 STALLINGS, W.: Practical Cryptography for Data Internetworks; Institute of Electrical & Electronic Engineer 1996 STINSON, D. R.: Cryptography. Theory and Practice (Discrete Mathematics and Its Applications); CRC Press 1995 STRIPP, A.: Codebreaker in the Far East; Oxford University Press 1995 VACCA, J. R.: Satellite Encryption; Academic Press Inc 1998 VAN DYKE, J.: Captivating Cryptograms; Sterling Publishing 1996 W AYNER, P.: Digital Copyright Protection; AP Professional 1997 Literatur zum Thema 71 W AYNER, P.: Disappearing Cryptography. Being and Nothingness on the Net; AP Professional 1996 W ELSH, D.: Codes and Cryptography; Oxford University Press 1988 W ILLIAM STALLINGS, W.: Cryptography and Network Security. Principles and Practice; Prentice Hall 1998 W RIXON, F. B.: Codes, Ciphers and Other Cryptic and Clandestine Communication: 400 Ways to Send Secret Messages from Hieroglyphs to the Internet; Black Dog And Leventhal Publishers 1998 ZIMMERMANN, P.: The Official PGP User' s Guide; MIT Press 1995 9.4 Englischsprachige Kinder- und Jugendliteratur BAILLY, S. / CANEVARI GREEN, A. C.: Pass It On!. All About Notes, from Secret Codes and Special Inks to Fancy Folds and Dead Man' s Drops; The Millbrook Press 1995 DURRET, D.: Unsung Heroes of World War II. The Story of the Navajo Code Talkers; Facts On File Publications 1998 FOWLER, M. / PAREKH, R.: Codes & Ciphers (Usborne Superpuzzles. Advanced Level); Educational Development Center 1992 HUCKLE, H.: The Secret Code Book. With Press-Out Code-Busters; Dial Books 1995 JACKSON, R.: Secret Codes. Decipher Secret Codes and Create and Send Your Own Hidden Messages and Cryptic Communications; Running Press Book Publishers 1996 JAMES, E. / BARKIN, C. / JAME, E. / SCHICK, J.: How to Keep a Secret. Writing and Talking in Code; Beech Tree Paperback Book 1998 JOHNSON, B. / DASTE, L.: Break the Code. Cryptography for Beginners; Dover Publications 1996 LEDDEN, C. / MCLEOD, C.: The Snack Sneak. Logic Games, Mysteries and Quests; Annick Press 1993 LOUISE B. MOLL, L. B. / JIM SHARPE, J.: The Great Book of Cryptograms; Sterling Publishing 1993 MILLER, M. / FRAZIER, J.: How to Write and Decode Secret Messages (Codemaster , No 1); Scholastic Professional Books 1998 MILLER, M. / FRAZIER, J.: How to Write and Decode Secret Messages (Codemaster , No 2); Scholastic Professional Books 1998 O' BRIEN, E. / RIDDELL, D.: The Usborne Book of Secret Codes (How to Make Series); Usborne Books 1997 PALLAS, N.: Games With Codes and Ciphers; Dover Publications 1994 SCHWARTZ, A.: The Cat' s Elbow and Other Secret Languages; Sunburst 1985 SMOOTHEY, M. / BAUM, A.: Codes and Sequences (Let' s Investigate); Benchmark Books 1995 Literatur zum Thema 72 W ELLER, J. / MIER, C.: Messages in Code (Hello Out There); Franklin Watts 1998 Anhang 73 10 Anhang 10.1 Programme zu den symmetrischen Verschlüsselungsverfahren 10.1.1 Das Programm SYMMETR.PAS Programmiersprache: Pascal Dies ist ein sehr einfach gehaltenes Programm, das lediglich das Testen der symmetrischen Verschlüsselungsverfahren Cäsar-Chiffre (klassisch), ROT13, allgemeiner Cäsar und Vigenère-Chiffre ermöglichen soll. So werden nur Buchstaben chiffriert und diese in Großbuchstaben umgewandelt, alle anderen Zeichen werden nicht in den Text aufgenommen. Allerdings macht es sehr schön deutlich, dass alle darin implementierten Verfahren, mit der Ausnahme allgemeiner Cäsar, prinzipiell den selben Chiffrier-Schritt verwenden. Über die Variable maxl kann die maximale Länge des einzugebenen Textes geändert werden. Dies muss allerdings vor dem Programmstart geschehen. Allerdings bestimmt maxl auch die Länge eines evtl. einzugebenden Schlüsselwortes, so dass sich mit der Vigenère-Chiffre auch ein One-Time-Pad realisieren lässt. Im ASCII-Code hat das A den Wert 65 und nicht 0. So muss dieser Wert immerwieder im Programm abgezogen werden. Um diese Besonderheit deutlich zu machen, wurde der Wert in einer eigenen Variablen (Konstante), start, festgelegt. Der Programmcode ist ausführbares Programm und als ASCII-Datei auf der beiliegenden Diskette abgespeichert. 10.1.2 Das Programm STAT.BAS Programmiersprache: BASIC Das Programm zählt nach das Vorkommen der 256 verschiedenen ASCII-Zeichen in einer gewöhnlichen ASCII-Text-Datei. Anschließend gibt es für jedes Zeichen die absolute und die relative Häufigkeit aus. Sollen die Werte auf einem Anhang 74 angeschlossenen Drucker ausgegeben werden, so muss jeder PRINT-Befehl durch LPRINT ersetzt werden. Das Programm abgespeichert. ist als ASCII-Text-Datei auf der beiliegenden Diskette 10.1.3 Das Programm CAESAR.BAS Programmiersprache: BASIC Dieses Programm kann nur einen eingegebenen Text in eine (klassische) CäsarChiffre verschlüsseln. Es soll als Beispiel für eine Implementierung in einer anderen Programmiersprache dienen. Das Programm ist als ASCII-Datei auf der beiliegenden Diskette abgespeichert. Anhang 75 10.2 Programme zu den asymmetrischen Verschlüsselungsverfahren Für die asymmetrischen Verschlüsselungsverfahren sind zwei MathemticaNotebooks in der Version 2.x (*.ma) und 3.x (*.nb) auf der beiliegenden Diskette abgespeichert. Dabei enthält das Notebook KEYS Module die zur Schlüsselerzeugung gebraucht werden, RSA enthält die Module zum RSAAlgorithmus. 10.2.1 Das Notebook KEYS Primes2000 ist kein Modul. Es enthält alle Primzahlen von 2 bis 1999, gefunden mit dem Sieb des Eratosthenes. test[p_] prüft, ob die Zahl p (k)eine Primzahl ist dem einem optimierten RabinMiller-Algorithmus. Dabei bei einer Zahl <2000 ein einfacher Brute-Force-Test mit Primes2000 durchgeführt, erst bei größeren Zahlen wird der Algorithmus aufgerufen. Das Programm kann nur feststellen, dass eine Zahl mit einer gewissen (allerdings sehr großen) Wahrscheinlichkeit prim ist. Eine Zahl die den Test nicht besteht ist aber garantiert keine Primzahl. Mehr zum Rabin-MillerAlgorithmus findet sich in Kapitel 4. rabinmiller[p_] ist der originale Rabin-Miller-Algorithmus und wird von test[p_] bei Bedarf aufgerufen. rest[zahl_,potenz_,modul_] berechnet den Rest von zahlpotenz : modul nach dem in Kapitel 4 beschriebenen Verfahren. erzeuge[n_] erzeugt eine garantiert n Bit lange Pseudo-Zufallszahl erzeugePrim[n_] erzeugt eine garantiert n Bit lange Pseudo-Zufalls-Primzahl. Dabei werden die Module erzeuge[n_] und test[n_] gebraucht. berlekamp[a_,b_] ist der Berlekamp-Algorithmus und berechnet eine Vielfachsummendarstellung der Form ggT(a,b) = xa + yb mit ganzzahligen x und Anhang 76 y. Er wird bei der Berechnung zur Berechnung der multiplikativen Inversen modulo n gebraucht. Mehr zum Berlekamp-Algorithmus kann man z.B. im Internet unter http://www.online.de/home/Georg.Doll/berlekamp/ erfahren. RInv[a_, m_] berechnet eine Zahl x mit dem Berlekamp-Algorithmus. RSAKeys[n_,file_,oeff_,raten_] berechnet die für den RSA-Algorithmus notwendigen Schlüssel. Dabei gibt n die Länge der beteiligten Primzahlen in Bit an. Die Zahlen werden in der Datei file in einer von Mathematica verwendeten Chiffre abgespeichert. (Das gemeinsame Abspreichern von öffentlichem und geheimen Schlüssel in einer Datei ist aus Sicherheitsgründen nicht empfehlenswert, tut aber dem Demonstrationscharacter der beiden Notebooks keinen Abbruch. Wird für oeff der Wert 0 (oder kleiner) eingegeben, so erhält der öffentliche Schlüssel e den standardmäßigen Wert 65365. Schließlich kann man noch versuchen, aus der Angabe des Produktes der beiden Primzahlen p und q, die Zahlen selbst zu errat. Dann gibt man für raten den Wert True ein. guess[p_,q] wird von RSAKeys aufgerufen, wenn für raten True eingegeben wurde. 10.2.2 Das Notebook RSA In den Variablen d, e und n sind der geheime Dechiffrier-Schlüssel d, der öffentliche Chiffrierschlüssel e und das Modul n (n ist 1023 Bit lang!) abgespeichert. (Als Beispielwerte, falls das Berechnen eigner zu lange dauern sollte) GetKeys[file_] lädt evtl. selbst berechnete abgespeicherte Schlüssel. und in der Datei file TextToNumbers[text_,nmax_] ermittelt die ASCII-Werte der in text enthaltenen Zeichen und setzt diese zu Zahlenblöcken mit Maximalwert nmax zusammen. Anhang 77 NumersToText[CL_] macht aus den in der Liste CL enthaltenen Zahlencodes wieder lesbaren Text. Da bei der Text-zu-Zahl-Konvertierung evtl. führende Nullen verlorengegangen sind, arbeitet sich das Modul bei jeder Zahl von hinten nach vorne, während es die Liste von vorne nach hinten abarbeitet. Codiere[BL_,e_,n_] „codiert“ die in der Liste BL stehenden Zahlenkolonen. Da sich beim RSA-Algorithmus das Ver- und Entschlüsseln im Verfahren nur durch den Schlüsselwert (e oder d) unterscheidet wird Codiere in beide Richtungen verwendet. verschl[text_,e_,n_] organisiert die Verschlüsselung von text mit den Schlüsseln e und n. entschl[CL_,d_,n] organisiert die Entschlüsselung der Zahlenkollonnen der Liste CL. RSACode[file_, e_, n_] organisiert die Verschlüsselung einer in file abgespeicherten Text-Datei. Vorausgesetzt, der Text ist in Anführungszeichen eingeschlossen, kommt das Verfahren auch mit Satz- und Sonderzeichen klar. RSADecode[file_,d_,e_] organisiert die Entschlüsselung RSACode verschlüsselten und in file abgespeicherten RSA-Chiffre. einer mit Code und Decode sind nach den in Kapitel 2 definierten Begriff Code nicht korrekt gewählt, haben sicher aber im allgemeinen Sprachgebrauch so eingebürgert. So nennt man das Gerät, welches Pay-TV-Programme entschlüsselt ja auch Decoder und nicht Dechiffrierer. Zur Demonstrationszwecken befinden sich auf der Diskette noch die Dateien text.txt (ein Beispieltext), code.txt (eine Beispiel-Chiffre) und mai.txt (die zugehörigen Schlüssel, identisch mit den oben genannten d, e und n. Anhang 10.3 Kopiervorlagen und Texte zu Kapitel 7 10.3.1 Die Schatzkarte Für eigene Schatzkarten hier noch eine Blanco-Karte: 78 Anhang 10.3.2 Die Chiffrier-Scheibe nach Leon Battista Alberti 79 Anhang 80 10.3.3 Edgar Alan Poe: Der Goldkäfer Der vollständige Text befindet sich als HTML-Dateien, als Word-Dokument und als ASCII-Text-Datei auf der Diskette. Nach Angabe des Gutenberg-Projekts besteht auf dieses Werk kein Copyright mehr, da der Auto über 50 Jahre tot ist. Anhang 81 10.4 Rechtlicher Hinweis: Der vorliegende Text darf ausschließlich zu privaten und unterrichtlichen Zwecken archiviert und vervielfältigt werden.! Bei der Konvertierung von Word 97 nach StarOffice 6 und weiter nach PDF kann es zu Fehlern insbesondere bei den math. Formeln gekommen sein. Für entsprechende Hinweise oder bei Unklarheiten wenden Sie sich bitte direkt an den Autor. Mail: [email protected] Feedback erwünscht!