- Kryptografische Ziele und Angriffe darauf
- Verschlüsselung
- Asymmetrische Verschlüsselung
- Symmetrische Verschlüsselung mit AES
Kryptografische Ziele
- Vertraulichkeit (Confidetiality): Die Daten können nur vom berechtigten Empfänger gelesen werden und bleiben gegenüber anderen geheim.
- Integrität: Die Botschaft ist gegen Verfälschungen sicher. Änderungen der Botschaft werden erkannt.
- Authentizität: Der Empfänger kann sicher sein, dass die Identität des Kommunkationspartners gewährleistet ist.
Angriffe auf diese Ziele sind:
- Sniffing: Der Angreifer liest die Kommunikation mit.
Das ist ein Angriff auf die Vertraulichkeit. - Spoofing: Der Angreifer gibt sich für eine andere Identität aus.
Das ist ein Angriff auf die Authentizität. - Man-in-the-middle (MiM): Der Angreifert schiebt sich zwischen die
Kommunikationspartner, liest der Kommunikation mit und verändert sie
gegebenenfalls.
Das ist ein Angriff auf Integrität, Authentizität und Vertraulichkeit.
Kryptographische Verfahren
- Ohne Schlüssel
- Mit Schlüssel
- Symmetrisch
- Verschlüsselung
- Message Authentication Code (MAC)
- Pseudo Random Function (PRF)
- Asymmetrisch
- Verschlüsselung
- Digitale Signatur
- Symmetrisch
Codierung ist keine echte Verschlüsselung
Der Name Arnold kann auch so geschrieben werden: 416f6e646cAuch wenn es sehr nach Verschlüsselung aussieht, ist es eine Codierung. Dazu wurden die Buchstaben als ASCII in hexadezimaler Schreibweise dargestellt.
Auch wenn 416f6e646c nicht so schnell zu lesen ist, hat die Codierung den Nachteil, dass sie leicht nachvollziehbar und umkehrbar ist, wenn jemand weiß, wie die Codierung ausgeführt wurde. Geheim ist hier also das Verfahren, aber nicht der Schlüssel.
Für eine erfolgreiche Verschlüsselung ist die Geheimhaltung des Verfahrens nicht ausreichend. Da ein Verschlüsselungsverfahren in der Regel häufiger eingesetzt wird, wird es irgendwann eine undichte Stelle geben, die das Verfahren bekannt macht. Sicherheit entsteht also nur durch einen geheimen Schlüssel, da dieser jederzeit schnell gewechselt werden kann.
Base64
Eine in der Übertragung häufiger anzutreffende Codierung ist Base64. Hier wird ein Byte (8 Bit) auf 6 Bit so umkodiert, dass sie nur aus druckbaren Zeichen besteht. Eine Verwendung findet sich in der MIME-Codierung von Mail-Anhängen.Kryptografische Hashfunktion
Eine Hash-Funktion ermittelt aus einer beliebigen Datenmenge als Ergebnis eine Datenmenge einer festen Größe (Digest).Die Hash-Funktion bewirkt, dass aus dem errechneten Wert das Original nicht mehr zu ermitteln ist. Man spricht auch von einer Einwegfunktion oder einem Falltür-Algorithmus. Wenn Sie eine Zahl durch 47 teilen und den Rest speichern, können Sie aus der gespeicherten Zahl auch nicht mehr auf das Original schließen.
Passwortspeicherung
Die Hash-Funktion MD5 wurde lange verwendet, um Passwörter abzuspeichern. Man kann das Original-Passwort aus dem Ergebnis nicht rekonstruieren. Meldet sich aber jemand mit dem richtigen Passwort an, wird dieses durch die MD5-Funktion genauso aussehen, wie das gespeicherte.Daraus ergeben sich folgende Forderungen für eine Hashfunktion h(m):
- Es ist sehr schwer, m aus dem Ergebniswert h(m) zu ermitteln.
- Ist h(m2) bekannt, ist es sehr schwer, m1 zu ermitteln, wenn h(m1)=h(m2) gilt.
- Es ist sehr schwer, m1 und m2 zu ermitteln, wenn h(m1)=h(m2) gilt.
Datenintegrität
Hashfunktionen werden für die Sicherung der Datenintegrität verwendet oder um Passwörter zu speichern. Sie sind Falltüralgorithmen. Beispielsweise würde die Quersumme aller Buchstaben einer Datei eine Änderung an der Datei vermutlich entdecken. Würde die Quersumme eines Passworts gespeichert und bei einem Anmeldeversuch ein Passwort mit einer anderen Quersumme eingegeben, ist das Passwort offensichtlich nicht korrekt. Fällt die Quersumme in die Hände eines Angreifers, kann er daraus das Passwort aber nicht ermitteln.Das Problem ist aber, dass man leicht zwei Dokumente oder Passwörter mit der gleichen Quersumme finden kann. Man spricht von einer Kollision der Hashfunktion. Ideal wäre also eine Hashfunktion, die möglichst kollisionsfrei ist.
Bekannte Vertreter der Hash-Funktionen sind SHA und MD5.
SHA: Secure Hash Algorithm
SHA ist eine Hash-Funktion. SHA-1 (Secure Hash Algorithm) verwendet 160 Bit und gilt als überholt. Es gibt die Nachfolger SHA-2 und SHA-3 mit nun 512 Bit.
- Dokument wird aufgefüllt, dass es ein Vielfaches von 512 Bit ergibt.
- für jeden 512-Bit-Block:
- Unterteile den Block in 16 Worte wi der Länge 32 Bit.
- Erweitere jeden Block auf 80 Worte.
- Errechnen der weiteren wi (i=16-79)
w(i) := (w(i-3) xor w(i-8) xor w(i-14) xor w(i-16)) leftrotate 1
MD5
Insbesondere für das Speichern von Passwörtern wurde das Verfahren MD5 verwendet. Dieses gilt aber als unsicher. MD5 findet heute noch Anwendung, um sicherzustellen, dass ein Download störungsfrei verlaufen ist.Verschlüsselung mit Schlüssel
Caesar
Der Legende nach soll bereits Julius Caesar dieses Verschlüsselungsverfahren verwendet haben. In der einfachsten Form wird jeder Buchstabe durch den nächsten Buchstaben im Alphabet ersetzt. Der Empfänger muss dies nur entsprechend rückgängig machen.Etwas komplizierter wird das Verfahren, wenn nicht der nächste, sondern der übernächste Buchstabe verwendet. Durch die 26 Buchstaben des Alphabets sind damit 26 verschiedene Verschlüsselungen möglich, von denen allerdings einer der Klartext ist.
Die Differenz wird nicht in Zahlen, sondern in Buchstaben formuliert, wobei A=0, B=1, C=2 usw. gilt. Das Wort ZAESAR wird mit der einfachen Caesar-Verschlüsselung zu ABFTBS, da das Z einfach wieder vorn anfängt.
ZAESAR + BBBBBB = ABFTBSEine besondere Form des Caesars ist Rot13: Der Buchstabe wird um 13 Positionen weitergerollt. Durch eine erneute Anwendung von Rot13 erscheint wieder der Klartext.
Das Problem von Caesar ist:
- Häufige Buchstaben der Sprache treten genauso häufig im Geheimtext auf.
- Kennt man nur einen Buchstaben der Klartextnachricht an der richtigen
Position, lässt sich der Schlüssel sofort ablesen.
Man spricht von einer monoalphabetischen Chiffre: Jeder Buchstabe wird immer auf den gleichen Zielbuchstaben umgesetzt. - Wenn man 26 Möglichkeiten durchprobiert hat, kennt man den Klartext.
Vigenère
Statt einer Verschiebung durch einen Buchstaben wie beispielsweise B über den gesamten Klartext, kann die Verschiebung über ein geheimes Wort geschehen, beispielsweise BAD.ZAESAR + BADBAD = AAHTAUAuf diese Methode greifen statistische Methoden ins Leere.
Man spricht von einer polyalphabethischen Chiffre. Ein Buchstabe kann immer wieder in einen anderen Zielbuchstaben umgewandelt werden.
Weiß der Angreifer, dass das Schlüsselwort drei Buchstaben hat, kann er alle drei Buchstaben 26 Buchstaben durchrotieren und kann dann den Klartext raten. Kennt er darüber hinaus einen Buchstaben des Klartextes, kennt er ein Drittel des Schlüssels.
Vernam
Der Schlüssel ist so lang wie der Klartext, wird nur einmal verwendet und ist komplett zufällig.Damit ist er perfekt sicher, leider aber in den meisten Fällen nicht praktikabel.
C. Shannon: Ein Verschlüsselungsverfahren ist perfekt sicher, wenn es so viele Schlüssel wie Klartexte gibt, alle Schlüssel gleich wahrscheinlich sind und für jeden Klartext und jedem Geheimtext genau einen Schlüssel gibt, der den Klartext in den Geheimtext verschlüsselt.
Prinzipien der Verschleierung nach Claude Shannon
- Konfusion: Statistische Häufigkeiten eines Buchstaben werden nicht auf den Geheimtext übertragen. Die Übertragung ist also nichtlinear.
- Diffusion: Eine Änderung an einer Stelle im Klartext führt zu einer Veränderung des Geheimtexts an mehreren Stellen.
Asymmetrische Verschlüsselung
Für die asymmetrische Verschlüsselung werden zwei Schlüssel verwendet: Einen Schlüssel behält man privat unter Verschluss, den anderen verteilt man großzügig an alle Freunde (oder Feinde).Dabei gilt, dass das, was der eine Schlüssel verschlüsselt, nur durch den anderen Schlüssel entschlüsselt werden kann.
Als Bild: Der öffentliche Schlüssel kann ein Schloß genau eine Drehung nach links drehen. Der private Schlüssel kann dieses Schloss genau eine Drehung nach rechts drehen. Was der öffentliche Schlüssel verschließt, kann nur der private Schlüssel öffnen, was der private Schlüssel verschließt, kann nur der öffentliche Schlüssel öffnen.
RSA
Das wohl bekannteste Schlüsselverfahren heißt RSA nach Rivest, Shamir und Adleman.
- Der private Schlüssel besteht aus zwei Zahlen, die wir encryptKey und grossKey nennen wollen.
- Der öffentliche Schlüssel besteht ebenfalls aus zwei Zahlen, die wir decryptKey und grossKey nennen wollen.
- grossKey ist bei beiden Schlüsseln gleich und sehr, sehr groß, beispielsweise 1024 Bit lang. Damit kann man eine 300-stellige Dezimalzahl darstellen.
Klartext = GeheimtextdecryptKey mod grossKey
Es ergibt sich eine Diffusion, also die Änderung eines Zeichens im Klartext verändert mehrere Zeichen im Geheimtext.
Symmetrische Verschlüsselung mit AES
Bei der symmetrischen Verschlüsselung verwenden die Partner denselben Schlüssel. Das Problem ist, dass bei Bekanntwerden des Schlüssels ein Dritter die Nachricht ebenfalls entschlüsseln kann. Um dieses Risiko zu vermeiden, arbeitet man mit Wegwerfschlüsseln.Dazu muss einmal der Schlüssel sicher geteilt werden, die Nachricht übermittelt werden und dann wird Schlüssel und Nachricht gelöscht. Obwohl der Aufwand immens erscheint, sind symmetrische Verfahren sehr nützlich, weil sie extrem schnell sind.
DES (56 Bit Schlüssellänge) wurde durch AES (128 Bit Schlüssellänge) abgelöst. AES wird beispielsweise bei WPA2 für WLAN eingesetzt.
Der Klartext wird in Häppchen zu 16 Bytes in einer 4x4-Matrix angeordnet.
- Key Expansion: Mache aus dem Schlüssel k elf neue Schlüssel k0 bis k10, die sogenannten Rundenschlüssel.
- Add Round Key: Bitweise XOR-Verknüpfung zwischen dem Block und dem nullten Rundenschlüssel.
- Wiederhole für i=1 bis 10:
- Substitude Bytes: Ersetzt jedes Byte anhand einer Substitutionsbox von 256 Bytes, die als Konstante gespeichert oder dynamisch berechnet wird, je nachdem, ob man Speicher oder Rechenzeit sparen will.
- Shift Rows: Die Zeilen der 4x4-Matrix werden nach links durchrotiert: Zeile 0 um 0 Positionen, Zeile 1 um eine Position usw..
- Mix Columns: Nun werden die Spalten der Matrix durch Multiplikation mit einer anderen Matrix vermischt.
- Add Round Key: Bitweise XOR-Verknüpfung zwischen dem Block und dem aktuellen Rundenschlüssel.
Links zu AES
- PDF: AES128 – A C Implementation for Encryption and Decryption
- Announcing the ADVANCED ENCRYPTION STANDARD (AES)
Message Authentication Code (MAC)
- Ziel: Authentität des Absenders und Integrität des Dokuments.
- Dazu haben die Partner einen gemeinsamen, geheimen Schlüssel.
- Sender berechnet für diesen Schlüssel und ein Dokument einen MAC.
- Sender sendet Dokument und MAC an den Empfänger.
- Empfänder berechnet mit dem geheimen Schlüssel und dem Dokument den MAC.
- Sind diesen MAC und der empfangene MAC identisch, ist die Integrität des Dokuments und die Authenitität des Absenders gesichert.
Schlüsselvereinbarung nach Diffie-Hellman
Alice und Bob wollen einen gemeinsamen Schlüssel verwenden. Da sie sich nie begegnen, bleibt zum Austausch nur das angreifbare Netz.Öffentlich werden die Zahlen g und p ausgetauscht, dabei gilt
1 < g < p-1
p muss eine Primzahl sein.
Alice | Angreifer | Bob |
---|---|---|
Alice wählt eine zufällige Zahl u. und berechnet a = gu mod p. | Angreifer kann g und p ablauschen. |
Bob wählt eine zufällige Zahl v. und berechnet b = gv mod p. |
Alice sendet a sichtbar an Bob. | Angreifer kennt nun a und b. | Bob sendet b sichtbar an Alice. |
key = bu mod p | key = av mod p |
Der Grund, warum es funktioniert:
guv mod p = bu mod p = av mod p
Eine Angriffsmöglichkeit besteht darin, dass sich der Angreifer gegenüber Alice als Bob und gegenüber Bob als Alice ausgibt und die Nachrichten weiterleitet. Das kann verhindert werden, wenn sich Alice und Bob gegenseitig authentifizieren.
Verschlüsselung nach ElGamal
ElGamal verwendet das Diffie-Hellman-Protokoll, um den gemeinsamen Schlüssel key zu ermitteln und sendet auf dessen Basis eine verschlüsselte Nachricht.Alice | Angreifer | Bob |
---|---|---|
geheim = key * klar mod p | ||
klar = key-1 * geheim mod p |
Shamir ohne gemeinsamen Schlüssel
- Alice verschlüsselt ihre Nachricht mit einem nur ihr bekannten Schlüssel. und sendet sie zu Bob.
- Bob verschlüsselt sie zusätzlich mit einem nur ihm bekannten Schlüssel und sendet sie wieder zu Alice.
- Alice entfernt ihren Schlüssel und sendet die Nachricht wieder zu Bob.
- Bob entfernt nun seinen Schlüssel und kann die Nachricht lesen.
Auch hier bleibt die Möglichkeit eines Man-In-The-Middle-Angriffs.