diff --git a/Assets/NetworkSecurity-des-algorithm.png b/Assets/NetworkSecurity-des-algorithm.png new file mode 100644 index 0000000..7dd7c24 Binary files /dev/null and b/Assets/NetworkSecurity-des-algorithm.png differ diff --git a/Assets/NetworkSecurity-des-single-iteration.png b/Assets/NetworkSecurity-des-single-iteration.png new file mode 100644 index 0000000..7b7e801 Binary files /dev/null and b/Assets/NetworkSecurity-des-single-iteration.png differ diff --git a/Assets/NetworkSecurity-electronic-code-book-mode.png b/Assets/NetworkSecurity-electronic-code-book-mode.png new file mode 100644 index 0000000..2d77551 Binary files /dev/null and b/Assets/NetworkSecurity-electronic-code-book-mode.png differ diff --git a/Assets/NetworkSecurity-kasumi-singe-iteration.png b/Assets/NetworkSecurity-kasumi-singe-iteration.png new file mode 100644 index 0000000..d9514d6 Binary files /dev/null and b/Assets/NetworkSecurity-kasumi-singe-iteration.png differ diff --git a/Assets/NetworkSecurity-output-feedback-mode.png b/Assets/NetworkSecurity-output-feedback-mode.png new file mode 100644 index 0000000..74c9623 Binary files /dev/null and b/Assets/NetworkSecurity-output-feedback-mode.png differ diff --git a/Assets/NetworkSecurity-rijndael-one-round.png b/Assets/NetworkSecurity-rijndael-one-round.png new file mode 100644 index 0000000..5269d65 Binary files /dev/null and b/Assets/NetworkSecurity-rijndael-one-round.png differ diff --git a/Network Security.md b/Network Security.md index b3e4f44..1a48f77 100644 --- a/Network Security.md +++ b/Network Security.md @@ -1,78 +1,125 @@ -# Einleitung -- Bedrohungen in Kommunikationsnetzen -- Sicherheitsziele und -anforderungen -- Analyse der Netzwerksicherheit -- Sicherheitsvorkehrungen -- Historische Anmerkungen -- Allgemeine Kursbibliographie +- [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: +- 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: +- 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: + - 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: +- 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: +- Elektronischer Handel - Sicherstellung der Herkunft und Integrität von Transaktionen - Schutz der Privatsphäre von Unternehmen - Rechtsverbindliche elektronische Signaturen für Transaktionen bereitstellen -- Regierung: +- Regierung - Schutz vor Offenlegung sensibler Informationen - Bereitstellung elektronischer Signaturen für Regierungsdokumente -- Öffentliche Telekommunikationsanbieter: +- Öffentliche Telekommunikationsanbieter - Beschränken Sie den Zugang zu Verwaltungsfunktionen auf autorisiertes Personal - Schutz vor Dienstunterbrechungen - Schutz der Privatsphäre der Teilnehmer -- Firmen-/Privatnetzwerke: +- Firmen-/Privatnetzwerke - Schutz der Privatsphäre von Unternehmen/Personen - Sicherstellung der Authentizität von Nachrichten -- Alle Netzwerke: +- Alle Netzwerke - Verhinderung des Eindringens von außen (wer will schon Hacker?) - Manchmal werden Sicherheitsziele auch als Sicherheitsvorgaben bezeichnet ## Sicherheitsziele technisch definiert -- Vertraulichkeit (Confidentiality) +- **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) +- **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) +- **Rechenschaftspflicht (Accountability)** - Es sollte möglich sein, die für ein Kommunikationsereignis verantwortliche Stelle zu identifizieren. -- Verfügbarkeit (Availability) +- **Verfügbarkeit (Availability)** - Die Dienste sollten verfügbar sein und korrekt funktionieren. -- Kontrollierter Zugang (Controlled Access) +- **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) +- **Maskerade (oder Man-in-the-Middle-Angriff, Masquerade)** - Eine Entität gibt sich als eine andere Entität aus -- Lauschangriff (Eavesdropping) +- **Lauschangriff (Eavesdropping)** - Eine Entität liest Informationen, die sie nicht lesen soll -- Verletzung der Berechtigung (Authorization Violation) +- **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) +- **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): +- **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) +- **Fälschung von Informationen (Forgery of Information)** - Ein Unternehmen erstellt neue Informationen im Namen eines anderen Unternehmens -- Sabotage (oder Denial-of-Service-Angriffe): +- **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 @@ -90,94 +137,94 @@ Diese Bedrohungen werden oft kombiniert, um einen Angriff durchzuführen! ## 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: +- 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: +- 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: +- Passive Angriffe - Lauschangriff -- Aktive Angriffe: +- 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: +- 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: +- Physische Sicherheit - Schlösser oder andere physische Zugangskontrollen - Manipulationssicherung empfindlicher Geräte - Umweltkontrollen -- Personelle Sicherheit: +- Personelle Sicherheit - Identifizierung von sensiblen Positionen - Verfahren zur Überprüfung der Mitarbeiter - Sicherheitsschulung und -bewusstsein -- Administrative Sicherheit: +- 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: +- Strahlungssicherheit - Kontrolle von Funkfrequenzen und anderen elektromagnetischen Abstrahlungen - Bezeichnet als TEMPEST-Schutz -- Mediensicherheit: +- 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: +- Lebenszyklus-Kontrollen - Vertrauenswürdiger Systementwurf, -implementierung, -bewertung und -übernahme - Programmierstandards und -kontrollen - Kontrollen der Dokumentation -- Computer-Sicherheit: +- Computer-Sicherheit - Schutz von Informationen während der Speicherung/Verarbeitung in einem Computersystem - Schutz der Datenverarbeitungsgeräte selbst -- Sicherheit der Kommunikation: (das Hauptthema dieses Kurses) +- Sicherheit der Kommunikation - Schutz von Informationen während des Transports von einem System zu einem anderen - Schutz der Kommunikationsinfrastruktur selbst ## Kommunikationssicherheit: Einige Terminologie -- Sicherheitsdienst: +- 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: + - 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: +- Kryptographischer Algorithmus - Eine mathematische Umwandlung von Eingabedaten (z. B. Daten, Schlüssel) in Ausgabedaten - Kryptografische Algorithmen werden in kryptografischen Protokollen verwendet. -- Kryptografisches Protokoll: +- Kryptografisches Protokoll - Eine Reihe von Schritten und der Austausch von Nachrichten zwischen mehreren Einheiten, um ein bestimmtes Sicherheitsziel zu erreichen ## Sicherheitsdienste - Überblick -- Authentifizierung (Authentication) +- **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) +- **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) +- **Vertraulichkeit (Confidentiality)** - Der beliebteste Sicherheitsdienst, der die Geheimhaltung der geschützten Daten gewährleistet -- Zugriffskontrolle (Access Control) +- **Zugriffskontrolle (Access Control)** - Kontrolliert, dass jede Identität nur auf die Dienste und Informationen zugreift, zu denen sie berechtigt ist -- Nicht-Abstreitbarkeit (Non Repudiation) +- **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: +- 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: +- 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 @@ -185,17 +232,15 @@ Diese Bedrohungen werden oft kombiniert, um einen Angriff durchzuführen! - 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: + - 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) +- 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 @@ -243,47 +288,45 @@ Diese Bedrohungen werden oft kombiniert, um einen Angriff durchzuführen! - Klassifizierung von Verschlüsselungsalgorithmen ## Kryptographische Algorithmen: Überblick -- In diesem Kurs stehen zwei Hauptanwendungen kryptographischer Algorithmen im Mittelpunkt des Interesses: +- 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: +- 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: +- 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: +- 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: + - 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: +- 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 | + +| 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 | | ---------------------------------------------- | ----------------------------- | @@ -299,23 +342,22 @@ Referenzzahlen zum Vergleich relativer Größenordnungen ### 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: +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: +- 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: +- 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: +- 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. @@ -352,46 +394,314 @@ Kryptografische Algorithmen - KASUMI ## Symmetrische Verschlüsselung -- Allgemeine Beschreibung: +- Allgemeine Beschreibung - Derselbe Schlüssel KA,B wird für die Verschlüsselung und Entschlüsselung von Nachrichten verwendet -- Schreibweise: +- 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 1 -- 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. +## 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. -## Symmetrische Blockchiffren - ECB -- 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! +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) -## Symmetrische Blockchiffren - CBC -- 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)$ +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: +- 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) -## Symmetrische Blockchiffren - CFB -- 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