_________________ ___________ / _____/\_ ___ \\_ _____/ / \ ___/ \ \/ | __) \ \_\ \ \____| \ \______ /\______ /\___ / \/ \/ \/ The German Computer Freaks www.gcf.de Since 1997 /\ / \ ________________________________________________________________________/ # / Kryptologie - Lehre von Geheimschriften - Einführung Paper \ / © IceT, 2003 (27.06.2003) - IceT@gcf.de \/ Dieses Tutorial wurde von mir IceT geschrieben, um allen die sich für dieses umfangreiche Thema interessieren einen kleinen Einblick in die Kryptologie zu gewähren. Ich habe ein kleines Inhaltsverzeichnis angefertigt indem unter folgenden Punkten diverse Informationen rund um die „Verschlüsselung“ beschrieben werden. Inhalt: Kapitel 1: Aller Anfang ist schwer 1.0: Vorwort 1.1: Einleitung 1.2: Wir beginnen bei den Römern 1.3: Die Caesar-Chiffrierung 1.4: Unser 1. Beispiel 1.5: ROT13 Kapitel 2: Algorithmen 2.0: Schutz von geheimen Dokumenten 2.1: Message Digests 2.2: MD4/MD5/SHA 2.3: DSS Kapitel 3: Ein wenig mehr ins Detail bitte! 3.0: Symmetrische Verschlüsselungen 3.1: Asymmetrische Verschlüsselungen 3.2: DES 3.3: RSA Kapitel 4: Vom 2. Weltkrieg 4.0: Rotorchiffrierung und Enigma Kapitel 5: Die Praxis 5.0: Das Programm Crack 5.1: Die Kryptografie 5.2: Schlußwort Kapitel 1: Aller Anfang ist schwer. Aller Anfang ist schwer, besonders wenn es sich um so ein umfangreiches Thema wie die Kryptologie handelt. Doch beginnen wir einfach direkt mit dem eigentlichen Tutorial. Vorweg erst einmal , möchte ich mich hiermit bei allen Personen bedanken die dieses Tutorial lesen Ich werde in diesem Paper mehr auf die eigentliche Kryptologie eingehen anstatt genau zu erklären wie berühmte Verschlüsselungen denn exakt funktionieren, d.h. es wird mehr Text zum Allround der Kryptografie bis hin zur modernen Technologie der heutigen Zeit vorhanden sein. Doch nun geht es wirklich los. Unser erster einstieg in die Kryptologie. 1.1: Einleitung Kryptologie ist ein ziemlich komplexes Thema. Fast jeder der dieses Wort schon einmal gehört hat denkt vielleicht an Geheimschrift , Geheimdienste, Kommunikation, das Militär etc. Und Sie haben richtig gedacht, alle diese Punkte haben etwas mit dem Gebiet Kryptologie zu tun. Man unterscheidet jedoch von zwei verschiedenen Wissenschaften die jedoch beide Bestandteil der eigentlichen Kryptologie sind. Da wäre erstens die Kryptoanalyse, sie ist eine Methode und Technik (auch Codebreaking genannt) die es möglich macht, beispielsweise Texte, ohne den Schlüssel trotzdem zu entschlüsseln. Die andere Wissenschaft ist die Kryptografie, sie umfasst eigentlich alle Methoden und Verfahren um Daten durch Verschlüsselungen zu schützen. Wir wissen heute das die Kryptologie Tausende von Jahren in der Geschichte zurückliegt denn sogar die alten Römer nutzten Methoden um geheime Botschaften zu verschlüsseln. 1.2: Wir beginnen bei den Römern Wir beginnen nun am besten bei den alten Römern. Jeder der sich auch nur ein bischen mit Kryptologie auskennt kennt die simple Verschlüsselungsform : Die Caeser-Methode. Wie der Name schon aussagt wurde sie von dem römischen Imperator „Gaius Julius Caesar“ benutzt um sicherzustellen das seine Botschaften nicht in falsche Hände gerieten . Nun gut wir wollen nicht mehr auf die römische Geschichte eingehen sondern uns eher mit der eigentlichen Verschlüsselung befassen. 1.3: Die Caesar-Chiffrierung Die Caesar-Chiffrierung ist beinahe einer der einfachsten Verschlüsselungen. Cäsar ersetzte einfach jeden Buchstaben durch einen der im Alphabet 3 stellen hinter dem Buchstaben steht. Man kann sich das ganze auch an einer kleinen drehbaren Alberti- Scheibe vorstellen. Auf der Drehscheibe sind alle Buchstaben des Alphabets zu finden. Nun dreht man die Scheibe drei mal in Uhrzeigerrichtung (Verschiebechiffre) und dann ist es möglich jeden inneren Buchstaben den äußeren Zuzuordnen. Wie wir sehen ist die ganze Methode also nur von der Anzahl der Verschiebungen abhängig. Es bleibt jedoch nur eine Frage offen: Eine Verschlüsselung ohne Schlüssel? Doch das ist nicht ganz der Fall , denn der Schlüssel wie in Cäsars Beispiel ist 3. Es sind also maximal 26 Schlüssel möglich, um einen beliebig großen Text zu verschlüsseln, also von 1-26. Die 0 lässt man indem Fall raus da der Text sich ja nicht verändern würde. Zum entschlüsseln sind es 1-25. Demnach folgt das Alphabet nach der Caeser-Verschlüsselung (Schlüssel = 3 ) wie folgt: ABCDEFGHIJKLMNOPQRSTUVWXYZ DEFGHIJKLMNOPQRSTUVWXYZABC Mathematisch lässt sich das ganze so erklären : C = p + s mod 26 d.h. also das s = Schlüssel, c= erzeugtes Geheimtextzeichen, p= klartextzeichen ist. mod 26 bedeutet in diesem Beispiel eigentlich nur ob p+s größer oder gleich 26 werden. Ist dies der fall wird von der Summe 26 abgezogen. Diese Methode mag zwar früher ein unglaublicher Hürdenstein gewesen sein , ist aber heute durch Computer auch ohne den Schlüssel innerhalb weniger Sekunden zu knacken. 1.4: Unser 1. Beispiel So nun erstmal genug der Theorie , setzen wir unser jetziges Wissen doch einfach mal in die Praxis um! Wir beginnen mit einem kleinem Beispiel da zu lösen ist : HmiGeiwev-QexvmB – Hier bei handelt es sich um einen einfach Text der durch die Caesar-Methode verschlüsselt wurde. Am besten man probiert es einfach mal mit Blatt und Papier ohne Computer aus , um zu sehen wie echte kryptoanalytiker in früheren Zeiten gearbeitet haben. Die Lösung werde ich nicht bekannt geben. Nun sollte das erste Beispiel mittlerweile gelöst sein, denn wir kommen zu einem kleinen schwierigeren Beispiel das sie auch ohne Computer lösen sollten . Um es nicht ganz so schwer zu machen gebe ich den Schlüssel an: (7) Eine Lösung wird aber nicht veraten. Viel Spaß beim lösen ? ZloynlloyAlySlzlypjorhuupouluuBuoplytpAtpAAlpslukhzzplkplJhlzly-JopmmyplyBun ilolyzjolucplsZwhßtpAkplzltdpzzlu Pjla Tja das war es dann mit unseren ersten Beispielen. Ich hoffe das dabei nicht allzu große Probleme entstanden sind. Sollte jemand trotzdem noch Schwierigkeiten damit haben kann mir ruhig eine Email ( Adresse ist ganz zum Schluss zu finden) schreiben. Im groben war es das auch schon mit Der Cäsar-Verschlüsselung. Sie wird zwar immer eine bedeutende Rolle in der Kryptologie spielen und in anderen Verfahren bzw. Programmen auftauchen, jedoch sparen wir uns jetzt eine detaillierte Beschreibung. Viel mehr möchte ich jetzt direkt auf den nächsten Punkt eingehen. Das ROT13 Verfahren. 1.5: ROT13 ROT13 ist ein einfaches unter UNIX verbreitetes Verschlüsselungsprogramm das sich der Cäsar-Verschlüsselung bedient und heißt wörtlich übersetzt „rotiere um 13 Buchstaben“. Nur wird hierbei immer der Schlüssel 13 benutzt um vor dem vermeidlichen „mitlesen“ zu schützen. Man kann diese Methode übrigens auch wunderbar in eine HTML-Datei per Javascript einbinden. Kapitel 2: Algorithmen In diesem Kapitel werde ich nun mehr auf die allgemeine Sicherheit durch bekannte Algorithmen eingehen. Als Beispiel werden wir uns mit den MD-Verschlüsselungsverfahren sowie Digitalen Signaturen genauer auseinandersetzen. Dieser Abschnitt wird wohl eher komplizierter ausfallen doch nun legen wir besser gleich mit der Theorie los. 2.0: Schutz von geheimen Dokumenten Eine wesentliche Problemfrage die heute (besonders von großen Firmen/Konzernen etc.) immer wieder gestellt wird ist ob diverse Kryptografie-Methoden wirklich funktionieren und für wenigstens akzeptable Sicherheit sorgen. Zumal ist ein weiteres Problem, dass viele Unternehmen zum Beispiel auch in Deutschland , auf Verschlüsselungs-methoden verzichten oder sogar nur vereinzelt einsetzen. Und das obwohl fast jeder Mensch, der einen Computer besitzt , über verschiedene Daten verfügt, die durchaus geheim bleiben sollten. Doch nun zum eigentlichen Thema zurück, ich werde nun erläutern was es für verschiedene Methoden gibt Daten zu schützen. Hier ein kleiner Einblick in die Moderne Kryptologie. 2.1: Message Digests Eine wesentlich häufig angewendete Methode um Dokumente zu schützen ist die Herstellung sog. MD-Verfahren. Message Digests (MD) erzeugen nichts weiter als einen digitalen Fingerabdruck der dabei durch bestimmte Hashfunktionen auf vorher ausgewählte Daten hergestellt wird. Mit diesen Message-Digests - Algorithmen (MD2,MD4,MD5 und SHA-1) können dann anschließend Digitale Signaturen erzeugt werden. 2.2: MD4/MD5/SHA Um nicht alle Verfahren genau zu besprechen werde ich hier nun die wichtigsten kurz erläutern. Wer eine spezifischere Anleitung zu den Message-Digest Algorithmen haben will, kann gerne in den RFCs 1319,1320 und 1321 nachschauen. Das Message Digests Nr. 4 ist wohl neben MD5/2 eines der bekanntesten Hash-Algorithmen. Alle MD-Vefahren beruhen auf den gleichen Prinzipien und wurden alle von Ron Rivest entwickelt. MD4 (speziell für 32Bit Systeme optimiert) bildet die grundlegende Struktur für SHA (Secure Hash Algorithm). Dieser Algorithmus erhöht als erstes die Länge einer bestimmten Nachricht um ein vielfaches von 512 Bit , indem eine 1 sowie benötige Nullen an die Orginalnachricht angehängt werden und sich anschließend ein Hashwert von einer 128Bit Länge bildet. MD4 ist jedoch direkt nach der Veröffentlichung als unsicher eingestuft worden , da schon bald schwierige Auseinandersetzungen mit der mangelnden Kollisionsbeständigkeit auftauchten. RSA selbst bezeichnet diese Methode als geknackt. Sicherer und häufig verbreiteter gilt hingegen die Hashfunktion MD5, weil diese besser gegen die bereits bekannten Sicherheitslücken abgesichert worden ist. Diese Verschlüsselungsmethode beruht auf MD4 und MD2 und wird unter anderem in PGP(Pretty Good Privacy) und PEM (Privacy Enhanced Mail) - Versionen verwendet. Da es leider keine 100% sichere Methoden gibt , wurden auch schon einige kleinere Lücken in MD5 gefunden , so ergab sich ein Angriff auf die Kompressionsfunktion, das diese trotz überarbeitetem Design nicht Kollisionsfrei ist. Ein weitere bekannter Algorithmus ist SHA (Secure Hash Algorithm). SHA wurde zusammen in einem Projekt von NIST (National Institute of Standards and Technology) und NSA (National Security Agency) für den DSS (Digital Signature of Standard) entwickelt. Nach einem schweren Designfehler wurde dieser Bug schnell in SHA-1 korrigiert. Secure Hash Algorithm – 1 nutzt einen Hashwert von 160Bits und gilt von daher sogar sicherer als MD5. 2.3: DSS Im Jahre 1991 entwickelte NIST (National Institute of Standards and Technology) mit DSS (Digital Signature Standard ) ein Verfahren für Digitale Signaturen. Hierbei wird der Algorithmus DSA (Digital Signature Algorithm) benutzt. DSA basiert auf einem Public-key Algorithmus von ElGamal und Schnorr und hat heute nach einigen Sicherheitslücken eine Schlüssellänge von 1.024 BIT. Hiermit wäre dieses Kapitel eigentlich auch schon abgeschlossen, im nächsten Teil werden wir auf symmetrische sowie asymmetrische Verfahren eingehen. Kapitel 3: Ein wenig mehr ins Detail bitte! 3.0: Symmetrische Verschlüsselungen: In der Kryptografie gibt es grundlegend zwei verschiedene Verfahren zur Verschlüsselung: Symmetrische und Asymmetrische Verschlüsselung. Symmetrische Algorithmen nutzen nur einen geheimen Schlüssel der beim versenden einer Nachricht, dem Empfänger und natürlich dem Sender bekannt sein muss. Ein wesentlicher Vorteil bei dieser Methode ist das Nachrichten sehr viel schneller versendet werden können. Jedoch besteht das einzige Problem darin, wie der notwendige Schlüssel dem Empfänger der Nachricht, vorher mitgeteilt wird. 3.1: Asymmetrische Verschlüsselungen: Asymmetrische Verschlüsselungen nutzen zwei Schlüssel , einen geheimen und einen öffentlichen Schlüssel zum ver- und entschlüsseln. 1976 gaben Martin E. Hellman und Whitfield Diffie in ihrem weit verbreiteten und ebenfalls bekannten Projekt „New Directions in Cryptography“ erstmals ein solches Verfahren bekannt. Sie erläuterten ihr Verfahren so, dass nicht nur einen Schlüssel zum Verschlüsseln von Nachrichten benutzt wird , sondern genau zwei. Diese werden genau so funktionieren , so dass mit dem öffentlichen Schlüssel verschlüsselte Nachrichten, nur mit den notwendigen Privaten-Schlüssel wieder entschlüsselt werden können. 3.2: DES Eines der bekanntesten symmetrischen Verschlüsselungsverfahren ist DES (Data Encryption Standard). 1973 wurde erstmals von NBS (National Bureau of Standards) der Entwurf von DES öffentlich bekannt gegeben und 1976 zum offiziellen Standard in der weltweiten Verschlüsselung erklärt. Obwohl dieses Verfahren damals nicht zur Geheimhaltung von strengst geheimen und Top-Secret Informationen gedacht war (was schon einige Zweifel von Experten hervorrief) , wurde 1978 DES auf Kompatibilität und Sicherheit überprüft, mit dem Urteil das es frei von Sicherheitslücken ist. Nur der Kryptoanalyse von Biham und Shamir im Jahre 1990 haben wir es zu verdanken, das die Entwurfspläne der sogenannten S-Boxes - (S-Boxen wurden zur Überprüfung des DES an die NSA geschickt. Die NSA aber veränderte einfach die Schlüssellänge von 128 auf 56 Bit , da sie angeblich selbst eine Hintertür einbauen oder verhindern wollten das die IBM keine Backdoor zuvor ihnen einrichtet. Das konnte man daran vermuten als die S-Boxen alle verändert zurückkamen. Jedoch blieben alle Entwurfsgeheimnisse darum verborgen.) – veröffentlicht wurden. Denn schon 1977 soll die erfolgreiche Kryptoanalyse gegen DES , NSA sowohl auch IBM bekannt gewesen sein. Nun gut , das war nun erstmal ein wenig zu Geschichte des Data Encryption Standard. Gehen wir am besten nun auf das eigentliche Verschlüsselungsverfahren selbst ein. Zur Verschlüsselung verwendet DES einen 56 Bit langen Schlüssel und konvertiert mit dem sog. BlockCypher-Verfahren 64-Bit Klartext in 64 Schlüsselblöcke. Dieser ganze Vorgang passiert in 16 Schlüsselabhängigen Runden. Der Ausgangstext wird hierzu einer Reihe von Bitweise Verschiebungen (Permutationen) und Substitutionen unterworfen. Anschließend wird dieses Ergebnis (32BIT-Block) durch ein EX-OR mit dem eigentlichen Klartext verknüpft. Ein wesentlich großer Vorteil von Data Encryption Standard ist die vorhandene Hardwareimplementierung wodurch selbst große Datenmengen innerhalb kürzester Zeit ver- sowie entschlüsselt werden. Relativ häufig findet man eine andere Version von DES in Home Netzwerken. Triple DES Funktioniert ähnlich wie sein Vorgänger , nur das wie der Name schon sagt eine dreifach Verschlüsselung stattfindet in dem drei Schlüssel benutzt werden. Jedoch kann man allgemein nicht sagen wie Sicher denn nun DES wirklich ist. Es mag zwar einige erfolgreiche angriffs-Methoden geben bzw. Stattgefunden haben, wie zum Beispiel : Brute Force oder lineare Kryptoanalyse , jedoch lässt sich über diese Aussage immer wieder streiten. Wobei ich Persönlich der Meinung bin das es hier auf die Leistung des vorhanden Rechners ankommt und wie lange ein Brute Force angriff braucht um eine gewisse Länge zu entschlüsseln. Heutzutage sollte dies jedoch kein Problem mehr sein. 3.3: RSA Nun kommen wir zu einem etwas interessanteren Punkt. Ich werde diesen jedoch nicht ausführlich beschreiben sondern nur eine kleinere Einleitung dazu bekanntgeben. Der am meisten benutzte und bekannteste Algorithmus ist die Umsetzung der Public-Key Idee von Diffie/Hellman. Der sogenannte RSA-Algorithm erfunden von Ronald Rivest, Adi Shamir und Leonard Adlemann basiert auf die Methode , große ganze Zahlen in zwei Primfaktoren zu zerlegen , die dann multipliziert werden und anschließend die Ausgangszahl ergeben. Früher mag diese Primfaktorzerlegung eine äußerst aufwendige und dazu noch schwierige Methode gewesen sein , ist jedoch heute innerhalb von wenigen Tagen zu lösen, wobei es hier auf die eigentliche Bitanzahl ankommt. Eine genaue Erklärung des Aufbau und der Funktion des RSA-Verfahren würde deutlich weit über das Tutorial hinausgehen, deshalb lasse ich dieses Thema besser aus. Vielleicht werde ich demnächst mal ein ausführliches Paper dazu schreiben. Beschäftigen wir uns hingegen eher mit den Schwächen und der allgemeinen Sicherheit des Algorithmus. Ein wesentlicher Nachteil der durchaus einigen bekannt sein dürfte ist, dass die Benutzung von RSA ziemlich hohe Hadwareanforderungen benötigt, somit sind zum Ver- und Entschlüsselung von Nachrichten beliebiger größer , deutlich schnelle Hardware notwendig. Schwere Sicherheitslücken sind in RSA aber nicht zu finden und bei einer Bit Anzahl von 2048 gilt diese Technik als absolut sicher, denn es werden sogar heute noch verwendete Schlüsselängen von 1024 Bit benutzt und für dementsprechend sicher gehalten. Kapitel 4: Vom 2. Weltkrieg Nun werfen wir einen Blick zurück in die Geschichte und landen bei einem wichtigen und zugleich tragischen historischem Ereignis, dem zweiten und ersten Weltkrieg. Nun fragen sich sicher einige, was dies wohl mit der Kryptologie zu tun hat. Das werde ich jedoch weiter unten unter den einzelnen Punkten dieses Kapitels erklären. 4.0: Rotorchiffrierung und Enigma: Bereits im 1. Weltkrieg spielte die Kryptografie und Kryptoanalyse eine besondere Rolle. Denn schon damals versuchte man bestimmte Funksprüche sowie andere Mitteilung zu verschlüsseln. Allerdings geschah das nur mit einigen weiterentwickelten des bekannten Vigenère-verfahren und dazu kam noch die Arbeit per Bleistift und Papier. Na gut , man mag Früher zwar auch andere Stifte dafür benutzt haben ..... , aber schließlich kam es dann doch zu einem entscheidenden Wendepunkt der Geschichte. Es startete das damals moderne Zeitalter der Rotorchiffrierung. Rotormaschinen sind elektromechanische Verschlüsselungsgeräte die damals im 2. Weltkrieg sehr häufig produziert wurden. Sie bestehen aus mind. drei bis vier Rotoren. Rotoren sind runde Scheiben auf denen 26 Kontakte angebracht sind. Jeder dieser Kontakte ist mit einem anderen auf der gegenüberliegenden Scheibe verbunden und sobald man einer dieser 26 verschiedenen Tasten drückt, fließt Strom durch diese Verbindungen. Anschließend leuchtet auf der gegenüberliegenden Seite das jeweilige Lämpchen auf. Es entspricht also einer einfachen Substitution. Nach diesem Tastendruck wird also der Rotor um ein Zeichen gedreht und somit dreht sich auch gleichzeitig der mittlere Rotor. Ein gutes Beispiel dafür ist die bekannte Chiffriermaschine ,,Enigma“ die ebenfalls im 2. Weltkrieg eine wichtige Verwendung fand. Erfunden wurde sie von Arthur Scherbius und funktioniert ähnlich wie die Rotorchiffrierung, nur das hierbei eine Zusätzliche Rotorscheibe hinzugefügt wird. Genauer will ich nun ach nicht darauf eingehen , ich hoffe das war erstmal verständlich genug. Schreiten wir nun zum nächsten Kapitel über. Kapitel 5: Die Praxis Wenden wir uns langsam dem Ende zu , als Beispiel werde ich noch die Vorstellung eines Programms und ein Fazit über Kryptografie hinzufügen. Na dann auf zum nächsten Thema! 5.0: Das Programm Crack: Das Programm Crack von Alec D.E. Muffett ist ein frei erhältliches Programm das schwache Unix Passwörter aufdeckt. Da das Unix-passwort Verschlüsselungsverfahren allgemein als ziemlich sicher gilt, bestehen jedoch die einzigen Schwachstellen darin, das die Festlegung des eigentlichen Passwortes oftmals ziemlich ,,Schwach“ ist. Das Heißt es werden einfache Passwörter wie zum Beispiel der eigene Vorname oder Geburtsdatum etc. gewählt. Aus Sicherheitsgründen sollte man deshalb besonders in größeren Unternehmensnetzwerken, des öfteren ,,Crack“ über die etc/passwd–Datei laufen lassen. Schutz vor crack gibt es heute durch die Festlegung der password Datei im verschlüsselten Ordner /etc/shadow . 5.1: Die Kryptografie : Die Kryptografie ist ein wirklich riesiges und komplexes Thema. Ich habe mich deshalb in diesem Tutorial bemüht , allen einen kurzen und verständlichen Einblick in die Kryptologie zu gewährleisten. Die Kryptografie spielt hierbei eine besondere Rolle, wir lernten das sie sogar schon vor Jahrhunderten erstmalige Verwendung beim verschlüsseln von Nachrichten fand. Heutzutage haben wir bereits beachtliche Fortschritte erzielt und nur der modernen Kryptologie es zu verdanken das Daten ,,sicher“ übermittelt werden können. Sicherheitsspezifisch kann man nie spekulieren das es je einen 100% sicheren Algorithmus geben wird denn mit der Zeit wird es immer wieder neue ,,Top-level“ Computer geben die Beispielsweise 2048 Bit Schlüssel innerhalb weniger Sekunden knacken können. Dies wird wahrscheinlich erst in einigen Jahren möglich sein. Bis dahin gibt es jedoch wieder neue Methoden und Algorithmen. 5.2: Schlußwort. Zuletzt möchte ich mich bei allen bedanken die dieses Tutorial gelesen haben. Vorallem danke ich wegen den reichlichen und informativen Informationsquellen Reiner Wobst umfangreiches Buch ,, Abenteuer Kryptologie“ und Othmar Kyas, Markus a Campo Bestsellers IT-Crackdown. Ich möchte dennoch darauf hinweisen das dieser Text völlig meinem Copyright unterliegt und somit nicht in irgend einer Weise ohne meine Erlaubnis verändert oder verkauft werden darf. Kryptologie-Einführung von IceT alias Patrick S.