- [Einleitung](#einleitung) - [Was ist eine Bedrohung in einem Kommunikationsnetz?](#was-ist-eine-bedrohung-in-einem-kommunikationsnetz) - [Sicherheitsziele in Abhängigkeit von der Anwendungsumgebung](#sicherheitsziele-in-abhängigkeit-von-der-anwendungsumgebung) - [Sicherheitsziele technisch definiert](#sicherheitsziele-technisch-definiert) - [Technisch definierte Bedrohungen](#technisch-definierte-bedrohungen) - [Bedrohungen und technische Sicherheitsziele](#bedrohungen-und-technische-sicherheitsziele) - [Analyse der Netzwerksicherheit](#analyse-der-netzwerksicherheit) - [Angriffe auf die Kommunikation auf der Nachrichtenebene](#angriffe-auf-die-kommunikation-auf-der-nachrichtenebene) - [Schutzmaßnahmen gegen Bedrohungen der Informationssicherheit](#schutzmaßnahmen-gegen-bedrohungen-der-informationssicherheit) - [Kommunikationssicherheit: Einige Terminologie](#kommunikationssicherheit-einige-terminologie) - [Sicherheitsdienste - Überblick](#sicherheitsdienste---überblick) - [Sicherheitsunterstützende Mechanismen](#sicherheitsunterstützende-mechanismen) - [Kryptologie - Definition und Terminologie](#kryptologie---definition-und-terminologie) - [Kryptologie - einige historische Anmerkungen](#kryptologie---einige-historische-anmerkungen) - [Grundlagen der Kryptographie](#grundlagen-der-kryptographie) - [Kryptographische Algorithmen: Überblick](#kryptographische-algorithmen-überblick) - [Angriff auf die Kryptographie](#angriff-auf-die-kryptographie) - [Kryptoanalyse](#kryptoanalyse) - [Brute-Force-Angriff](#brute-force-angriff) - [Wie groß ist groß?](#wie-groß-ist-groß) - [Wichtige Eigenschaften von Verschlüsselungsalgorithmen](#wichtige-eigenschaften-von-verschlüsselungsalgorithmen) - [Klassifizierung von Verschlüsselungsalgorithmen: Drei Dimensionen](#klassifizierung-von-verschlüsselungsalgorithmen-drei-dimensionen) - [Kryptographische Algorithmen - Überblick](#kryptographische-algorithmen---überblick) - [Symmetrische Kryptographie](#symmetrische-kryptographie) - [Symmetrische Verschlüsselung](#symmetrische-verschlüsselung) - [Symmetrische Blockchiffren - Verschlüsselungsarten](#symmetrische-blockchiffren---verschlüsselungsarten) - [Der Datenverschlüsselungsstandard (DES)](#der-datenverschlüsselungsstandard-des) - [DES - Einzelne Iteration](#des---einzelne-iteration) - [DES - Entschlüsselung](#des---entschlüsselung) - [DES - Sicherheit](#des---sicherheit) - [Erweiterung der Schlüssellänge von DES durch Mehrfachverschlüsselung](#erweiterung-der-schlüssellänge-von-des-durch-mehrfachverschlüsselung) - [Der fortgeschrittene Verschlüsselungsstandard AES](#der-fortgeschrittene-verschlüsselungsstandard-aes) - [AES - Sicherheit](#aes---sicherheit) - [Der Stromchiffre-Algorithmus RC4](#der-stromchiffre-algorithmus-rc4) - [KASUMI](#kasumi) - [KASUMI - Sicherheitsdiskussion](#kasumi---sicherheitsdiskussion) - [Grundlagen der Kryptographie](#grundlagen-der-kryptographie-1) - [Symmetrische Kryptographie](#symmetrische-kryptographie-1) - [Asymmetrische Kryptographie](#asymmetrische-kryptographie) - [Modifikationsprüfwerte](#modifikationsprüfwerte) - [Zufallszahlengenerierung](#zufallszahlengenerierung) - [Kryptographische Protokolle](#kryptographische-protokolle) - [Sichere Gruppenkommunikation](#sichere-gruppenkommunikation) - [Zugriffskontrolle](#zugriffskontrolle) - [Integration von Sicherheitsdiensten in Kommunikationsarchitekturen](#integration-von-sicherheitsdiensten-in-kommunikationsarchitekturen) - [Sicherheitsprotokolle der Datenübertragungsschicht](#sicherheitsprotokolle-der-datenübertragungsschicht) - [Die IPsec-Architektur für das Internet-Protokoll](#die-ipsec-architektur-für-das-internet-protokoll) - [Security protocols of the transport layer](#security-protocols-of-the-transport-layer) - [Sicherheitsaspekte der mobilen Kommunikation](#sicherheitsaspekte-der-mobilen-kommunikation) - [Sicherheit von drahtlosen lokalen Netzen](#sicherheit-von-drahtlosen-lokalen-netzen) - [Sicherheit von GSM- und UMTS-Netzen](#sicherheit-von-gsm--und-umts-netzen) - [References](#references) # Einleitung ## Was ist eine Bedrohung in einem Kommunikationsnetz? - Abstrakte Definition - Eine Bedrohung in einem Kommunikationsnetz ist ein mögliches Ereignis oder eine Folge von Aktionen, die zu einer Verletzung eines oder mehrerer Sicherheitsziele führen können. - Die tatsächliche Realisierung einer Bedrohung wird als Angriff bezeichnet. - Beispiele - Ein Hacker bricht in einen Firmencomputer ein - Offenlegung von E-Mails während der Übertragung - Jemand ändert Finanzbuchhaltungsdaten - Ein Hacker, der eine Website vorübergehend außer Betrieb setzt - Jemand, der Dienstleistungen in Anspruch nimmt oder Waren im Namen anderer bestellt - Was sind Sicherheitsziele? - Sicherheitsziele können definiert werden - in Abhängigkeit von der Anwendungsumgebung oder - auf eine allgemeinere, technische Weise ## Sicherheitsziele in Abhängigkeit von der Anwendungsumgebung - Bankwesen - Schutz vor betrügerischen oder versehentlichen Änderungen von Transaktionen - Identifizierung von Kunden bei Privatkundentransaktionen - Schutz von PINs vor Offenlegung - Sicherstellung der Privatsphäre der Kunden - Elektronischer Handel - Sicherstellung der Herkunft und Integrität von Transaktionen - Schutz der Privatsphäre von Unternehmen - Rechtsverbindliche elektronische Signaturen für Transaktionen bereitstellen - Regierung - Schutz vor Offenlegung sensibler Informationen - Bereitstellung elektronischer Signaturen für Regierungsdokumente - Öffentliche Telekommunikationsanbieter - Beschränken Sie den Zugang zu Verwaltungsfunktionen auf autorisiertes Personal - Schutz vor Dienstunterbrechungen - Schutz der Privatsphäre der Teilnehmer - Firmen-/Privatnetzwerke - Schutz der Privatsphäre von Unternehmen/Personen - Sicherstellung der Authentizität von Nachrichten - Alle Netzwerke - Verhinderung des Eindringens von außen (wer will schon Hacker?) - Manchmal werden Sicherheitsziele auch als Sicherheitsvorgaben bezeichnet ## Sicherheitsziele technisch definiert - **Vertraulichkeit (Confidentiality)** - Übertragene oder gespeicherte Daten sollten nur einem bestimmten Personenkreis zugänglich gemacht werden. - Die Vertraulichkeit von Entitäten wird auch als Anonymität bezeichnet. - **Integrität der Daten (Data Integrity)** - Es sollte möglich sein, jede Veränderung von Daten zu erkennen. - Dies setzt voraus, dass der Ersteller bestimmter Daten identifiziert werden kann. - **Rechenschaftspflicht (Accountability)** - Es sollte möglich sein, die für ein Kommunikationsereignis verantwortliche Stelle zu identifizieren. - **Verfügbarkeit (Availability)** - Die Dienste sollten verfügbar sein und korrekt funktionieren. - **Kontrollierter Zugang (Controlled Access)** - Nur autorisierte Stellen sollten auf bestimmte Dienste oder Informationen zugreifen können. ## Technisch definierte Bedrohungen - **Maskerade (oder Man-in-the-Middle-Angriff, Masquerade)** - Eine Entität gibt sich als eine andere Entität aus - **Lauschangriff (Eavesdropping)** - Eine Entität liest Informationen, die sie nicht lesen soll - **Verletzung der Berechtigung (Authorization Violation)** - Eine Entität nutzt einen Dienst oder Ressourcen, für die sie nicht vorgesehen ist - **Verlust oder Veränderung** von (übertragenen) Informationen (Loss or Modification of (transmitted) Information) - Daten werden verändert oder zerstört - **Verweigerung von Kommunikationsakten (Denial of Communication Acts, Repudiation)** - Ein Unternehmen leugnet fälschlicherweise seine Teilnahme an einer Kommunikationshandlung - **Fälschung von Informationen (Forgery of Information)** - Ein Unternehmen erstellt neue Informationen im Namen eines anderen Unternehmens - **Sabotage (oder Denial-of-Service-Angriffe)** - Jede Aktion, die darauf abzielt, die Verfügbarkeit und/oder das ordnungsgemäße Funktionieren von Diensten oder Systemen zu beeinträchtigen. ## Bedrohungen und technische Sicherheitsziele Diese Bedrohungen werden oft kombiniert, um einen Angriff durchzuführen! | Technische Sicherheitsziele | Maskerade | Abhören | Autorisierungsverletzung | Verlust oder Modifikation von (übertragenen) Informationen | Denial of Communication-Aktionen | Fälschung von Informationen | Sabotage (z.B. durch Überlastung) | | --------------------------- | --------- | ------- | ------------------------ | ---------------------------------------------------------- | -------------------------------- | --------------------------- | --------------------------------- | | Vertraulichkeit | x | x | x | | Datenintegrität | x | | x | x | x | x | | Rechenschaftspflicht | x | | x | | x | x | | | Verfügbarkeit | x | | x | x | | | x | | | Kontrollierter Zugriff | x | | x | | | x | | ## Analyse der Netzwerksicherheit - Um geeignete Gegenmaßnahmen gegen Bedrohungen ergreifen zu können, müssen diese für eine gegebene Netzkonfiguration angemessen bewertet werden. - Daher ist eine detaillierte Netzsicherheitsanalyse erforderlich, die - das Risikopotenzial der allgemeinen Bedrohungen für die ein Netz nutzenden Einheiten bewertet und - den Aufwand (Ressourcen, Zeit usw.) abschätzt, der zur Durchführung bekannter Angriffe erforderlich ist. - Achtung! Es ist im Allgemeinen unmöglich, unbekannte Angriffe zu bewerten! - Eine detaillierte Sicherheitsanalyse einer bestimmten Netzkonfiguration / spezifischen Protokollarchitektur - kann auch erforderlich sein, um die Finanzkontrolleure eines Unternehmens davon zu überzeugen, Mittel für Sicherheitsverbesserungen bereitzustellen, und - kann besser nach den feinkörnigeren Angriffen auf der Nachrichtenebene strukturiert werden. ## Angriffe auf die Kommunikation auf der Nachrichtenebene - Passive Angriffe - Lauschangriff - Aktive Angriffe - Verzögerung von PDUs (Protocol Data Units) - Wiederholung von PDUs - Löschung von PDUs - Modifikation von PDUs - Einfügung von PDUs - Die erfolgreiche Durchführung eines der oben genannten Angriffe erfordert - Es gibt keine erkennbaren Nebeneffekte auf andere Kommunikationen (Verbindungen/verbindungslose Übertragungen) - Es gibt keine Nebenwirkungen auf andere PDUs der gleichen Verbindung/verbindungslosen Datenübertragung zwischen den gleichen Entitäten - Eine Sicherheitsanalyse einer Protokollarchitektur muss diese Angriffe entsprechend den Schichten der Architektur analysieren ## Schutzmaßnahmen gegen Bedrohungen der Informationssicherheit - Physische Sicherheit - Schlösser oder andere physische Zugangskontrollen - Manipulationssicherung empfindlicher Geräte - Umweltkontrollen - Personelle Sicherheit - Identifizierung von sensiblen Positionen - Verfahren zur Überprüfung der Mitarbeiter - Sicherheitsschulung und -bewusstsein - Administrative Sicherheit - Kontrolle des Imports von Fremdsoftware - Verfahren zur Untersuchung von Sicherheitsverstößen - Überprüfung von Prüfpfaden - Überprüfung von Kontrollen der Rechenschaftspflicht - Strahlungssicherheit - Kontrolle von Funkfrequenzen und anderen elektromagnetischen Abstrahlungen - Bezeichnet als TEMPEST-Schutz - Mediensicherheit - Absicherung der Speicherung von Informationen - Kontrolle der Kennzeichnung, Vervielfältigung und Vernichtung von sensiblen Informationen - Sicherstellen, dass Medien mit sensiblen Informationen sicher vernichtet werden - Scannen von Medien auf Viren - Lebenszyklus-Kontrollen - Vertrauenswürdiger Systementwurf, -implementierung, -bewertung und -übernahme - Programmierstandards und -kontrollen - Kontrollen der Dokumentation - Computer-Sicherheit - Schutz von Informationen während der Speicherung/Verarbeitung in einem Computersystem - Schutz der Datenverarbeitungsgeräte selbst - Sicherheit der Kommunikation - Schutz von Informationen während des Transports von einem System zu einem anderen - Schutz der Kommunikationsinfrastruktur selbst ## Kommunikationssicherheit: Einige Terminologie - Sicherheitsdienst - Ein abstrakter Dienst, der eine bestimmte Sicherheitseigenschaft gewährleisten soll. - Ein Sicherheitsdienst kann sowohl mit Hilfe von kryptografischen Algorithmen und Protokollen als auch mit herkömmlichen Mitteln realisiert werden - Man kann ein elektronisches Dokument auf einem USB-Stick vertraulich halten, indem man es in einem verschlüsselten Format auf dem Datenträger speichert und den Datenträger in einem Tresor wegschließt. - In der Regel ist eine Kombination aus kryptografischen und anderen Mitteln am effektivsten - Kryptographischer Algorithmus - Eine mathematische Umwandlung von Eingabedaten (z. B. Daten, Schlüssel) in Ausgabedaten - Kryptografische Algorithmen werden in kryptografischen Protokollen verwendet. - Kryptografisches Protokoll - Eine Reihe von Schritten und der Austausch von Nachrichten zwischen mehreren Einheiten, um ein bestimmtes Sicherheitsziel zu erreichen ## Sicherheitsdienste - Überblick - **Authentifizierung (Authentication)** - Der grundlegendste Sicherheitsdienst, der sicherstellt, dass eine Entität tatsächlich die Identität besitzt, die sie vorgibt zu haben - **Integrität (Integrity)** - In gewisser Weise der "kleine Bruder" des Authentifizierungsdienstes, da er sicherstellt, dass Daten, die von bestimmten Entitäten erstellt wurden, nicht unentdeckt verändert werden können - **Vertraulichkeit (Confidentiality)** - Der beliebteste Sicherheitsdienst, der die Geheimhaltung der geschützten Daten gewährleistet - **Zugriffskontrolle (Access Control)** - Kontrolliert, dass jede Identität nur auf die Dienste und Informationen zugreift, zu denen sie berechtigt ist - **Nicht-Abstreitbarkeit (Non Repudiation)** - Schützt davor, dass an einem Kommunikationsaustausch beteiligte Entitäten später fälschlicherweise abstreiten können, dass der Austausch stattgefunden hat ## Sicherheitsunterstützende Mechanismen - Allgemeine Mechanismen - Schlüsselverwaltung: Alle Aspekte des Lebenszyklus von kryptografischen Schlüsseln - Zufallszahlengenerierung: Generierung von kryptographisch sicheren Zufallszahlen - Ereigniserkennung / Sicherheitsprüfpfad: Erkennung und Aufzeichnung von Ereignissen, die zur Erkennung von Angriffen oder Bedingungen, die von Angriffen ausgenutzt werden könnten, verwendet werden können - Erkennung von Eindringlingen: Analyse der aufgezeichneten Sicherheitsdaten, um erfolgreiche Einbrüche oder Angriffe zu erkennen - Beglaubigung: Registrierung von Daten durch eine vertrauenswürdige dritte Partei, die später bestimmte Eigenschaften (Inhalt, Ersteller, Erstellungszeitpunkt) der Daten bestätigen kann - Kommunikationsspezifische Mechanismen - Traffic Padding & Cover Traffic: Erzeugung von gefälschtem Verkehr, um die Analyse des Verkehrsflusses zu verhindern - Routing-Kontrolle: Beeinflussung des Routings von PDUs in einem Netzwerk ## Kryptologie - Definition und Terminologie - Kryptologie - Wissenschaft, die sich mit sicherer und meist geheimer Kommunikation beschäftigt - Der Begriff leitet sich von den griechischen Wörtern kryptós (verborgen) und lógos (Wort) ab. - Kryptologie umfasst - Kryptographie ( gráphein = schreiben): die Lehre von den Prinzipien und Techniken, mit denen Informationen in verschlüsseltem Text verborgen und später von legitimen Nutzern mit Hilfe eines geheimen Schlüssels offengelegt werden können - Kryptoanalyse ( analýein = lýsen, losbinden): die Wissenschaft (und Kunst) der Wiedergewinnung von Informationen aus Chiffren ohne Kenntnis des Schlýssels - Chiffre (Quelle Encyclopaedia Britannica) - Methode zur Umwandlung einer Nachricht (Klartext), um ihre Bedeutung zu verschleiern - Wird auch als Synonym für den verborgenen Chiffretext verwendet. - Chiffren sind eine Klasse von kryptografischen Algorithmen - Die Umwandlung erfolgt in der Regel mit der Nachricht und einem (geheimen) Schlüssel als Eingabe ## Kryptologie - einige historische Anmerkungen - 400 v. Chr.: Die Spartaner verwenden ein Chiffriergerät namens Scytale für die Kommunikation zwischen militärischen Befehlshabern. - Die Scytale bestand aus einem spitz zulaufenden Stab, um den spiralförmig ein Streifen Pergament oder Leder gewickelt war, auf den die Nachricht geschrieben wurde - Beim Aufwickeln wurden die Buchstaben der Reihe nach durcheinander gewürfelt und bildeten die Chiffre. - Wurde der Streifen um einen anderen Stab mit den gleichen Proportionen wie das Original gewickelt, kam der Klartext wieder zum Vorschein - Im 4. Jahrhundert v. Chr: - Aeneas Tacticus (Grieche) schreibt "Über die Verteidigung von Festungen", wobei ein Kapitel der Kryptographie gewidmet ist - Polybius (Grieche) erfindet eine Methode zur Kodierung von Buchstaben in Symbolpaaren mit Hilfe eines Geräts namens Polybius-Schachbrett, das eine bi-literale Substitution ermöglicht und viele Elemente späterer Kryptosysteme vorwegnimmt - Die Römer verwendeten eine monoalphabetische Substitution mit einfacher zyklischer Verschiebung des Alphabets: - Julius Caesar verwendete eine Verschiebung von drei Buchstaben (A ergibt D, ..., Z ergibt C) - Augustus Caesar verwendete eine einzige Verschiebung (A ergibt B, ...) - Die Araber waren die ersten, die die Prinzipien der Kryptographie verstanden und die Anfänge der Kryptoanalyse entdeckten: - Entwurf und Verwendung von Substitutions- und Transpositions-Chiffren - Entdeckung der Verwendung von Buchstabenhäufigkeitsverteilungen und wahrscheinlichen Klartexten in der Kryptoanalyse - Bis 1412 n. Chr. enthält Al-Kalka-Shandi in seiner Enzyklopädie Subh al-a'sha eine elementare und respektable Behandlung mehrerer kryptographischer Systeme und ihrer Kryptoanalyse - Europäische Kryptographie: - Die Entwicklung begann im Kirchenstaat und in den italienischen Stadtstaaten im Mittelalter - Die ersten Chiffren verwendeten nur Vokalsubstitutionen - 1397: Gabriele de Lavinde von Parma verfasst das erste europäische Handbuch zur Kryptographie, das eine Zusammenstellung von Chiffren sowie eine Reihe von Schlüsseln für 24 Korrespondenten enthält und Symbole für Buchstaben, Zahlen und mehrere zweistellige Codeäquivalente für Wörter und Namen umfasst - Code-Vokabulare, Nomenklatoren genannt, wurden für mehrere Jahrhunderte zur Hauptstütze der diplomatischen Kommunikation der meisten europäischen Regierungen - 1470: Leon Battista Alberti veröffentlicht Trattati In Cifra, in denen er die erste Chiffrierscheibe beschreibt und bereits vorschreibt, die Scheibe regelmäßig neu einzustellen, wobei er den Begriff der Polyalphabetizität entwickelt - 1563: Giambattista della Porta liefert eine abgewandelte Form einer quadratischen Tabelle und das früheste Beispiel einer digraphischen Chiffre (2-Buchstaben-Substitution) - 1586: Blaise de Vigenère veröffentlicht Traicté des chiffres, das die ihm zugeschriebene quadratische Tabelle enthält - Bis 1860 wurden große Codes für die diplomatische Kommunikation verwendet, und Chiffren wurden nur in der militärischen Kommunikation eingesetzt (außer auf hoher Kommandoebene), da es schwierig war, Codebücher im Feld zu schützen. - Entwicklungen während der Weltkriege 1 und 2: - Während des 1. Weltkriegs: Chiffriersysteme wurden hauptsächlich für die taktische Kommunikation verwendet und die Kommunikation auf hoher Ebene wurde durch Codes geschützt. - 1920: Die Kommunikationsbedürfnisse der Telekommunikation und die Weiterentwicklung der elektromechanischen Technik führen zu einer wahren Revolution bei den Verschlüsselungsgeräten - der Entwicklung von Rotor-Chiffriermaschinen: - Das Rotorprinzip wird unabhängig voneinander von E. E. Hebern (USA), H. A. Koch (Niederlande) und A. Scherbius (Deutschland) entdeckt - Rotor-Chiffriermaschinen kaskadieren eine Sammlung von Chiffrierscheiben, um eine polyalphabetische Substitution von hoher Komplexität zu realisieren - Die Kryptoanalyse der taktischen Kommunikation spielt während des Zweiten Weltkriegs eine sehr wichtige Rolle. Die größten Erfolge sind die britische und polnische Lösung der deutschen Enigma- und der beiden Fernschreiber-Chiffren sowie die amerikanische Kryptoanalyse der japanischen Chiffren. - Entwicklungen nach dem 2. Weltkrieg: - Die moderne Elektronik ermöglicht noch komplexere Chiffren, die zunächst den Rotorprinzipien folgen (und deren Schwächen einbeziehen) - Die meisten Informationen über elektronische Chiffriermaschinen, die von verschiedenen nationalen Kryptodiensten verwendet wurden, sind nicht öffentlich zugänglich. - Ende der 1960er Jahre war die kommerziell verfügbare Kryptographie kaum bekannt, und starke Kryptographie war den nationalen Behörden vorbehalten - 1973-1977: Entwicklung des Data Encryption Standard (DES) - 1976-1978: Entdeckung der Public-Key-Kryptografie - 1976: W. Diffie und M. Hellman veröffentlichen "New Directions in Cryptography" (Neue Wege in der Kryptographie), in dem sie die Konzepte der Public-Key-Kryptographie einführen und ein Verfahren zum Austausch von Schlüsseln über unsichere Kanäle beschreiben. - R. Merkle entdeckt unabhängig das Prinzip des öffentlichen Schlüssels, seine ersten Veröffentlichungen erscheinen jedoch erst 1978, da der Veröffentlichungsprozess langsam ist - 1978: R. L. Rivest, A. Shamir und A. M. Adleman veröffentlichen "A Method for Obtaining Digital Signatures and Public Key Cryptosystems", das den ersten funktionierenden und sicheren Public-Key-Algorithmus RSA enthält # Grundlagen der Kryptographie - Überblick über kryptografische Algorithmen - Angriffe auf die Kryptographie - Eigenschaften von Verschlüsselungsalgorithmen - Klassifizierung von Verschlüsselungsalgorithmen ## Kryptographische Algorithmen: Überblick - In diesem Kurs stehen zwei Hauptanwendungen kryptographischer Algorithmen im Mittelpunkt des Interesses - Verschlüsselung von Daten: Umwandlung von Klartextdaten in Chiffretext, um deren Bedeutung zu verbergen - Signierung von Daten: Berechnung eines Prüfwerts oder einer digitalen Signatur für einen gegebenen Klartext oder Geheimtext, der von einigen oder allen Stellen, die auf die signierten Daten zugreifen können, überprüft werden kann - Einige kryptografische Algorithmen können für beide Zwecke verwendet werden, andere sind nur für einen der beiden Zwecke sicher und/oder effizient. - Hauptkategorien von kryptografischen Algorithmen - Symmetrische Kryptografie, die 1 Schlüssel für die Ver-/Entschlüsselung oder die Signierung/Prüfung verwendet - Asymmetrische Kryptografie mit 2 verschiedenen Schlüsseln für die Ver-/Entschlüsselung oder die Unterzeichnung/Prüfung - Kryptografische Hash-Funktionen mit 0 Schlüsseln (der "Schlüssel" ist keine separate Eingabe, sondern wird an die Daten "angehängt" oder mit ihnen "vermischt"). ## Angriff auf die Kryptographie ## Kryptoanalyse - Kryptoanalyse ist der Versuch, den Klartext und/oder den Schlüssel herauszufinden. - Arten der Kryptoanalyse - Nur Chiffretext: bestimmte Muster des Klartextes können im Chiffretext erhalten bleiben (Häufigkeit von Buchstaben, Digraphen usw.) - Bekannte Chiffretext-Klartext-Paare - Gewählter Klartext oder gewählter Chiffretext - Differentielle Kryptoanalyse und lineare Kryptoanalyse - Neuere Entwicklung: verwandte Schlüsselanalyse - Kryptoanalyse der Public-Key-Kryptographie - Die Tatsache, dass ein Schlüssel öffentlich zugänglich ist, kann ausgenutzt werden - Die Kryptoanalyse öffentlicher Schlüssel zielt eher darauf ab, das Kryptosystem selbst zu knacken und ist näher an der reinen mathematischen Forschung als an der klassischen Kryptoanalyse. - Wichtige Richtungen - Berechnung von diskreten Logarithmen - Faktorisierung von großen ganzen Zahlen ### Brute-Force-Angriff - Der Brute-Force-Angriff probiert alle möglichen Schlüssel aus, bis er einen verständlichen Klartext findet - Jeder kryptographische Algorithmus kann theoretisch mit Brute Force angegriffen werden - Im Durchschnitt muss die Hälfte aller möglichen Schlüssel ausprobiert werden Durchschnittlich benötigte Zeit für erschöpfende Schlüsselsuche | Schlüsselgröße [bit] | Anzahl der Schlüssel | Benötigte Zeit bei 1 $Verschlüsselung/\mu$s | Zeitbedarf bei 10^6 Verschlüsselung /$\mu$s | | -------------------- | ---------------------------- | ------------------------------------------- | ------------------------------------------- | | 56 | $2^{56} = 7,2\times 10^{16}$ | $2^{55}\mu s = 1142$ Jahre | $10,01$ Stunden | | 128 | $2^{128} = 3,4 x 10^{38}$ | $2^{127}\mu s = 5,4 x 10^{24}$ Jahre | $5,4 x 10^{18}$ Jahre | | 256 | $2^{256} = 1.2 x 10^{77} | $2^{255}\mu s = 3,7 x 10^{63}$ Jahre | $3,7 x 10^{57}$ Jahre | ### Wie groß ist groß? Referenzzahlen zum Vergleich relativer Größenordnungen | Referenz | Größe | | ---------------------------------------------- | ----------------------------- | | Sekunden in einem Jahr | ca. $3 x 10^7$ | | Sekunden seit der Entstehung des Sonnensystems | ca. $2 x 10^{17}$ | | Taktzyklen pro Jahr (50 MHz Computer) | ca. $1,6 x 10^{15}$ | | Binäre Zeichenketten der Länge 64 | $2^{64}$ ca. $1,8 x 10^{19}$ | | Binäre Zeichenfolgen der Länge 128 | $2^{128}$ ca. $3,4 x 10^{38}$ | | Binäre Zeichenfolgen der Länge 256 | $2^{256}$ ca. $1,2 x 10^{77}$ | | Anzahl der 75-stelligen Primzahlen | $5,2 x 10^{72}$ | | Elektronen im Universum | $8,37 x 10^{77}$ | ### Wichtige Eigenschaften von Verschlüsselungsalgorithmen Nehmen wir an, ein Absender verschlüsselt Klartextnachrichten $P_1, P_2, ...$ zu Chiffretextnachrichten $C_1, C_2, ...$ Dann sind die folgenden Eigenschaften des Verschlüsselungsalgorithmus von besonderem Interesse - Die Fehlerfortpflanzung charakterisiert die Auswirkungen von Bit-Fehlern bei der Übertragung von Chiffretext zu rekonstruiertem Klartext $P_1', P_2', ...$ - Je nach Verschlüsselungsalgorithmus können pro fehlerhaftem Chiffretext-Bit ein oder mehrere fehlerhafte Bits im rekonstruierten Klartext vorhanden sein - Die Synchronisierung charakterisiert die Auswirkungen verlorener Chiffretext-Dateneinheiten auf den rekonstruierten Klartext - Einige Verschlüsselungsalgorithmen können sich nicht von verlorenem Chiffretext erholen und benötigen daher eine explizite Neusynchronisierung im Falle verlorener Nachrichten - Andere Algorithmen führen eine automatische Neusynchronisierung nach 0 bis n (n je nach Algorithmus) Chiffretextbits durch. ## Klassifizierung von Verschlüsselungsalgorithmen: Drei Dimensionen - Die Art der Operationen, die zur Umwandlung von Klartext in Chiffretext verwendet werden - Substitution, die jedes Element des Klartextes (Bit, Buchstabe, Gruppe von Bits oder Buchstaben) in ein anderes Element umwandelt - Transposition, die die Elemente des Klartextes neu anordnet - Die Anzahl der verwendeten Schlüssel - Symmetrische Chiffren, die denselben Schlüssel für die Ver- und Entschlüsselung verwenden - Asymmetrische Chiffren, bei denen unterschiedliche Schlüssel für die Ver- und Entschlüsselung verwendet werden - Die Art und Weise, in der der Klartext verarbeitet wird - Stromchiffren arbeiten mit Bitströmen und verschlüsseln ein Bit nach dem anderen - Viele Stromchiffren basieren auf der Idee der linearen rückgekoppelten Schieberegister, und bei vielen Algorithmen dieser Klasse wurden Schwachstellen entdeckt, da es eine tiefgreifende mathematische Theorie zu diesem Thema gibt. - Die meisten Stromchiffren verbreiten keine Fehler, sind aber anfällig für den Verlust der Synchronisation. - Blockchiffren arbeiten mit Blöcken der Breite b, wobei b vom jeweiligen Algorithmus abhängt. ## Kryptographische Algorithmen - Überblick Kryptografische Algorithmen - Überblick - Eigenschaften - Kryptoanalyse - Symmetrische Ver-/Entschlüsselung - Funktionsweisen - DES - AES - RC4 - KASUMI - Asymmetrische Ver-/Entschlüsselung - Hintergrund - RSA - Diffie-Hellman - ElGamal - ECC - Kryptographische Hash-Funktionen - MDCs/MACs - MD - SHA-1/2/ - CBC-MAC - GCM-MAC # Symmetrische Kryptographie - Modi der Verschlüsselung - Datenverschlüsselungsstandard (DES) - Erweiterter Verschlüsselungsstandard (AES) - Die Blockchiffre RC - KASUMI ## Symmetrische Verschlüsselung - Allgemeine Beschreibung - Derselbe Schlüssel KA,B wird für die Verschlüsselung und Entschlüsselung von Nachrichten verwendet - Schreibweise - Wenn P die Klartextnachricht bezeichnet, bezeichnet $E(K_{A,B}, P)$ den Chiffretext und es gilt $D(K_{A,B}, E(K_{A,B}, P)) = P$ - Alternativ schreibt man manchmal $\{P\}_{K_{A,B}}$ oder $E_{K_{A,B}}(P)$ für $E(K_{A,B}, P)$ - Beispiele: DES, 3DES, AES, ... ## Symmetrische Blockchiffren - Verschlüsselungsarten Allgemeine Bemerkungen & Notation - Ein Klartext P wird in Blöcke $P_1, P_2, ...$ der Länge b bzw. j zerlegt, wobei b die Blockgröße des Verschlüsselungsalgorithmus bezeichnet und j < b - Der Chiffretext C ist die Kombination von $C_1, C_2, ...$, wobei $c_i$ das Ergebnis der Verschlüsselung des i-ten Blocks der Klartextnachricht bezeichnet - Die Stellen, die eine Nachricht verschlüsseln und entschlüsseln, haben sich auf einen Schlüssel K geeinigt. Elektronischer Codebuch-Modus (Electronic Code Book Mode: ECB) - Jeder Block Pi der Länge b wird unabhängig verschlüsselt: $C_i = E(K, p_i)$ - Ein Bitfehler in einem Chiffretextblock $C_i$ führt zu einem völlig falsch wiederhergestellten Klartextblock $P_i'$ - Der Verlust der Synchronisation hat keine Auswirkungen, wenn ganzzahlige Vielfache der Blockgröße b verloren gehen. Geht eine andere Anzahl von Bits verloren, ist eine explizite Neusynchronisation erforderlich. - Nachteil: identische Klartextblöcke werden zu identischem Chiffretext verschlüsselt! - ![](Assets/NetworkSecurity-electronic-code-book-mode.png) Cipher Block Chaining Modus (Cipher Block Chaining Mode: CBC) - Vor der Verschlüsselung eines Klartextblocks pi wird dieser mit dem vorangegangenen Chiffretextblock $C_{i-1}$ XOR-verknüpft () - $C_i = E(K, C_{i-1} \oplus p_i)$ - $P_{i'} = C_{i-1} \oplus D(K, C_i)$ - Um $C_1$ zu berechnen, einigen sich beide Parteien auf einen Anfangswert (IV) für $C_0$ - Eigenschaften - Fehlerfortpflanzung: Ein verfälschter Chiffretextblock führt zu zwei verfälschten Klartextblöcken, da $P_i'$ mit $C_{i-1}$ und $C_i$ berechnet wird - Synchronisation: Wenn die Anzahl der verlorenen Bits ein ganzzahliges Vielfaches von b ist, wird ein zusätzlicher Block $P_{i+1}$ verzerrt, bevor die Synchronisation wiederhergestellt wird. Wenn eine andere Anzahl von Bits verloren geht, ist eine explizite Neusynchronisation erforderlich. - Vorteil: identische Klartextblöcke werden zu nicht-identischem Chiffretext verschlüsselt. - ![](Assets/NetworkSecurity-cipher-block-chaining-mode.png) Chiffretext-Feedback-Modus (Ciphertext Feedback Mode: CFB) - Ein Blockverschlüsselungsalgorithmus, der mit Blöcken der Größe b arbeitet, kann in einen Algorithmus umgewandelt werden, der mit Blöcken der Größe $j (j