Einstiegsfrage
Was sind die Schutzziele der IT-Sicherheit?
Klasische Schutzziele:
Confidentiality - Vertaulichkeit
Nur berechtigte Adressaten haben Zugang zu den Informationen
Integrity - Integrität
Erkennung von unberechtigt manipulierten Daten
Availability - Verfügbarkeit
Daten und Dienste sind für berechtigte Personen bei Bedarf abrufbar
Weitere Schutzziele:
Authenticity - Authentizität
Identität des Kommunikationspartners und Ursprung von Daten sind überprüfbar
Nicht-Abstreitbarkeit, Verbindlichkeit
Kommunikationspartner kann die Uhrheberschaft von Nachrichten nicht abstreiten
Zurechenbarkeit
Aktionen können einem Kommunikationspartner eindeutig zueordnet werden
Worin liegt der Unterschied zwischen symmetrischer und asymmetrischer Verschlüsselung?
Symmetrische Verschlüsselung
Bei der symmetrischen Verschlüsselung haben Sender und Empfänger den gleichen Schlüssel. Der Sender verschlüsselt die Nachricht mit dem Schlüssel. Der Empfänger kann die Nachricht mit demselben Schlüssel entschlüsselt.
Asymmetrische Verschlüsselung
Bei der asymmetrischen Verschlüsselung hat jeder Teilnehmer ein Schlüsselpaar aus einem geheimen Private Key und einem öffentlichen Public Key. Wenn eine Partei eine Nachricht senden möchte, wird nur das Schlüsselpaar des Empfängers benötigt. Der Sender verschlüsselt die Nachricht mit dem Pulic Key des Empfängers und sendet das entstandene Chiffrat. Der Empfänger kann das Chiffrat mit dem Private Key entschlüsseln. So kann jeder eine veschlüsselte Nachricht senden, aber nicht jeder kann die Nachrichten entschlüsseln.
Beschreiben Sie Anwendungsfälle für asymmetrische Verschlüsselungsverfahren.
E-Mail-Verschlüsselung
Hybride Verschlüsselung
E-Mail wird mit Schlüssel K symmetrisch verschlüsselt
K wird mit Public Key des Empfängers verschlüsselt
Schlüsselhinterlegung bei verschlüsselten Dateisystemen
Verschlüsselungsprotokolle zur Datenübertragung im Internet
Vereinbarung eines Sitzungschlüssels
Digitale Unterschriften
Unterschrift darf nur von einer Person getätigt werden können
Unterschrift muss von jedem geprüft werden können
Bestimmen der Unterschrift mit Private Key
Prüfen der Unterschrift mit Public Key
Vereinbarung symmetrischer Schlüssel
symmetrische Verfahren haben Problem der sicheren Schlüsselübertragung
mit asymmetrischen Verfahren (z.B. Diffie-Hellman-Protokoll) kann ein Schlüssel vereinbart werden
mit dem Schlüssel kann dann symmetrische Verschlüsselung durchgeführt werden
symmetrische Verschlüsselung ist schneller
Wozu braucht man in der Kryptographie Zufallszahlen, und wie kann man diese generieren?
In der Kryptographie werden Zufallszahlen benötigt, um Schlüssel für verschiedene Protokolle zu generieren. Diese müssen zufällig sein, damit diese nicht vorhersagbar sind.
Die Zufallszahlen können mit echten Zufallsbitgeneratoren und mit Pseudozufallsbitgeneratoren generiert werden. Zufasllsbitgeneratoren basieren auf physischen Proszessen. Pseudozufallsbitgeneratoren basieren auf deterministischen Algorithmen. Häufige Kombination aus beiden Generatoren.
Was versteht man unter dem One Time Pad und worauf weist das Wort „One“ hin?
perfekt sicheres Kryptosystem, falls vewendete Schlüssel gleichverteilt und zufällig gewählt
Länge der Nachricht = Länge des Schlüssels
Nachricht und Schlüssel werden XOR verknüpft
oder Übertragung auf Vigenere-Chiffre
kaum praktische Andendungen
Erzeugnung gleichverteilter Schlüssel nicht trivial
keine Mehrfachverwendung von Schlüsseln
über C1 ⨁ C2 = M1 ⨁ M2 kann man Informationen über Nachrichten gewinnen
Übertragung des Schlüssels bringt gleiche Probelmatik wie Übertragung der Nachricht mit sich
Beschreiben Sie die Vigenère-Verschlüsselung und wie diese angegriffen werden kann.
Monoalphalitsche Substitution
Zeichenweise Ersetzung eines einzigen Alphabets
Caesar-Chiffre Zyklische Ersetzung von Buchstaben
Muster und Häufigkeiten bleiben erhalten
Statistische Angriffe möglich
Vigenere-Chiffre
Verwendung mehrerer Alphabete zur Verschlüsselung eines Klartextes
Codierung verwendeter Alphabete durch ein Schlüsselwort -> Kombination mehrerer Caesar-Chiffre
Statistische Merkmale bleiben über die Teile mit demselben Schlüsselbuchstaben erhalten
Angriff:
Friedman-Test zum Schätzen der Schlüssellänge
Einteilung des Textes nach Schlüssellänge
Statistische Angriffe auf Teiltexte
Was versteht man unter einer digitalen Unterschrift und welche Anforderungen werden an digitale Unterschriften gestellt?
Eine digitale Unterschrift soll eine händische Unterschrift ersetzten. Dazu ist es wichtige, dass sie die unten aufgeführten Eigenschaften erfüllt.
Umsetzung
häufig wird vom zzu unterschreibenden Datensatz M der Hashwert H(M) unterschrieben
Unterschrift entsteht durch Anwendung der Entschlüsselungfunktion eines asymmetrsichen Versschlüsselungsverfahren auf M bzw. H(M)
Unterschrift lässt sich prüfen durch Anwendung der Verschlüsselungsverfahren auf die Unterschrift
-> Daztensatz muss Ergebnis sein
Anforderungen
Individualität:
Die Unterschrift kann nur von einer einzigen Person geleistet werden.
Bindung an Unterschriebenes:
Die Unterschritf kann nicht vom Unterschriebenen getrennt werden und auf anderes übertragen werden.
Prüfbarkeit:
Die Unterschrift ist von jedem leicht auf Echtheit zu überprüfen.
Hauptfrage 1
Was versteht man unter einer kryptographischen Hash-Funktion?
liefert digitalen Fingerabdruck für Datensatz
Eine Hashfunktion H bildet einer Nachricht M bieliebiger Länge auf einen Hashwert H(M) mit einer festen Länge n ab.
Die Hasfunktion muss zwei Anforderungen erfüllen:
Urbildresistenz/Einwegfunktion: Es ist praktisch nicht möglich zu einem bekannten Hashwert X eine Nachricht M zu finden, die diesen Hashwert hat. Also H(M) = X.
Zweite Urbildresistenz: Es ist praktisch nicht möglich, zu einer Nachricht M eine Nachricht M' zu finden, die denselben Hashwert besitzt. Also H(M) = H(M').
Starke Kollisionsresistenz: ist praktisch nicht möglich, ein paar ungleicher Nachrichten (M, M') zu finden, die denselben Hashwert haben. Also H(M) = H(M').
Die letzte Eigenschaft zeigt, ob die Hashfunktion gut konstuiert ist.
Änderung eines Zeichen der Nachricht -> Änderung ca. der Hälfte der Bits im Haswert
Hash-Kollisionen: zwei bekannte Nachrichten (M, M') haben denselben Haswert
Hash-Kollisionen´sind nicht vermeidbar, da Menge Hashwerte < Menge der Nachrichten
Hash-Kollisionen bieten Angriffsmöglichkeiten
Nennen Sie Anwendungen kryptographischer Hash-Funktionen (innerhalb der Kryptographie).
Prüfsummen von Datensätzen
ein Datensatz wird mit dem zugehörigen Haswert gesendet
Empfänger kann Hashwert des Datensatzes berechnen und auf Gleichheit überprüfen
Nachweis der Datenintegrität (keine unzulässigen Veränderungen)
Anpassung der zu unterschreibenden Daten
Signierfunktion nimmt nur Eingaben bestimmter Länge entgegen
Signierfunktion dauert länger für längere Eingaben
Salted Password Hashing (eigene Karteikarte)
Message Authentications Codes (eigene Karteikarte)
Generierung von Pseudo-Zufallsbitfolgen
Hauptfrage 2
Erläutern Sie das Geburtstagsproblem sowie dessen Zusammenhang zu Hash-Funktionen.
Frage: Wie wahrscheinlich ist es, dass mindestens zwei Personen aus einer Gruppe von Menschen am gleichen Tag Geburtstag haben?
Lösung: Bei 24 = 1.25 * sqrt(365) liegt die Wahrscheinlichkeit bei mehr als 0.5
Übertragung zu Hashfunktionen:
Personen = Nachrichten
Geburtstage = Hashwerte
Gleicher Geburtstag = Kollision
Bei 2^n möglichen Haswerten liegt die Wahrsheinlichkeit einer Kollision bei 1.25 * sqrt(2^n) Nachrichten über 0.5.
=> bei einer Hashlänge n reicht die Berechnung von 1.25 * sqrt(2^n) Haswerten, um eine Kollision mit Wahrscheinlichkeit 0.5 gefunden zu haben.
=> Hashlänge ist ein wichtiger Sicherheitsparameter
Gebrochen: Kollisionen können systematisch einfacher berechnet werden, als über das Geburtstagsproblem oder die Berschnung von 2^n + 1 Hashwerten ober die Einwegeigenschaft verletzt ist.
Beschreiben Sie die Merkle-Damgård-Konstruktion von Hash-Funktionen.
Verfahren zur Konstruktion einer Hash-Funktion, basierend auf Kompressionsfunktion
Einweg Kompressionsfunktion
erzeugt aus einer Bitfolge der Länge a und einer Bitfolge der Länge b eine Bitfolge der Länge b
komp: {0,1}^a x {0,1}^b -> {0,1}^b
Kompression reduziert die Größe der Eingabe
erfüllt Einwegeigenschaft
Ablauf
Komponenten:
Nachricht M
Blocklänge a
Initialisierungsvektor IV
Unterteilung der Nachricht M in Blöcke der Länge a
Padding zur Anpassung der Länge der Nachricht
Nachrichtenblock wird in Kompressionsfunktion verarbeitet mit Ergebnis der vorherigen Kompression
für ersten Block wird ein Initialisierungsvektor IV benötigt
Ergebnis letzter Kompression wird über Finalisierungsfunktion zum Hashwert verarbeitet
Eigenschaften
Finalisierungsfunktion ist notwedig zur Verhinderung von Erweiterungsangriff
Finalisierungsfunktion bricht Gleichmäßigkeit, muss EInwegeigenschaft erfüllen
IV darf bekannt sein
starke Kollisionsresistenz, falls Kompressionsfunktion diese Eigenschaft besitzt
Beschreiben Sie die Sponge-Konstruktion von Hash-Funktionen.
Arbeitsweise
Das Verfahren startet mit der Aufsugphase. Dabei wird die Nachricht in Blöcke mit der Länge a unterteilt. Die Nachricht wird mit einem Padding aufgefüllt, um ein vielfaches der Länge a zu sein. Der Initialisierungsvektor IV wird in zerlegt. Der erste Teil hat auch die Länge a. Der zweite Teil hat die Länge c.
Der Nachrichten Block m wird mit dem ersten Teil des Initialisierungsverktors XOR verknüpft. Das Ergebnis wird zusammen mit dem zweiten Teil des IV an die Funktion f übergeben. Diese Funktion liefert eine Ausgabe der selben Länge. Mit dieser Ausgabe wird das Vorgehen auf dem nächsten Nachrichtenblock wiederholt bis man am Ende der Nachricht angekommen ist.
Danach folgt die Auspressphase. Dabei gibt man die Asugabe ohne sie abzuändern wieder an die Funktion f. Als Hash-Wert werden dann immer die ersten a Bit ausgegeben.
unteren Bit werden nie ausgegeben -> kein Erweiterungsangriff möglich
Hashlänge ist modifizierbar
Basis des SHA-3
Kapazität c frei wählbar -> Einfluss auf Wiederstandsfähigkeit
Was versteht man unter einem Message Authentication Code und wozu wird er eingesetzt?
Schutzziele:
Integrität - Nachricht wurde nicht verändert
Authentifizierung - Nachricht stammt vom erwarteten Absender
Ein MAC wird vom Empfänger der Nachricht angehängt, dadurch kann der Absender die beiden oben genannten Punkte prüfen.
Berechnung:
Schlüssel K (nur Kommunikationspartnern bekannt)
Funktion f zur Berechnung des MAC
Sender berechnet MAC = f(M,K)
Erzeuger versendet (M, MAC)
Empfänger berechnet f(M, K) und vergleicht mit dem EMpfangenen
Gleichheit: wahrscheinlich uverändert und vom erwarteten Sender
Ungleichheit: M und/oder MAC manipuliert
Funktion f:
MAC muss sich ändern, wenn M manipuliert wird
Key muss notwendig zur Berechnung sein
Verwendung von Sponge-Konstruktion:
MAC = SHA-3(K | | M)
Verwendung von Merkle-Damgard-Konstruktion:
MAC = Hash((K ⨁ opad) | | Hash((K ⨁ ipad) | | M))
zuerst wird h = Hash((K ⨁ ipad) | | M) berechnet
dann MAC = Hash((K ⨁ opad) | | h)
Hash(K | | M) ungeeignet, wegen Erweiterungsangriff
Was versteht man unter Salted Password Hashing und wozu wird es eingesetzt?
Password Hashing
bei Webdiensten mit Authentifizierung per Login
Passwörter im Klartext sind ein leichtes Angriffsziel
Anbieter speichert statt Passwort den Hashwert
aus Login wird Hash berechnet und mit der Datenbank abgeglichen
anfällig für Wörterbuch-Angriff
Salted Password Hashing
zusätzliche generierter String s (Salz), für jeden Benutzer unterschiedlich
Anbieter speichert Hashwert aus Passwort und Salz
Benutzer sendet Passwort
Anbieter bildet Hash mit Salz und vergleicht Ergebnis
Wörterbuch-Angriff nur auf einzelne Benutzer
Berchnung des Hash muss beim Anbieter passieren, andernfalls entspricht Hash einem ungeschützten Passwort -> Passwort muss über eine sichere Verbindung gesendet werden
Wörterbuch-Angriff:
Auflisten gängiger Strings mit jeweiligem Hashwert
Abgleich mit gespeicherten Hashwerten
Bricht Passwörter häufig in Sekunden
Nennen und beschreiben Sie die in der Veranstaltung behandelten klassischen Angriffsmodelle.
Die folgenden Angriffsmodelle sind in aufsteigender Stärke aufgelistet:
Ciphertext-Only Attack COA
Der Angreifer kennt nur das Chifrat.
Entschlüsselung dieses Chiffrat
Known-Plaintext Attack KPA
Der Angreifer kennt ein Paar aus Klartext und Chiffrat.
Schlüssel herausfinden
Chosen-Plaintext Attack CPA
Der Angreifer kann zu Klartexten seiner Wahl das Chiffrat erhalten.
Chosen-Ciphertext Attack CCA
Der Angreifer kann sowohl gewählte Klartexte verchlüsseln, als auch gewählte Chiffrate entschlüsseln.
Nennen und beschreiben Sie die in der Veranstaltung behandelten Angriffsziele.
Informationen über den Klartext zu einem bestimmten Chiffrat
Informationen über einen geheimen Schlüssel
Unterscheidbarkeit - korrekte Zuordnung von Paaren aus Klartexten und Chiffrat
Verformbarkeit - gezielte Veränderung im Chiffrat, sodass der Klartext sich vorhersagbar ändert
Beschreiben Sie die Enigma-Verschlüsselung und wo deren kryptographische Stärken und Schwächen liegen.
Tastatur, Leuchtfeld, drei bzw. vier Walzen, Steckerbrett
drei drehende Walzen und eine Umkehrwalze
Eingabe: Buchstabe über Tastatur
Ausgabe: verchlüsselter Buschtabe auf dem Leuchtfeld
Tastendruck löst Strom aus der eine Led zum leuchten bringt
Stromfluss ist abhängig von Stellung der Walzen und Verbindungen im Steckbrett
erste Walze dreht sich nach jedem Buchstaben
zweite und dritte Walze drehen sich nach einem Überlauf der vorherigen Walzen
Tauschen zweier Buchstaben über Steckerbrett
Verschlüsselung
Einstellung der Maschine
Eingabe des Klartextes
Entschlüsselung
Einstellen der Maschine wie beim Start der Verschlüsselung
Eingabe das Chiffrats
Starteinstellungen entsprechen dem Schlüssel
Stärken
nicht wirklich relevant, da gebrochen
Schwächen
Fixpunkfrei - Buchstaben werden nicht auf sich selbst abgebildet
involutrisch: wenn x -> x' dann x' -> x
-> reduzierung der Alphabete
-> Positionen eines wahrscheinlich enthaltenen Wortes kann ausgeschlossen werden
Chiffrat enthält Informationen eines Klartextes
Was versteht man in der Kryptographie unter einem Sicherheitsbegriff?
Ein Sicherheitsbegriff ist die Nicht-Erreichbarkeit eines Angriffsziels in einem Angriffsmodell durch einen Angreifer mit bestimmten Fähigkeiten.
Aus verschiedenen Kombinationen aus Angriffsmodellen und Angriffszielen lassen sich unterschiedliche Sicherheitsbegriffe fromulieren.
Beispiel: IND-CPA Indistinguishability-Chosen-Plaintext Attack
Der Angreifer ist nicht in der Lage verschiedene Nacrichten ihren Chiffraten zuzuordnen. Auch wenn er die Möglichkeit hat die Chiffrate eigens gewählter Klartexte zu erhalten.
Was versteht man unter der Shannon-Entropie und inwiefern ist diese im Zusammenhang mit Zufallsbitgeneratoren relevant?
Die Shannon-Entropie ist ein Maß für die Unsicherheit über zukünftig generierte Werte. Die Entropie lässt sich mathematisch berechenen. Informell ist es die Anzahl der Bits, die man durschnittlich minimal benötigt, um die generierten Bitfolgen unterscheidbar zu codieren.
Dieses Maß kann man auch auf Zufallsbitgeneratoren anwenden. Dadurch lässt sich feststellen, wie unvorhersagbar der Zufallsgenerator ist. Die Entropie lässt sich aber häufig nicht exakt bestimmen.
Beschreiben Sie das Kerberos-Protokoll, so wie es in der Veranstaltung dargestellt wurde.
Das Kerberos-Protokoll wird zur Authentisierung und Schlüsselvereinbarung in Rechnernetzen. Es gibt eine vertrauenswürdige dritte Partei das Key Distrubution Center (KDC), die mit jedem Teilnehmer einen gemeinsamen Schlüssel teilt.
Der Client C kommuniziert dem KDC folgende Informationen:
Identifikation des Client
Identifikation des Servers
n number used once
n wird bei jeder Anfrage neu gewählt. Das KDC generiert einen Session Key und ein Ticket, das die Identifikation von C, den Session Key und die Gültigkeitsdauer enthält.
Das KDC sendet den Session Key und n verschlüsselt mit dem Schlüssel des Client. Es sendet auch das Ticket verschlüsselt mit dem Schlüssel des Servers.
Der Client leitet das verschlüsselte Ticket an den Server weiter und sendet einen Zeitstempel, der mit dem Session Key verschlüsselt wurde.
Die Authentisierung erfolgt implizit, da nur der Server das Ticket entschlüsseln kann. Das heißt, wenn Client sinnvoll verschlüsselte Nachrichten empfängt, kommuniziert er mit dem Server.
Es gibt auch die Erweiterung um Ticket Granting Tickets. Dabei stellt der KDC dem Server periodisch ein Ticket aus, mit dem er beim Ticket Granting Server neue Tickets erstellt, die durch den Key im Ticket geschützt sind. Dadurch muss der Langzeitschlüssel seltener versendet werden.
keine Perfect Forward Secrecy
Man-in-the-Middle Angriffe nicht bekannt
Vertrauen zu KDC notwendig
Ableitung der Langzeitschlüsseln aus Passwörtern
Beschreiben Sie Shamirs No Key-Protocol, so wie es in der Veranstaltung dargestellt wurde.
asymmetrisches Protokoll zur Vereinbarung eines gemeinsamen Schlüssels
Komponenten
Partei A:
geheimer Schlüssel a
Partei B:
geheimer Schlüssel b
Partei A sendet eine verschlüsselte Nachricht M, die mit ihrem Schlüssel a verschlüsselt ist.
Partei B sendet die Nachricht zurück, nachdem sie die Nachricht mit ihrem Schlüssel b verschlüsselt hat.
Partei A entschlüsselt die Nachricht mit ihrem Schlüssel b und sendet die Nachricht zurück.
Partei B kann die Nachricht mit dem Schlüssel b entschlüsseln und die ursprüngliche Nachricht wiedderherstellen.
Nachricht M kann der geheime Schlüssel sein
Ver-/Entschlüsselung
verschieden Operationen sind möglich, einfache Operationen (z.B.: *, +) sind nicht sicher bei vollständiger Abhörung
Anwendung: Exponentiation mod p (p Primzahl)
Operation ist schwer umkehrbar
Ablauf mit Exponentiation mod p
Partei A sendet k^a (mod p).
Partei B sendet (k^a)^b (mod p).
Partei A sendet (k^ab)^a^-1 = k^b (mod p).
Partei B berechnet (k^b)^b-1 = k (mod p).
Sicherheitsaspekte
ohne Authentifizierung Man-in-the-Middle Angriff
Sicherheit basiert auf der Schwierigkeit in (Z/pZ)* zu logarithmieren
eng verwandt mit Diffie-Hellman-Protokoll
Was versteht man unter perfekter Sicherheit symmetrischer Kryptosysteme, und welches symmetrische Kryptosystem ist perfekt sicher?
Chiffrat enthält keine Informationen über den Klartext
Formell: P(C|M) = P(M) für alle Nachrichten und Chiffrate
Die Wahrscheinlichkeit, dass es sich um die Nachricht M handelt ist genau so groß wie die Wahrschienlcihkeit, dass es sich um die Nachricht M gesendte wurde , wenn der Angreifer das Chiffrat kennt.
Das heißt, dass Chiffrat enthält keinerlei Informationen über den Klartext.
Das One Time Pad ist ein perfekt sicheres Kryptosystem.
Praktische Sicherheit
nicht perfekt sicher
mit vertretbarem Aufwand nicht erreichbar
Was ist eine Stromchiffre?
Abwandelung des One Time Pad
Schlüssel/Seed s der länge k
aus s können potentiell unendliche Pseudo-Bitfolgen erzeugt werden
Chiffrat ergibt sich aus XOR zwischen Zufalls-Bitfolge und Nachricht
Entscheidend für die Sicherheit ist Unverhersehbarkeit des Seeds
Unvohersagbarkeit: bei bekannter Teilfolge des verlängerten Seed ist es schwer nachfolgende Bits des Seeds mit einer Wahrschienlichkeit > 0.5 vorherzugsagen
Schlüssellänge endlich, Nachrichtenlänge unbeschränkt -> Nachrichten > Schlüssel -> nicht perfekt sicher
Ver- und Entschlüsselung identisch
Anwendung z.B. im Mobilfunk -> schnelle und einfache Verschlüsselung
Erezeugung der Bitfolge
linearer Konguenzgenerator -> nicht sicher
C-Funktion rand() -> Brute Force Angriff möglich
lineare Schieberegister wie beim CSS -> Angriffe bekannt
Salsa 20
arbeitet mit 512 Bit Blöcken
nutzt Seed IV und ein Zähler, der in den Blöcken hochzählt
auf jeden Block wird iterativ eine Rundenfunktion F angewendet
Schlüssel wird aus aneinadnergesetzten Blöcken erstellt
Was versteht man unter einem linearen Schieberegister? Ist die Ausgabe eines linearen Schieberegisters immer periodisch?
Bei einem linearen Schieberegister hat man eine Bitfolge der Länge n. Diese hat einen Initialen Zustand. Zur Erzeugung der neuen Bitfolge wird für jedes Bit das Schieberegister um eine stelle weiter verschoben. Das Ausgabebit ergibt sich aus verschiedenen XOR-Verknüpfungen der Bits im Schieberegister. Das Ausgabebit wird an das Ende der Folge angehängt.
Die Ausgabe des Schieberegisters immer periodisch. Die Periodenlänge kann aber variieren.
Was ist eine Blockchiffre?
symmetrisches Verschlüsselungsverfahren
Nachricht M mit fester Länge n (möglicherweise Padding)
geheimer Schlüssel K
zur Entschlüsselung wird die inverse Opertaion der Verschlüsselungs Operation durchgeführt
Bild Blockchiffre Folie 1
Verschlüsselung durch mehrmaliges Anwenden der Rundenfunktion f
XOR-Verknüpfung mit dem Rundenschlüssel
Anwendung einer Substitutions-Box (S-Box)
Bitpermutation
Rundenschlüssel wird aus eigentlichem Schlüssel hergeleitet
Bild Rudenfunktion
S-Box
Abbildung {0,1}^k -> {0,1}^l
Implementierung über Lookup Tables für bessere Performance
S-Box hat Einfluss auf die Sicherheit des Blockchiffres, andernfalls nur XOR Verschlüsselung und Bitpermutationen
Nennen Sie Design-Kriterien für Blockchiffren.
Diffusion
Jedes Zeichen des Klartextes beeinflusst viele Zeichen des Chiffrats. Dadurch werden statistische Merkmale des Klartextes über das Chiffrat verteilt, auch bei einem kürzeren Schlüssel.
Konfusion
Jedes Zeichen des Chiffrats hängt von vielen Zeichen des Schlüssels ab. Dadurch wird die Analyse des Zusammenhangs zwischen Chiffrat und Schlüssel erschwert, auch bei Vorliegen von mehreren Paaren aus Klartext und Schlüssel.
-> führt zu Avalanche-Effekt
Avalanche-Effekt - durch Konfusion und Diffusion
Bei Änderung eines Bits im Klartext bzw. Schlüssels ändern sich viele Bits des Chiffrats.
Striktes Avalanche-Kriterium
Bei Änderung eines Bits im Klartext bzw. Schlüssels ändert sich jedes Bit im Chiffrat mit Wahrscheinlichkeit 0.5.
Beschreiben Sie den Unterschied und die Zusammenhänge zwischen Blockchiffren und Stromchiffren.
Stromchiffre
XOR-Verknüpfung
Generierter Schlüsselstrom
Blockchiffre
Blockchiffre-Operation B
XOR Verknüpfung
Verwendung in verschiedenen Modi
Zusammenhang
Blockchiffren Modi, die die Operation B nutzen und damit einen Schlüsselstrom erzeugen, also auch ein Stromchiffre wird
Was versteht man unter einem (Betriebs-) Modus (engl. Mode) einer Blockchiffre? Beschreiben Sie einige solcher Modi.
zur Verschlüsselung beliebiger Nachrichten
wiederholte Anwendung derBlockchiffre auf Datenblöcke
Unterschiede:
Anforderungen an IV ∊ {0,1}^n
Paralleisierbarkeit der Berechnungen
Fehlerfortpflanzung
Notwendigkeit eines Paddings
Anfälligkeit für Angriffe
Electronic Block Code Mode (ECB)
eigene Karte
Cipher Block Chaining Mode (CBC)
Ci = B(K, Mi ⨁ Ci-1) mit C0 = IV
Mi = B^-1(K, Ci) ⨁ Ci-1 mit C0 = IV
Vorteile:
identische Blöcke der Nachricht werden zu unterschiedlichen Chiffrat-Blöcken
Entschlüsselung nicht parallelisierbar
Nachteile:
Verschlüsselung der Blöcke nicht parallelisierbar
Fehlerfortpflanzung auf nschfolgende Blöcke
bei vorhersagbarem IV kann Unterscheidbarkeit mit CPA erreicht werden
Output Feedback Mode (OFB)
Erzeugung eines Schlüsselstroms durch iterierte Verschlsüüselung eines IV
wird zum Stromchiffre
Schlüsselstrom kann vorher berechnet werden
Fehlerfortpflanzung nur im Schlüsselstrom
Blöcke sind unbrauchbar bei fehlerhaftem Schlüsselstrom
Bits im Klartext können gezielt durch Kippen im Chiffrat manipuliert werden
Counter Mode (CTR)
Generierung eines SChlüsselstroms mit dem Schlüssel K, Blockchiffre B, IV und inkrementierendem Counter
XOR-Verknüpfung mit Schlüsselstrom
agiert als Stromchiffre
Ver- und Entschlüsselung parallelisierbar
Kein Padding notwendig
Counter sollten sich möglichst lange nicht wiederholen
keine Fehlerfortpflanzung
Was versteht man unter dem ECB-Modus und warum wird von seiner Verwendung abgeraten?
Electronic Code Book Mode
Nachricht wird in Blöcke der passenden Länge eingeteilt möglicherweise Padding
Jeder Block wird mit Schlüssel und der Blockchiffre Operation verschlüsselt
Chiffrate werden zu einer Nachricht aneinander gehängt
Entschlüsselung analog mit inverser Chiffre
Nachteile
Identische Nachrichten Blöcke werden zu identischen Chiffrat-Blöcken -> Muster in der Nachricht bleiben im Chiffrat erkennbar
Was versteht man unter einer S-Box und was leistet sie im Zusammenhang mit Blockchifffren?
Bildet Bitfolgen auf festgelegte andere Bitfolgen ab
z.B. 0-e auf 0-e abbliden
hilft bei Erreichen von Diffusion und Konfusion
Beschreiben Sie, wie moderne Blockchiffren aufgebaut sind.
Verschlüsselung beliebig langer Nachrichten
Nachricht wird in Blöcke unterteilt
wiederholte Anwendung der Blockchiffre Operation auf Datenblöcke
Welche asymmetrischen Verschlüsselungsverfahren kennen Sie?
RSA
Diffie-Hellmann-Protokoll
Sharmirs-No-key Protokoll
ElGamal-Verfahren
Beschreiben Sie Schlüsselgenerierung sowie Ver- und Entschlüsselung des RSA-Verfahrens.
Schlüsselgenerierung
Wahl zweier zufällig geweählten, unabhängigen Primzahlen p und q
p ≠ q
RSA-Modul N = p * q
Finden eines Exponenten e ∈ N mit ggT(e, (p-1 * q-1)) = 1
Berechnung des privaten Exponenten d ∈ N mit e * d = 1 mod Φ(N) = (p-1) * (q-1)
Private Key: K = (N,d)
Public Key: K = (N, e)
Codierung der Nachricht M, sodass M ∊ {2, …, N-1} mit ggT(M,N) = 1
Chiffrat C = M^e mod N
für jeden leicht möglich
Nachricht M = C^d mod N
Decodierung von M
nur für den Halter des Schlüssels möglich
Hauptfrage 3
Angenommen, es wäre möglich, große ganze Zahlen effizient zu faktorisieren. Inwiefern würde dies die Sicherheit des RSA-Verfahrens gefährden?
Die Primzahlen p und q müssen geheim sein, sonst kann man auf den privaten Exponenten schliesen. Das RSA-Modul N = p * q muss bekannt sein, da es Teil das Public Key ist. Wenn es möglich wäre große ganze Zahlen effizient zu faktoriesieren, könnte man über das RSA-Modul auf die Primzahlen p und q schließen. Dementsprechend wäre das RSA-Verfahren gebrochen.
Wie ermittelt man die beiden für das RSA-Verfahren benötigten Primzahlen?
Primzahlen sind häufig
Wähle zufällige ungerade natürliche Zahl t, sodass die Bitlänge ungefähr die hälfte der Bitlänge des RSA Moduls ist
Falls t vielfaches einer kleinen Primzahl ist gehe zurück zu 1)
Führe einen oder mehrere probabilistische Primzahltests durch
Falls alle positiv
-> t Primzahl
Falls mindestens einer negativ
-> t keine Primzahl
-> gehe zu 1)
Was versteht man in der Mathematik unter einer Gruppe und welche Rolle spielen Gruppen in der Kryptographie?
Eine Gruppe G ist eine Menge M und eine innere Verknüpfung °.
Für die Verknüpfung und die Menge nüssen die Gruppenaxiome gelten.
Assoziativität: Für alle Elemente der Gruppe G gilt (g°h)°i = g°(h°i)
Neutrales Element: Es gibt ein Element e, sodass für alle Elemente der Gruppe gilt g°e = g = e°g
Inverse: Zu jedem Element der Gruppe gibt es ein Element der Gruppe, sodass gilt g°h = h°g = e
Eine Untergruppe von G kann durch ein Element g der Gruppe erzeugt werden mit der Vernüpfung*.
<g> = {g^z| z ∈ Z}
Die Ordnung der Gruppe ist die Anzahl aller enthaltenen ELemente.
Gruppen können in der Kryptographie für verschiedene asymmetrische Verfahren genutzt werden. Auf manchen Gruppen lässt sich beispielsweise das Diskrete Logarithmus schwer lösen, sodass Verschlüsselungen, die auf Exponentiationen basieren, schwere anzugreifen sind.
Beschreiben Sie die in der Kryptographie relevanten mathematischen Gruppen.
Menge: (Z/NZ) = {g ∈ {1, …, N-1}}
Verknüpfung: Multiplikation mod N
(Z/NZ)* = {g ∈ {1, …, N-1} | ggT(g, N) = 1}
elliptische Kurven
Was versteht man unter dem Diskreten-Logarithmus-Problem und inwiefern ist dieses Problem relevant für die Kryptographie?
Problem des diskreten Logarithmus:
Gegeben ist eine Gruppe G und eine Element der Gruppe g. Bekannt ist ebenfalls A = g^a. Dann soll a bestimmt werden.
In der Kryptographie wird in einigen Verfahren die Exponentiation genutzt. Wenn es auf der Gruppe, die im Verschlüsselungsverfahren verwendet wird, möglich ist dieses Problem einfach zu lösen, ist die Verschlüsselung gebrochen. Es ist also wichtig das dies bei den Verschlüsselungsverfahren nicht der Fall ist.
Beschreiben Sie das Diffie-Hellman-Protokoll.
zur Vereinbarung eines gemeinsamen Schlüssels
Kommunikation darf öffentlich sein -> Schlüssel nicht rekonstruierbar
Element g einer Gruppe
Untergrupe <g> endlich
Zahlen a,b ϵ {2, …, ord(g)-1}
a,b sind jeweils einer Partei bekannt
Ablauf:
Partei A sender g^a = A
Partei B sendet g^b = B
Partei A berechnet K = B^a = (g^b)^a
Partei B berechnet K = A^b = (g^a)^b
Das bereschnete K ist der Schlüssel.
Was ist eine elliptische Kurve?
Eine eliptische Kurve E(u, v, M) besteht aus einem Punkt O im Unendlichen und allen Punkten (x,y) ∈ M x M, die die Weierstrauß-Gleichung y^2 = x^3 + u * x + v erfüllen.
Für u,v ∈ M muss gelten 4 * u^3 + 27 * v^2 ≠ 0.
Es gibt verschiedene Formen der elliptischen Kurven, die abhängig sind von der Menge der reellen Nullstellen.
Wenn die Menge M eine Gruppe (Z/pZ) ist besteht die Kurve aus einer endlichen Menge an Punkten.
Elliptische Kurven lassen sich mit einer geeigneten Verknüpfung zu einer Gruppe konstruieren.
Verknüpfung zweier Punte A + B
Neutrales Element: Punkt im Unendlichen O
Verknüpfung: Punkte werden durch eine Gerade verbunden, Gerade schneidet die Kurve an einem weiteren Punkt, gespiegelter Punkt entlang der Horizontalen ist das Ergebnis
Falls Punkte gespiegelt entlang der Horizontalen: Ergebnis = O (Inverses)
Falls Punkte gleich und auf Horizontalen: Ergebnis = O
Falls Punkte gleich und nicht auf Horizontalen: Asymptote wird durch Punkt gelegt, Rest wie sonst
Skalarmultiplikation auf einer elliptischen Kurve:
s * P = P + … + P (s mal)
Beschreiben Sie das ElGamal-Verschlüsselungsverfahren, so wie es in der Vorlesung dargestellt wurde.
Element g einer endlichen Gruppe G
Private Key a ϵ {2, …, ord(g)-1} (Partei A)
Public Key A = g^a (Partei A)
Partei B codiert Nachricht zu M ϵ G
Partei B wählt zufälliges b ϵ {2, …, ord(g)-1}
b Ephemeral Key für jede Verschlüsselung anders
Partei B berechnet B = g^b und K = A^b
Partei B sendet sendet (B, K*M)
Partei kann K = B^a berechnen Nachricht entschlüsseln
asymmetrisches Verschlüsselungsprotokoll
basiert auf dem Diffie-Hellman-Protokoll
Chiffrat doppelt so lang wie Nachricht
Exponentiationen teilweise vorab berechenbar
b ändert sich -> kein Wörterbuch-Angriff möglich
aufgrund multiplikative Strukturen kann aus (B, K*M) leicht gültiges Chiffrat (B, K*M*M') gemacht werden
Wie werden elliptische Kurven für asymmetrische Verschlüsselungsverfahren genutzt?
Das Problem des Diskreten Logarithmus lässt sich auf elliptsiche Kurven übertragen.
Gegeben ist eine elliptische Kurve E und ein Punkt P, dann ist s * P die Exponentiation mit s auf E. Es gilt s herrauszufinden.
Aysmmtersche Verschlüsselungsverfahren lassen dann sich mit Hilfe dieser Gruppe und der zugehörigen Verknüpfung umsetzen.
Die Gruppe G, die in vielen Verschlüsselungsverfahren genutzt wird, ist dann eine elliptische Kurve E. Die Exponentiation ist dann die Exponentiation auf E.
Beschreiben Sie die ElGamal-Verschlüsselung mit elliptischen Kurven.
Gegeben:
Gruppe G mit g ∈ G, hier elliptische Kurve E mit Punkt P
Schlüsselpaar:
Private Key: a ∈ {2, …, ord(P)-1}
Public Key: A = a * P
Partei B codiert Nachricht M ∈ E
Partei B wählt zufälliges b ∈ {2, …, ord(P)-1}
Partei B berecnet B = b * P und K = b * A
Partei B sendet (B, K * M) (K * M ist verschlüsselte Nachricht nicht Exponentiation)
Partei A berechnet K = a * B und daraus K^-1*(K * M) = M
Was ist ein Challenge-Response-Protokoll?
zur Authentifizierung
Asymmetrisches Verfahren mit Private Key und Public Key
Challenger kennt Public Key der Gegenpartei
Gegenpartei kennt Private Key
Challenger sendet die Challenge, eine Bitfolge C
Gegenpartei sendet die Bitfolge C, die mit dem Private Key entschlüsselt wurde
Challenger verschlüsselt die Response mit dem Public Key und prüft, ob C herauskommt
Beschreiben Sie den Square-And-Multiply-Algorithmus für schnelle Exponentiation. Welches Problem ergibt sich bei der Implementierung schneller Exponentiation per Square-And-Multiply, falls der Exponent ein geheimer Schlüssel ist?
Algorithmus zur schnellen Exponentiation
Eingabe:
natürliche Zahlen M,N
Exponent e
berechnet M^e (mod N)
Berechnung abhängig von der Binärdarstellung des Exponenten
Schleife über Bits des Exponenten
S <- S^2 (mod N)
falls Bit = 1
S <- S · M (mod N)
Operationen sind abhängig vom Exponenten bzw. geheimen Schlüssel
Algorithmus anfällig für Seitenkanalangriffe (Ausführungszeiten und Stromverbrauch) -> geheimer Schlüssel kann abgehört werden
Was ist die Montgomery-Leiter und wo liegt ihr Nutzen beim Schutz kryptographischer Verfahren?
Algorithmus zur Beschleunigung der Skalarmultiplikation auf elliptischen Kurven
Zur Exponentiation in Gruppen (z.B. in (Z/NZ)* oder auf elliptischen Kurven
Anzahl und Arten der Rechenoperation unabhängig von Bits im Exponenten
Gruppenelement g
Startwerte: R0 = 1, R1 = g
e wird in Binärdarstellung genutzt, start MSB
Falls Bit = 0
R1 <- R0 · R1, R0 <- R0^2
Falls Bit = 1
R0 <- R0 * R1, R1 <- R1^2
R0 ist die Ausgabe g^e
Laufzeit ist unabhängig von geheimen Schlüssel
Gleiche Operationen unabhängig vom geheimen Schlüssel
Algorithmus nicht durch Seitenkanalangriffe gefährdet
Wie lässt sich eine digitale Unterschrift mit Hilfe asymmetrischer Verfahren umsetzen?
RSA-Verfahren
Bei zwei Dokumenten M1 und M2, die von derselben Person unterzeichnet wurden und deren Unterschriften der Angreifer kennt, kann ein Angreifer die Unterschrift des Produkts der beiden Nachrichten bilden. Mit einem Padding lässt sich diese multiplikative Struktur zerstören. Dennoch ist das Verfahren nicht ideal für digitale Unterschriften.
Das Verfahren startet mit folgenden Informationen:
Primzahl p, g ϵ (Z/pZ)* = {1, …, p-1} mit <g> = (Z/pZ)*
Kryptographische Hashfunktion H:{0,1}* -> {0, …, p-1}
Private Key a ϵ {2, …, p-1}
Public Key A = g^a (mod p)
Die Unterschrift lässt sich berechnen:
Wähle b ϵ {1, …, p-2} mit ggT(b, p-1) = 1
Bestimme b^-1 (mod p-1), B = g^b (mod p)
Bilde s = b^-1 * (H(M) - a * B)(mod p-1)
-> Signatur ist (B,s)
Prüfen der Unterschrift:
Prüfe 1 ≤ B ≤ p-1 und A^B * B^s = g^H(M) (mod p)
Der Parameter B darf nicht mehrfach verwendet werden, da man sonst a aus zwei Paaren (B, s) bestimmen kann.
Was versteht man in der Kryptographie unter einem Zertifikat und welchem Zweck dient ein solches Zertifikat?
Kryptografische Zertifikate
bei asymmetrischer Versschlüsselung benötigt man eine Authentifizierung
Lösung: Zertifikat
dritte vertrauenswürdige Partei stellt Zertifikate aus
Zertifikat ist einer von der CA(Certificate Authority) unterschriebener Datensatz -> Prüfung durch Valedierung der Unterschrift
Datensatz enthält Namen, zugehörigen Public Key und weitere Informationen (z.B. Ablaufdatum)
Signatur muss über alle Daten erstellt werden -> Zertifikat wird ungültig bei Änderung des Datensatzes
Gewähleistet Authentizität der Person -> Angreifer kann Daten nicht entschlüsseln
Keine Gewährleistung von Integrität der übermittelten Daten
mehrere CAs auf oberster Hierarchie-Ebene -> gelten als vertrauenswürdig
zertifizieren sich selbst
implizieren Vertrauen in untergeordnete CAs
Software-Zertifikate
Signatur der Nutzdaten
Gewährlesitung von Datenintegrität
SSL/TLS
Netzwerkprotokoll zum Aufbau verschlüsselter Internetverbindungen -> SChlüsselverinbarung
Authentisierung des Servers gegebüber dem Client und Vereinbarung des symmetrischen Sitzungsschlüssels
Server und Client senden eine start Nachricht
Server sendet SSL-Zertifikat
Client prüft Zertifikat
Client sendet client_key_exchange verschlüsselt mit dem Public Key des Servers
Schlüssel kann abgeleitet werden aus den Startnachrichten und dem client_key_exchange
Was versteht man unter der Laufzeit eines Algorithmus' und was bedeuten in diesem Zusammenhang die Begriffe Worst Case/Average Case/Best Case?
Die Laufzeit eines Algorithmus’ auf einer bestimmten Eingabe ist die Anzahl der ausgeführten Schritte.
Bitoperationen
elemntare arithmetische Operationen
Maschieneninstruktionen
…
Die Laufzeit eines Algorithmus varriert auch bei Eingaben derselben Größe. Es gibt drei Funktionen die die Laufzeit in Anbhängigkeit der Größe der Eingabe darstellen:
Worts Case - Obere Schranke der Laufzeit, maximal mögliche Laufzeit
Average Case - Durchschnittliche Laufzeit
Best Case - Untere Schranke der Laufzeit, minimal mögliche Laufzeit
Was versteht man in der Kryptographie unter einem "schweren Problem"?
Ein Problem heißt schwer, falls kein effizienter Lösungsalgorithmus für dieses Problem bekannt ist.
Ein Algorithmus heißt effizient, falls die Worst Case Laufzeit nach oben durch ein Polynom beschränkt ist.
keine bekannter Lösungsalgorithmus, heißt nicht das keiner existiert
schweres Problem, kann für kleine Eingaben leicht sein
nicht schweres Problem, kann für große Eingaben unlösbar sein
Was versteht man unter einem Seitenkanalangriff, und wie kann man solche Angriffe erschweren?
Seitenkanalangriffe sind Angriffe, bei denen der Angreifer nicht über die eigentliche Kommunikation versucht Informationen abzuhören. Dabei kann ein Angreifer beispielsweise Ausführungszeiten oder den Stromverbrauch nutzen, um geheime Daten zu erhalten.
Solche Angriffe kann man erschweren durch Schutzmaßnahmen an der Hardware, sodass der Angreifer an den Stromverbrauch oder die Ausführungszeiten gar nicht rankommt.
Die Angriffe können auch durch geeignete Implementierung verhindert werden. Man nutzt Algorithmen, bei denen die Abfolge der Operationen nicht von geheimen Informationen anhängt oder man fügt an geeigneten Stellen Dummy-Instruktionen ein.
Last changed15 days ago