Grundsätzlich ist Verschlüsselung die Anwendung eines Verfahrens, das Daten, die sich auf irgendeine Art durch ganze Zahlen darstellen lassen, in eine andere Form überführt. Die neue Darstellung sollte tunlichst keine Rückschlüsse auf die ursprünglichen Daten zulassen. Bei guter Wahl des Verfahrens kann man das gleiche Verfahren wiederholt auf die gleiche Quelle anwenden und das Ergebnis ist immer wieder das gleiche. Bei noch besserer Wahl des Verfahrens ist es sogar möglich, das Ergebnis wieder in die ursprüngliche Form zu verwandeln, denn nicht immer ist die Umkehrung erwünscht (Beispiel: Passwörter – das letzte, was man möchte, ist, sie aus der gespeicherten Form das Original zu regenerieren; leider passiert das oft genug).
Verschlüsselungen, die man aufgrund ihrer Arbeitsweise nur in eine Richtung funktionieren, nennt man “Hashing”, sie warn ursprünglich dazu gedacht, längere Inhalte einzigartig so zu verkürzen, so daß eine Suche erleichtert wurde oder die Prüfung auf Übertragungsfehler größerer Datenmengen zu vereinfachen. Die Quelle errechnet die Prüfsumme nach einem Verfahren, das dem Empfänger auch bekannt ist und überträgt sie an das Ziel, das während der Datenübertragung das gleiche Rechenverfahren angewandt hat; stimmen sie überein, sind die Daten hoffentlich korrekt übertragen worden. (Natürlich kann man hier auch einiges falsch machen, siehe SMB: Es macht überhaupt keinen Unterschied, ob man ein Klartext-Kennwort überträgt oder stattdessen das Verschlüsselungsergebnis und dann prüft, ob beide gleich sind – ein Angreifer muß dann eben das Verschlüsselungsergebnis an sich bringen).
Bei den Entschlüsselbaren Verschlüsselungen unterscheidet man zwei grundsätzliche Arten: Symmetrische Verschlüsselung, bei der der gleiche Schlüssel zur Ver- und Entschlüsselung eingesetzt werden (damit ist noch nichts über das Verfahren selbst gesagt) und asymmetrische Verschlüsselung, bei der Ver- und Entschlüsselung mit unterschiedlichen Schlüsseln stattfinden (im besten Fall sind diese Schlüssel austauschbar – etwas, das mit dem einen Schlüssel verschlüsselt wurde, läßt sich mit dem jeweils anderen Schlüssel des Paares entschlüsseln). Ein Teil des Paares wird veröffentlicht und verbreitet, während der andere Teil geheimgehalten wird. Jeder kann eine Nachricht an den Besitzer des geheimen Schlüssels senden, die nur dieser wieder entschlüsseln kann. Andersherum kann der Besitzer eine Nachricht verschlüsseln, bei der jeder prüfen kann, ob sie wirklich vom Besitzer des geheimen Schlüssel stammt – entweder, der öffentliche Schlüssel paßt und das Ergebnis ist verständlich oder es ist ein Fälschung. Hier zeigt sich auch eine weitere Forderung an die Verfahren: Eine kleine Änderung des Schlüssels sollte dringend eine sehr unterschiedliches Ergebnis erzeugen. (Falls irgendwo der Begriff “Kollision” auftaucht: Die erhält man, wenn zwei Schlüssel das gleiche Ergebnis erzeugen.)
Die meisten asymmetrischen Verfahren haben sehr unvorteilhafte Eigenschaften: Die maximale Länge der Daten, die man damit verschlüsseln kann, ohne aus dem Ergebnis und dem öffentlichen Schlüssel auf den privaten Schlüssel zu kommen, ist sehr gering; man muß die Verfahren also so einsetzen, daß man das Ergebnis zur Veränderung des Schlüssels für das nächste Datenhäppchen verwendet, wenn es mehr wird. Und als wäre das nicht schlimm genug, sind diese Verfahren auch noch sehr zeitaufwendig (was aber auch Absicht sein kann, um damit Ausprobieren beliebiger Schlüssel unmöglich zu machen).
Die meisten symmetrischen Verschlüsselungen haben den Nachteil, da man, einmal im Besitz der ver- und entschlüsselten Daten ist, durch die Anwendung des Verfahrens auf diese Daten als Quelle und Schlüssel den ursprünglichen Schlüssel erhält – man darf also nie den gleichen Schlüssel mehrmals verwenden (diese Problem hat zur “Erfindung” der asymmetrischen Verschlüsselung geführt, denn die USA wären berechenbar an den Kosten für die Verteilung immer längerer einzigartiger Schlüssel durch Kuriere in die Pleite gerutscht).
Beide Arten werden oft zusammen verwendet. Dabei wird beispielsweise eine asymmetrische Verschlüsselung verwendet, um einen Schlüssel für eine symmetrische Verschlüsselung an mehrere Empfänger übertragen. Eine andere Anwendung ist der Echtheitsbeweis durch “Signatur”: Für ein Dokument (also auch nur Daten) wird eine Prüfsumme mit einem Hashing-Verfahren errechnet (die sich durch eine minimale Änderung der Eingangsdaten ändern wird) und diese Prüfsumme wird mit dem geheimen Schlüssel verschlüsselt; jeder kann sie also entschlüsseln, nachrechnen und vergleichen.