3.3 Verschlüsselungsalgorithmen

Ver- und Entschlüsselungsalgorithmen sind besondere Rechenvorschriften mit zwei Eingangs- und einer Ausgangsvariablen Z1[. Einer der Eingangswerte ist immer der Schlüssel (k). Für die Verschlüsselung (E) ist der andere Eingangswert der Klartext (m), und der Ausgangswert ist der Chiffretext (c). Beim Entschlüsseln (E-1) ist es umgekehrt, der Chiffretext (c) geht in den Algorithmus rein, und es kommt bzw. sollte herauskommen der Klartext (m), falls der Schlüssel (k) stimmt. Das besondere an diesen Algorithmen ist folgendes: Es dürfen keinerlei Rückschlüsse auf den Schlüssel (k) bzw. den Inhalt des Klartextes (m) gezogen werden können, wenn nur der Chiffretext (c) bekannt ist. Ebenfalls darf auch der Schlüssel (k) nicht mit der Kenntnis von Chiffre- und Klartextpaaren zurückgerechnet werden können. Die Sicherheit eines Verschlüsselungsalgorithmusses hängt von der Länge des Schlüssels (k) ab. Theoretisch ist es bei symmetrischen Algorithmen so, daß mit jedem Bit um das der Schlüssel (k) länger wird, es doppelt so schwer wird, ihn durch durch Austesten offenzulegen. Es gibt nun mehrere Arten von Verschlüsselungsalgorithmen, die in zwei Klassen von Algorithmen aufgeteilt werden können:

3.3.1 Blockchiffrierer

Die Blockchiffrierer verschlüsseln einen Klartextblock mit konstanter Größe, meist 64 Bit, zu einem Chiffretextblock mit gleicher Größe, und beim Entschlüsseln entsprechend umgekehrt. Es wird beim Ver- und Endschlüsseln der gleiche Schlüssel (k) verwendet. Daher sind diese Algorithmen symmetrisch. Solche Algorithmen bestehen meist aus Iterationen von Bitpermutation, Shiften, XOR, Lookuptables und besonderen Multiplikationen. Die bekanntesten Algorithmen sind DES und IDEA.

3.3.2 Stromchiffrierer

Diese Chiffrierer sind ebenfalls symmetrisch, aber es gibt keine konstante Größe der Klar- und Chiffretextblöcke. Sie ver- und entschlüsseln Bit- oder Byteströme. Je nach Art des Algorithmusses sind die Verschlüsselungsmuster nur vom Schlüssel (k) oder vom Schlüssel (k) zusätzlich des Datenstromes abhängig. Entweder handelt es sich bei ihnen um reine Stromchiffrierer wie RC4 oder A5-GSM, oder es werden Blockchiffrierer mit besonderen Rahmenalgorithmen eingesetzt und so zu Stromchiffrierern umfunktioniert.

3.3.3 Asymmetrischer RSA Algorithmus

Besonders interessant sind die asymmetrischen Algorithmen, wie RSA, in denen für die Ver- und Entschlüsselung zwei verschiedene Schlüssel (kS, kP) eingesetzt werden. Der Schlüssel (kS) bleibt geheim, und der Schlüssel (kp) wird veröffentlicht. Das hat den großen Vorteil, daß jeder eine Nachricht mit dem öffentlich verfügbaren Schlüssel (kP) verschlüsseln kann, aber nur mit dem privaten Schlüssel (kS) diese Nachricht wieder entschlüsseln kann. Der Algorithmus hat die recht einfache aber doch sehr wirkungsvolle Formel: "c = mk MOD n" (m=Klartext, c=Chiffretext, n=Produkt zweier Primzahlen und zusammen mit k ein Teil des Schlüssels). Das Geheimnis liegt in der Auswahl der Zahlen kS, kP und n. Die Zahlen kS, kP und n müssen sehr groß (1024 Bit oder mehr) gewählt werden, damit der Algorithmus sicher ist. Dieser Algorithmus eignet sich aber nicht, um direkt Daten zu verschlüsseln, sondern es muß zusätzlich ein symmetrischer Algorithmus hinzugenommen werden, um die eigentlichen Datenströme zu verschlüsseln (Hybritalgorithmus) (Abbildung 5). Genau das macht das sehr gute Programm PGP, das für die Verschlüsselung von eMails im Internet verwendet wird [5]. Es verwendet eine Kombination von RSA und IDEA.


Abbildung 5: Hybrid-Algorithmus mit RSA und IDEA (PGP)

3.3.4 Diffie Hellman Schlüsselaustausch

Noch eine elegante Art, den symmetrischen Schlüssel auszutauschen, ist der Diffie Hellman Schlüsselaustausch. Hier können sich zwei Partner, die zuvor noch keine Daten ausgetauscht haben, in aller Öffentlichkeit auf einen geheimen Schlüssel für einen symmetrischen Algorithmus einigen, ohne das Dritte ihn erfahren. Genauso wie beim RSA basiert alles auf der Rechnung "c = mk MOD n", und es müssen auch hier sehr große Zahlen (1024Bit oder mehr) gewählt werden.


Für den Schlüsselaustausch (Abbildung 6) einigen sich beide Partner in aller Öffentlichkeit auf eine Primzahl (p) und eine natürliche Zahl (s) die kleiner als p ist. Jetzt sucht jeder Partner für sich je eine natürliche Zahl (a, b) aus, die auch kleiner als p sein muß, und jeder errechnet sich damit eine Zahl (), die sich die Partner in aller Öffentlichkeit austauschen. Die Zahlen a und b bleiben geheim. Nun kann sich jeder Partner die Zahl k errechnen. Ein Dritter, der die Zahlen p, s, und mitgehört hat, kann nicht die Zahl k berechnen, weil er weder die Zahl a noch die Zahl b kennt. Die beiden Partner können aber die Zahl k nun als Basis für einen symmetrischen Algorithmus nutzen. Die große Gefahr bei diesem Schlüsselaustausch ist, daß sich ein Dritter die Leitung auftrennt und dann nach beiden Partnern hin getrennt je einen Schlüsselaustausch vornimmt. Beide Partner denken, sie hätten ein gemeinsamen geheimen Schlüssel k, aber dabei haben sie jeweils mit dem Angreifer den Schlüsselaustausch vorgenommen und sind auch im Besitz verschiedener Schlüssel k1 und k2. Dieses Verfahren erfordert es unbedingt, mit seinem Partner die Checksumme des Schlüssels k zu vergleichen, und zwar so, daß es der Angreifer nicht verfälschen kann.

3.3.5 "Oneway" Algorithmen

Dann wären da noch die Oneway-Algorithmen zu erwähnen, die, wie der Name schon sagt, nur verschlüsseln können. Für sie ist auch meist der erzeugte Chiffretext (c) kürzer als der eingegebene Klartext (m). Diese Algorithmen machen durchaus Sinn, besonders für die Authentifizierung beispielsweise in der Passwortverwaltung. Nach der Eingabe des Passwortes auf der Tastatur wird das Passwort verschlüsselt und mit dem verschlüsselten Passwort in einer Datenbank verglichen. Das Passwort kann nicht mehr zurückgerechnet werden, es kann aber immer noch mit dem eingegebenen verglichen werden. Oneway-Algorithmen sind meist einfacher, da keine Invertierung erforderlich ist. Meist sind sie anwenderspezifisch gestaltet oder es wird die Verschlüsselungsfunktion von Standard-Algorithmen genutzt. Ihren Einsatz finden diese Algorithmen oft bei Chipkarten zur Authentifizierung, z.B. Pay-TV, Mobiltelefone oder Zugangskontrolle. (Abbildung 7)



zurück