Hinweis: Dieser Artikel ist ein Beitrag zum ScienceBlogs Blog-Schreibwettbewerb 2015. Hinweise zum Ablauf des Bewerbs und wie ihr dabei Abstimmen könnt findet ihr hier. Informationen über die Autoren der Wettbewerbsbeiträge findet ihr jeweils am Ende der Artikel.
sb-wettbewerb
——————————————

Im letzten Jahr hat Dominic Wäsch auf Astrodicticum Simplex den Gastbeitrag Verschlüsselungsverfahren und ihre Sicherheit eingereicht. Darin beschreibt er unter anderem, was asymmetrische Verschlüsselungsverfahren sind: Jeder Teilnehmer hat einen geheimen und einen öffentlichen Schlüssel. Den geheimen Schlüssel behält man dabei für sich selbst, den öffentlichen dagegen kann man bedenkenlos veröffentlichen, etwa im Internet.

Wenn ich dir also eine Nachricht schicken möchte, verschlüssele ich sie mit deinem öffentlichen Schlüssel, und du kannst sie mit deinem geheimen Schlüssel entschlüsseln. Dabei kann man geheime Schlüssel nicht irgendwie aus öffentlichen ableiten, sodass wirklich nur derjenige mit dem geheimen Schlüssel die Nachricht lesen kann, also nur du. Ich kann die Nachricht zudem mit meinem geheimen Schlüssel signieren, das bedeutet, dass du sicher sein kannst, dass die Nachricht wirklich von mir kommt. Die Signatur kannst du dann mit meinem öffentlichen Schlüssel überprüfen.

Das alles klingt nach einer Menge Aufwand, weshalb ich bitten möchte, nicht sofort abzuschalten, auch wenn Wörter wie „Algorithmus“ vorkommen. Verschlüsselung ist wichtig, um unser aller Privatsphäre zu schützen, und sie ist heutzutage außerdem kinderleicht! Heutzutage hat sich der PGP-Standard etabliert, der dann von verschiedenen Programmen umgesetzt wird, üblicherweise ist das das Programm GPG. Bei GPG kann man sich aussuchen, welchen Verschlüsselungsalgorithmus man benutzen möchte, dabei ist der RSA-Algorithmus der üblichste.

Ich möchte im ersten Abschnitt beschreiben, wie der RSA-Algorithmus funktioniert. Für die darauf folgenden Teile, ist kein Verständnis von RSA erforderlich, jedoch ist der erste Teil der eigentlich wissenschaftlich interessante. Danach beschreibe ich, was es mit PGP und GPG auf sich hat und anschließend, wie man seinen Nachrichten konkret verschlüsseln und signieren kann.

Der RSA-Algorithmus

Das Originalpaper, auf dem dieser Abschnitt basiert, heißt A Method for Obtaining Digital Signatures and Public-Key Cryptosystems von Rivest, Shamir und Adleman.

Wir suchen uns zuerst zwei beliebige Primzahlen (Zahlen, die nur durch 1 und sich selbst teilbar sind) aus und nennen sie p und q. Sei also p = 3 und q = 11. Nun rechnen wir p*q und nennen das Ergebnis n, also n = p*q = 3*11 = 33. Nun benutzen wir die sogenannte „Eulersche Funktion“ φ (sprich: Vieh) und rechnen φ(n) (sprich: φ von n) aus.

Es geht über den Rahmen dieses Textes heraus zu erklären was die φ-Funktion macht, wir benutzen einfach mal zwei Regeln:

  1. Wenn x und y Primzahlen sind, gilt φ(x*y) = φ(x) * φ(y).

  2. Wenn x eine Primzahl ist, gilt φ(x) = x-1.

Wir haben also Glück und es gilt für uns φ(n) = φ(p) * φ(q) = (p-1) * (q-1) = (3-1) * (11-1) = 2*10 = 20.

Als nächstes suchen wir uns eine teilerfremde Zahl zu φ(n) aus, die größer als 1 und kleiner als φ(n) ist, und nennen sie e. Teilerfremd bedeutet, dass die Zahlen nicht durch die gleiche Zahl teilbar sein dürfen, außer natürlich durch 1. 12 und 15 wären zum Beispiel nicht teilerfremd, denn sie sind beide durch 3 teilbar. In unserem Fall setze ich e = 13, weil 13 und 20 teilerfremd ist.

Als nächstes benutzen wir ein Prinzip namens „Kongruenz“. Das Kongruenzzeichen ≡ ist ein Gleich-Zeichen mit drei Strichen. Man kann sagen: x ≡ y mod z, wenn x mod z = y mod z ist. Das „mod“ steht dabei für „Modulo“, was quasi beim Teilen mit Rest der Rest ist. Es gilt etwa: 7 mod 2 = 1, weil 7 / 2 = 3 Rest 1 ist. Bei Kongruenz gilt etwa: 2 ≡ 8 mod 6, weil 2 mod 6 = 8 mod 6 = 2 ist.

Wir können jetzt im Bezug auf die Kongruenz ein sogenanntes „multiplikativ Inverses“ bestimmen. Multiplikativ invers bedeutet: Wenn x*y ≡ 1 mod z gilt, dann sind (für mod z) x und y multiplikativ invers zueinander. Was wir nun brauchen, ist das multiplikativ Inverse zur Zahl e für mod φ(n); die Zahl nennen wir dann d. Dazu benutzen wir den erweiterten Euklidischen Algorithmus, der für unser Beispiel so geht: Zur Erinnerung: e = 13 und φ(n) = 20.

20 = 1*13 + 7 (I)

13 = 1*7 + 6 (II)

7 = 1*6 + 1 (III)

Wir stellen jetzt nach 1 um:

1 = 7-1*6 (Umgestellte Gleichung III)

1 = 7-(13-1*7) (Wir haben für 6 = 13-1*7 die umgestellte Gleichung II eingesetzt.)

1 = (20-1*13)-(13-1*(20-1*13)) (Wir haben für 7 = 20-1*13 die umgestellte Gleichung I eingesetzt.)

1 = 2*20 – 3*13

Da Gleichheit gilt, gilt auch Kongruenz:

1 ≡ 2*20 – 3*13 mod 20 (Wir streichen die 2*20, weil wir das bei mod 20 können.)

1 ≡ -3*13 mod 20 (Wir addieren 20 auf die -3)

1 ≡ (-3+20)*13 mod 20

1 ≡ 17*13 mod 20

Und tadaa, schon haben wir unser multiplikativ Inverses! Es gilt also d = 17. (Probe: 13*17 = 221. 221 mod 20 = 1. Stimmt also.)

Unser öffentlicher Schlüssel besteht nun aus den Zahlen e und n, also 13 und 33, während unser geheimer Schlüssel aus den Zahlen d und n, also 17 und 33 besteht. Alle anderen Zahlen brauchen wir jetzt nicht mehr.

Aber, wirst du jetzt sicher sagen, stopp: Das ist ja total unsicher, wenn ich glaube, dass man aus dem öffentlichen Schlüssel nicht den geheimen herausbekommen kann! Wer das Verfahren kennt, kann einfach das öffentliche n benutzen, um daraus das angeblich geheime d zu bekommen. In unserem Fall müsste man also aus der 33 die 17 ableiten, und das geht ja ganz einfach: Man muss nur φ(33) bilden und danach die oben beschriebenen Schritte durch gehen, und man hat den geheimen Schlüssel. Bei uns ist ja n = 33, also 3*11. Wir wenden die eine Regel mit den Primzahlen an und rechnen einfach: φ(33) = φ(3) * φ(11) = (3-1)*(11-1) = 2*10 = 20.

Die Lösung ist, und allein darauf basiert die Sicherheit von RSA, dass man φ(n) in der Praxis nur sehr schwer ausrechnen kann. Man benutzt einfach riesengroße Primzahlen. Primzahlen mit mehreren hundert Stellen. Die gibt es, und Computer können sie finden. Du suchst dir also zwei davon „zufällig“ heraus, rechnest die eine mal die andere und hast dann das Produkt, das wir n genannt haben. Um jetzt das φ(n) zu berechnen, muss ich aus dem n erst mal wieder die beiden Primzahlen herausbekommen, und das ist verdammt schwierig. Bei 33 geht das noch, da bekomme ich ganz leicht 3 und 11 heraus. Aber wenn das n sehr groß ist, kann ich das nicht, auch wenn ich ein Computer wäre. Es ist unter heutigen Bedingungen nicht möglich. Man kennt einfach kein schnelles Faktorisierungsverfahren für Produkte großer Primzahlen, und wenn die Mathematikergemeinde bis heute keines gefunden hat, kann man davon ausgehen, dass es ein schwieriges Problem ist, an dem man noch ziemlich lange arbeiten wird. Aber vielleicht wird morgen schon jemand drauf kommen und wir müssen uns einen besseren Algorithmus ausdenken.

Ein Problem für RSA stellen allerdings Quantencomputer dar. Man braucht kein effektives Verfahren, wenn man ausreichend leistungsstarke Computer hat. Falls es solche Computer gibt, hat aber nicht nur RSA ein Problem: Auch viele andere kryptographische Algorithmen basieren auf schwierigen mathematischen Problemen, die ebenfalls durch Quantencomputer gelöst werden können. Der Diffie-Hellman-Algorithmus basiert zum Beispiel auf dem Problem, dass man diskrete Logarithmen nicht (schnell) ausrechnen kann. Wir müssen also darauf hoffen, dass etwa die NSA keine entsprechenden Computer besitzt. Da allerdings selbst Edward Snowden zu dem Thema lediglich enthüllt hat, dass die NSA versucht, einen Quantencomputer zu bauen, halte ich RSA derzeit für sicher.

Kommen wir nun zum Benutzen des Schlüsselpaares. Wir wollen jetzt eine Botschaft b verschlüsseln und signieren, um sie hinterher wieder entschlüsseln und die Signatur zu überprüfen. Bei der Botschaft können wir irgendeine Zahl wählen, die kleiner als unser n = 33 ist. (Man kann selbstverständlich auch Buchstaben und Sonderzeichen verschlüsseln, dazu übersetzt man sie mit Codierungsverfahren wie ASCII oder UTF-8 in Zahlen) Ich suche mir also die Zahl b = 2 aus und kenne deinen öffentlichen Schlüssel (e, n) = (13, 33).

Ich generiere den Geheimtext g nun so:

g = be mod n (Wir setzen unsere Zahlen ein)

g = 213 mod 33 (Ein Fall für den Taschenrechner)

g = 8

Die 8 schicke ich dir nun zu und du entschlüsselst sie mit deinem geheimen Schlüssel (d, n) = (17, 33).

b = gd mod n

b = 817 mod 33

b = 2

Und siehe da, die Botschaft wurde entschlüsselt! Jetzt kannst du mir eine andere Botschaft B = 3 zurückschicken. Um die Nachricht zu verschlüsseln, bräuchtest du meinen öffentlichen Schlüssel, das lassen wir mal einfachheitshalber mal weg. Stattdessen signierst du die Botschaft B mit deinem geheimen Schlüssel, sodass daraus die signierte Botschaft s wird, und das geht so:

s = Bd mod n

s = 317 mod 33

s = 9

Nun kann ich überprüfen, ob die Nachricht auch wirklich von dir geschickt wurde, das überprüfe ich mit deinem öffentlichen Schlüssel:

B = se mod n

B = 913 mod 33

B = 3

Es ist wieder unser B von oben herausgekommen, die Signatur wurde also verifiziert.

Aber warum funktioniert das? Wir können dazu den Satz von Euler benutzen (Wikipedia hat einen Beweis dazu) der folgendes aussagt:

Wenn x und y teilerfremd sind, gilt: xφ(y) ≡ 1 mod y.

Bei RSA gilt ja anscheinend, dass b ≡ bed ≡ bde (mod n) ist. (Also die Botschaft ist kongruent zur Entschlüsselung der Verschlüsselung der Botschaft, die kongruent zur Verifizierung der Signatur der Botschaft ist. Logisch.) Es gibt in der Mathematik ein paar sogenannte Potenzgesetze, eines davon ist: xyz = xy * z. Wenn wir das Potenzgesetz anwenden, ist klar, dass gilt: bed = bde = be * d. Aber jetzt müssen wir noch zeigen, dass auch gilt: be * d ≡ b (mod n).

Praktischerweise wissen wir, dass e und d (für mod φ(n)) multiplikativ invers zueinander sind, deshalb gilt ja: e*d ≡ 1 mod φ(n). Das können wir umschreiben zu e*d = k*φ(n) + 1, wobei k irgendeine ganze Zahl ist. Es gilt also:

be*d ≡ bk*φ(n) + 1 mod n. Wir können die 1 aus dem Exponenten herausziehen, sodass sich ergibt:

be*d ≡ b * bk * φ(n) mod n. Jetzt wenden wir unser Potenzgesetz „rückwärts“ an.

be*d ≡ b * bφ(n)k mod n. So, und jetzt können wir endlich den Satz von Euler anwenden, der hier aussagt: bφ(n) ≡ 1 mod n. Das dürfen wir, weil b kleiner ist als das n ist, das wir aus zwei großen Primzahlen zusammengesetzt haben. Solange b also nicht eine dieser Primzahlen ist, sind b und n teilerfremd und der Satz gilt, also:

be*d ≡ b * 1k mod n. Da eins hoch irgendwas immer eins ist, bekommen wir das raus, was wir haben wollten:

be*d ≡ b mod n. Yay.

Wir wissen jetzt also, was der RSA-Algorithmus ist, wie er funktioniert. Jetzt wollen wir aber wissen, wie er zum Einsatz in der Software kommt.

PGP und GPG

In diesem Abschnitt geht es darum, was PGP und GPG sind und wie sie funktionieren. Wie man seine Nachrichten nun konkret verschlüsselt und signiert, ist in nächsten Abschnitt erklärt.

PGP steht für „Pretty good Privacy“, also „Ziemlich gute Privatsphäre“. PGP bezeichnete zuerst ein Programm, das 1991 von Philip Zimmermann geschrieben wurde. Zimmermann benutzte dabei in seinem Programm eine hybride Verschlüsselung, also eine Mischung aus symmetrischer und asymmetrischer Verschlüsselung. Ein symmetrisches Verfahren bedeutet, dass es den gleichen Schlüssel zum Ver- und Entschlüssen benutzt. Bei einem asymmetrischen Verfahren dagegen gibt es einen öffentlichen und einen geheimen Schlüssel, dabei wird der öffentliche Schlüssel zum Verschlüsseln und der geheime Schlüssel zum Entschlüsseln benutzt, wie etwa bei RSA.

Ein Beispiel für ein symmetrisches Verfahren ist die Caesar-Verschlüsselung. Bei Caesar „verschiebt“ man einfach die Buchstaben um den Schlüssel. Wenn der Schlüssel 5 ist, verschiebt man die Buchstaben um 5, und es ergibt sich:

a b c d e f g h i j k l m n o p q r s t u v w x y z
f g h i j k l m n o p q r s t u v w x y z a b c d e

Aus dem Wort „Hallo“ wird mit Caesar-5 also „Mfqqt“. Caesar hat also ein ziemlich unsicheres Verfahren benutzt, man muss ja nur 26 Möglichkeiten ausprobieren. Es gibt aber auch sicherere symmetrische Algorithmen, zum Beispiel den AES. Den AES möchte ich hier nicht erklären, wer daran interessiert ist, kann diesen Comic zum Thema lesen.

Wie funktioniert die hybride Verschlüsselung nun? Wir haben zuerst ein Dokument, das wir jetzt verschlüsseln wollen. Wir generieren uns nun einen zufälligen Schlüssel (S) für ein symmetrisches Verfahren und verschlüsseln damit die Nachricht. Dann nehmen wir den Schlüssel S und verschlüsseln ihn mit dem öffentlichen Schlüssel des Empfängers, den wir schon kennen. Der verschlüsselte Schlüssel S und die verschlüsselte Nachricht kann dann an den Empfänger übermittelt werden, der dann zuerst den Schlüssel S mit seinem geheimen Schlüssel entschlüsselt und die Nachricht dann mit dem nun entschlüsselten Schlüssel S entschlüsselt. Alles klar? Dieses Bild stellt das Verfahren gut dar:

Um PGP so transparent wie möglich zu machen, wurde der OpenPGP-Standard entwickelt, und jeder darf Programme schreiben, die diesen Standard umsetzen. Wenn man heutzutage PGP sagt, meint man dabei selten die von Zimmermann geschriebene Software, sondern meistens diesen Standard. Bestandteile dieses Schlüssels sind eine oder mehrere Benutzer-IDs. Diese bestehen normalerweise aus dem Vor- und Nachnamen des Schlüsselbesitzers und seiner E-Mail-Adresse. Wer mehr als eine E-Mail-Adresse hat, kann auch mehr als eine Benutzer-ID haben, man kann die E-Mail-Adresse aber auch weglassen. Man kann auch einen Kommentar angeben, das sollte man aber eigentlich nur machen, wenn man einen Allerweltsnamen hat, an dem man nicht identifiziert werden kann. Eine Benutzer-ID kann dann z.B. so aussehen: Hans Meyer (Astronom) <hans.meyer@scienceblogs.de>. Außerdem kann man aus dem Schlüssel erkennen, welcher Algorithmus zum Verschlüsseln und Signieren benutzt werden soll, und der Schlüssel enthält natürlich auch den eigentlichen Schlüssel, und eventuell Unterschlüssel, also die langen Zahlen, mit denen Texte ver- und entschlüsselt sowie signiert werden können. Es ist außerdem möglich, ein Bild von sich zu dem Schlüssel hinzuzufügen. Ein weiterer Teil des Schlüssels sind Signaturen Dritter, dazu komme später.

All diese Daten werden dann in einem bestimmten Verfahren, das hier beschrieben ist, in einen Haufen Zeichen umgewandelt. Mein öffentlicher Schlüssel sieht dann zum Beispiel so aus. Das sieht für das menschliche Auge ziemlich nichtssagend aus, man kann aus diesen Zeichen aber die oben genannten Informationen ableiten. Das muss man aber nicht selber irgendwie herausfinden, sondern man lässt das Programme machen. Die „verbale Interpretation“ meines öffentlichen Schlüssels kann man auch hier ansehen.

Die Seite, auf die ich gerade gelinkt habe, ist ein Keyserver, ein wichtiges Instrument zum Schlüsselaustausch. Auf einen solchen Server kann man seinen öffentlichen Schlüssel hochladen, damit man ihn öffentlich einsehen kann. Es gibt mehrere Keyserver weltweit, die ständig ihre Schlüssel synchronisieren, sodass alle auf dem neuesten Stand sind. Wenn du mir jetzt eine Nachricht senden möchtest, kannst du einfach auf einem beliebigen Schlüsselserver (z.B. sks-keyservers.net) meinen Namen suchen. Es kann nun aber sein, dass mehrere Schlüssel angezeigt werden. Woher weiß man jetzt, welcher davon der richtige ist?

Die Lösung für dieses Problem sind Signaturen. Aus jedem öffentlichen Schlüssel wird ein sogenannter Fingerabdruck erzeugt, an dem der Schlüssel eindeutig identifiziert werden kann. (Aus dem Fingerabdruck leitet sich dann auch die Schlüssel-ID ab, die die letzten 8 Zeichen des Fingerabdrucks ist.) Mein Fingerabdruck zum Beispiel ist 27E0 FC54 7163 DAA0 DFDA 9DA6 6E06 D478 B670 0FD9. Dieser Information solltest du jedoch nicht trauen, denn ich habe sie nicht besonders sicher geschickt. Florian könnte diesen Text zum Beispiel verändert haben. Hat er wahrscheinlich nicht, aber man sollte trotzdem dieser Information nicht sofort trauen. Wenn man nun aber persönlich jemanden trifft, der auch einen PGP-Schlüssel hat, kann man seine Fingerabdruck auf einem Stück Papier austauschen, und sich gegenseitig ausweisen, dass man wirklich der ist, der man vorgibt zu sein. Anschließend signiert man den Schlüssel, auf den der Fingerabdruck passt. Wie man das genau macht, hängt von Programm ab, das man benutzt. Jetzt schickt man den veränderten Schlüssel dem Besitzer zu, der ihn nun wieder auf den Schlüsselserver hochladen kann.

Als Resultat sieht man auf den Schlüsselservern, dass die Schlüssel signiert wurden. Hilfreich ist es, wenn zwei Leute einen gemeinsamen Bekannten haben: Man vertraut dem Schlüssel des gemeinsamen Bekannten, dann kann man auch allen Schlüsseln vertrauen, die der gemeinsame Bekannte unterschrieben hat. Dieses entstehende „Netz“ aus Signaturen nennt man auch das „Web of Trust“, das sind Schlüssel, die sich alle gegenseitig direkt oder indirekt vertrauen. Es ist wichtig, das Web of Trust zu stärken, indem man so viele Schlüssel signiert wie möglich (aber natürlich nur, nachdem man überprüft hat, ob sie dem Besitzer gehören). Diese Seite ist zum Beispiel ein Verzeichnis für alle Leute, die bereit sind, Schlüssel zu signieren. Man kann da nach der nächstgrößeren Stadt in seiner Umgebung suchen und entsprechende Leute finden. (Mich zum Beispiel findet man in Hannover.)

Wie man GPG benutzt

Ich habe ja schon gesagt, das der PGP-Standard von jedermann in einem Programm umgesetzt werden darf. Das Programm, dass die meisten dabei benutzen, heißt GPG, das steht für „GNU Privacy Guard“. GPG ist für alle mir bekannten Betriebssysteme verfügbar: Für Microsoft Windows gibt es Gpg4win, für Mac OS X gibt es die GPGTools und bei den meisten Linux-Distributionen ist GPG ohnehin schon als „gnupg“ oder „gnupg2“ vorinstalliert, aber falls nicht, gibt es hier eine Liste mit Installationsanweisungen. Viele E-Mail-Programme haben auch ein Plugin für GPG, für Thunderbird etwa ist das Enigmail.

Die oben verlinkten Programme haben fast alle eine graphische Oberfläche. (Die Ausnahme sind die Linux-Pakete, aber auch für die Linux-Distributionen gibt es meistens ein graphisches Programm.) Man kann sie eigentlich recht intuitiv bedienen, es gibt aber auch Tutorials im Internet (auch auf Deutsch: Enigmail, Gpg4win, GPGTools), die Restfragen klären können. Man kann GPG jedoch auch auf der Kommandozeile benutzen, und hier sehen die Befehle immer gleich aus. Ich möchte jetzt nur die häufigsten Befehle auflisten, ein ausführlicheres Tutorial für GPG auf der Kommandozeile gibt es hier.

  • Schlüsselpaar erzeugen: gpg --gen-key. Man wird nun gefragt, welchen Algorithmus man benutzen will (RSA natürlich), wie lange der Schlüssel gültig sein soll, wie man heißt und welche E-Mail-Adresse benutzt werden soll. Die anschließende Schlüsselgenerierung kann dann ein bisschen Zeit kosten, das kommt bei RSA daher, dass zwei extrem große Primzahlen gesucht werden müssen. Wenn der Vorgang abgeschlossen ist, hat man einen privaten und einen öffentlichen Schlüssel.

  • Öffentlichen Schlüssel veröffentlichen. Man kann den Schlüssel nun an einen Keyserver schicken, das geht so: gpg --send-key [Schlüssel-ID]. Man kann seinen Schlüssel aber auch in eine Datei schreiben, das geht so: gpg -a --export [Schlüssel-ID] > [Dateiname].

  • Schlüssel importieren: Wenn jemand einem eine Datei mit einem Schlüssel gegeben hat, kann man den so importieren: gpg --import [Dateiname].

  • Schlüssel empfangen: Man kann auf Schlüsselservern nach Namen suchen: gpg --search-keys [Name]. Wenn man schon die Schlüssel-ID des Schlüssels kennt, den man haben möchte, kann man sich den auch so herunterladen: gpg --recv-keys [Schlüssel-ID].

  • Schlüssel anzeigen: Man kann sich jetzt alle Schlüssel, die man hat, mit gpg -k anzeigen lassen.

  • Nachricht verschlüsseln und signieren: gpg -sear [Empfänger]. Das s steht dabei für das englische sign, e für encrypt, a dafür dass man das Ergebnis als ASCII-Text und nicht als Bytestrom haben will, und r für receiver. Man kann mit gpg -sa auch nur signieren, und mit gpg -ear nur verschlüsseln.

  • Nachricht entschlüsseln: Das geht mit gpg -d für decrypt.

  • Fingerabdruck anzeigen: Die Zeichenkette, die den Schlüssel eindeutig identifiziert: gpg --fingerprint [Name oder Schlüssel-ID]

  • Schlüssel signieren: Wenn man geprüft hat, dass der Schlüssel echt ist, kann man ihn signieren: gpg --ask-cert-level --sign-key [Schlüssel-ID].

Denjenigen, die das Ver- und Entschlüsseln üben möchten, empfehle ich den Subreddit GPGpractise.

Ich hoffe, das ich euch die Prinzipien von RSA, PGP und GPG ein wenig näher bringen konnte, und vielleicht auch den einen oder anderen überzeugen konnte, seine Nachrichten zu verschlüsseln. Wenn ich sie beantworten kann, beantworte ich gern auch Fragen in den Kommentaren.

————————————————-
Hinweis zum Autor: Dieser Artikel wurde von Philip geschrieben.

Kommentare (18)

  1. #1 bruno
    12. September 2015

    Ein kompliziertes Thema hervorragend verständlich beschrieben! So aufbereitet, dass es jede(r) verstehen kann.
    Tx!

  2. #2 Dampier
    12. September 2015

    Oha … bei den Formeln komme ich nicht mit, keine Chance 😉

    Trotzdem habe ich einigermaßen verstanden, worum es geht, der Atikel hat also seinen Zweck erfüllt.

    Das Problem bei PGP und ähnlichen persönlich anwendbaren Sicherungen ist immer noch die Bequemlichkeit des Users. Ich sehe viele gute Gründe, meine private Korrespondenz zu verschlüsseln, aber es ist mir schlicht zu aufwendig. (Ich nutze immerhin die “Passwort merken”-Funktion im Browser nicht, empfinde aber schon die Aufforderung zur Passworteingabe jedesmal als stressig). Da aus meinem Bekanntenkreis auch niemand verschlüsselt, ist das eh hinfällig.

    Mir ist bewusst, dass der Text einer E-Mail in etwa so geheim ist, wie der Text auf einer Postkarte. Deshalb schreibe ich einfach nichts potentiell Verfängliches (so es denn überhaupt mal vorkommt) per E-Mail, das kommuniziere ich dann auf anderen Kanälen.

    Wäre ich Aktivist oder Journalist, würde ich das wohl anders handhaben, aber für meinen belanglosen Privatkram ist mir das zu viel Aufwand.

    Aber danke für den Artikel, Philip, es ist natürlich wichtig, dass im Zweifelsfall jeder weiß, dass es sowas gibt, und wie man es anwendet. Ein wichtiges Stück Aufklärung allemal.

    grz
    Dampier

  3. #3 bruno
    12. September 2015

    …ich finde gerade die Formeln so gut und simpel erklärt, dass da jede(r) mitkommen kann – wenn man will 😉

  4. #4 Dampier
    12. September 2015

    Nee, Bruno, so einfach ist das nicht. Selbst wenn ich es ganz doll wollte, würde ich das nicht verstehen. Ein Analphabet kann ja auch nicht durch reine Willensanstrengung plötzlich lesen 😉

  5. #5 bruno
    12. September 2015

    Oh, Annummerologismus… harter Fall!!

    Ich wollte auch nur zum Ausdruck bringen, dass (gerade) die Formeln so gut beschrieben wurden, dass selbst ich sie nachvollziehen konnte – was auch nicht zu meinen Kernkompetenzen oder Lieblingsbeschäftigungen zählt…

    @Dampier: dann mal gute Besserung 🙂

  6. #6 dgbrt
    13. September 2015

    Die Formeln helfen einem Endanwender überhaupt nicht. Zumal die tatsächlichen Techniken ja doch noch etwas komplexer sind.

    Ich habe es schon erlebt, dass für eine VPN-Verbindung einfach alle Zertifikate an den Partner übermittelt wurden. Das natürlich mit einer unverschlüsselten Email. Eine Erklärung des Funktionsprinzips Private/Public-Key sollte also im Vordergrund stehen. Zumal sich die Art der Verschlüsselung ständig verbessert.

    Und obwohl ich ständig mit Verschlüsselungen für Verbindungen von verschiedenen Niederlassungen über das Internat habe, meine Mails sind immer noch offen – wie eine Postkarte.

  7. #7 brian
    13. September 2015

    #5: Annummerologismus? Schönes Wort, wo hast Du es her? Ich suche schon länger die richtige Übersetzung für innumeracy, Deine gefällt mir, aber vielleicht mit nur einem “m”

  8. #8 rolak
    13. September 2015

    suche schon länger

    Schon sehr sehr lange gibt es die alte ‘Rechenschwäche’, brian, besser, umfassender, jedoch nicht so etabliert ist ‘Dyskalkulie‘.

    btt: Sauber erklärt und endlich mal keine Angst vor Formeln gehabt. Allein Letzteres ist ja schon einen Bonuspunkt wert 😉

  9. #9 Dampier
    13. September 2015

    @brian, wikipedia sagt: Zahlenanalphabetismus
    (Weitergeleitet von Innumeracy)

    Ich weiß nicht, ob es das ist. Rechnen kann ich schon einigermaßen, ich würde es also eher als Formelanalphabetismus bezeichnen (das Gleichheitszeichen mit den 3 Strichen sehe ich z.B. zum ersten Mal …). Irgendwie mache ich bei Formeln immer sofort zu. Vielleicht hatte ich einfach nur nie gute Mathelehrer. Mathematik finde ich an sich ziemlich spannend.

    @bruno

    dann mal gute Besserung 🙂

    Danke. Mit einem eingehenden Studium könnte ich an dem Zustand sicher noch was verbessern, aber das würde richtig in Arbeit ausarten. Lieber füttere ich meinen Geist mit etwas, das ihm besser schmeckt 😉

    Als Formelanalphabet weiß ich natürlich Texte über Mathematik sehr zu schätzen, die möglichst ohne Formeln auskommen und trotzdem gut verständlich sind. Da ich diesem Artikel weitestgehend folgen konnte, muss er also ziemlich gut erklärt sein :]

  10. #10 Philip
    13. September 2015

    @bruno, rolak: Danke!

    @Dampier: Schade um die Formeln, aber ich gebe zu, dass der Teil der schwierigste ist.

    Bequemlichkeit ist tatsächlich ein großes Hindernis, aber das ist gerade das Problem in der Verschlüsselung: Entweder sie ist unbequem und der Nutzer hat die ganze Arbeit, oder das Programm nimmt einem die ganze Arbeit ab, sodass der Nutzer dem Programm vertrauen muss, das Programm also potenziell unsicher ist.

    Ich finde trotzdem, dass es wichtig sein sollte Verschlüsselung in den Alltag zu integrieren. Wie das dann sicher umgesetzt werden soll weiß ich jetzt aber auch nicht. Kaum jemand kommuniziert noch viel über E-Mails, und PGP-Nachrichten über Facebook oder WhatsApp zu schreiben grenzt leider an Lächerlichheit. (Ist das ein Wort?) Gut, Facebook/WhatsApp könnte natürlich ein Entschlüsselungs-Plugin anbieten, aber dann müsste man ja denen seinen geheimen Schlüssel geben, das will man ja auch nicht.

    Das Gleichheitszeichen mit 3 Strichen kennt glaube ich außerhalb der Zahlentheorie kaum jemand, ich hab das auch erst vor ein paar Monaten in einer Mathevorlesung zum ersten Mal gesehen.

    @dgbrt: Die Formeln sollen ja auch nicht dem Endanwender helfen, sondern jemandem, der die mathematischen Grundlagen verstehen möchte. 😉 Man kann auch verschlüsseln, ohne zu verstehen, wie sie funktioniert.

    Das Prinzip der geheimen und öffentlichen Schlüssel ist wichtig, da gebe ich dir Recht. Die muss dann auch eigentlich der Endanwender verstehen müssen. Dennoch habe ich das am Anfang bewusst nur kurz erklärt, nicht nur weil ich die erlaubten 20.000 Zeichen schon überreizt hatte, sondern auch weil Dominics Beitrag (ganz oben verlinkt) im letzten Jahr schon ziemlich ausführlich und mit Beispiel auf die Funktionsweise von asymmetrischen Verfahren eingeht. Ich wollte da lieber ein konkretes Verfahren erklären.

  11. #11 Hans
    13. September 2015

    @Dampier, #9:

    Irgendwie mache ich bei Formeln immer sofort zu. Vielleicht hatte ich einfach nur nie gute Mathelehrer.

    Das dürfte meiner Ansicht nach die Ursache sein. Ich hab das in Schule und Studium auch immer so erlebt: Wenn ein Lehrer oder Prof von der Sache begeistert war und dazu noch etwas von Didaktik verstand, dann hab ich auch die kompliziertere (Ingenieurs-)Mathematik verstanden. Aber wenn die Leute einfach nur auf irgend eine Art und Weise “ihren Stoff durchgezogen” haben, dann hab ich meisst nur Bahnhof verstanden, selbst wenn ich den Stoff zum Teil schon kannte.

  12. #12 gaius
    13. September 2015

    @Philip

    Ich fand das Prinzip auch gut erklärt.

    Die Formeln könnte ich verstehen, wenn ich wollte. Ist mir aber entschieden zuviel Arbeit, wenns nicht wirklich nötig ist (denn mit verstehen meine ich nicht, irgendwie ne Ahnung zu haben, sondern richtig durchdringen).

    Für solche Fälle könnte ich mir vorstellen, im Text eine Überspringung anzubieten: “wers genau wissen will, bekommt hier die Formeln, alle anderen können auch bei Absatz xxx weiterlesen, ohne dass es unverständlich wird”

    Als Produktentwickler muss ich allerdings @Dampier recht geben: Das Produkt Verschlüsselung ist zur Zeit (und vielleicht sogar prinzipiell bei den jetzigen Verfahren) hoffnungslos überkompliziert für den alltäglichen Gebrauch – auch wenn ich es eigentlich wünschenswert finde.

    Wenn ich alles richtig verstanden habe, dürfte der größte Knackpunkt die vorab nötige Verständigung der Kommunikationspartner sein – so etwas kann sich eigentlich nur lohnen, wenn zwei Personen ständig kommunizieren. (Vielleicht liege ich da auch falsch – eine Erklärung des ganz konkreten Ablaufs mit allen Vorbereitungen, auf die ich mich schon gefreut hatte, fehlte allerdings auch im Artikel).

  13. #13 bruno
    13. September 2015

    @brian#7 (rolak#8)
    An – nummer – o – logismus.
    Eigenkreation. Drum auch “Nummer” mit 2 “N”.
    Schön, dass es dir gefällt 🙂

    Wobei das schonsehr hybride ist. Und “-logismus” idR mit “vernunftorientiert” belegt ist – im griech.aber durchaus auch noch mit “Berechnen” durchgeht.

    Wusste nicht mal, dass es “innumerency” im engl. gibt

  14. #14 bruno
    13. September 2015

    …vielleicht gibt es ja mal einen Wiki-Eintrag für Annummerologie 🙂
    rolak hat natürlich recht (wobei es Dampiers Problem auch nicht zur Gänze trifft).
    Annummerologismus verhält sich zur Dyskalkulie wie die Dyslexia zum Analphabetismus!
    🙂 schön´ aben´!

  15. #15 bruno
    13. September 2015

    …sorry, einer noch: “innumeracy” wird gemeinhin ins Deutsche mit “Rechenschwäche” oder “Zahlenblindheit” übersetzt. lg

  16. #16 bruno
    13. September 2015

    @Dampier#9
    …war auch nicht bös gemeint! Ich überspringe Formeln und Grafiken auch lieber, wenn ich weiss, jemand mit mehr Ahnung erklärt mir das gleich ohnehin noch plausibel (so wie FF das immer macht 🙂
    Man muss die Formeln ja auch nicht nachvollziehen (wollen) – warum auch.
    Ich glaube, das ist der Knackpunkt. Warum solltest du? Ginge es um deine Einkommensteuer-Rückerstattung, dann wäre es diesen Formeln sicher, dass du dich mit mit ihnen beschäftigtest – und dann würdest du sie auch nachvollziehen können, ich bin sicher 🙂

  17. #17 Dampier
    14. September 2015

    Ich überspringe Formeln und Grafiken

    Ich liebe Grafiken 😉

  18. #18 Crazee
    14. September 2015

    Dieser Artikel ist wirklich sehr praktisch…
    Danke für die Vorbereitung der Leser 😉