Kryptologie Zur Terminologie Die Begriffe KRYPTOLOGIE und KRYPTOGRAPHIE entstammen den griechischen Wörtern kryptos (geheim), logos (Wort, Sinn) und graphein (schreiben). Kryptographie ist die Lehre vom Entwurf von Kryptosystemen. Kryptoanalyse beschäftigt sich mit Angriffsmodellen und Kryptologie bedeutet die Gesamtheit dieser Wissenschaften. 1. Grundlagen Sicherheitsziele Kryptographie strebt folgende Ziele an 1. Geheimhaltung einer Nachricht: Vertraulichkeit. 2. Sicherstellung, dass eine Nachricht unverfälscht beim Empfänger ankommt: Integrität. 3. Sicherstellung, dass der Absender authentisch ist: Authentizität. Dazu bieten sich folgende Methoden an: Existenz einer Nachricht verheimlichen (geht nicht immer). Übermittlung über einen gesicherten Weg oder gesicherte Person (Sabotage möglich). Verschlüsseln (auf die Mathematik ist Verlass). 3
Anwendungsgebiete Seit Jahrhunderten werden durch kryptographische Verfahren Nachrichten und Dokumente geschützt. In heutiger Zeit ist die Kryptographie eine Schlüsseltechnik zur Absicherung von Netzwerken. Verschlüsselungsverfahren garantieren die Vertraulichkeit von Nachrichten. Digitale Signaturen belegen ihre Authentizität. Signaturen als elektronische Unterschriften Passwörter oder Chipkarten sichern die Identität der Benutzer von Rechnersystemen. Durch Datenauthentifizierung können Manipulationen an Programmen durch Viren erkannt werden. Internet-Browser und E-Mail-Programme sichern ihre Kommunikation durch Verschlüsselung, Signaturen und Zertifikate ab. Wir gehen von folgendem einfachen kryptographischen Modell aus, in dem der Angreifer in der Übertragungsstrecke agiert. Wenn gewährleistet ist, dass Absender und Empfänger sicher arbeiten, besteht der Angriffsbereich aus dem mittleren Teil. Abbildung 1. Das Übertragungsmodell Seite 4
Geheimhaltung X darf c nicht entschlüsseln können Integrität Authentizität Bob soll erkennen, dass die Nachricht c verändert wurde Bob muss feststellen können, dass die Nachricht von Alice stammt. Seite 5
2 Historische Anwendungen Die Skytala von Sparta (vor ca. 2500 Jahren) Sie diente zur militärischen Nachrichtenübermittlung. Die Skytala war ein Zylinder mit festem Radius, auf den spiralförmig ein Band aus Pergament aufgewickelt wurde. Die Nachricht wurde längs des Zylinders auf das aufgewickelte Band geschrieben; anschließend wurde das Band abgewickelt. Der Empfänger musste einen Zylinder mit gleichem Durchmesser besitzen, auf den er das Band aufwickeln und die Nachricht lesen konnte. Abbildung 2. Skytala von Sparta Durch das Abwickeln des Bandes ändert sich die gegenseitige Lage der Buchstaben zueinander. Chiffriertyp: Transpositionsalgorithmus Die Buchstaben bleiben unverändert, ihr Ort wechselt (Permutation des Ortes der Buchstaben). Seite 6
Ein weiteres Beispiel für diesen Chiffriertyp ist die sogenannte Gartenzaunverschlüsselung. Klartext: HIER WIRD VERSCHLUESSELT H E W R V R C L E S L I R I D E S H U S E T Geheimtext: HEWRVRCLESL IRIDESHUSET Verschlüsselung mit drei Zeilen: I A N E G T S S D S I G T R L O I H U? T E U A R M Geheimtext: IANEGTS SDSIGTRLOIHU? TEUARM Aufgabe: Beschreiben Sie den Algorithmus in Worten. Geben Sie den Schlüssel für das Verfahren an. Seite 7
Caesar-Verfahren Gaius Julius Caesar (100-44 v. Christus) Er stellte die Weichen für das Römische Kaiserreich, vollendet durch seinen Stiefsohn Oktavian (später Augustus), und damit für Europa bis ins Mittelalter hinein. Von seinen politischen Maßnahmen und Reformen wirkt die von Papst Gregor abgewandelte Version des von Caesar eingeführten Julianischen Kalenders noch bis in unsere Zeit. Klartextalphabet: Geheimtextalphabet 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 Der Klartextbuchstabe wird durch den darunter stehenden Buchstaben ersetzt. Beispiel: Das Wort informatik wird zu lqirupdwln chiffriert. Es gibt 25 (plus 1 triviale) Chiffrierungen. Der Chiffrieralgorithmus beim Caesar-Verfahren besteht darin, einen Buchstaben durch seinen k-ten (bei Caesar: k = 3) Nachfolger zu ersetzen (Verschiebealgorithmus). Der Schlüssel ist die geheime Zahl k < 26. Die Dechiffrierung erfolgt durch Ersetzung des Buchstabens durch seinen k-ten Vorgänger. Chiffriertyp: Substitutionsalgorithmus (hier: monoalphabetische Substitution) Jeder Buchstabe wird stets durch denselben Geheimtextbuchstaben ersetzt. Im verallgemeinerten Fall entspricht dies einer Permutation der Buchstaben des Alphabets. Es gibt 26! 4*10 26 monoalphabetische Substitutionen über dem Alphabet A = {a,..., z }. Seite 8
Chiffrierung durch Schlüsselwörter Der Schlüssel besteht aus zwei Teilen: Schlüssel k = (Schlüsselwort; Schlüsselbuchstabe) Beispiel: Schlüsselwort = GEHEIMSCHRIFT Alle mehrfach auftretenden Buchstaben werden gestrichen: GEHIMSCRFT Falls der Schlüsselbuchstabe = e ist, wird der Anfang des gekürzten Schlüsselwortes unter den Buchstaben e gesetzt: Klartextalphabet: Geheimtextalphabet 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 w x y z g e h i m s c r f t a b d j k l n o p q u v Die restlichen Geheimbuchstaben schreibt man in alphabetischer Reihenfolge dahinter. Das Wort informatik wird zu mteajfwlmc chiffriert. Aufgabe Welcher Chiffriertyp ist hier gegeben? Verschlüsseln Sie das Wort geheim (Ihren Vor- und Nachnamen). Seite 9
Der Polybius-Code Der griechische Geschichtsschreiber Polybius (etwa 200 v. Chr.) erwähnte einen Code, der die Buchstaben des Alphabets durch zweistellige Zahlen ersetzt. Die Buchstaben des Alphabetes werden dazu in eine Matrix aus 5 Zeilen und 5 Spalten eingetragen. Da das Alphabet aus 26 Buchstaben besteht, besetzen die Buchstaben "I" und "J" denselben Platz. Beim Verschlüsseln wird jeder Buchstabe durch ein Zahlenpaar ersetzt, das sich aus seiner Position der Zeilen- und Spaltennummer ergibt. Der Buchstabe "D" wird durch die Zahl 14, der Buchstabe "R" durch 42 ersetzt. 1 2 3 4 5 1 A B C D E 2 F G H I / J K 3 L M N O P 4 Q R S T U 5 V W X Y Z Aufgabe: Verschlüsseln Sie folgende Sätze INFORMATIK IST TOLL MATHEMATIK IST SCHOEN KRYPTOGRAPHIE MIT POLYBIUS Aufgabe: Entschlüsseln Sie 434442153322 221523152432 Seite 10
Zusammenfassung Alphabet: (von alpha und beta, den ersten beiden Buchstaben des griechischen Alphabets) Zeichenmenge, aus denen Klartext bzw. Geheimtext gebildet sind. Chiffrieralgorithmus: Er ist durch eine Tabelle, eine Funktion oder eine Maschine festgelegt. Schlüssel: Geheime Zahl k ( key ), die im Algorithmus angewendet wird. Der Schlüssel muss beiden Kommunikationspartnern bekannt sein. Nachricht: Zeichenfolge (Klartext oder Geheimtext), die eine Information übermittelt. Die Aufgabe eines Chiffrieralgorithmus ist es, Klartexte so in Geheimtexte zu transformieren, dass ein Angreifer ohne Kenntnis des Schlüssels den Text nicht entschlüsseln kann. Der Verschlüsselungsalgorithmus kann durch eine Funktion f k beschrieben werden. Beispiel Caesar-Verfahren D = W = {a, b, c,... z } f k : D W, wobei k der Schlüssel ist. Ist m D, dann gilt m c =f k m. Der Buchstabe c ergibt sich aus m als der k-te Nachfolger. Der Empfänger muss f k (m) entschlüsseln, d.h. es muss die Umkehrfunktion f k -1 mit f k -1 (fk (m)) = m geben. Beim Caesar-Verfahren ist D = W. Die Verschlüsselung in ein anderes Alphabet ist auch möglich. Wird das Verfahren dadurch sicherer? Seite 11
Achtung: Der Algorithmus (die Maschine) sollte öffentlich zugänglich sein. Dadurch wird gewährleistet, dass er von unabhängigen Experten auf Schwachstellen untersucht werden kann. Die Sicherheit darf demnach nur von der Geheimhaltung und "Güte" des Schlüssels abhängen! Das Prinzip von Kerckhoffs (1835-1903) Die Sicherheit eines Kryptosystems darf nicht von der Geheimhaltung des Algorithmus abhängen, sondern nur von der Geheimhaltung des Schlüssels. Das Ziel der modernen Kryptograhie ist es, Verschlüsselungssysteme zu entwerfen, die auch dann sicher bleiben, wenn das Verfahren öffentlich zugänglich ist. Dadurch, dass der Algorithmus öffentlich ist, kann er von Kryptographen auf mögliche Schwachstellen oder Hintertüren untersucht werden. Kryptoanalyse Versuch der Dechiffrierung des Geheimtextes ohne den Schlüssel Analyse auf Schwachstellen und Bewertung des Algorithmus Bereitstellung mathematischer Aussagen darüber, wie sicher das Verfahren ist Beispiele Systematisches Durchprobieren aller möglichen Schlüssel (umfangreich, wenn die Anzahl der Schlüssel "groß" ist). Statistische Analyse Wenn eine monoalphabetische Ciffrierung wie beim Caesar-Verfahren vorliegt, kann die Entschlüsselung über die Buchstabenhäufigkeit der Chiffrezeichen durchgeführt werden. Auszug aus einer Tabelle für umfangreiche deutsche Texte: Buchstabe Häufigkeit in % e 17,4 i 7,6 a 6,5 d 5,1 Seite 12
Angriffsarten Welche Angriffe kann Mister X unternehmen? Brechen des Schlüssels (Brute force attack) Beim Angriff mit der "rohen Gewalt" werden alle möglichen Schlüssel generiert und diese auf den chiffrierten Text angewendet, bis ein sinnvoller Klartext entsteht. Schwierig, wenn es sehr viele mögliche Schlüssel gibt. Trotzdem besteht heute wegen der großen zurverfügung stehenden Rechenleistung bei kleinen Schlüsseln eine Gefahr. Angriff auf den Chiffretext (chipertext only attack) Der Angreifer kennt einige Geheimtexte und versucht, daraus den Schlüssel zu berechnen. Dieser Angriff ist möglich, das Mister X auf dem unsicheren Kanal mithören kann. Angriff bei bekanntem Klartext (known plaintext attack) Der Angreifer kennt zusammengehörigen Klartext und Geheimtext und versucht, daraus den Schlüssel zu berechnen. Angriff bei gewähltem Klartext (chosen plaintext attack) Der Angreifer lässt (unter einem Vorwand) selbst gewählte Klartextstücke verschlüsseln (bei Zugang zur Chiffriermaschine, ohne den Schlüssel zu kennen). Er könnte diese harmlosen Stücke später zu einem Gesamttext zusammenfügen, den der Absender so niemals verschlüsselt hätte. Welches historische archäologische Beispiel bietet die Möglichkeit eines Angriffs mit bekanntem Klartext? Ist dies ein aktiver oder ein passiver Angriff? Seite 13
Sicherheit Perfekte Sicherheit (unbedingte Sicherheit) liegt dann vor, wenn aus einem gegebenen Klartext jeder mögliche Chiffretext mit der gleichen Wahrscheinlichkeit entsteht. Perfekte Sicherheit Beispiel: Wir nehmen 5 Nachrichten M = { m1, m2, m3, m4, m5 } = Menge der Nachrichten C = { c1, c2, c3, c4, c5 } = Menge der Chiffretexte K = { k1, k2, k3, k5, k5 } = Menge der Schlüssel m1 m2 k1 c1 c2 m1 m2 c1 c2 m3 c3 m3 c3 m4 m5 k5 c4 c5 m4 m5 c4 c5 Aus dem gegebenen Klartext soll jeder mögliche Chiffretext mit gleicher Wahrscheinlichkeit entstehen: K = C Für den Angreifer soll jede der M = K Nachrichten aus der gegebenen Chiffre mit gleicher Wahrscheinlichkeit entstehen können: M = K = C Abbildung 3. Perfekte Sicherheit Aus theoretischer Sicht kann perfekte Sicherheit nur erreicht werden, wenn die Anzahl der Schlüssel so groß ist wie die Anzahl der Chiffretexte und die Anzahl der Klartexte (z.b. One-Time Pad). Berechenbare Sicherheit Ein Kryptosystem heißt berechenbar sicher, wenn es mit heute verfügbaren Rechenkapazitäten bei einem gegebenen Angriff nicht in vernünftiger Zeit gebrochen werden kann. Die maximal verfügbare Rechenleistung eines potentiellen Angreifers darf demnach nicht ausreichen. Das Problem ist, dass man den bestmöglichen Angriff nicht kennt. Wenn man von einem bestimmten Angriffsmodell ausgeht, kann die Rechenzeit abschätzen. Seite 14