Kryptographie


... [ Seminar WWW und JAVA] ... [ Thema Sicherheit im Internet ] ... [ Sicherheitsmechanismen ] ...

Übersicht


Symmetrische Verschlüsselungsverfahren

Bei symmetrischen Verfahren wird nur ein Schlüssel für die Ver- und Entschlüsselung verwendet. Mit diesem Schlüssel wird die ursprüngliche verständliche Nachricht in Schlüsseltext transformiert und umgekehrt. Daher ist der Schlüssel unbedingt geheim zu halten. Der Schlüssel ist ein vom Inhalt des Ausgangstextes unabhängiger Wert, der den Algorithmus steuert. Der Algorithmus erzeugt je nach dem jeweils verwendeten Schlüssel eine andere Ausgabe. Sobald der Schlüsseltext erstellt ist, wird er übertragen. Der Empfänger kann aus diesem Schlüsseltext mittels Entschlüsselungsalgorithmus und des Schlüssels, der zur Verschlüsselung verwendet wurde, wieder in den ursprünglichen Ausgangstext zurückverwandelt werden. Der bekannteste und bewährteste Algorithmus ist der DES - Algorithmus ( Data Encryption Standard.).


21_001.gif nicht gefunden ...


DES - Algorithmus

Der Data Encryption Standard wurde 1974 veröffentlicht und in den USA als ANSI - Standard normiert. Bei dem DES - Algorithmus handelt es sich um eine Produktverschlüsselung, bei der die elementaren Verschlüsselungen Substitutionen und Permutationen verwendet werden. Bei Permutationen wird die Reihenfolge der Bits / Bitgruppen verändert, während bei Substitutionen Bitgruppen durch andere ersetzt werden. Die Schlüssellänge beträgt 64 Bits, von denen aber nur 56 Bits signifikant sind. Die restlichen 8 Bits sind Paritätsbits, je 7 Bits werden mit ungerader Parität versehen.

Ablauf :Zuerst erfolgt eine Permutation des Ausgangstextes. Danach folgen 16 Runden, wobei nach jeder Runde die rechte Hälfte zur linken der nächsten Runde und die linke Hälfte wird nach jeder Runde bitweise XOR mit einem Output verknüpft, der sich als Wert einer Funktion F ergibt. F ist abhängig von der rechten Hälfte des teilweise verschlüsselten Blockes und einem 48 Bit langem Arbeitsschlüssel, der für jede Runde aus dem DES - Schlüssel abgeleitet wird. Das Resultat der XOR - Verknüpfung wird die rechte Hälfte für den Inputblock für die nächste Runde.Nach der letzten Runde werden beide Hälften vertauscht. Abschließend erfolgt eine inverse Anfangspermutation.

Verschlüsselung und Entschlüsselung laufen nicht identisch ab und müssen in einer sicheren Umgebung stattfinden. Bei der Entschlüsselung wird der Schlüsseltext als Eingabetext benutzt und die Schlüssel der 16 Iterationen werden in umgekehrter Reihenfolge verwendet.

Schwächen :

Triple DES


22_001.gif nicht gefunden ...


Asymmetrische Verschlüsselungsverfahren

Asymmetrische Verfahren ( oder auch Public - Key - Verfahren ) benötigen zwei verschiedene Schlüssel, wobei aber nur der Schlüssel vom Empfänger geheim sein muß, d.h. daß jeder einem Empfänger eine Nachricht senden kann, ohne eine Geheiminformation zu besitzen. Aber nur der Empfänger kann die Nachricht mit seinem geheimen Schlüssel entschlüsseln. Bei der Verschlüsselung ordnet der Algorithmus f mittels dem öffentlichen Schlüssel e jedem Klartext m einen Geheimtext c=fe( m ) zu. Bei der Entschlüsselung wird der korrekte Klartext reproduziert, das bedeutet m'=fd( c ) = fd( fe( m ) ) = m.

Public - Key - Eigenschaft: Aus Kenntnis des öffentlichen Schlüssels e ist es unmöglich, auf den privaten Schlüssel d zu schließen.


23_001.gif nicht gefunden ...

Der RSA - Algorithmus ist der Prototyp für Public - Key - Verfahren; er wird im folgenden behandelt.


RSA - Algorithmus

Der RSA - Algorithmus wurde 1978 von Rivest, Shamir und Adleman erfunden und wurde nach seinen Erfindern benannt. Er kann sowohl für die Verschlüsselung als auch für die Entschlüsselung benutzt werden. Seine Sicherheit basiert auf der Schwierigkeit, eine große Zahl zu faktorisieren. Bei dem RSA - Verfahren. handelt es sich um eine Blockchiffre, bei der der Ausgangstext m und der verschlüsselte Text c ganze Zahlen zwischen 0 und n-1 bei beliebigen n sind.

Verschlüsseln : c = me mod n ( öffentlicher Schlüssel KU=( e, n ) )

Entschlüsseln : m = cd mod n ( privater Schlüssel KR=( d, n ) )

Public Key Eigenschaft: Wenn man nur die Zahl n kennt, so kann man aus e nicht d berechnen.

Schlüsselgenerierung: Grundlage ist folgender mathematischer Satz:: Sind p, q zwei verschiedene Primzahlen, so gilt für jede nat. Zahl m<n und jede nat. Zahl k: mk(p-1)(q-1)+1 mod n = m

Beispiel: p=11, q=19, d=53 ( frei wählbar ) => n=209, e=17


Vergleich DES - RSA


DES RSA
Vorteile einfache Generierung des Schlüssels kein geheimer Schlüsselaustausch
hohe Operationsgeschwindigkeit nur ein Schlüsselpaar pro Teilnehmer
gute Implementierung
Nachteile geheimer Schlüsselaustausch langer Schlüssel
für jede Kommunikation ein geheimes Schlüsselpaar komplexe Schlüsselerzeugung
rechenintensiv
schlecht implementierbar

Anwendungen


DES RSA
Ver- und Entschlüsselung großer Datenmengen Ver- und Entschlüsselung kleiner Datenmengen
Datenübertragung Schlüsselaustausch
Paßwortverschlüsselung
digitale Unterschrift


Anwendungen: PEM und PGP

Ein Beispiel für eine kombinierte Anwendung ist der Vorschlag für den Internet-Standard für E-Mail-Verschlüsselung : PEM = Privacy Enhanced Mail. Es wird ein zufälliger DES - Schlüssel beim Versender erzeugt. Dieser DES - Schlüssel wird mit dem öffentlichen RSA - Schlüssel des Empfängers verschlüsselt und übertragen. Anschließend verschlüsselt der Versender seine Daten mit dem DES - Schlüssel und überträgt sie an den Empfänger. Der Empfänger kann nach der Entschlüsselung des DES - Schlüssels mit seinem geheimen RSA - Schlüssel nun die Daten mittels diesem Schlüssel wieder entschlüsseln.


24_001.gif nicht gefunden ...

Praktisches Beispiel: PGP=Pretty Good Privacy

PGP ist wohl die am weit verbreiteste Kryptographie-Software. Sie ist eine RSA-Implementation des Amerikaners Phil Zimmermann. Aus den USA dürfen aber keine Kryptographie-Applikationen ( Binär- und Sourcecode ) ausgeführt werden. Deshalb hat der Norweger Staale Schuhmacher eine eigene lizenzfreie Version PGP 2.6.2i geschrieben und diese ist legal beziehbar von http://www.ifi.uio.no/˜staalesc/PGP/home.html .Mit dieser Software ist es möglich, Texte zu verschlüsseln, Texte zu entschlüsseln, Schlüssel zu generieren, Texte elektronisch zu unterschreiben, elektronische Unterschriften zu verifizieren u. v. m.


... [ Seminar WWW und JAVA] ... [ Thema Sicherheit im Internet ] ... [ Kryptographie ] ... [ Sicherheitsmechanismen ] ...