Eine Einf�hrung in die Kryptographie

ArticleCategory:

System Administration

AuthorImage:

Pierre Loidreau

TranslationInfo:[Author and translation history]

original in fr Pierre Loidreau

fr to en Axelle Apvrille  

en to de Guido Socher

AboutTheAuthor

Pierre arbeitet als Wissenschaftler und Lehrer bei der ENSTA (Ecole Nationale Supérieure de Techniques Avancées). Er arbeitet auf dem Gebiet Kryptosysteme und Fehlerkorrekturcodes. Er "spielt" fast jeden Tag mit Linux herum und manchmal spielt er Tennis.

Abstract:

Dieser Artikel wurde zuerst in der "Security Spezialausgabe" des Linux Magazine France ver�ffentlicht. Der Editor, die Autoren und die �bersetzer haben freundlicherweise LinuxFocus die Erlaubnis gegeben, alle Artikel dieser Spezialausgabe zu ver�ffentlichen, sobald diese auf Englisch verf�gbar sind. Ein gro�es Dankesch�n geht an alle, die bei dieser Arbeit beteiligt sind. Dieser Absatz wird in jedem Artikel dieser Serie erscheinen.

ArticleIllustration:

mail

ArticleBody:[The article body]

Warum Kryptographie -- 2500 Jahre Geschichte

Die Geschichte der Kryptographie geht zur�ck zu den Urspr�ngen der Menschheit, als Menschen anfingen miteinander zu kommunizieren. Sie hatten das Bestreben auch geheime Nachrichten auszutauschen, auf eine sichere Art. Die erste gezielte Anwendung von technischen Methoden um Nachrichten zu verschl�sseln geht auf die Griechen zur�ck. Sie benutzten um 6 vor Christus einen Stock namens "scytale". Der Sender einer Nachricht w�rde ein Papier um diesen Stock rollen und seine Nachricht der L�nge nach darauf schreiben. Danach w�rde er das Papier wieder vom Stock abrollen und verschicken. Der Empf�nger w�re nicht in der Lage die Nachricht zu lesen, ohne die genaue Dicke des Stocks zu kennen. Die Stockdicke war also der geheime Schl�ssel. Sp�ter haben r�mische Heere Caesar's Code benutzt, um Botschaften auszutauschen. Caesar's Code verschiebt das Alphabet um drei Buchstaben.

In den n�chsten 19 Jahrhunderten wurden mehr oder weniger clevere experimentelle Verschl�sselungsverfahren entwickelt. Ihre Sicherheit hing davon ab, wieviel Vertrauen der Benutzer in dieses Verfahren hatte. Im 19. Jahrhundert schrieb Kerchoff eine der Prinzipien der modernen Kryptographie. Es besagt, da� die Sicherheit eines kryptographischen Systems nicht in dem Verfahren der Verschl�sselung liegt, sondern von der L�nge des verwendeten Schl�ssels abh�ngt.

Von diesem Augenblick an konnte man erwarten, da� kryptographische Systeme dieser Anforderung gerecht wurden. Es fehlte jedoch noch an mathematischem Hintergrund und Werkzeugen, um die Widerstandsf�higkeit gegen Angriffe zu testen. 1948 und 1949 untermauerte Claude Shannon die moderne Kryptographie mit zwei Ver�ffentlichungen: "A Mathematical Theory of Communication" und "The Communication Theory of Secrecy Systems". Diese zwei Artikel fegten Hoffnungen und Vorurteile gleicherma�en hinweg. Shannon best�tigte, da� Vernam's Cipher, die einige Jahre zuvor vorgeschlagen worden war, auch als One Time Pad (einmal Schl�ssel) bekannt, das einzige sichere System war, das es jemals geben kann. Leider war dieses System in der Praxis unbenutzbar.... Das ist der Grund, warum die Sicherheit eines Systems heute an dem Rechenaufwand zum Entschl�sseln gemessen wird. Man behauptet, da� ein System sicher ist, wenn kein bekannter Angriff einfacher ist als das Durchprobieren aller m�glichen Schl�ssel.

AES (Advanced Encryption Standard)

K�rzlich, im Oktober 2000, hat das NIST (National Institute of Standards and Technology) einen neuen Standard zur Verschl�sselung unter 15 Kandidaten ausgew�hlt. Dieser neue Standard soll den alten DES Algorithmus abl�sen. Rijndael -- ein Phantasiename aus den Namen der Erfinder, Rijmen und Daemen, wurde als AES ausgew�hlt.

Dieses kryptographische System wird als "block cipher" bezeichnet, da es 128-Bit Bl�cke verschl�sselt. Verschiedene Optionen erlauben die Benutzung von Schl�sseln der L�nge 128, 192 oder 256 Bit. Nur zu deiner Information: Der DES war eine 64 Bit "block cipher" mit einer Sch�ssell�nge von 56 Bit. Tripple-DES verschl�sselt 64 Bit Bl�cke mit einer Sch�ssell�nge von 112-Bit.

AES

Abb. 1: AES Iterationen

Das Verfahren von AES ist in Abb. 1 beschrieben. Zun�chst wird der geheime Schl�ssel K0 mit der Nachricht ver-XOR-ed. Danach wir die Funktion F iterativ (wie bei allen "block ciphers") angewandt, unter Benutzung von Unterschl�sseln, die durch eine Sch�sselexpansionsroutine erzeugt werden.

F�r AES wird die Funktion F 10 mal angewandt.
F function

Abb 2: Funktion F

Nun wollen wir noch schnell sehen, wie die Substitutionen gebaut werden und wof�r die Konstanten ai gebraucht werden. Technisch und aus Gr�nden der einfachen Berechnung, wird ein Byte als ein Element aus einer Menge von 256 Elementen betrachtet, genannt Finite Field. In einem Finite Field existieren einfache Operationen wie Addition, Multiplikation und Inverses-Element. Die Substitution S ist die Inverse eines solchen Finite Field.
Die Substitution S ist eine sehr einfache Operation und kann deshalb leicht implementiert werden. Element ai ist einfach die i-te Potenz im Finite Field. Das macht die AES sehr effizient.

Da AES nur mit einfachen Bit Operationen arbeitet hat es zwei Vorteile:
Key expansion routine

Abb. 3: Schl�sselexpansion

Public Key Cryptography

Im Jahr 1976 haben Diffie und Hellman einen Artikel mit dem Titel "New Directions in Cryptography" ver�ffentlicht, der zum Renner in der Kryptographiegemeinde wurde. Dieser Artikel stellte ein neues Konzept vor: Public Key Cryptography. Die bis zu dieser Zeit bekannten symmetrischen Algorithmen mit geheimen Schl�ssel wurden nicht mehr den Bed�rfnissen der modernen Kommunikation gerecht.

Das neue an Public Key Cryptography war die Idee der Trapdoor One-Way Functions. Diese Funktionen lassen sich einfach in einer Richtung berechnen, aber es gibt keine gute M�glichkeit, die Umkehrfunktion zu berechnen. Jedoch haben sie eine Hintert�r und wenn man diese Hintert�r kennt, kann man auch die Umkehrfunktion leicht aufstellen. Mit anderen Worten: Alle k�nnen Nachrichten verschl�sseln, aber nur der, der die Hintert�r kennt, kann die Nachricht wieder entschl�sseln. Das war die Geburtsstunde von Alice und Bob. Alice und Bob sind zwei Personen, die geheime Nachrichten austauschen wollen und erfolgreich Eindringlinge schlagen. Eindringlinge, die ihrer Kommunikation lauschen und Daten ver�ndern.


Das sch�nste Beispiel der Public Key Cryptography (und sicher das Einfachste) wurde zwei Jahre sp�ter, 1978, pr�sentiert. Es wurde erfunden von Rivest, Shamir und Adleman und ist daher als RSA bekannt. Es basiert auf der mathematischen Schwierigkeit eine ganze Zahl in Primfaktoren zu zerlegen. Der geheime Schl�ssel besteht aus drei Zahlen (p,q,d) wobei p und q zwei Primzahlen mit ungef�hr gleicher Gr��e sind und d eine relative Primzahl zu p-1 and q-1 und die unten stehende Gleichung erf�llen mu�. Der �ffentliche Schl�ssel besteht aus dem Paar (n,e), wobei n=pq, und e der inverse Modulus von (p-1)(q-1) ist.
ed = 1 mod(p-1)(q-1).



Nehmen wir an, Alice m�chte einen Text verschl�sselt mit Bobs �ffentlichem Schl�ssel verschicken (n,e). Dazu transformiert sie die Nachricht in eine Zahl m kleiner n und dann berechnet sie:
c = me mod n,


und schickt c zu Bob. Bob berechnet auf seiner Seite mit dem geheimen Sch�ssel (p,q,d):
cd mod n = med mod n = m.


Bei RSA ist die Trapdoor One-Way Function die Funktion, die eine ganze Zahl x<n, mit dem Wert xe mod n assoziiert.

Seit RSA wurden viele andere public key cryptosystems entwickelt. Eine der beliebtesten Alternativen zu RSA ist ein Kryptosystem, das auf diskreten Logarithmen basiert.

Moderne Kryptographie

Public key cryptography ist sehr interessant, weil sie einfach zu benutzen ist und viele Sicherheitsprobleme l�st: Daneben bietet public key cryptography, genau wie Kryptographie mit geheimen Sch�ssel, eine sichere und geheime Kommunikation.

Nehmen wir an, dass Alice geheim mit Bob kommunizieren m�chte. Alice holt sich dazu aus einem �ffentlichen Verzeichnis den �ffentlichen Sch�ssel von Bob und verschl�sselt damit ihre Nachricht. Bob erh�lt die Nachricht und kann sie mit seinem geheimen Schl�ssel entschl�sseln. Beide Schl�ssel, �ffentlicher Sch�ssel und geheimer Schl�ssel, haben sehr unterschiedliche Rollen. Deshalb nennt man das auch asymmetrische Kryptographie. Bei Systemen mit geheimen Schl�ssel wird derselbe Schl�ssel zum Ver- und Entschl�sseln benutzt (symmetrisch).


Public key cryptography bietet einen weiteren riesigen Vorteil. Wenn n Leute miteinander kommunizieren wollen, dann braucht man bei geheimen Schl�sseln f�r jedes m�glich Paar einen Schl�ssel. Also n(n-1) Schl�ssel. Bei Public key cryptography braucht man nur n Schl�ssel. Ein riesiger Vorteil, wenn mehr als tausend Leute miteinander reden m�chten. Weiterhin ist es schwierig, mit symmetrischer Kryptographie ein neues Mitglied in die Gruppe einzuf�hren. Man m��te dazu n Schl�ssel erzeugen und sie auf einem sicheren Weg an alle verteilen. Im Gegensatz dazu braucht man bei public key cryptography lediglich einen neuen Schl�ssel im Schl�sselverzeichnis zu ver�ffentlichen.

�ffentlicher Schl�ssel oder geheimer Schl�ssel: Die richtige Wahl treffen.

Im vorherigen Abschnitt haben wir gesehen, da� public key cryptography viele Probleme l�st die Kryptographie mit geheimem Schl�ssel nicht l�sen kann. Da mag man sich fragen, warum AES, ein symmetrisches Verfahren (geheimer Schl�ssel), entwickelt wurde. Es gibt zwei wesentliche Gr�nde: Zum reinen Verschl�sseln sind also symmetrische Verfahren besser. Zimmermann hat ein interessantes Verfahren ausgearbeitet, da� sowohl asymmetrische als auch symmetrische Verfahren benutzt: PGP. Wenn Alice und Bob kommunizieren wollen, dann sieht das so aus: Nach der Kommunikation wird der geheime Schl�ssel (session key) einfach vernichtet. Normalerweise ist der leichter angreifbare Teil der Kommunikation das Schl�sselaustauschprotokoll mit public key cryptography.

Bibliografie

Geschichte der Kryptographie: Zu AES :
Kryptographie im Allgemeinen :