Verschlüsselung bietet die Möglichkeit über einen unsichereren Kanal (bei dem eine ungewollte dritte Partei mithören könnte) sicher zu kommunizieren. Hierbei wird ein Klartext durch ein Verschlüsselungsverfahren in einem Geheimtext umzuwandeln.
Vertraulichkeit: Schutz vor unberechtigtem Einblick in Daten.
Die Daten müssen davor geschützt werden, dass unberechtigte Personen sie einsehen können. Eng an die Vertraulichkeit geknüpft ist auch die Privatsphäre: Schutz der persönlichen Daten.
Integrität: Sicherstellung der Unveränderlichkeit der Originaldaten
Die Daten sind nicht von dritten Personen oder einem Informatiksystem verändert worden, sondern sie sind in der Originalform.
Verfügbarkeit / Zuverlässigkeit: Schutz vor Systemausfall und Sicherstellen der Zuverlässigkeit.
Stellt ein Informatiksystem einen wichtigen Dienst bereit, ist es sehr wichtig, dass sie zuverlässig funktionieren.
--> die drei klassischen, vorrangigen Sicherheitsziele: Die sogenannte „CIA-Triade“.
Weitere Sicherheitsziele:
Authentifikation / Authentizität: Feststellung der Identität
Für viele Dienste muss festgestellt werden, ob eine Person tatsächlich die ist, für die sie sich ausgibt. Die Authentifikation wird oft verwendet, wenn eine Zugriffskontrolle existiert.
Die Authentizität ist die Sicherstellung, dass bestimmte Daten von einer Person gesendet wurden.
Zugriffskontrolle: Zugriff nur durch berechtigte Personen
Der Zugriff auf bestimmte Daten oder Dienste wird nur ausgewählten Personen erlaubt. Eine Zugriffskontrolle ist häufig mit einer Authentifikation verbunden.
Anonymität / die Pseudonymität: Geheimhaltung der Identität einer Person
In vielen Situationen ist es wichtig, dass bestimmte Daten nicht einer Person zugeordnet werden können, um Persönlichkeitsrechte nicht zu verletzten oder sich bestimmten Gefahren nicht auszusetzen. Eine weichere Form von Anonymität ist die Pseudonymität: Die Zuordnung zwischen Pseudonym und Identität wird geheim gehalten.
Unbeobachtbarkeit: Verdeckung einer Kommunikation
In bestimmten Situationen ist es wichtig, dass eine Kommunikation nicht für andere zu erkennen ist. Wenn man jemand weiß, dass zwei Personen kommuniziert haben, kann er manchmal darauf schließen kann, was der Inhalt der Kommunikation war.
Verbindlichkeit: Getroffene Zusagen von Personen müssen eingefordert werden können.
Beispiele:
- Abiturklausuren (Vertraulichkeit, Zugriffskontrolle)
- Geheime Zettelbotschaften (Vertraulichkeit, Authentizität)
- Wahlen (Vertraulichkeit, Integrität, Zuverlässigkeit)
- Klausurnote (Integrität, Vertraulichkeit)
- Kopierer in der Schule (Zugriffskontrolle)
- Whistle-Blowing (Anonymität, Unbeobachtbarkeit)
- Keyless-Entry für Fach-Räume (Zugriffskontrolle, Authentifikation)
- Bestellung in der Schulmensa (Verbindlichkeit, Authentizität)
- Mogeln in der Klausur (Vertraulichkeit, Unbeobachtbarkeit)
Bei der Symmetrischen Verschlüsselung wird zum Ver- und Entschlüsseln der gleiche Schlüssel verwendet. Hierbei treten jedoch zwei Probleme auf:
Schlüsselaustauschproblem: Die Verwendung eines gleichen Schlüssels birgt das Problem, wie der Schlüssel sicher zwischen den beiden Parteien ausgetauscht werden kann. Dem Sender muss der Schlüssel bekannt sein um Nachrichten an den Empfänger zu verschlüsseln, dem Empfänger muss der Schlüssel wiederum bekannt sein um den erhaltenen Geheimtext zu entschlüsseln. Hierbei darf der Schlüssel jedoch nicht einfach über den Ungesicherten Kanal verschickt werden. Hierbei schafft das asymmetrische Diffie-Hellman-Schlüsselaustauschprinzip Abhilfe, welches zum späteren Zeitpunkt erklärt wird.
Schlüsselverwaltungsproblem: Da zum Ver- und Entschlüsseln der selbe Schlüssel genutzt wird, benötigt jede paarweise Kommunikation einen eigenen geheimen Schlüssel.
Problem: Die Anzahl der Schlüssel steigt mit der Anzahl der Teilnehmer exponentiell. Diese müssen jeweils geheim ausgetauscht, und gespeichert werden. Sie lässt sich durch folgende Gleichung bestimmen: (n*(n-1))/2
Zu den Symmetrischen Verschlüsselungen gehören die Substitutiven Verschlüsselungsverfahren welche einzelne Zeichen des Klartextes durch andere Zeichen ersetzen. Diese sind unterteilt in Monoalphabetisch und Polyalphabetische Verschlüs
Zu den Symmetrischen Verschlüsselungsverfahren gehören die Substitutiven Verschlüsselungsverfahren, bei welchen einzelne Zeichen des Klartextes durch andere Zeichen ersetzt werden. Diese sind unterteilt in Monoalphabetisch und Polyalphabetische Verschlüsselung:
Monoalphabetisch: Bei der Monoalphabetischen Verschlüsslung wird jedes Zeichen des Klartextes immer durch genau ein fest zugeordnetes Zeichen ersetzt. Ein Beispiel hierfür ist die:
Caesar-Chiffre: Jeder Buchstabe des Klartextes wird durch einen anderen Buchstaben mit einem festen Versatz im Alphabet ersetzt.
So wird aus dem Klartext "Hallo" mit dem Schlüssel "3", der Geheimtext "Kdoor".
Sicherheit: Die monoalphabetische Verschlüsselung ist unsicher und kann neben einer Brute-Force-Attacke, auch durch eine Häufigkeitsanalyse gebrochen werden.
Häufigkeitsanalyse: In jeder Sprache kommen die einzelnen Buchstaben in einem ausreichend langen Text in einer für die Sprache charakteristischen Häufigkeit vor. Die Häufigkeitsanalyse nutzt diese Eigenschaft aus, um die Häufigkeit der Buchstaben im verschlüsselten Text mit der bekannten Häufigkeit der Buchstaben in der Klartext-Sprache zu vergleichen. Im Deutschen ist "E" der häufigste Buchstabe. Wenn in einem verschlüsselten Text ein bestimmtes Zeichen deutlich häufiger vorkommt als andere, ist es sehr wahrscheinlich, dass es sich um den verschlüsselten Buchstaben "E" handelt.
Um das Problem der Häufigkeitsanalyse zu umgehen, kann die monoalphabetische Verschlüsselung homogenisiert werden. Häufig auftretende Klartextzeichen werden dabei mehreren Geheimtextzeichen zugeordnet, während seltener auftretende Klartextzeichen nur einem einzigen Geheimtextzeichen zugeordnet werden. Dadurch wird die Häufigkeitsverteilung der Zeichen im Geheimtext ausgeglichen und die Entschlüsselung erschwert (homogene Verschlüsselung).
Polyalphabetisch: Bei der Polyalphabetischen Verschlüsslung gibt es keine feste Zuordnung zwischen Klartextzeichen und Geheimtextzeichen. Stattdessen wird für jeden Buchstaben des Klartextes ein anderes Alphabet verwendet, basierend auf einem geheimen Schlüssel. Die Anzahl der verwendeten Alphabete bestimmt die Sicherheit der Verschlüsselung. Ein Beispiel hierfür ist die:
Vigenère-Chiffre: Zur Ver- und Entschlüsseln wird beim Vigenère Verfahren das Vigenère-Quadrat benötigt:
Das Vigenère-Quadrat hat hierbei oben die Klartextbuchstaben und an der Seite die Schlüsselbuchstaben.
Verschlüsseln: Möchte man nun den Klartext "HALLO" mit dem Schlüssel "WELT" verschlüsseln, so wird der Klartext über den Schlüssel geschrieben (ist das Schlüsselende erreicht, so wiederholt sich das Schlüsselwort):
Klartextbuchstaben: H A L L O
Schlüsselbuchstaben: W E L T W
Nun werden die Klartextbuchstaben in der oberen Zeile des Quadrats, die Schlüsselbuchstaben in der linken Spalte des Quadrats gesucht. Die Position, an der sich die beiden Zeilen und Spalten treffen, ist die Position des neuen Buchstabens im Geheimtext.
Geheimtext: D E W E K
Entschlüsseln: Zum entschlüsseln vom Geheimtext "GEWEK" mit dem Schlüssel "WELT" wird der Schlüsselbuchstabe "W" in der linken Spalte des Quadrats gesucht. Die Zeile wird nach dem Geheimtextbuchstaben "G" durchsucht, deren Spaltenbenennung den Klartextbuchstaben ergibt.
Sicherheit: Die polyalphabetische Verschlüsselung ist sicherer als die monoalphabetische, und mit einem Schlüsselwort, welches der länge des Geheimtextes entspricht so gut wie unknackbar. Ist das Schlüsselwort jedoch kürzer als der Geheimtext, wie es in der Regel der Fall ist, so lässt sich mit dem Kasiski-Test (Analyse wiederholender Engrammen in der Chiffre) die Länge des Schlüsselwortes bestimmen.
Größter gemeinsamer Teiler: Der größte gemeinsame Teiler zweier Zahlen x und n ist die größte Zahl, durch die x und n restlos geteilt werden können.
Teilerfremdheit: Zwei natürliche Zahlen x und n heißen Teilerfremd, wenn ihr größter gemeinsamer Teiler gleich 1 ist. (ggT(x, n) = 1)
Euler'sche Phi-Funktion: φ(n) gibt die Anzahl der natürlichen Zahlen kleiner als n an, die teilerfremd zu n sind.
φ bei Primzahlen: Da jede Primzahl p nur durch 1 und sich selbst teilbar ist, sind alle natürliche Zahlen kleiner p teilerfremd zu p. Daher gilt: φ(p) = p - 1
Modulo: Modulo gibt den Rest einer Division zweier natürlicher Zahlen an. Diesen erhält man, indem man den Dezimalteil des Quotienten mit dem Divisor der Division multipliziert. Beispiel: 15 mod 6 = 3 weil 15 / 6 = 2,5 und 0,5 * 6 = 3.
Primitivwurzel: g ist eine Primitivwurzel von p, wenn gⁿ mod p für verschiedene n alle Reste von 1 bis p - 1 durchläuft.
Die asymmetrische Verschlüsselung, auch bekannt als Public-Key-Verfahren, ist ein Verfahren zur sicheren Datenübertragung und -speicherung. Anders als bei der symmetrischen Verschlüsselung, bei der nur ein einziger Schlüssel zum Ver- und Entschlüsseln verwendet wird, nutzt die asymmetrische Verschlüsselung einen öffentlichen Schlüssel zum Ver- und einen privaten Schlüssel zum Entschlüsseln.
So wird das Schlüsselaustauschproblem gelöst, da der öffentliche Schlüssel frei über einen unsicheren Kanal versendet werden kann, und auch das Schlüsselverwaltungsproblem, da jeder Nutzer nur seine eigenen beiden Schlüssel verwaltet.
Das am weitesten verbreitete asymmetrische Verfahren ist das RSA Verfahren:
RSA:
Zwei möglichst große Primzahlen p und q werden gewählt.
Ihr Produkt, das RSA-Modul n = p*q wird berechnet
! Die Sicherheit des Verfahrens beruht darauf, das die Zerlegung von n in seine Primfaktoren extrem schwierig ist. Es handelt sich um eine Einwegfunktion, deren Ergebnis leicht berechenbar, aber schwer umkehrbar ist.
Bestimme φ(n) = (p-1)*(q-1)
Wähle eine Zahl e mit 1 < e <φ(n) und ggT(e,φ(n))=1. ! Wählt man für e eine Primzahl ist sie automatisch teilerfremd.
Öffentlicher Schlüssel: (e, n)
Bestimme d mit e*d mod φ(n) = 1 (d ist das modulare Inverse von e*d mod φ(n)) --> d lässt sich im GTR mit nSolve bestimmen
Privater Schlüssel: (d, n)
Verschlüsseln: G = K^e mod n
Entschlüsseln: K = G^d mod n
G = Geheimtext
K = Klartext
Der Diffie-Hellman-Schlüsseltausch ist kein Verschlüsslungsverfahren, sondern eine Möglichkeit, das zwei Personen einen gemeinsamen privaten Schlüssel sicher, über einen unsicheren Kanal erlangen, um symmetrische Verschlüsselung durchzuführen. Das Schlüsselverwaltungsproblem wird dabei nicht gelöst. Die Kommunikationspartner erzeugen einen gemeinsamen geheimen Schlüssel, basierend auf öffentlichen Parametern (daher Asymmetrisch).
Die Sicherheit des Verfahrens beruht auf der Einwegfunktion gⁿ mod p für die Basis g als Primitivwurzel einer Primzahl p.
g und p sind öffentliche Parameter.
Heißen unsere Kommunikationspartner Alice und Bob, so wählt:
- Alice eine zufällige geheime Zahl a, und berechnet A = g^a mod p.
- Bob eine zufällige geheime Zahl b, und berechnet B = g^b mod p.
Alice und Bob tauschen A und B miteinander aus, und berechnen folgend den gemeinsamen geheimen Sitzungsschlüssel:
- Alice berechnet K = B^a mod p
- Bob berechnet K = A^b mod p
Alice und Bob haben den gleichen gemeinsamen Sitzungsschlüssel K, obwohl sie ihre geheimen Zahlen a und b nie miteinander ausgetauscht haben.
K kann zum Verschlüsseln und Entschlüsseln von Nachrichten verwendet werden, die über einen unsicheren Kanal übertragen werden.