24. November 2009 - 00:56 Uhr
Dieser Jubiläumsartikel, nämlich der 50. an der Zahl in diesem Blog, beschäftigt sich mit der schönsten Nebensache der Welt: Der asymmetrischen Verschlüsselung.
Die meisten Leute sind gutgläubig, was den aus und eingehenden Datenverkehr ihres Computers, wie Email- oder Messengerdaten, angeht. Nicht selten wird da gerne mal Musik oder anderes urheberrechtlich geschützes Material durch den Äther gesandt. Das diese Daten relativ leicht abzufangen und zuzuordnen sind ist leider vielen Leuten noch immer nicht bewusst. Gegen das Ausspähen von TCP/IP-Paketen kann man im Prinzip nicht viel machen, jedoch kann man sie verschlüsseln, so dass der ungewollte Empfänger nichts mehr davon lesen kann. Dazu gibt es aber eine Menge Möglichkeiten. Man kann es zum Beispiel versuchen wie Julius Cäsar vor ein paar Jahren. Einfach mal das Alphabet um vier Stellen verschieben (so wird aus einem A ein D) und dann hoffen, dass es keiner merkt. Dies ist aber unwahrscheinlich denn die Wortlängen bleiben gleich. Ebenso ist auffällig, dass Wörter, in denen ein Buchstabe unmittelbar wiederholt wird (wie das t in unmittelbar) in dieser Verschlüsselungsart ebenfalls doppelt auftreten und gleich sind.
Zwischen dem Römischen Reich und heute hatten dann noch ein paar andere Leute gute Ideen, was Verschlüsselungsalgorithmen angeht. Unter anderem sogar die Nazis, die mithilfe der Enigma ziemlich lange verschlüsselt morsen konnten. Dann kam aber Gott sei Dank Alan Turing und hat dem ein Ende bereitet.
Den fortschrittlichsten Ansatz zum Thema Verschlüsselung hatten aber Ende der 70er Jahre die Herren Ronald L. Rivest, Adi Shamir und Leonard Adleman. Sie haben den RSA-Algorithmus (Die Abkürzung entspricht den Anfangsbuchstaben der Nachnamen) erfunden, mit dem man neben der eigentlichen Verschlüsselung noch ein ganz anderes Problem lösen kann. Bei den bisher üblichen, symmetrischen Verfahren mussten zwei Personen den Schlüssel kennen um entweder zu chiffrieren oder zu dechiffrieren. Sind diese Personen zufällig unmittelbar im selben Raum und nicht gefährdet, von anderen Personen abgehört zu werden, ist die Übergabe des Schlüssels kein Problem. Man sagt oder gibt ihn einfach der anderen Person. Über weite Distanzen ist das schon schwieriger, denn wenn jemand den Schlüssel auf dem Weg abfängt, kann dieser jemand ebenfalls (de)chiffrieren und so Nachrichten lesen und schreiben bzw. modifizieren.
Jetzt kommen die drei Herren von oben zum Einsatz. Sie erfanden kurzerhand ein asymmetrisches Verschlüsselungsverfahren, bei dem der Schlüssel zum Chiffrieren nicht derselbe ist, wie der zum Dechiffrieren. Jetzt kommt ein verwirrendes Beispiel.
Person A generiert sich aus einer monströsen Zufallszahl zwei Schlüssel, nämlich einen privaten und einen öffentlichen. Diese beiden Schlüssel zusammen multipliziert ergeben wieder die Zufallszahl (das ist jetzt vereinfacht, aber anschaulicher als die Wahrheit). Nun macht Person A Bekanntschaft mit Person B und übergibt dieser per Mail ihren öffentlichen Schlüssel. Ein Mithörer klaut sich diesen Schlüssel, aber das ist allen egal. Warum sehen wir gleich.
Person B hat äußerst private Gedanken Person A gegenüber und möchte diese Gedanken Person A auch mitteilen. Sie schreibt ihre Gedanken nieder und verschlüsselt diese nun mit dem öffentlichen Schlüssel von Person A. Ab jetzt ist die Nachricht unlesbar. Nicht mal Person B kann sie noch lesen.
Person A erhält nun die verschlüsselte Nachricht von Person B, entschlüsselt sie mit dem einbehaltenen privaten Schlüssel und errötet.
Und warum war nun dieser Mithörer egal? Tja, selbst der kann ja die öffentlich verschlüsselte Nachricht mit dem öffentlichen Schlüssel nicht öffnen. Das kann nur der Besitzer des privaten Schlüssels und den hütet Person A wie einen Goldschatz.
So, das war mal wieder das etwas zu lang geratene Intro zu dem eigentlichen Highlight, über das ich berichten wollte. Ich wollte nämlich erzählen, dass man mit PGP auch ganz hervorragend seine Daten komprimieren kann. Das liegt in der Natur von PGP und funktioniert besser als jedes Archivierungsprogramm (7zip, tar, Winrar, etc.). Dazu ein kleines How-To mit der Voraussetzung, dass man sich GnuPG schon installiert und ein Schlüsselpaar erzeugt hat. Wie das geht, erfährt man auf der Seite von GnuPGP. Der Rest geht so:
Ziel ist es, meine Backup-Ordner zu schmälern. Sie nehmen insgesamt fast 28 GB Festplattenspeicher ein und das ist mir für Daten, die ich nur im Notfall brauche einfach zu viel. Es handelt sich um drei Ordner. Einen mit dem Ordnersystem dieses Blogs (blog) und dem zugehörigen MySQL-Dumps, einen mit CD-Daten, die ich für teures Geld erstanden habe und einfach gerne in Sicherheit weiß (cd) und ein weiterer Ordner mit schnöden Festplattendaten, die mich im Falle eines kompletten Crashs vor Totalverlust bewahren sollen (festplatte).
Da PGP nur Dateien verschlüsseln kann, erstelle ich mit
tar -cf blog.tar blog
tar -cf cd.tar cd
tar -cf festplatte.tar festplatte
erst mal drei Archive, die ich wie Dateien behandeln kann. Anschließend geht es mit der Verschlüsselung direkt weiter. Vorausgesetzt, man hat seinen privaten und öffentlichen Schlüssel korrekt importiert, so sollte es wie folgt funktionieren.
gpg -r Fabian --encrypt blog.tar
gpg -r Fabian --encrypt cd.tar
gpg -r Fabian --encrypt festplatte.tar

Das Gesamtergebnis ist verblüffend. Aus den 27,5 GB großen tarballs sind drei Dateien mit einer Gesamtgröße von 21,6 GB geworden. Das entspricht einer Ersparnis von 5,9 GB bzw. fast 23 %. Ein Ordner mit Musik war vorhin nach der Verschlüsselung nur noch 8,9 MB groß. Ursprünglich hatte er eine Kapazität von knapp 100 MB. Diese Ersparnis ist mir bis jetzt immer noch ein Rätsel, funktioniert aber auch nach wiederholtem Male, was Fehler in der Beobachtung meinerseits. ausschließt. Die technische Funktionsweise dieser Kompression wäre sicher interessant zu verstehen.
Das ganze Prozedere hat natürlich trotzdem einen entscheidenden Nachteil. Es dauert. Wenn man größere Datenmengen verschlüsselt, lernt man bald die Grenzen seines Rechners kennen. Die Errechnung der obigen drei Ordner hat fast eine Stunde gedauert und so langsam ist mein Rechner eigentlich nicht.
Jedenfalls finde ich die Anwendung von PGP jetzt nicht mehr so nerdy wie vorher und habe ab nun mit gutem Gewissen meinen Public Key unter “Kontakt” stehen.