Eine Verschlüsselungssoftware ist ein Programm, das mithilfe eines mathematischen Algorithmus Daten so verschlüsselt (umwandelt, codiert), dass Dritte sie nicht mitlesen können. Auch bei vielen digitalen Anmeldeverfahren werden Verschlüsselungsalgorithmen eingesetzt. Eine Verschlüsselung wird beispielsweise benötigt, um:
vertrauliche Daten sicher über öffentliche Netze zu versenden
die eigenen E-Mails von einem Server im Internet oder Intranet herunterzuladen
Personen im Internet eindeutig zu authentifizieren, beispielsweise beim Online-Banking oder beim Einkauf in einem Online-Shop
E-Mails oder Dokumente, beispielsweise Kaufverträge, digital rechtsgültig zu signieren
Bei der Ver- und Entschlüsselung nutzen Verschlüsselungsprogramme einen sogenannten Codeschlüssel. Dieser definiert, wie der jeweilige Algorithmus die eingehenden Daten im Einzelnen verschlüsseln soll.
Ein recht einfacher Algorithmus würde beispielsweise alle Buchstaben eines Ausgangstextes jeweils durch die Buchstaben ersetzen, die im Alphabet X Zeichen weiter hinten stehen. Der zugehörige Codeschlüssel könnte dann beispielsweise die Zahl „3“ sein. Dann würde der Buchstabe „A“ durch das drei Buchstaben weiter hinten stehende „D“ ersetzt, ein „B“ durch ein „E“ und so fort (sogenannte Cäsar-Verschlüsselung). Ein komplexerer Algorithmus würde jeden Buchstaben des Ausgangstextes anders verschlüsseln, beispielsweise den ersten Buchstaben um X Zeichen verschieben, den zweiten um Y Zeichen und so weiter (Vigenère-Verschlüsselung). Der Codeschlüssel müsste dann entsprechend länger sein und für jeden zu verschlüsselnden Buchstaben eine weitere Ziffer enthalten oder sich irgendwann wiederholen.
Nur wer den Algorithmus und den Codeschlüssel kennt, kann die mit einer Verschlüsselungssoftware verschlüsselten Daten auch wieder lesbar machen. In der Praxis haben sich heute einige wenige zuverlässige Algorithmen durchgesetzt, die von den meisten Verschlüsselungsprogrammen genutzt werden. Da jedoch der Codeschlüssel wichtiger für die Entschlüsselung eines Textes ist als die Kenntnis des Algorithmus (Kerckhoffs’sches Gesetz), sind auch Verschlüsselungsprogramme weiterhin sehr sicher, deren verwendeter Algorithmus bekannt ist.
Die oben geschilderte Verschiebe-Verschlüsselung ist allerdings im Computerzeitalter nicht mehr sicher und sehr leicht zu knacken. Heute kommen deutlich anspruchsvollere, mehrstufige Algorithmen zum Einsatz. Sie erfüllen unter anderem folgende Voraussetzungen:
Ein verwendeter Codeschlüssel ist nicht aus Teilen des verschlüsselten Textes herauslesbar – auch dann nicht, wenn Angreifer:innen Teile des Ursprungstextes bereits kennen, beispielsweise eine persönliche Anrede zu Beginn einer verschlüsselten E-Mail.
Ein sicherer Algorithmus besteht immer aus einer Kombination von Zeichenverschiebungen und Zeichenkodierungen.
Alle Schlüssel, die erzeugt werden, sind annähernd gleich sicher. Banale Schlüssel wie „0000“ werden direkt bei der Erstellung automatisch wieder verworfen, beziehungsweise vom Programm abgelehnt.
Die Anzahl aller für den jeweiligen Algorithmus möglichen Schlüssel ist so groß, dass der Schlüsselraum (die Gesamtheit aller Schlüssel) nicht durch Ausprobieren durchgetestet werden könnte – der oben beschriebene Cäsar-Algorithmus kennt beispielsweise im Standardalphabet nur 26 mögliche Schlüssel.
Im codierten Text dürfen besonders häufig genutzte Zeichen (wie der Buchstabe „E“ in deutschsprachigen Texten) nicht durch simples Abzählen auffindbar oder knackbar sein.
Bei der asymmetrischen Verschlüsselung kommen für die Ver- und die Entschlüsselung hingegen unterschiedliche Codeschlüssel zum Einsatz. Diese werden zuvor als ein gemeinsames Schlüsselpaar erzeugt. Jeder Text, der mit einem der beiden Schlüssel kodiert wurde, kann nur mit genau dem anderen Schlüssel wieder entschlüsselt werden. Ist nur einer der beiden Schlüssel bekannt, kann der andere Schlüssel aus seinem Gegenpart nicht herausgelesen werden.
Solche asymmetrischen Schlüsselpaare werden im Internet beispielsweise für die Authentifizierung oder das Signieren wie folgt verwendet:
Zuerst wird einmalig für eine Person ein persönliches Schlüsselpaar erzeugt, das aus einem sogenannten öffentlichen und einem sogenannten privaten Schlüssel besteht.
Der öffentliche Schlüssel wird auf einer vertrauenswürdigen Website im Internet unter dem Namen des:der Inhaber:in veröffentlicht.
Der:die rechtmäßige Inhaber:in behält den privaten Schlüssel und hält ihn geheim.
Verschlüsselt und signiert diese Person nun eine Nachricht mit ihrem privaten Schlüssel, kann diese Nachricht anschließend nur mit dem zugehörigen öffentlichen Schlüssel wieder entschlüsselt werden.
So kann jede:r Empfänger:in feststellen, dass diese Nachricht tatsächlich auch von dem:der Absender:in stammt. Denn niemand anders könnte ohne den privaten Schlüssel eine Nachricht so verschlüsseln, dass sie mit dem öffentlichen Schlüssel dieser Person wieder entschlüsselt werden könnte.
Eine Abwandlung dieses asymmetrischen Verfahrens wird heute bei jeder Anmeldung in Onlineshops verwendet, aber auch beim Aufruf von Internetseiten über das verbreitete https-Protokoll. Die Abkürzung https steht für „Hypertext Transfer Protocol Secure“, auf Deutsch: Geschütztes Hypertext-Übertragungsprotokoll.
Ohne wirksame Verschlüsselung wäre es nicht möglich, die europäische Datenschutz-Grundverordnung (DSGVO) im Internet umzusetzen. Denn diese schreibt die Verschlüsselung aller persönlichen Daten zwingend vor, beispielsweise beim Online-Einkauf. Ohne Verschlüsselung und den Einsatz von Verschlüsselungssoftware ist das heutige Internet somit nicht denkbar.