next_inactive up previous


Symmetrische und Asymmetrische Verschlüsselung

Jan Rothen, Michael Meer, Daria Spescha, Norbert Kottmann

Wieso Verschlüsselung?

Verschlüsselung wird immer gebraucht, wenn man Informationen über unsichere Kanäle verschicken muss. Angenommen, der Kunde Norbert will alle seine Aktien der Firma Potzblitz AG verkaufen. Er möchte nicht, dass sonst jemand von diesem Verkauf erfährt, da dann der Kurs der Aktie sinken würde, also schickt er den Verkaufsauftrag verschlüsselt an seine Bank. Die Bank muss sicher gehen können, dass wirklich Norbert diesen Auftrag erteilt hat. Ausserdem soll die Nachricht nicht von Drittpersonen unbemerkt verändert werden können. Anwendungen der Verschlüsselung gibt es im Militär, der Diplomatie, in der Forschung, in der Wirtschaft und in vielen anderen Bereichen.

Grundlegendes

Die Verschlüsselung einer Nachricht erfolgt mit einem Algorithmus (bevor die Computer im letzten Jahrhundert erfunden wurden, erfolgte dies per Hand). Würde jedoch immer haargenau derselbe Algorithmus verwendet, wäre es ein leichtes, abgefangene Nachrichten zu knacken. Dazu lässt sich zum Beispiel die Statistik brauchen: in allen Sprachen werden gewisse Buchstaben oder Wörter mehr verwendet als andere. Es lässt sich aber nicht jedes Mal ein neuer Algorithmus erfinden wenn der alte geknackt wurde, daher braucht es einen Weg um Algorithmen zu parametrisieren: den Schlüssel. Alle Algorithmen müssen öffentlich sein; bloss die Schlüssel sind geheim (Kerckhoff'sches Prinzip, nach dem Niederländischen Kryptographen aus dem 19. Jahrhundert). Durch die Öffentlichkeit eines Verschlüsselungsverfahrens ist sichergestellt, das viele Kryptographen das Verfahren auf seine Robustheit hin untersuchen. Je länger ein Schlüssel ist, desto sicherer ist er. Für alltägliche Anwendungen sind heute 128 bit lange Schlüssel der Standart.

Symmetrische Verschlüsselung

Symmetrische Verschlüsselung wird so genannt, weil der Schlüssel zum Verschlüsseln und Entschlüsseln einer Nachricht derselbe ist. Wenn Max eine so verschlüsselte E-Mail an Moritz schickt, muss dieser den geheimen Schlüssel (Secret Key) kennen um an den Klartext der Nachricht zu gelangen. Wie gelangt er aber an den Schlüssel? Offensichtlich können wir ihn nicht ebenfalls per E-Mail verschicken, damit wäre die ganze Verschlüsselung sinnlos geworden (wer die E-Mail mit der Nachricht abfangen kann, kann auch die Mail mit dem Schlüssel abfangen). Also müssen Max und Moritz den Schlüssel bei einem persönlichen Treffen abmachen oder über einen anderen sicheren Kanal übermitteln. Dies ist ein grosser Nachteil der symmetrischen Verschlüsselung. Ein Vorteil ist die grosse Schnelligkeit der Verschlüsselung, Implementationen sind in Software oder Hardware möglich.

Algorithmen:

DES (Data Encryption Standard):

Dieser Algorithmus wurde von IBM entwickelt und 1977 von der US Regierung zum Standard erhoben. Er braucht einen 56 bit langen Schlüssel, was heutzutage nicht mehr ausreicht. Bereits 1997 wurde ein solcher Schlüssel durch eine Brute-Force Attacke geknackt; mehrere tausend durchs Internet verbundene Computer durchsuchten parallel alle möglichen Schlüssel. Um den DES-Algorithmus ranken sich einige Legenden; es wird vermutet das die geheime US-Behörde NSA (der weltweit grösste Arbeitgeber von Mathematikern und Kryptologen) Schwächen in das Design des Algorithmus einbauen liess die es ihr ermöglicht die Nachrichten zu knacken. Interessanterweise hat die US-Regierung bis ins Jahr 2000 verboten, Verschlüsselungstechniken mit Schlüsseln länger als 56 bit zu exportieren.

Aktuelle Algorithmen:

Heute ist DES wie gesagt nicht mehr sicher, in modifizierter Form ist er aber heute noch nützlich. Diese Form heisst 3DES (oder auch Triple DES). Dabei werden zwei 56 bit lange Schlüssel verwendet (damit ist die Schlüssellänge 112 bits, für normale Anwendungen auch heutzutage noch genug) und die Nachricht wird drei mal durch den DES Algorithmus gejagt. Zuerst wird die Nachricht mit dem ersten Schlüssel $S_{1}$verschlüsselt, dann mit dem zweiten Schlüssel $S_{2}$ entschlüsselt und schlussendlich nochmals mit $S_{1}$ verschlüsselt. Es werden bloss zwei Schlüssel gebraucht weil 112 bits immer noch als genügend betrachtet wird. Der Vorteil von 3DES gegenüber einem komplett neuen Algorithmus ist die Rückwärtskompatibilität. Ein Gerät, das 3DES versteht, kann mit einem alten nur-DES Gerät einfach kommunizieren wenn es $S_{1}=S_{2}$ setzt.

Als langsam klar wurde, das DES nicht mehr genügt wurde von der US-Regierung ein Wettbewerb für einen Advanced Encryption Standard AES ausgeschrieben, nun mussten die Algorithmen im Gegensatz zu DES offen sein. 1998 wurde das Verfahren Rijndael der zwei belgischen Kryptographen Vincent Rijmen und Joan Daemen zum Sieger erkoren. Rijndael unterstützt Schlüssel von 128 bis 256 bit Länge und ist auch auf grosse Geschwindigkeit ausgelegt. Ein heutiger Computer kann rund 700 Megabyte pro Sekunde mit einer Software-Implementierung verschlüsseln, Hardware-Lösungen sind noch schneller.

Bei PGP (Pretty Good Privacy, siehe Abschnitt [*] zu GnuPG) wird heute ein Verfahren names IDEA zur Verschlüsselung des Session Keys verwendet. Dieser Algorithmus ist von der ASCOM patentiert, jedoch zur nichtkommerziellen Nutzung freigegeben.

Anwendungen

Enigma

\includegraphics[]{enigma.eps}1918 entwickelte Arthur Scherbius eine mechanische Verschlüsselungsmaschine namens Enigma, griechisch für Geheimnis. Während des zweiten Weltkrieges wurde sie in verschiedenen Ausführungen von der deutschen Reichswehr verwendet, z.B. zur geheimen Übertragung von Befehlen an Unterseeboote. Jeden Tag wurden die Einstellungen (das heisst der Secret Key) der Enigma geändert, die Schlüssel für einen bestimmten Zeitraum befanden sich in einem Codebuch.

1941 konnte die britische Marine aus einem sinkenden deutschen U-Boot eine intakte Enigma sowie das Codebuch für die nächsten zwei Monate bergen. Aus diesen Daten konnten man im kryptologischen Zentrum der Briten in Bletchley Park genug Schlussfolgerungen ziehen um den Nachrichtenverkehr der deutschen Marine komplett im Klartext mithören zu können, was eine entscheidende Rolle bei der Schlacht um den Atlantik spielte. In Bletchley Park arbeitete auch Alan Turing, einer der Mitbegründer der Informatik. Mithilfe seiner ausgefeilten Statistiken und der ``Bombe'', eines Vorläufers der heutigen Computer, konnten die Nachrichten bis Anfang 1942 (als eine verbesserte Enigma eingeführt wurde) mitgehört werden.

Asymmetrische Verschlüsselung

Das Grundprinzip der asymmetrischen Verschlüsselung ist verglichen mit der Jahrtausende alten symmetrischen Verschlüsselung brandneu; es wurde 1976 von Martin Hellmann und Whitfield Diffie an der Stanford University entwickelt. Sie hatten sich zum Ziel gesetzt den grössten Schwachpunkt in der symmetrischen Verschlüsselung, den Austausch des Schlüssels, auszumerzen. Wie Diffie in [2] erklärt:

''In the past, cryptography operated on a strongbox approach. The sender uses one key to lock up his message, and the recipient has a matching key that unlocks the meaning. As Hellman and I talked, we became intrigued by the idea of a system that used two different keys-one for enciphering and a second for deciphering. This method would operate like a twenty -four-hour bank teller. Any depositor can open the machine to put his money in, but only the bank has the combination to unlock the safe. ''
Der Name der asymmetrischen Verschlüsselung rührt daher, dass das Verfahren zwei verschiedene Schlüssel braucht: einen öffentlichen und einen privaten Schlüssel (Public Key bzw. Private Key). Im Englischen ist auch der Name Public Key Encryption gängig.

Der Ablauf des Verfahrens soll mit einem Beispiel demonstriert werden: Jan möchte eine vertrauliche Nachricht an Daria schicken, dazu muss er den öffentlichen Schlüssel von Daria kennen. Daria hat ihn Beispielsweise auf einem Keyserver1 abgelegt, wo er von jedermann eingeschaut werden kann. Jan kopiert den Schlüssel und braucht ihn um seine Nachricht zu verschlüsseln. Daria empfängt die Nachricht und entschlüsselt sie mit ihrem sicher verwahrten privaten Schlüssel; nur mit diesem privaten Schlüssel kann eine mit öffentlichen Schlüssel verschlüsselte Nachricht entziffert werden.

Wie kann dieses Verfahren funktionieren, dass jedermann mit einem Public Key eine Nachricht verschlüsseln kann, aber nur der Besitzer des Private Keys sie entziffern? Man braucht dazu eine sogenannte Einwegfunktion mit Hintertür. Eine Einwegfunktion ist eine Funktion die für einen Computer schnell zu berechnen ist, deren Umkehrung jedoch Monate oder Jahre dauern würde. Eine Einwegfunktion mit Hintertür lässt sich mit ein paar zusätzlichen Informationen (eben der Hintertür) zurückrechnen, ohne aber kaum. Diese Informationen für die Hintertür befinden sich im Private Key. Es lassen sich einige solche Funktionen finden, wir wollen eine beim Abschnitt über den RSA-Algorithmus genauer betrachten.

Algorithmen

RSA-Algorithmus:

Der RSA-Algorithmus wurde 1977 von Ron Rivest, Adi Shamir und Leonard Adleman entwickelt und stellt heute einen weitverbreiteten Standard in der asymmetrischen Verschlüsselung dar. Folgende Erklärung des RSA-Algorithmus wurde von [1] übernommen:

  1. Choose two large primes, $p$ and $q$ (typically 1024 bits).
  2. Compute $n=p  \times   q$ and $z=(p-1)  \times   (q-1)$.
  3. Choose a number relatively prime to $z$ and call it $d$.
  4. Find $e$ such that $e\times d=1\: mod\: z$
With these parameters computed in advance, we are ready to begin encryption. Divide the plaintext (regarded as bit string) into blocks, so that each plaintext message, $P$, falls in the interval $0\leq P<n$. Do that by grouping the plaintext into blocks of $k$ bits, where $k$ is the largest integer for which $2^{k}<n$ is true.

To encrypt a message, $P$, compute $C=P^{e}(mod  n)$. To decrypt $C$, compute $P=C^{d}(mod  n)$. It can be proven that for all $P$ in the specified range, the encryption and decryption functions are inverses. To perform the encryption, you need $e$ and $n$. To perform the decryption, you need $d$ and $n$. Therefore, the public key consists of the pair $(e,n)$ and the private key consists of $(d,n)$.

Wenn ein Angreifer $n$ faktorisieren könnte, würde er $p$ und $q$ und somit auch $z$ herausfinden. Wenn er $z$ und $e$ kennt, kann er $d$ mit Hilfe des Euklidischen Algorithmus berechnen. Nun probieren Mathematiker aber schon seit langer Zeit wie grosse Zahlen zu faktorisieren sind; es scheint enorm schwierig zu sein und darauf beruht auch die Sicherheit des RSA-Algorithmus.

Andere Algorithmen:

Für die benötigte Einwegfunktion gibt es neben dem Faktorisieren grosser Zahlen andere Ansätze. Ein Ansatz beruht auf der Schwierigkeit, diskrete Logarithmen zu berechnen. Viele Mathematiker sind auch hier seit Jahren am forschen ohne jedoch einen Durchbruch erreicht zu haben.

Kombinierte Verschlüsselung

Der grosse Nachteil der assymetrischen Verschlüsselung ist ihre Langsamkeit, die Algorithmen sind einiges komplexer als die Algorithmen die in der symmetrischen Verschlüsselung gebraucht werden. Daher werden beide Verfahren häufig kombiniert eingesetzt, zum Beispiel beim Gnu Privacy Guard (siehe Abschnitt [*]).

Wenn Daria per Gnu Privacy Guard eine vertrauliche Nachricht an Norbert schicken möchte, legt das Programm zuerst einen zufälligen Secret Key (der dann in der Terminologie der kombinierten Verschlüsselung Session Key heisst) fest. Diesen verschlüsselt es mit Hilfe des Public Key von Norbert, die Nachricht selber wird mit dem Session Key verschlüsselt. Beides wird nun an Norbert geschickt. Sein Mailprogramm wird nun zuerst den Session Key mit Hilfe von Norberts Private Key entschlüsseln und mit diesem dann die Nachricht entziffern.

Dieses Verfahren ist einiges schneller als normale assymetrische Verschlüsselung, da hier bloss ein kurzer, wohl 128 bit grosser Key verschlüsselt werden muss anstatt einem langen Text plus Attachments. Trotzdem ist dieses Verfahren sicher, denn der grösste Nachteil der symmetrischen Verschlüsselung ist ausgeschaltet, die vertrauliche Übermittlung des Secret Keys.


Gnu Privacy Guard (GnuPG)

\includegraphics[]{logo-gnupg.eps}PGP2 (Pretty Good Privacy) wurde in den frühen 1990ern von Philipp Zimmermann entwickelt; die Komponente für verschlüsselten E-Mail Versand, PGP Mail, steht gratis zum Download zur Verfügung. Der Source-Code ist frei einsehbar, es ist jedoch nicht erlaubt ihn zu ändern. Es existiert auch PGP Disk, eine Komponente zum Verschlüsseln der Inhalte einer Festplatte, besonders wichtig zum Beispiel wenn ein Firmenlaptop geklaut wird.

GnuPG3 ist ein Open Source Projekt unter der Gnu Public License und stellt einen vollständigen Ersatz für PGP4 unter verschiedensten Betriebssystemen dar. Es ist an sich nur ein Kommandozeilenprogramm und stellt verschiedenen Programmen seine kryptologischen Dienste bereit. Wohl am verbreitetsten ist das Verschlüsseln von E-Mails, kompatible Mail Programme sind unter anderem Mozilla Mail5, Eudora, Pine, Apple Mail oder Outlook.

Bibliography

1
Andrew S. Tanenbaum. Computer Networks, Prentice Hall, 4th Edition 2002

2
RSA Laboratories, RSA Laboratories' Frequently Asked Question about Today's Criptography, RSA Security Inc., Version 4.1. Siehe Webseite: http://www.rsasecurity.com/rsalabs/faq/index.html

3
Whitfield Diffie and Martin Hellman. New directions in cryptography, IEEE Transactions on Information Theory 22 (1976), Seiten 644 - 654

4
Tony Sale. Codes and Ciphers in the Second World War. Siehe Webseite: html://www.codesandciphers.org.uk

About this document ...

Symmetrische und Asymmetrische Verschlüsselung

This document was generated using the LaTeX2HTML translator Version 2002 (1.62)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html encryption.tex -split 0

The translation was initiated by Michael Meer on 2003-01-16


Footnotes

... Keyserver1
Beispielsweise auf dem Keyserver der ETH Zürich unter http://www.tik.ee.ethz.ch/ pgp/
...logo-gnupg.epsPGP2
http://www.pgp.com
...GnuPG3
http://www.gnupg.org
... PGP4
Es implementiert die OpenPGP Spezifikation im RFC2440. Für weitere Infos siehe http://rfc-editor.org
... Mail5
via das Plugin enigMail: http://enigmail.mozdev.org

next_inactive up previous
Michael Meer 2003-01-16