Base64: keine Verschlüsselung

Eine Form geht durch ein Prisma und kommt als dieselbe Form wieder heraus, nur anders eingefärbt.

Stell dir vor: Jemand schickt dir SGV5LCBnZWhlaW0h. Das sieht aus wie ein Code. Es ist auch ein Code — aber es gibt keinen Schlüssel, kein Passwort, kein Geheimnis. Jeder kann es mit einem Klick zurückdrehen. Das ist der Unterschied zwischen anders aufschreiben und wirklich verstecken, und wegen dieses Unterschieds kommt dieses Kapitel zuerst.

Wörter, die du gleich brauchst

Byte
Alles in einem Computer — ein Buchstabe, ein Pixel, ein Ton in einem Lied — ist am Ende eine Zahl von 0 bis 255. So eine Zahl heißt Byte. Der Buchstabe A ist Byte 65, ein Leerzeichen ist 32.
Codieren
Dieselbe Information auf eine andere Art aufschreiben. So wie „fünf“ und „5“ und „V“ dieselbe Zahl sind. Es geht nichts verloren und es wird nichts versteckt.
Base64
Eine Art, Bytes nur mit Buchstaben, Ziffern, + und / aufzuschreiben. Aus je drei Bytes werden vier Zeichen. Dadurch wird alles ein Drittel länger. In einer Webadresse nimmt man eine Variante mit - und _, weil + und / dort schon etwas anderes bedeuten.
Hexadezimal
Noch eine Art, Bytes aufzuschreiben, diesmal mit den Ziffern 0–9 und den Buchstaben a–f. Aus jedem Byte werden zwei Zeichen: 41 ist der Buchstabe A. Das siehst du gleich in der Demo.

Warum gibt es das dann überhaupt?

Früher konnten E-Mail-Programme nur normalen Text verschicken. Hast du ein Foto mitgeschickt, kam es auf der anderen Seite beschädigt an, weil Bytes darin steckten, die der Mailserver nicht verstand. Die Lösung: diese Bytes in Zeichen umwandeln, die jedes Programm versteht, und sie auf der anderen Seite wieder zurückdrehen. Das ist Base64.

Alles, was auf einem Computer liegt, kannst du in Base64 umwandeln: ein Foto, ein Lied, ein PDF, ein ganzes Programm. Heraus kommt normaler Text — Buchstaben, Ziffern und ein paar Satzzeichen, mehr nicht. Und Text bekommst du überall unter.

In einer Webadresse. Als Anhang an einer Mail. In einer Nachricht, die du einfach markierst, kopierst und woanders wieder einfügst. Unterwegs geht nichts kaputt, denn kein Programm fängt an, an einem A oder einer 7 herumzubasteln. Mit rohen Bytes geht das sehr wohl schief: ein Zeilenende, das unterwegs umgewandelt wird, oder ein Byte, das als „hier hört die Datei auf“ gelesen wird, und dein Foto ist unrettbar. Das ist der ganze Handel — deine Datei wird ein Drittel länger, und dafür übersteht sie jede Reise.

Deshalb steckt es bis heute überall drin: im Foto auf deiner eID, wenn es ausgelesen wird, in den Schlüsseln, die du gleich selbst erzeugst, und in jedem Anhang, den du mit einer Mail mitschickst.

Probier es selbst

Alles passiert in deinem Browser. Es wird nichts an den Server geschickt.

  1. Klick auf Nach Base64. Du siehst deinen Satz als Bytes und als Base64.
  2. Füg das Base64-Ergebnis in das Feld ein und klick Zurück zum Text. Dein Satz kommt zurück. Ohne Passwort.
  3. Füg jetzt SGV5LCBnZWhlaW0h ein und klick Zurück zum Text.

Schau dir die Zeile Bytes (hex) an. Das sind die echten Zahlen, aus denen dein Satz besteht. Base64 und Hexadezimal sind beide nur eine Art, diese Zahlen aufzuschreiben — so wie du eine Zahl in Ziffern oder in Worten schreiben kannst. Keins von beiden versteckt irgendetwas.

Der Test, den du ab jetzt immer machen kannst

Siehst du etwas, das unlesbar aussieht, dann stell eine einzige Frage: braucht man einen Schlüssel, um es zurückzudrehen? Nein? Dann ist es Codierung, und dann ist es nicht geheim, so seltsam es auch aussieht. Ja? Dann erst ist es Verschlüsselung. Alles, was auf dieser Seite noch kommt, dreht sich um dieses „Ja“.

Das wirst du auf der ganzen Seite wiedersehen. Fast jedes Kapitel ab hier zeigt sein Ergebnis in Base64: das verschlüsselte Paket in Kapitel 4, deinen öffentlichen Schlüssel in Kapitel 6, die Nachricht, die du über WhatsApp verschickst, in Kapitel 8.1, dein Passfoto, wenn du es aus dem Chip holst, in Kapitel 8.2. Jedes Mal aus dem Grund von oben: Es müssen Bytes durch etwas hindurch, das nur Text verträgt. Und jedes Mal gilt dasselbe — was daran geheim ist, steckt in den Bytes. Nie im Base64 drumherum.

Das ist Mathematik: Zählen in einer anderen Basis

Du zählst in Zehnern: 10 Ziffern, von 0 bis 9. Ein Computer zählt in Zweiern: 0 und 1. Hexadezimal zählt in Sechzehnern, Base64 in Vierundsechzigern. Es ist immer dieselbe Zahl, nur anders geschrieben. Die Frage „wie viele Zeichen brauchst du, um eine Zahl aufzuschreiben?“ ist eine Sache von Logarithmen — und genau deshalb werden aus 3 Bytes immer 4 Base64-Zeichen: 224 = 644. Rechne ruhig nach.