Einführung
Im digitalen Zeitalter müssen immer mehr Daten gleichzeitig gesendet werden. Dies kann jedoch schnell zu einem Problem für die Hardware werden, die die Daten sendet. Werden zu viele Daten über eine Verbindung gesendet, kann die Übertragung Stunden oder Tage dauern, obwohl der Empfänger sie innerhalb von Minuten benötigt. Hier kommt die Komprimierung ins Spiel. Die Komprimierung nutzt Muster in den Daten, um die Datengröße zu reduzieren und so Bandbreite und Speicherplatz zu sparen. Das funktioniert gut, aber was passiert, wenn die komprimierten Daten während der Übertragung gestohlen werden? Die Komprimierung lässt sich leicht rückgängig machen, sodass die Wiederherstellung des Originals einfach wäre. Deshalb verwenden viele Menschen verschlüsselntion und Komprimierung beim Senden von Nachrichten zusammen.
Was ist Komprimierung und wie funktioniert sie?
Komprimierung ist ein Prozess, der die Größe einer Datei oder von Daten reduziert, typischerweise um Speicherplatz zu sparen, die Datenübertragung zu beschleunigen oder die Effizienz verschiedener Anwendungen zu verbessern. Es gibt zwei Hauptarten der Komprimierung: verlustfrei und verlustbehafteteBei der Kompression Algorithmus: Jede Wiederholung einer Zeichenfolge wird nur einmal gespeichert. Das bedeutet: Wenn eine bestimmte Zeichenfolge irgendwo im Text wiederholt wird, wird sie nur beim ersten Mal gespeichert. Beim zweiten Mal wird sie als Referenz auf das erste Vorkommen gespeichert. Daher wird ein Text, der mehrfach vorkommt, sehr effizient komprimiert, sodass die Größe kleiner ist. Diese Eigenschaft kann für einen Side-Channel-Kompressionsangriff ausgenutzt werden. So funktioniert es:
-
Redundanzentfernung
Komprimierungsalgorithmen erkennen und beseitigen Redundanz in den Daten. Redundanz kann in Form von wiederholten Mustern, doppelten Informationen oder unnötigen Details auftreten. Durch die Beseitigung von Redundanz wird die komprimierte Datendarstellung effizienter.
-
Wörterbuchbasierte Komprimierung
Einige Komprimierungsalgorithmen, wie beispielsweise Lempel-Ziv-Welch (LZW), verwenden einen wörterbuchbasierten Ansatz. Sie erstellen ein Wörterbuch mit häufig vorkommenden Mustern und ersetzen diese durch kürzere Codes. Dies ist besonders effektiv für die Komprimierung von Text oder Daten mit wiederkehrenden Sequenzen.
-
Entropiekodierung
Bei Entropiekodierungstechniken wie der Huffman-Kodierung werden häufiger vorkommenden Symbolen kürzere Codes und selteneren Symbolen längere Codes zugewiesen. Dabei wird die statistische Verteilung der Symbole in den Daten ausgenutzt, um Folgendes zu erreichen:
-
Quantisierung (verlustbehaftete Komprimierung)
Bei der verlustbehafteten Komprimierung wird die Quantisierung angewendet, um die Genauigkeit bestimmter Daten zu reduzieren, wobei einige Details verloren gehen. Beispielsweise können bei der Bildkomprimierung Farbwerte gerundet werden, was zu einem Verlust der Farbgenauigkeit, aber einer Verringerung der Dateigröße führt.
-
Transformationscodierung (z. B. diskrete Kosinustransformation)
Bei der Transformationscodierung werden die Daten in einen anderen Bereich konvertiert, in dem die Informationen konzentrierter sind. Bei der Bild- und Videokomprimierung wird hierfür häufig die Diskrete Kosinustransformation (DCT) verwendet.
Verschlüsselung und Komprimierung
Die Verschlüsselung kann entweder symmetrisch oder asymmetrisch. Die symmetrische Verschlüsselung ist die weniger komplizierte der beiden Methoden, da sie einen Schlüssel zum Verschlüsseln und entschlüsseln Daten. Symmetrische Verschlüsselung ist deutlich schneller als asymmetrische, aber auch nicht so sicher. Nur ein Schlüssel muss kompromittiert werden, um die Originaldaten zu kompromittieren. Asymmetrische Verschlüsselung verwendet ein öffentliches und ein privates Schlüsselpaar zur Verschlüsselung Klartext Daten. Der Klartext wird durch die Verschlüsselungsalgorithmus zusammen mit einem privaten Schlüssel, den nur der Absender kennt. Die Daten werden dann an den Empfänger gesendet, der den öffentlichen Schlüssel zum Entschlüsseln der Daten verwendet. Dadurch wird die Identität des Absenders sichergestellt, da der öffentliche Schlüssel nur Daten entschlüsselt, die mit dem privaten Schlüssel in diesem Paar verschlüsselt wurden.
Durch Verschlüsselung und Komprimierung lassen sich größere Datenmengen sicher über das Internet versenden. Wird ausschließlich komprimiert, ist die Datensicherheit gefährdet. Ein Man-in-the-Middle-Angriff könnte die Daten abrufen, dekomprimieren und die ursprüngliche Nachricht lesen. Andererseits ist bei ausschließlicher Verschlüsselung die Größe verschlüsselter Nachrichten begrenzt. Aus diesem Grund werden die meisten Nachrichten sowohl verschlüsselt als auch komprimiert. Die nächste Frage lautet: Komprimieren und verschlüsseln Sie die Daten oder umgekehrt?
Zuerst Verschlüsselung oder Komprimierung?
Die Entscheidung, ob Daten zunächst verschlüsselt oder komprimiert werden, hängt von den zu verhindernden Angriffsarten ab. Ursprünglich dachte man, die einzige Möglichkeit, Verschlüsselung und Komprimierung zu kombinieren, bestehe darin, die Daten vor der Verschlüsselung zu komprimieren. Dies liegt daran, dass Komprimierung auf Mustern in den Daten beruht, während Verschlüsselung versucht, diese Muster zu zerstören. Die Methode, zunächst zu komprimieren und dann zu verschlüsseln, hat sich als anfällig für Seitenkanalangriffe erwiesen. Bei diesen Angriffen wird JavaScript-Code verwendet, um einen Brute-Force-Angriff auf den Browser des Opfers durchzuführen. So kann der Angreifer anhand der Größe der komprimierten Daten auf die übertragenen Daten schließen.
Obwohl dieses Problem bei der Methode „Komprimierung und Verschlüsselung“ festgestellt wurde, ist die Methode „Verschlüsselung und Komprimierung“ vergleichsweise problematischer. Diese Methode ist schwieriger als die vorherige, da die Komprimierung Muster in den Daten benötigt, um korrekt zu funktionieren. Das bedeutet, dass der Nutzen der Datenkomprimierung entfällt, da verschlüsselte Daten keine Muster aufweisen sollten. Daher kann die differentielle Kryptoanalyse gegen diese Methode eingesetzt werden, um den Wert der sensiblen Daten zu bestimmen. Komprimierung und Verschlüsselung sind gegenüber der differentiellen Kryptoanalyse deutlich widerstandsfähiger.
Gängige Verschlüsselungs- und Komprimierungsalgorithmen
Symmetrische Verschlüsselungsalgorithmen:
- Erweiterter Verschlüsselungsstandard (AES)
- Kugelfisch
- Twofish
- Rivest-Chiffre (RC4)
- Datenverschlüsselungsstandard (DES)
Asymmetrische Verschlüsselungsalgorithmen:
- Elliptische Kurve Digitale Signatur AlgOrithmus (ECDSA)
- Rivest-Shamir-Adleman (RSA)
- Diffie-Hellman
- Pretty Good Privacy (PGP)
Hashing-Algorithmen:
- Luft ablassen
- Huffman-Codierung
- LZ77
