Mathematikwettbewerb

- Spuren der Mathematik -

Beitrag von:

Sebastian Galan y Martins
s.galan@gmx.de
und
Aleksandar Jocic
sasajocic@lycos.de

Emilie - Wüstenfeld- Gymnasium
Klasse S3
Bundesstraße 78
20144 Hamburg

Themen: Kryptologie - Sicherheit für alle


Vorwort

Der Beitrag "Kryptologie - Sicherheit für alle", soll die Grundlagen der modernen Kryptologie für jedermann verständlich erklären. Es werden u.a. die Vor- und Nachteile verschiedener Verschlüsselungsprinzipien und Identifikationsverfahren erklärt.

Basierend auf den kryptologischen Grundlagen wird eine von uns konzipierte Patienten-Karte mit Sicherheits- und Infrastruktur vorgestellt, die zusammen mit der verständlichen Erklärung der modernen Kryptologie der Beitrag zum Mathematikwettbewerb "Spuren der Mathematik" sein soll.

In diesem Beitrag sind Bilder und Grafiken enthalten, die zum Verständnis und Erklärung dienen. Deswegen sollten sie nicht ausgeschaltet und die Seite im Vollbild betrachtet werden. Aus Formatgründen muss auch der Microsoft Internet Explorer (optimal ab Version 5) benutzt werden.


Inhaltsverzeichnis

1 Einleitung 2 Grundlagen der Kryptologie
2.1 Terminologie
2.2 Kryptographie
2.2.1 Symmetrische Algorithmen
2.2.2 Asymmetrische Algorithmen
2.2.3 Vorzüge und Defizite der Algorithmen
2.2.4 Hybridsysteme
2.2.5 Kommunikation
2.2.6 Kryptosystem
2.3 Kerckhoffs und Shannons Maxime
2.4 Schlüssel und Sicherheit
2.4.1 Ein Beispiel
2.4.2 Keys und Algorithmen
2.4.3 Codebücher
2.5 Kryptoanalyse
2.5.1 Angriffsarten
3 Kryptologische Verfahren
3.1 Monoalphabetische Chiffrierung
3.1.1 Tauschchiffren
3.1.2 Schlüsselwörter
3.1.3 Kryptoanalyse von monoalphabetische Chiffrierung
3.2 Die Skytale von Sparta
3.3 Das Caesar - Prinzip
3.4 Polyalphabetische Chiffrierung
3.4.1 Die Vigenère - Chiffre
3.5 One - Time - Pad
4 DES - Data Encryption Standard
4.1 Funktionsweise
4.2 Sicherheit
4.3 Zusammenfassung der Anwendung
4.4 Verständnisdurchlauf
4.5 Tripple DES
4.5.1 Funktionsweis des Tripple DES
5.1 RSA - Algorithmus
5.1.1 Funktionsweise
5.1.2 Primzahlentest
5.1.3 Implementierung des RSA
5.2 Sicherheit des Algorithmus
5.2.1 Faktorisieren
5.2.2 Diskrete Logarithmusfunktion
5.3 Angriffsmöglichkeiten gegen RSA
5.3.1 Standardangriffe
5.3.2 Man-in-the-Middle-Attack
5.3.3 Andere Angriffe
5.4 Digitale Signaturen und Identität
5.4.1 Einwegfunktionen
5.4.2 Einweg-Hash-Funktion
5.4.3 Message-Authentication-Code
5.4.4 Angriffe gegen die Digitale Signatur
5.5 Zero-Knowledge-Protokolle
5.5.1 Fiat-Shamir-Protokoll
5.6 Schlüsselmanagement
5.6.1 Trusted Third Party
5.6.2 Schüsselgenerierung und -ausgabe
5.6.3 Zertifizierungsinstanz
6 MedI-Karte
6.1 Einleitung
6.2 Inhalt der MedI-Karte
6.3 Infrastruktur
6.4 Sicherheitskonzept
6.5 Schlusswort zur MedI-Karte
7 Quellenverzeichnis


1 Einleitung

Lang ist es her, als sich eine neue Richtung der Kunst entwickelt hat. Die Kunst der Verschlüsselung. Die Kunst der Kryptologie. Es ist Jahrtausende her, als sich Menschen überlegt haben, wichtige Nachrichten und Informationen so zu "Verschlüsseln", dass diese nur von befugten Personen gelesen werden können. Anfangs wurden "simple" Verschlüsselungsmethode entwickelt, wie zum Beispiel, Zeichen als Buchstaben zu verwenden, oder einfach eine andere Reihenfolge von Buchstaben im Alphabet zu verwenden. Für die damalige Zeit waren diese monoalphabetischen Verschlüsselungsverfahren eine gute und wichtige Errungenschaft. Diese "simplen" Verschlüsselungsverfahren waren so lange sicher, wie sie unbekannt waren, denn sobald etwas über ihre prinzipielle Funktionsweise bekannt wurde, konnte ein Angreifer eine Kryptoanalyse vornehmen, sprich er konnte sich dann Methoden überlegen um das Kryptosystem zu knacken. Das erste wirklich auf mathematischen Überlegungen basierende Verschlüsselungsverfahren ist der Caesar - Code. Es gab zwar schon vorher verschlüsselte Texte und Nachrichten wie zum Beispiel die Skytale von Sparta, auf die später noch näher eingegangen wird. Jedoch wird bei der Skytale von Sparta kein Algorithmus verwendet, wie beim Caesar - Code, sondern die Verschlüsselungsmethode ist, das umwickeln des Geheimtextes um die besagte Skytale, um dann senkrecht die Nachricht lesen zu können. Caesar nutzte seinen Code dafür, bei Feldzügen wichtige Informationen an seine Truppen zu übermitteln. Dieses Verfahren hielt sich einige Jahrhunderte, bis dann die polyalphabetische - Verschlüsselung "entwickelt" worden ist und diese die monoalphabetische ablöste. Der Vorreiter für solche polyalphabetischen Chiffrierungen war Blaise de Vigenère, mit seinem Vigenère - Quadrat. Im Zeitalter der Computer war die Entwicklung von neuen und besseren Kryptosystemen kaum noch aufzuhalten. Anfang des 20. Jahrhunderts kamen die Symmetrische Algorithmen auf, mit dem Höhepunkt beim DES - Algorithmus. Kurze Zeit später wurden aus den Symmetrischen Algorithmen die Asymmetrische Algorithmen, die wiederum ihren Höhepunkt mit der Entwicklung des RSA - Algorithmus hatten. Die wohl neusten Kryptosysteme sind die Hybridsysteme. Nach wie vor werden die Kryptologischen - Verfahren zur "sicheren" Übermittlung von Nachrichten und Informationen genutzt, nur hat sich ihr Verwendungsspektrum erweitert. Sie werden nicht mehr nur für Militärische Zwecke verwendet, sondern heutzutage werden sie auch für Telefonkarten, für Handykarten, für EC - Karten und generell für alle Informationen verwendet, die Geheim und unberührt bleiben müssen. Sogar Privatleuten ist die Welt der Kryptologie offen was früher kaum vorstellbar gewesen wäre.

Im folgenden Beitrag werden die wichtigsten Kryptosysteme chronologisch dargestellt. Es wird die Funktionsweise aufgezeigt, aber auch die Kryptoanalyse, falls diese existiert und bekannt ist.


2 Grundlagen der Kryptologie

2.1 Terminologie

Damit sich die Anwender der praktischen und theoretischen Kryptologie auch über die gleichen Themen unterhalten können, muss wie in jeder Wissenschaft, eine eigene fachspezifische Sprache vorhanden sein. In diesem Kapitel wird die moderne, kryptologische Terminologie erläutert sowie die theoretische Durchführung der Kryptologie und ihre Aufgabenbereiche.
Der Name für die Wissenschaft der Kryptologie, setzt sich aus zwei griechischen Worten, kryptós = geheim und logos = das Wort / der Sinn, zusammen. Die Kryptologie wird von den praktizierenden Wissenschaftlern, denn Kryptologen, in zwei Teilbereiche unterteilt. Der eine Bereich wird Kryptographie (graphein(griech.) = schreiben) genannt, der sich mit der Entwicklung und Anwendung von Verschlüsselungsverfahren, zum Schutze von Daten und Informationen, beschäftigt. Der andere Bereich wird als Kryptoanalyse (análysis (griech.) = Auflösung / Zergliederung) bezeichnet. Dieser Bereich beschäftigt sich mit der unautorisierten Entschlüsselung, der codierten Daten und Informationen und die damit verbundene Wiederherstellung des ursprünglichen originalen Textes. Auf die Kryptographie bzw. Kryptoanalyse wird in den Kapitel 2.2 bzw. 2.5 genauer eingegangen. An dieser Stelle wird darauf hingewiesen das verschiedene Autoren den Begriff Kryptologie als Synonym für Kryptographie benutzen. In dieser Schrift wird dies nicht getan. Damit eine Nachricht überhaupt verschlüsselt werden kann, muss über eine endliche Menge von Zeichen ein Alphabet A, mit n = |A|, definiert werden. Die zu verschlüsselnde message ((engl.) = Nachricht) wird als plaintext ((engl.) = Klartext) bezeichnet und mit m gekennzeichnet. Die Zeichenkette des zu verschlüsselnden plaintext wird im zuvor definierten Alphabet A gebildet. 1a2b3c oder acc sind z. B im Alphabet Q, mit den Zeichen {a, b, c, 1, 2,3}, zuvor für den plaintext festgelegt worden.
Damit der plaintext nun verschlüsselt werden kann, benötigt auch der verschlüsselte Text, der ciphertext ((engl.) = Geheimtext) heißt und mit c gekennzeichnet ist, ein zuvor definiertes Alphabet A. Dies kann dasselbe, wie das zuvor geklärte Alphabet A sein, welches auch der plaintext besitzt. Dies ist aber keine zwingende Notwendigkeit, denn es kann auch ein völlig anderes Alphabet benutzt werden. Zum Beispiel kann für einen beliebigen plaintext das Alphabet B benutzt werden, das mit dem Bereich B {a, b, c..., z} geklärt ist und für den ciphertext kann ein Alphabet Z mit dem Bereich Z {0, 1, 2, 3,..., n - 1} definiert sein. Vorweg schon einmal erwähnt das auch keys ((engl.) = Schlüssel), Kennzeichen k, Kapitel 2.4, Zeichenketten in einem definierten Alphabet A sind. Um nun den plaintext chiffrieren zu können muss er auch einer encryption ((engl.) = Verschlüsselung), gekennzeichnet durch E, unterzogen werden. Die encryption E eines plaintextes M ist die invertierte, also die umkehrbare Abbildung des plaintextes M mit einem key K.(ein key ist nicht zwingend notwendig), der den codierten ciphertext c liefert. Die entgegen gesetzte Operation die den chiffrierten Text wieder in den plaintext umwandelt lautet decryption ((engl.) = Entschlüsselung), dargestellt mit D.

E(m) = c
D(c) = m
D(E(c)) = m

Abbildung 1: Verschlüsselungsprinzip

Die Kommunikationspartner im kryptologischen Bereich werden Alice und Bob genannt und sollen als Synonym für jeden Anwender von kryptologischen Verfahren verstanden werden. Besonders im Bereich des public-key-Verfahren (Kapitel 5) wir die Bezeichnung Alice und Bob verwendet.

2.2 Kryptographie

Die Kryptographie ist der Bereich der Kryptologie der für die "sichere" encryption und decryption, von Daten und Informationen zwischen Kommunikationspartner, zuständig ist. Die Kryptographie ist keineswegs eine wage Vereinbarungen, auf welchem Wege etwas chiffriert oder codiert werden soll, sondern es werden für die encryption von messages mathematische, also logische und bewiesene, Methoden verwendet, um messages zu chiffrieren und nur für die Zielperson / Zielpersonen zugänglich zu machen. Wie jede Wissenschaft hat auch die Kryptographie Ziele, die sie erreichen will, wobei man diese Ziele in zwei Gebiete aufteilen kann. Einmal in mathematische Ziele und einmal in Ziele, die die praktische Anwendung betreffen.

Kryptographie - Mathematische Ziel

Das mathematische Ziel der Kryptographie ist es, immer bessere, raffiniertere und "unknackbare" Verschlüsselungsverfahren zu entwickeln. Für diesen Zweck werden kryptographische Algorithmen, mathematische Berechnungsvorschriften, ausgearbeitet, die darauf abzielen messages "sicher" zu Ver- und Entschlüsseln. In Kapitel 2.4 "Schlüssel und Sicherheit" wird der Begriff "sicher" genauer betrachtet. Es wird zwischen zwei kryptographische Algorithmen, denn symmetrischen und asymmetrischen Algorithmen, unterschieden. Beide bieten unterschiedliche Vor- und Nachteile und sind je nach Anwendungsgebiet von unterschiedlichem nutzen.

2.2.1 Symmetrische Algorithmus

Eine symmetrische encryption besteht aus einer Funktion ƒ, der zwei Eingabewerte zugeordnet werden müssen. Diese zwei Werte bestehen aus der message m und dem key k und ergeben über die Funktion ƒ den ciphertext c.

Ek (m) = c
Dk(c) = m
Dk(Ek(m)) = m
1: ƒk(m) = c
2: ƒk(c) = m

Gleichung 1: Funktionsgleichung Nr. 1 zum encryption und Nr. 2 zum decryption von symmetrischen Algorithmen.

Damit nun Alice ihre message chiffrieren und nur Bob sie dechiffrieren kann, müssen sich beide auf einen gemeinsamen, geheimen key, den secret key k ((engl.) = Geheimschlüssel) einigen. Das heisst also, dass zum ver- und entschlüsseln der selbe key benutzt werden muss. Anhand des Data -Encryption - Standards in Kapitel 4 wird die mathematische Verwirklichung des symmetrischen Algorithmus exemplarisch erklärt und bewiesen. Nur einen gemeinsamen secret key zu benutzten, wirft natürlich die Fragen auf, ist der symmetrische Algorithmus überhaupt sicher und ist der Kommunikationskanal sicher für die Übermittlung des secret keys? Der symmetrische Algorithmus kann als sicher gewertet werden, selbst wenn den Kryptoanalytikern, Personen die versuchen unautorisiert an versendete messages zu gelangen (Kapitel 2.5 Kryptoanalyse), alle Informationen über den verwendeten symmetrische Algorithmus zu Verfügung stehen, denn die gesamte Sicherheit eines symmetrische Algorithmus basiert auf den geheimen secret keys k. Die sichere Übermittlung des secret keys stellt aber in der Tat das Hauptproblem symmetrischer Algorithmen dar, denn obwohl die Kommunikationspartner sich den Übermittlungsort sowie die Übermittlungszeit frei wählen können, ist der symmetrische Algorithmus nicht absolut sicher. Zwar ist die Wahrscheinlichkeit der Entdeckung des Schlüsseltausches verhältnismäßig gering und auch die geringe zu übermittelnde Datenmenge des secret keys, machen eine Übermittlung des secret key k relativ sicher. Auch das Schlüsselmanagement, also die spätere Verwaltung der secret keys, ist bei symmetrischen Algorithmen einfach, da ja nur die Gesprächspartner den secret key kennen und geheim halten sollten. Der secret key wird daher, wenn er geheim bleibt, nicht von Außenstehenden manipuliert.

Abbildung 2: Symmetrischer Algorithmus

Das Problem einen sicheren Kommunikationskanal zu finden ist aber nach wie vor vorhanden, wodurch eine Datenübertragung des secret keys gefährdet ist. Dieses Problem, des symmetrischen Algorithmus, wird als Schlüsseltauschproblem bezeichnet. Durch eine steigende Anzahl von Gesprächspartnern, wird das Schlüsseltauschproblem noch gesteigert, denn damit auch mit jeder Person sicher kommuniziert werden kann, benötigt man für jede einzelne Person, einen anderen secret key. In diesem Zusammenhang spricht man auch vom Schlüsselvermehrungsproblem. Damit 10 Personen sicher miteinander kommunizieren können, benötigte eine Person in dieser Kommunikationsrunde 9 verschiedene secret keys. Alle secret keys dieser Kommunikationsrunde ergeben zusammen 45 secret keys. Unterm Schlüsselvermehrungsproblem leidet auch das Schlüsselmanagement, denn es müssen immer, wenn neue Personen in die Kommunikationsrunde, die secret keys aktualisiert werden. Die secret keys werden jedoch von der Person, die sie besitzt, (eigentlich) nicht bekannt gegeben. So bleibt die Verwaltung der secret keys nur der Person überlassen die sie besitzt.

Die dargestellte Gleichung berechnet die Anzahl aller keys, die in einer Kommunikationsrunde vorhanden sind und zeigt, dass die Anzahl der benötigten keys fast quadratisch steigt. Die Anzahl der Kommunikationspartner wird durch n dargestellt.

Gleichung 2: Schlüssel in einer Kommunikationsrunde - Symmetrischer Algorithmus

2.2.2 Asymmetrische Algorithmen

Lange Zeit stellte das Schlüsseltauschproblem und das Schlüsselvermehrungsproblem beim symmetrischen Algorithmus ein großes Problem für die sichere Übertragung von messages dar. Viele Kryptologen konnten sich keinen anderen Weg der Verschlüsselung vorstellen, als den des symmetrischen Algorithmus und diejenigen die es konnten, konnten keinen Algorithmus entwickeln der besser als der symmetrischen Algorithmus oder überhaupt funktionierte. Erst im Jahre 1976 entwickelten und veröffentlichten die Amerikanern Whitfield Diffie und Martin Hellman in ihrer Artikel "New Directions in Cryptographie" (Neue Richtungen in der Kryptologie) die Theorie einer neuen, asymmetrischen Verschlüsselungsmethode. Nach Whitfield Diffie und Martin Hellman Theorie, die auch als Diffie-Hellman Verfahren bezeichnet wird, wird in einem asymmetrischen Verschlüsselung nicht nur ein key wie beim symmetrischen Algorithmus, sondern zwei keys zum chiffrieren und dechiffrieren benutzt. Einer dieser beiden keys ist allgemein zugänglich, also bekannt und wird deshalb public key ((engl.) = öffentlicher Schlüssel) k1 genannt. Dies ist auch der Grund, warum die asymmetrische Verschlüsselung auch als "Public-Key-Verfahren" oder schlicht "Public-Key" bezeichnet wird. Der andere key hingegen ist geheim und nur einem Kommunikationsteilnehmer, nämlich dem Empfänger der message, bekannt. Dieser geheime key k2 wird, um Verwechslungen mit dem secret key des symmetrischen Algorithmus zu vermeiden, private key genannt ((engl.) = Geheimschlüssel).

Ek1 (m) = c
Dk2(c) = m
Dk2(Ek1(m)) = m

Um nun message mit dem Public-Key-Verfahre codieren und austauschen zu wollen, erzeugen Sender und Empfänger je zwei Schlüsselpaare einen public- und einen private key. Der Sender muss die message mit dem public key des Empfängers verschlüsseln und der Empfänger entschlüsselt wieder die message mit seinem eigenen private key.

Abbildung 3: Asymmetrischer Algorithmus

Man kann sich dies versinnbildlichen, indem man sich mehrere Briefkästen vorstellt, auf denen unterschiedliche Namen stehen.

Abbildung 4: Briefkasten - Prinzip

Wenn nun Alice an Bob eine Nachricht senden will, sucht sie sich einfach den Briefkasten, seinen public key, auf dem sein Name steht und steckt dort den Brief rein. Nun kann nur noch Bob den Briefkasten mit seinem Briefkastenschlüssel, seinen private key, öffnen und den Brief lesen. Nicht nur die Tatsache, dass dieser Algorithmus zwei keys hat, auch die Tatsache, dass einer dieser beiden keys jedermann bekannt ist, ist eine vollkommen neue und geradezu revolutionäre Idee, denn mit dem asymmetrischen Algorithmus bieten sich zwei entscheide Vorteile gegenüber dem symmetrischen Algorithmus. Erstens wird das Schlüsseltauschproblem vollkommen gelöst und zweitens wird das Schlüsselvermehrungsproblem extrem stark minimiert. Es ist nämlich nicht möglich die message mit dem public key des Empfängers zu entschlüsseln oder vom public key den private key abzuleiten, wodurch die message sicher übertragen wird, obwohl ein key bekannt ist. Dies liegt an der verwendeten Mathematik des asymmetrischen Algorithmus, welche die extremen Schwierigkeit der diskreten Logarithmusfunktion ausnutzt, die beim Versuch auftritt den decryption key k2 zu ermitteln. Außerdem nutzt sie die enormen Schwierigkeit aus großen Zahlen, besonders da beim asymmetrischen Verfahren Primzahlen verwendet werden, zu faktorisieren. Durch die Ausnutzung dieser Probleme ist das Schlüsseltauschproblem gelöst, denn ein Außenstehender kann den private key k2 bei einer message Übermittlung gar nicht oder nur unter enorm hohen Aufwand ermitteln. Die mathematische Umsetzung des Diffie-Hellmann Verfahren wird in Kapitel 5 "Public - Key - Kryptologie" erklärt und bewiesen. Auch das Schlüsselvermehrungsproblems des symmetrischen Algorithmus wird durch den asymmetrischen Algorithmus elegant minimiert, denn in eine Kommunikationsrunde die ein asymmetrischen Verschlüsselungsverfahren benützt, müssen nur zwei keys pro Person und nicht ein gemeinsamer key pro Gesprächsteilnehmer gebildet werden. Die Anzahl der keys berechnete sich, indem man die Anzahl der Kommunikationspartner n einfach mal 2 multipliziert. Die Anzahl der benötigten keys wird also nur doppelt so groß wie die Anzahl der Gesprächsteilnehmer.

Gleichung 3: Schlüssel in einer Kommunikationsrunde - asymmetrischer Algorithmus

Das Schlüsselvermehrungsproblem zeigt, wie vorteilhaft der asymmetrische Algorithmus in einer Kommunikationsrunde ist. In einer Kommunikationsrunde die einen symmetrischen Algorithmus verwendet und 1000 Teilnehmern hätte, bräuchte man (nach Gleichung 2) 499500 unterschiedliche keys, um eine sichere Datenübertragung zu garantieren. Jeder einzeln Teilnehmer müsste sich 499500 unterschiedliche keys merken bzw. aufschreiben! Bei einer Kommunikationsrunde die wieder 1000 Teilnehmer hätte, aber den asymmetrischen Algorithmus verwenden würde, bräuchte man (nach Gleichung 3) nur 2000 unterschiedliche keys. Da die Hälfte dieser keys die public keys wären, könnte man sie auf einen dafür speziell eingerichteten Datenbank, einen keysever, deponieren und so jedermann zugänglich machen. Die 1000 unterschiedlichen public keys müsste man sich also nicht notieren. Man müsste sich nur einen einzigen key, nämlich seinen eigenen private key merken. Auch braucht nicht, wie beim symmetrischen Algorithmus, jeder Teilnehmer seine keys zu aktualisieren, wenn ein neuer Teilnehmer sich in die Kommunikationsrunde einbringt, da dieser nur ein neues Schlüsselpaar erzeugen muss. Der asymmetrische Algorithmus hat noch einen weiteren Vorteil gegenüber dem symmetrischen. Er ermöglicht es nämlich Gespräche völlig spontan und ohne eine vorher komplizierte key Übermittlung zu arrangieren. Wie immer in der Geschichte haben Erfindungen alte Probleme gelöst, dafür aber neue geschaffen. Nicht anderes verhält es sich beim asymmetrischen Algorithmus. Der asymmetrische Algorithmus löst zwar die seit Jahren bestehenden Probleme der Schlüsselvermehrung und des Schlüsseltausches, jedoch entstehen durch ihn Identitätsprobleme, Schlüsselmanagementprobleme sowie Implementierungsprobleme. In Verschlüsselungssystemen, die den asymmetrischen Algorithmus als Grundlage nimmt, entsteht das Problem seine eigene Identität andern zu beweisen sowie sich der Identität des anderen zu vergewissern. Eine Person, die dieses Identitätsproblem ausnutzt um messages abfangen, könnte sich nämlich einfach als die entsprechende Zielperson ausgeben und ein Schlüsselpaar erzeugen und so die messages abfangen. Das Briefkastenbeispiel veranschaulicht dies. Herr Burglar will die Post von Bob lesen, hat aber natürlich nicht Bobs Briefkastenschlüssel, sondern nur seinen eigen. Herr Burglar vertauscht einfach die Namensschilder auf den beiden Briefkasten. Von nun an wir die Post, die für Bob bestimmt war an, Herr Burglar geschickt, der sie lesen kann, weil er den Schlüssel für seine Briefkasten ja hat. Ein weiteres Problem, dass als Folge des Identitätsproblems auftritt, ist das Schlüsselmanagementproblem. Die public keys die jedem zugänglich sind, sind nämlich auch denjenigen zugänglich die sie manipulieren könnten. Es müsste also eine Verwaltungsstelle für public keys eingerichtet werden, die dafür sorgt, dass die public keys auch zu denjenigen Personen gehören von denen sie erzeugt wurden und nicht die public keys dürfen dort nicht manipuliert werden können. Das Problem aber daran ist es eine public key Verwaltungsstelle zu finden, denen alle Benutzern des System vertrauen und dafür zu sorgen, dass die Verwaltungsstelle gegen externe und interne Angriffe auf ihre Systeme sicher sind. Das letzte Problem des asymmetrische Algorithmus, ist das Problem der Implementierung. Die mathematische und technische Umsetzung des asymmetrischen Algorithmus bereite große Schwierigkeiten, denn die zwei keys des asymmetrischen Algorithmus müssen exakt zueinander passen und es erlauben eine spontane Kommunikation zu ermöglichen sowie gewähren das die keys nicht verfälscht werden können. Nachdem Diffie und Hellman Theorie des asymmetrischen Algorithmus erschien, versuchten natürlich mehrere Mathematiker, Informatiker, Kryptologen und andere Experten zu überprüfen, ob das Diffie-Hellmann Verfahren überhaupt umsetzbar ist. Die drei jungen Professoren Ron Rivest, Adi Shamir und Len Adleman des Fachgebietes Theoretische Informatik am MIT (Massachusetts Institute of Technology; USA), befassten sich ebenfalls mit dem Diffie-Hellmann Verfahren, jedoch wollten sie mathematisch beweisen das eine Verschlüsselung mit diesem Verfahren nicht möglich ist. Zu ihrer Überraschung fanden sie jedoch im Jahre 1977 eine Möglichkeit zu beweisen, dass das Diffie-Hellmann Verfahren doch funktionieren könnte und praktisch umsetzbar währe. 1978 veröffentlichten Rivest, Shamir und Adleman ein funktionierenden Verschlüsselungsalgorithmus der als Grundlage das Diffie-Hellmann Verfahren benutzt. Es war der nach ihnen benannte RSA - Algorithmus. Die Umsetzung des Diffie-Hellmann Verfahren von Rivest, Shamir und Adleman und der damit entstandene RSA - Algorithmus sowie die Lösung der meisten Probleme die in Verbindung mit dem Diffie-Hellmann Verfahren auftreten, werden in Kapitel 5 "Public - Key - Kryptologie ".

2.2.3 Vorzüge und Defizite der Algorithmen

Hier werden noch mal in Kurzform alle Vor- und Nachteile der einzelnen Algorithmen dargestellt, wobei Bezug auf die im Kapitel 2.2.1 und Kapitel 2.2.2 genommen wird.

Symmetrische Algorithmen

Vorzüge sind:
Defizite sind:

  • das Schlüsseltauschproblem

  • das Schlüsselvermehrungsproblem = quadratisch zur Kommunikationsteilnehmer steigende Schlüsselanzahl

  • bei neuen Kommunikationsteilnehmer, müssen alle keys der alten sowie der neuen Teilnehmer aktualisiert werden

  • alle secret keys für jeden Kommunikationspartner müssen dokumentiert werden

  • verwundbar beim übermitteln des gemeinsamen geheimen keys

Asymmetrische Algorithmen

Vorzüge sind:

  • kein Schlüsseltauschproblem

  • spontane Kommunikationen

  • starke Verringerung des Schlüsselvermerhrungsprobelm = die doppelte Anzahl der Kommunikationsteilnehmern entspricht der Schlüsselanzahl

  • nur der eigene private key muss gemerkt werden

  • keine Aktualisierung bei der Aufnahme neuer Kommunikationsteilnehmer nötig

  • hohe Sicherheit gegenüber dem Versuch den private key zu ermitteln aufgrund des Problem der diskreten Logarithmusfunktion und der Fakatorisierung großer Zahlen

Defizite sind:

  • Probleme beim Nachweis der eigen Identität sowie der Überprüfung der Identität des Empfängers

  • kompliziertes und aufwendiges Schlüsselmanagement

  • Implementierung des asymmetrischen Algorithmus sind um ein vielfaches langsamer und aufwendiger als die beim symmetrische Algorithmus

  • sehr verwundbar gegenüber Angriffen die das Identitätsproblem ausnutzen

Vorzüge und Defizite der Algorithmen - Anwendungsbereich

Symmetrische Algorithmen werden vor allem oder vielleicht sogar wegen dem Schlüsseltausch- und Schlüsselvermehrungsproblem in geschlossenen Netzen wie z.B. von Behörden, Firmen, Verwaltungsstellen o.a. benutzt. In geschlossenen Netzen ist eine Überprüfung der einzelnen Stellen leichter sowie eine höhere Sicherheit für das Gesamtnetz garantiert, da die secret keys, jedenfalls theoretisch, auf mehrere Personen, die nur ihre keys kennen, verteilt werden und so nicht alle secret keys nur wenigen Personen bekannt. Dadurch wird eine Dezentralisierung der Macht vorgenommen, was vor allem in Regierungsbehörden vorteilhaft ist. Symmetrische Algorithmen werden auch vermehrt bei technischen Geräten wie z. B. bei Chipkarten verwendet. Chipkarte und Kartenlesegerät ergeben zusammen ein geschlossenes System mit zwei Teilnehmern.
Asymmetrische Algorithmen werden vorwiegend in offenen Netzen wie beispielsweise im Internet benutzt. Durch die Möglichkeit vertrauliche massage auch über unsichere Kanäle zu übermitteln, können Gespräche stattfinden, die vorher undenkbar oder nur unter sehr großen Aufwand realisierbar waren. Firmenchefs von unterschiedlichen Konzernen können über Fusionen, Aktienaufkäufe oder sonstige Transaktionen verhandeln ohne das die Öffentlichkeit und vor allem die Medien davon erfahren und so z.B. die Aktien der Firmen durch wüste Spekulationen in den Keller treiben. Asymmetrische Algorithmen sind aber auch für Journalisten, die aus Krisengebieten oder "Schurkenstaaten" berichten, vorteilhaft. Sie müssen sich nämlich nicht, wegen der Berichte die sie übermitteln, um ihr Leben führten. Es ist nämlich möglich, die Identität des Absenders geheim zuhalten. Auch die Armee ist Nutznießer des asymmetrischen Algorithmen, denn ihre Truppen können Funksprüche senden und erhalten ohne das der Feind sie entschlüsseln kann.

2.2.4 Hybridsysteme

Um die Vorteile der einzelnen Algorithmen optimal auszunutzen und ihre Schwächen zu minimieren bzw. zu tilgen, hat man frühzeitig damit begonnen Hybridsysteme, Kombinationen aus symmetrischen und asymmetrischen Algorithmen, zu entwickeln. Mit solchen Hybridsystemen kann man beispielsweise das Schlüsseltauschproblem lösen, indem man mit einem asymmetrischen Algorithmus denn gemeinsamen geheimen key übermitteln und dann mit einen symmetrischen Algorithmus benutzt um die eigentliche message zu chiffrieren. Die meisten heute existierenden Hybridsysteme sind sehr sicher und meistens nicht mit akzeptablem Aufwand von Fremdpersonen zu decodieren. Eines der bekanntesten und momentan zu den besten zählenden Hybridsysteme, ist das PGP ("Pretty Good Privacy") System von Philip Zimmermann.

Kryptographie - Die Anwendungsziele

Das zweite Ziel der Kryptographie ist es, Probleme des Datentransfers zu lösen. Dies ist auch der eigentliche Grund, warum die Kryptographie überhaupt als eine ernsthafte Wissenschaft betrieben wird.

2.2.5 Kommunikation

Damit sich die Kommunikationspartner auch wirklich "sicher" sein können, dass die von ihnen verschickten messages denn vorbestimmten Ort sowie die gewählte Zielperson auch wirklich erreicht, müssen, je nach Anwendung- und Verwendungszweck der übertragenen message, spezielle Bedingungen eingehalten werden. Diese Bedingungen Lauten:

  • Authentication (engl. = Authentifizierung)

  • Data integrity (engl. = Datenintegrität)

  • Nonrepudiation (engl. = Kommunikationsnachweis) und

  • Anonymity (engl. = Anonymität)

Durch die Authentication, einer zusätzlichen Information, weist der Absender nach, dass er und kein andere diese message gesendet hat. Dies wird auch als "kryptographischer Fingerabdruck" oder "Message-Authentication-Code" (MAC) bezeichnet.
Die Data integrity ist ein Nachweis dafür, dass die übertragene message, während ihres Transfers, nicht manipuliert wurde.
Nonrepudiation
ist der Bestätigung des Senders und des Empfängers dafür, dass die message gesendet bzw. empfangen wurde.
Mit der Absicht seine Anonymity zu wahren, ist entweder gemeint, dass die Anonymität des Absenders, die Anonymität des Empfängers oder die Anonymität der Kommunikationsbeziehung gewahrt werden soll. Durch die Wahrung eines Kommunikationspartners, ist es für Dritte, unauthoriesierte Personen, nicht mehr möglich, die Identität des andere Kommunikationspartners in Erfahrung zu bringen. Bei der Kommunikationsbeziehung müssen beide Partner anonym bleiben.

2.2.6 Kryptosystem

Alle vorhandenen Komponenten eines de- und encryption - Systems ergeben zusammen das Kryptosystem. Zu dem Kryptosystem wird der verwendete Algorithmus, die keys, der Kommunikationskanal und der Mensch als Benutzer und Anwender gezählt.

2.3 Kerkhoffs und Shannons Maxime

Wie in jeder Wissenschaft existierten und existieren auch in der Kryptologie bedeutende Theoretiker und Praktiker. Die bedeutendsten, die mit ihren Arbeiten und Theorien zu einem Umdenken in der Kryptologie geführt haben und nach wie vor die kryptographische Forschung beeinflusst, sind Auguste Kerckhoff van Nieuwenhof und Claude Shannon. Zuerst wird Kerkhoffs, dann Shannons, Theoreme vorgestellt.

Kerckhoff Theoreme

Der im 19. Jahrhundert geborene Philologe Auguste Kerckhoff van Nieuwenhof (1835 - 1903) war einer der bedeutendsten Kryptographen der Telegraphenzeit. Er stellte die damalige kryptologischen Grundsätze, von denen der bedeutendste "Melius est abundare quam deficere" - "Lieber zuviel als zu wenig" war, in frage und versuchte andere und vor allem bessere zu finden. Nach Studien der historischen Kryptographie entwickelte Kerckhoff innovative Ideen, die die Kryptologie revolutionierten und heute unter dem Begriff Kerckhoff - Prinzip bekannt sind. Seine innovativste und zugleich auch provokativste Hauptforderung war, dass "die Sicherheit eines Verschlüsselungsverfahrens nur von der Geheimhaltung des Schlüssels, nicht jedoch von der Geheimhaltung des Algorithmus abhängen darf." Diese Forderung erscheint auf den ersten Blick vollkommen irrsinnig, ist jedoch einfach wie genial. Dadurch, dass der Verschlüsselungsalgorithmus bekannt ist, kann jeder diesen Algorithmus untersuchen und versuchen codierte message es zu entschlüsseln. Gelingt dies nicht ohne den key und sind Entschlüsselungsversuche über einen langen Zeitraum erfolglos geblieben, so stärkt es einmal das Vertrauen der Benutzer in die Sicherheit des Algorithmus und es zeigt zugleich, dass der Algorithmus, momentan jedenfalls, eine gewisse Sicherheit bietet. Es erfordert jedoch eine kontinuierliche Überprüfungen des Algorithmus, um sich seiner Sicherheit auch gewiss seine zu können. Die Umsetzung Kerckhoffs Hauptforderung gehört heute zum festen Bestandteil der starken Kryptologie und steigert erheblich die Sicherheit der benutzten Algorithmen. In seinem Buch "La Cryptographie Militaire" veröffentlichte Kerckhoff seine Studien historischen Kryptographie und die daraus resultierenden Regeln und Vorschläge, die - seiner Meinung nach - jede Person, die Nachrichten verschlüsselt übermitteln will, unbedingt einhalten sollte.

Diese Regeln lauten:

  • die verschlüsselte Nachricht sollte praktisch unknackbar sein

  • das Kryptosystem sollte von Experten gut untersucht worden sein

  • die Sicherheit des Verschlüsselungsverfahren darf nur vom key, nicht vom Verschlüsselungsverfahren selbst abhängen

  • die Kommunikationspartner (Sender und Empfänger)dürfen keinen Schaden erleiden, wenn das Kryptosystem entschlüsselt wurde

  • der Schlüssel muß leicht auswendig zu lernen und veränderbar sein

  • die messages müssen über Kommunikationskanäle (Telephon, Internet u. a.) übertragbar sein

  • alle benötigten Geräte sowie die messages müssen leicht transportierbar sein

  • das Kryptosystem muß benutzerfreundlich sein und sollte keine übermäßigen geistigen Anstrengungen sowie kein spezifisches Fachwissen verlangen

Shannons Theoreme

Der 1916 in Michigan geborene amerikanische Ingenieur und Mathematiker Claude Shannon studierte an der Universität Michigan und bekam 1940 seinen Doktortitel am Massachusetts Institute of Technology (MIT), einer Eliteuniversität, die noch immer zu den Weltbesten Fakultäten ihres Faches zählt, verliehen. 1984 veröffentlichte Shannon den wissenschaftlichen Artikel "A mathematical theory of communication" (Eine mathematische Theorie der Kommunikation). In diesem Artikel stellte Shannon seine Theorie einer neuen Nachrichtenübertragung und -verarbeitung vor, wobei er unter dem Begriff Nachrichten jegliche Form von übertragenen Botschaften, einschließlich derer, die im Nervensystem von lebenden Organismen versendet werden, versteht. Mit diesem und anderen später folgenden Artikel revolutionierte Shannon die Nachrichtentechnik und wurde zum Begründer der Informationstheorie, die unsere heutigen Kommunikationssysteme entscheiden beeinflußt.

Beruhend auf seinen neuen Theorien veröffentlichte Shannon 1949 den wissenschaftlichen Artikel "Communication Theory of Secrecy Systems" (Kommunikationstheorien der Verheimlichungssystemen. In diesem Artikel stellte Shannons seine kryptologischen Theorien vor, welche neue Impulse in die Kryptologie brachte.

Diese lauten:

Beide Theoreme, die von Kerckhoff und die von Shannon, ergeben zusammen ein perfektes, für unautorisierte Personen, unentschlüsselbares Kryptosystem. Dies ist aber nur möglich, wenn das Kryptosystem einen nicht wiederverwendbaren Schlüssel verwendet und praktisch nicht für unautorisierte Personen zu entschlüsseln ist, d.h. trotz aller erdenklichen Mühen keine Information über den plaintext bekannt werden. Es ist jedoch leider, theoretisch wie praktisch, äußert kompliziert und schwierig sowohl Kerckhoffs als auch Shannons Theoreme miteinander zu vereinbaren und in Einklang zubringen. Ein Verschlüsselungsverfahren, das 1917 von G. Vernam und Major J. Mauborgne entwickelt, ist das "One - Time - Pad", das bis heute als unknackbar gilt und ein Großteil von Kerckhoffs und Shannons Forderungen erfüllt. Dieses Verschlüsselungsprinzip wird jedoch nicht näher erläutert.

2.4 Schlüssel und Sicherheit

In jedem Kryptosystem existiert fast immer ein unbekannter, geheimer Wert, der nur den Personen bekannt ist, die dass Kryptosystem benutzten. Ein erheblicher Teil der gesamte Sicherheit des Kryptosystems hängt von diesem unbekannten Wert ab. Dieser geheime Wert ist der key (engl. = Schlüssel) mit dem die Kommunikationsparteien ihre messages ver- und entschlüsseln. Der key wird genau wie die plain- und ciphertexte über einem zuvor vorgegebenen Alphabet K definiert. Der key kann ein Wort, eine Zahl, ein Binärcode, in diesem Fall wird der key auch als Bit-Schlüssel bezeichnet oder ein sonstiges geheimes Zeichen sein. Der Zustand des keys hängt vollkommen vom verwendeten Verschlüsselungsalgorithmus ab. Alle möglichen und erdenklichen keys, die in einem verwendeten Algorithmus vorhanden sein können, werden als keyspace ((engl.) = Schlüsselraum) bezeichnet. Je länger der verwendete key ist, umso größer wird die Sicherheit, dass das Kryptosystem nicht von dritten unbefugten Personen entschlüsselt werden kann. Am besten ist es, wenn der key so lang wie die zu verschlüsselnde message ist. Dadurch wird es nämlich unmöglich den ciphertext ohne den zugehörigen key wieder in den plaintext umzuwandeln. Als uneingeschränkt sicher wird ein Algorithmus bezeichnet, wenn der plaintext auch dann nicht ermittelt werden kann, wenn ciphertexte in uneingeschränkter Menge vorhanden sind und so das Kryptosystem nur mit dem passenden key geöffnet werden kann. Warum und weshalb das so ist und welche Vor- und Nachteile durch einen key entsteht, der so lang wie die zu codieren messages ist, wird im Kapitel 3.5 One-Time-Pad erklärt. Der key ist aber nicht der einzige Sicherheitsfaktor, der für die Sicherheit des Kryptosystem verantwortlich ist. Der Geldaufwand, die Datenkomplexität und die Geheimhaltungszeit sind weitere Faktoren, die eine wichtige Rolle für die Sicherheit des Kryptosystems spielen. Sie sind mitverantwortlich dafür, dass der verwendete Verschlüsselungsalgorithmus als sicher gilt.

Geldaufwand:

Geheimhaltungszeit:

Datenkomplexität:

2.4.1 Ein Beispiel

An einem simplen Alltagsbeispiel zeigt Prof. Dr. rer. nat. Wolfgang Ertel in seinem Buch "Angewandte Kryptologie", erschienen im Jahre 2001 im Carl Hanser Verlag, wie wichtig die Länge des keys und die Faktoren Geldaufwand, Geheimhaltungszeit und Datenkomplexität für die Sicherheit des Kryptosystems sind. Zwei verschiedene Haustürschlüssel werden miteinander verglichen. Einmal einen normalen Schubschlüssel und einmal einen Sicherheitsschlüssel. Der Schubschlüssel besitzt sechs Einstellungen, die jeweils einen binären Zustände annehmen können. Das bedeutet, dass der keyspace des Schubschlüssels 26 = 64 verschieden Schlüssel umfaßt. Der Sicherheitsschlüssel hingegen hat sechs Vertiefungen, die fünf unterschiedliche Tiefen annehmen können und der Sicherheitsschlüssel besitzt zusätzlich noch fünf binäre Senkungen. Der keyspace des Sicherheitsschlüssels beträgt also 26*56 =106 = 1 000 000 unterschiedliche Schlüssel. Ein Einbrecher, der alle Schlüssel für das Schubschlüsselschloss herstellen würde und durch ausprobieren sämtlicher Schlüssel versucht das Schloß zu öffnen, würde das Schloß, wenn der Einbrecher pro Schlüssel zwei Sekunden benötigen würde, es in etwas mehr als 60 Sekunden öffnen, wobei nach der Wahrscheinlichkeit nur die Hälfte aller Schlüssel testen müßte. Eine solche Vorgehensweise (ausprobieren sämtlicher keys) wird auch als brute-force-attack, Kapitel 2.5.1 Angriffsarten, bezeichnet. Die dabei entstandenen Kosten für die Herstellung der 64 Schubschlüssel und die zum ausprobierende der Schlüssel benötigte Zeit, die auch Geld kostet, lassen sich durch die erbeuteten Güter leicht rechtfertigen. Auch schafft der Einbrecher es die Geheimhaltungszeit (siehe oben) einzuhalten. Auf unser Beispiel übertragen bedeutet dies, dass der Einbrecher das Schloß geöffnet und Gegenstände entwendet hat, bevor die Bewohner etwas davon merken. Die Datenkomplexität des Schubschlosses ist, durch die simple Struktur des Schlüssel, leicht zu bewältigen. Beim Einbruch in eine Wohnung, die durch ein Sicherheitsschloß gesichert ist, hätte der Einbrecher mit der Schlüssel-Ausprobier-Methode erhebliche Probleme. Er müßten 1 000 000 Sicherheitsschlüssel herstellt und transportiert werden. Das wäre nicht nur sehr teuer, sondern auch sehr auffällig und der Transport mehrere Tonnenschwere Schlüssel wären ein weiteres Maßgebendes Hindernis. Benötigt der Einbrecher dieselbe Zeit zum ausprobieren eines Sicherheitsschlüssel, wie für einen Schubschlüssel, also zwei Sekunden, dann bräuchte der Einbrecher 1 000 000 Sekunden zum ausprobieren. Ohne Unterbrechung! Das sind 12 1/2 Tage, die der Einbrecher zum auszuprobieren benötigt. Es ist offensichtlich, dass unter solchen Bedingungen die Kosten den erforderlichen Aufwand nicht mehr rechtfertigen und die Geheimhaltungszeit nicht eingehalten werden kann. Die Datenkomplexität des Sicherheitsschlosses ist hingegen zum Schubschloß problematischer. Es genügt, dass dem Einbrecher nicht bekannt ist, dass der Sicherheitsschlüssel fünf binäre Senkungen hat, um die Auswahl an möglichen Schlüssel zu steigern und somit den keyspace ins astronomische zu heben. Um zu zeigen wie leicht sich dieses Beispiel auf digitale keys übertragen lässt, verwendet Wolfgang Ertel in seinem Buch "Angewandte Kryptologie" ein Kryptosystem, das den DES-Algorithmus (Kapitel 4) mit einer variierten Schlüssellänge von 100-Bit verwendet. Eine Schlüssellänge von 100-Bit bedeutet einen keyspace von 2100 1.3*1030 keys. Mit der Schlüssel-Ausprobier-Methode (bruce-force-attack) bräuchte ein Computer mit einer guten Hardware-Implementierung des DES, der in einer Sekunde einen key ausprobieren kann, eine benötigte Zeit von 7*1018 Sekunden, um das Kryptosystem aufzubrechen. 7*1018 Sekunden 2*1011 Jahre, dass ist zwanzigmal so viel Zeit, wie seit dem entstehen des Universum vor etwa ca. 1*^1010 Jahren vergangen ist!

Dieses zeigt deutlich von welcher fundamentaler Bedeutung, die Länge des keys für die Sicherheit eines Kryptosystems ist.

2.4.2 Keys und Algorithmen

Je nach Algorithmusart und Verschlüsselungszweck ist eine unterschiedlich Anzahl von keys, fester oder variabler Schlüssellänge vorhanden.

2.4.3 Codebücher

Codebücher sind dasselbe wie keys, denn die in den Codebücher stehenden Informationen, geben die jeweiligen encryption- und decryptionalgorithmen vor. Obwohl Codebücher im Prinzip dasselbe sind wie key, sind sie jedoch im Vergleich zu den keys primitiver und unsicher, denn sie sind Algorithmus und key in einem, was die decryption durch Dritte enorm vereinfacht. Schon durch die Herstellung eines Codebuches, sind mehr Menschen dem im Codebuch enthaltenden Verschlüsselungsalgorithmus zugänglich, als eigentlich seinen dürfen. Nach dem Kerckhoff-Prinzip sollte der key unbedingt geheim gehalten werden und nur den Kommunikationspartner vertraut sein, um genügend Sicherheit bieten zu können, nicht aber, wie es bei der Herstellung von Codebüchern der Fall ist, Dritten. Selbst wenn die mit dem Codebuch in Kontakt kommenden Personen absolut loyal sind, ist es eine weitere Schwierigkeit den Produktionsort, der sich meistens in einer festen Werkstätte befindet, der Codebücher geheimzuhalten. Um Codebücher sicherer zu gestalten trennte man früher die Codebücher in zwei Bücher, eins das codiert und eins das decodiert, auf. Die Trennung der Codebücher in eins das verschlüsselt und eins das entschlüsselt machte zwar die Verschlüsselung per Codebuch etwas sicherer, aber nicht ausreichend genug, denn zuvor genannten Probleme der Herstellung und des Herstellungsortes wahren damit nicht gelöst, sondern nur wurden nur verlagert und verstärkt.

Heutzutage sind Codebücher von keinerlei Bedeutung mehr für die moderne Kryptologie. Codebücher, die in der Antike bis zum 20. Jahrhundert benutzt wurden, wurden durch die Entstehung moderner Verschlüsselungsverfahren sowie durch die Computerisierung und die Entstehung digitaler keys verdrängt und spielen vielleicht nur noch in den Geschichtsbüchern eine entscheiden Rolle.

2.5 Kryptoanalyse

Die Kryptoanalyse ist der Bereich der Kryptologie, der für das Abfangen und decodieren bzw. dechiffrieren von messages durch eine unautorisierte, dritte Person zuständig ist. Das Ziel eines jeden Kryptoanalytikers, ist es ein Kryptosystem aufzubrechen bzw. zu cracken ((engl.) to crack = knacken, aufbrechen), wobei er zuvor den erforderlichen Aufwand kalkulieren muss. Um den Aufwand beurteilen zu können, muss der Kryptoanalytiker zuvor die Berechnungskomplexität, den Speicherplatzbedarf und die Datenkomplexität berechnen. Unter der Berechnungskomplexität versteht man, die benötigte Rechenzeit um den key K zu berechnen. Die Datenkomplexität und der Speicherplatzbedarf beziehen sich auf die benötigten und eingegebenen Daten des Analytikers. Nachdem der Kryptoanalytiker, der auch als Angreifer bezeichnet wird, den Aufwand geklärt hat, versucht er das Kryptosystem aufzubrechen. Es wird zwischen verschiedenen Gruppen des Aufbrechens differenziert.

- Vollständiges Aufbrechen
- Globale Deduktion
- Lokale Deduktion und
- Informationsdeduktion

Unter vollständigem Aufbrechen versteht man, dass es dem Kryptoanalytiker gelungen ist, den key k, für einen bestimmten Algorithmus, zu ermitteln. Somit ist er in der Lage mit Dk(c) = m jede verschlüsselte messages die denselben Algorithmus benutzt zu entschlüsseln. Globale Deduktion bedeutet, dass der Kryptoanalytiker ohne die Ermittlung des key einen äquivalenten, alternativen Algorithmus zu Dk entwickelt hat, mit dem es ihm möglich ist alle ciphertexte in die ihnen zugehörigen plaintexte umzuwandeln. Die lokale Deduktion ist das ermitteln des plaintextes anhand nur eines vorhanden ciphertextes. Das cracken des Kryptosystems wird als Informationsdeduktion bezeichnet, wenn dem Kryptoanalytiker nur sehr eingeschränkte Informationen über den key oder den plaintext bekannt sind.

Dem Kryptoanalytiker stehen je nach Art der zu enträtselnden message verschiedene Informationen über diese bereit. Nach der Sondierung der zur Verfügung stehenden Daten greift der Kryptoanalytiker das Kryptosystem an. Der Angriff auf ein Kryptosystem basiert auf den zu Verfügung stehenden Informationen und wird auch nach diesen Informationen benannt.

2.5.1 Angriffsarten

Der Kryptoanalytiker besitzt nur eine begrenzte Anzahl von ciphertexten, die mit demselben Algorithmus verschlüsselt wurden sind. Ein Angriff unter diesen Voraussetzungen wird ciphertext-only-attack genannt.
Zusätzlich zu den ciphertexten kennt der Kryptoanalytiker beim known-plaintext-attack auch mindestes einen dazugehörenden plaintext.
Der Kryptoanalytiker besitzt die Möglichkeit beliebige plaintexte zu generieren und diese mit dem zu analysierenden Algorithmus und Schlüssel chiffrieren zu lassen. Dies wird als chosen-plaintext-attack bezeichnet und wird vorzugsweise zur decryption von Public-Key-Systemen verwendet. Auf die Public-Key-Kryptologie wird in Kapitel 5 "Public - Key - Kryptologie" genauer eingegangen.
Bei der chosen-ciphertext-attack kann der Kryptoanalytiker eine beliebige Menge von ciphertexte vorgeben und erhält die dazugehörigen plaintexte. Das Ziel der chosen-ciphertext-attack ist es denn key k zu ermitteln.
Ein Angriff auf ein Kryptosystem, in dem alle möglichen keys des Kryptosystems systematisch ausprobiert werden, wird als brute-force-attack (Angriff mit roher Gewalt) bezeichnet. Ein Computer berechnet hierbei den eingegebenen cipher- oder plaintext solange, bis das berechnete Gegenteil der entsprechenden Textart Sinn ergibt. Wenn dies eintrifft ist der richtige key gefunden worden. Durch die Verwendung der brute-force-attack ist fast jedes Kryptosystem aufbrechbar, jedoch ist so gut wie immer ein enorm großer Geld- und Zeitaufwand mit dieser Methode verbunden, was dazu führt, dass man zuerst die Aufwand - Nutzen - Relation klären muss. Heutzutage kann man durch die Zusammenschaltung mehrerer Computer, beispielsweise übers Internet oder auf großen Netzwerktreffs, durch die Anwendung des brute-force-attacks Verfahren 40- und 48-Bit-Schlüssel (Kapitel 2.4 Schlüssel) cracken. 56- und 64-Bit-Schlüssel sind mit dem brute-force-attacks Verfahren ebenfalls aufbrechbar. Wegen der benötigten Technologien, dem erforderlichen Fachwissen und dem aufzuwendenden Kapital ist es jedoch nur technologisch fortschrittlichen Industrienationen, aber auch großen Konzernen und illegalen Organisationen, möglich per brute-force-attack einen ciphertext zu cracken. Kryptologen vermuten, dass sie in den nächsten 30 Jahren in der Lage sein werden 80-Bit-Schlüssel mit der brute-force-attack Methode aufzubrechen zu können. 112- und 128-Bit-Schlüssel liegen jedoch noch außerhalb der Möglichkeiten heutiger Computer. Als sicher auf unbegrenzte Zeit können 256- und darüber liegende Bit-Schlüssel angesehen werden. Sie entziehen sich zwar nicht direkt der Berechenbarkeit durch Computer, aber aufgrund der erforderlichen räumlichen Größe der Computer und dem heutigen stand der Informationstechnologien, währen die finanziellen, humanen und zeitlichen Ressourcen für die Berechnung des keys durch die brute-force-attack Methode so gewaltig, dass sich diese Zahlen jeglicher Vorstellungskraft entziehen und so niemals den Aufwand rechtfertigen würden. Ebenfalls nicht selten benutzte Verfahren, um ein Kryptosystem zu cracken sind Bestechung, Bedrohung, Erpressung oder Folterung. Diese Angriffsverfahren haben natürlich nichts mit der Sicherheit des verwendeten Algorithmus oder dem mathematischen Möglichkeiten der Kryptoanalytiker zu schaffen. Sollte aber der Kryptoanalytiker eine dieser Möglichkeiten wählen und sollte er Erfolg haben, so könnten selbst Verfahren der starken Kryptographie versagen.

Der Mensch stellt somit in jedem Kryptosystem immer die größte Sicherheitslücke dar.


3 Kryptologische Verfahren

3.1 Monoalphabetische Chiffrierung

Eine Chiffrierung heißt monoalphabetisch, wenn jeder Buchstabe immer mit ein und demselben Geheimtext- Buchstaben definiert ist. Die monoalphabetische Chiffrierung kann man so darstellen, indem man das Geheimtextalphabet unter das Klartextalphabet schreibt.

 

Klartext: a b c d e f g h i j k l m n o p q r s t u v w x y z

Geheimtext: z y x w v u t s r q p o n m l k j i h g f e d c b a

Klartext und Geheimtext müssen nicht über dem gleichen Alphabet definiert sein. Wenn das doch zutrifft, dann entspricht jeder monoalphabetischen Chiffrierung eine Permutation der Buchstaben des Alphabets. Wiederum entspricht dann jeder Permutation (der Buchstaben) eine monoalphabetische Chiffrierung. Das heißt, dass es 26! = 26*25*...* 2*1 = 403.291.461.126.605.635.584.000.000 ≈ 4*1026 monoalphabetische Chiffrierungen über dem natürlichen Alphabet {a, b, c, ..., z} gibt. Die Methode der monoalphabetischen Chiffrierung ist längst nicht so sicher, wie die hohe Zahl von Möglichkeiten (4*1026) uns erscheinen lässt.

3.1.1 Tauschchiffren

Wenn man zur Verschlüsselung einen Rechner verwenden will, muss man jeden Buchstaben durch eine Zahl ersetzen. Meist identifiziert man: (A=1, B=2, C=3, ..., D= 24, Y mit 25 und Z=0). Wenn man sein Alphabet nun um sagen wir R-Stellen verschieben will, muss man das Alphabet mit der Zahl (T) addieren. Diese Methode läuft nach einem immer gleichen Grundmuster ab, und zwar folgender maßen

Genauso kann man auch anstatt der Addition des Tauschfaktors mit dem Klartext (Verschiebechiffren), den Klartext mit dem Tauschfaktor multiplizieren. Man kann jedoch nur mit einer der Zahlen 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 oder 25 multiplizieren. Denn wenn man z.B. das Klartextalphabet mit der Zahl 2 multipliziert, erhält man für jeweils zwei verschiedene Buchstaben dasselbe "Produkt" und so könnte man den Klartext nicht eindeutig rekonstruieren. Es gilt jedoch, dass jeder Geheimtext mit Hilfe des Schlüssels einwandfrei und vor allem eindeutig dechiffriert werden kann. Eine nach dieser Methode erhaltene Chiffrierung wird multiplikative Chiffrierung genannt. Es gibt also nur ganz genau 12 multiplikative Chiffrierungen, d.h. es sind weniger Möglichkeiten vorhanden als bei den Verschiebechiffren, was heißt, dass diesem Verfahren eine ziemlich geringe Sicherheit zugesprochen werden muss, dies wird im Abschnitt Kryptoanalyse noch einmal verdeutlicht.

Man kann die Verschiebechiffren und die multiplikativen Chiffren auch kombinieren, indem man den Klartext mit einer Zahl s addiert, und den neuen Geheimtext dann mit einer Zahl t multipliziert. Dadurch erhält man dann die sogenannte Tauschchiffre, die man allgemein mit [s, t] bezeichnet. Der Schlüssel der Tauschchiffre [s, t] besteht aus einem Zahlenpaar (s, t). Die Zahl t muss natürlich eine Zahl sein, die eine multiplikative Chiffre zu folge hat, d.h. sie muss aus den oben genannten Zahlen 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 oder 25 gewählt werden. Demnach ist die Anzahl der möglichen Tauschchiffren gleich 26 * 12 = 312. Das ist zwar keine große Zahl, wenn man die Berechnung von einem Computer machen lässt, aber sie macht Angreifern, die die Berechnung per Hand versuchen wollen, die Dechiffrierung eines Geheimtextes unheimlich schwer.

3.1.2 Schlüsselwörter

Man kann eine große Anzahl von monoalphabetischen Chiffren bekommen, indem man folgender maßen vorgeht: Der frei gewählte Schlüssel besteht aus zwei Komponenten, und zwar einem Schlüsselwort und einem Schlüsselbuchstaben. Hat man jetzt ein Schlüsselwort ausgewählt, muss man es in eine Buchstabenfolge umwandeln, in der jeder Buchstabe nur einmal vorkommt. Das geht so von statten, indem man jeden Buchstaben bei seinem zweiten, dritten und folgenden Auftreten einfach wegstreicht. Das sehe folgender maßen aus:

Schlüsselwort: SebastianAleksandar

Schlüsselwort2: Sebatinlkdr

Jetzt müssen wir unser Schlüsselwort2 unter einen Klartext schreiben, und zwar beginnend bei unserem frei gewählten Schlüsselbuchstaben. In diesem Fall z.B. " j " :

Klartext: a b c d e f g h i j k l m n o p q r s t u v w x y z

Geheimtext: S e b a t i n l k d r

Danach muss man nur noch die restlichen, fehlenden Geheimtextbuchstaben in alphabetischer Reihenfolge unter den Klartext schreiben, beginnend bei dem letzten Schlüsselwortbuchstaben beginnt. In diesem Fall:

Klartext: a b c d e f g h i j k l m n o p q r s t u v w x y z

Geheimtext: o p q u v w x y z S e b a t i n l k d r c f g h j m

Man kann nicht genau sagen, wie viele Schlüsselwörter es gibt, deshalb kann man die Anzahl dieser Chiffrierungen auch nicht präzise angeben. Das einzige was man mit Bestimmtheit sagen kann ist, dass sie sehr groß ist. Man kann dadurch eigentlich alle monoalphabetischen Chiffrierungen mit Hilfe dieser Schlüsselwörter finden.

3.1.3 Kryptoanalyse von monoalphabetischen Chiffren

Das Prinzip von Kerckhoffs: "Die Sicherheit eines Kryptosystems darf nicht von der Geheimhaltung des Algorithmus abhängen. Die Sicherheit gründet sich nur auf die Geheimhaltung des Schlüssels."

Kerckhoff warnt alle Entwickler von Kryptonsystemen davor, sich nicht auf die Unentschlüsselbarkeit von Algorithmen zu verlassen, denn die Angreifer haben Möglichkeiten, Kenntnis über den Algorithmus zu bekommen. Es gibt in der Geschichte einige Beispiele für Entwickler, die ihre Algorithmen für unentschlüsselbar hielten.

Es ist ein Ziel der modernen Kryptologie, Systeme zu Entwickeln, die noch Sicher sind, auch wenn ihr Algorithmus schon längst bekannt ist. Das Beste Beispiel dafür ist der DES-Algorithmus, auf den wir später auch noch näher eingehen werden. Der Kryptoanalytiker steht vor jeder Kryptoanalyse unterschiedlichen Voraussetzungen gegenüber. Deshalb unterscheidet man auch in drei Typen von Attacken:

  1. Known ciphertext attack:
  2. So nennt man die Attacke, bei der dem Kryptoanalytiker ein großes Stück Geheimtext bekannt ist. Dies ist ein häufig auftretendes Phänomen, da es relativ einfach ist sich ein beliebig langes Stück vom Geheimtext zu besorgen.

  3. Known plaintext attack:
  4. So nennt man die Attacke, bei der dem Kryptoanalytiker ein kleines Stück zusammengehörigen Klartext und Geheimtext. Das ist auch kein so unrealistisches Phänomen, da der Kryptoanalytiker oft das Thema des Geheimtextes kennt, und deshalb einige Schlagwörter erraten kann. Außerdem befinden sich auch "standarisierte Eröffnungs- und Schlussfloskeln", eben Kleinigkeiten die dem Kryptoanalytiker bei der Entschlüsselung (Dechiffrierung) helfen.

  5. Chosen plaintext attack:

So nennt man die Attacke, bei dem der Kryptoanalytiker Zugang zum Verschlüsselungsalgorithmus hat, womit er dann bei eigen Verschlüsselung von Klartexten auf die Struktur des Schlüssels zurückschließen kann. Er kann zum Beispiel immer die Gleichen Buchstaben (xxxx... oder aaaa...) eingeben und diese Verschlüsseln um damit heraus zu finden wie der Schlüssel genau funktioniert, und welche Veränderungen der Schlüssel am Klartext vornimmt. Da viele "Maschinen" (Krytogeräte) nicht nur Verschlüsseln können, sondern auch unterschreiben können, kann es dem Kryptoanalytiker unter Umständen gelingen ein gültig unterschriebenes Dokument zu erzeugen. Jede monoalphabetische Chiffrierung, die auf einer natürlichen Sprache basiert, ist ziemlich leicht zu knacken. Die monoalphabetische Chiffrierung ist schon unter der ziemlich schwachen 1. Annahme (Known ciphertext attack) ganz einfach zu knacken. Hier ist ein prinzipieller Algorithmus, zum Beweis der Unsicherheit von monoalphabetischen Chiffriermethoden. Der Algorithmus beruht auf der Tatsache, dass die häufigsten Buchstaben im Deutschen bereits drei Viertel des Gesamttextes bilden. Bsp.: Ein Kryptoanalytiker hat einen 500 Buchstaben langen Text abgefangen. Er weiß bzw. er vermutet, dass dieser monoalphabetisch verschlüsselt ist. Er geht jetzt folgendermaßen vor:

Erst muss der Kryptologe die Häufigkeiten der Buchstaben im Geheimtext feststellen. Damit erhält er das Äquivalent von e, das von n, sowie von den nächsthäufigsten Buchstaben i, s, r, a, t. Dadurch weiß er, welche der Menge der Klartextbuchstaben i, s, r, a, t entsprechen.

Dann zählt der Kryptologe die Bigramme, das sind Zahlenpaare. Die häufigsten Bigramme in der deutschen Sprache sind:

Buchstabenpaar

Häufigkeit

Buchstabenpaar

Häufigkeit

en

3,88%

nd

1,99%

er

3,75%

ei

1,88%

ch

2,75%

ie

1,79%

te

2,26%

in

1,67%

de

2,00%

es

1,52%

Durch diese Tabelle kann man die nächsthäufigsten Buchstaben ausschließen. Das Paar er kommt zum Beispiel am häufigsten vor, wobei andere Buchstabenkombinationen mit e weniger häufig vorkommen, wie ea oder et deren Auftreten bei unter 0,5% liegen. Das Paar ei könnte in Konkurrenz stehen zu en. Diese kann man jedoch dadurch ausschließen, dass man das Inverse testet. (Nur bei diesem Paar kommt die Originalreihenfolge ungefähr genauso häufig vor, wie die umgekehrte Reihenfolge). So kann der Kryptologe die ununterscheidbaren zweithäufigsten Buchstaben i, s, r, a, t ausschließen. Dazu kann er die Buchstaben c und h daran erkennen, dass sie zwar zusammen ein extrem häufiges Paar bilden, jedoch alleine sehr selten auftreten. So kann er die häufigsten Buchstaben zweifelsfrei identifizieren, bei diesen Buchstaben handelt es sich um: e, n, i, s, r, a, t, h, c, die zusammen mehr als zwei drittel des Textes ausmachen. Das kann wie oben gesagt alles automatisch von einem Computer erarbeitet werden.

Der Computer übersetzt nun die entschlüsselten Buchstaben, wobei er die unbekannten Buchstaben durch Leerzeilen ersetzt. Dieser Text ist danach noch immer nur mühsam zu entziffern. Jetzt kann der Kryptologe versuchen den Text weiter zu erraten. Den Text lässt er dann probeweise vom Computer mit denn zusätzlichen Identifikationen ausdrucken. Nach zwei oder drei Schritten ist der Text dann gut lesbar.

3.2 Die Skytale von Sparta

Die Geschichte zur Skytale von Sparta beginnt vor ungefähr 2500 Jahren. Wie wir von Plutarch wissen übermittelte die Regierung von Sparta ihre Geheimnachrichten auf eine raffinierte Methode an ihre Generäle: Der Sender und der Empfänger mussten beide eine sogenannte Skytale haben. Das waren zwei Zylinder mit dem gleichen Radius. Man musste dann einfach nur den ciphertext um die Rolle wickeln und dann konnte man den Klartext senkrecht an der Rolle ablesen.

3.3 Das Caesar – Prinzip

Der Caesar – Code zählt heutzutage zu den unsichersten Codierungsmethoden. Jedoch hat er sozusagen die Zeit der Kryptologie eingeläutet. Dieser von C. J. Caesar (100 – 44 v. Chr.) benutzte Code, basiert auf zwei radikalen Entscheidungen:

Geheimzeichen lassen zwar ein Flair von Geheimhaltung aufkommen, jedoch bieten die Zeichen keine wirkliche Sicherheit. Beim Caesar muss man sich zwar keine komplizierten Zeichen merken, aber abgesehen davon, ist er genauso unsicher, es ist halt nur jedes Geheimzeichen durch ein gut lesbaren Buchstaben ausgedrückt.

Beim Caesar – Code sind Klartextzeichen und Geheimtextzeichen dieselben, für beide werden Buchstaben verwendet.

Der Caesar – Code besteht nicht nur aus einer einzigen Übersetzungsvorschrift, sondern aus einer ganzen Menge. Der Wechsel ist ein Bestandteil dieses Codes. Dies wird später auch durch den Begriff "Schlüssel" genauer erläutert. Beim Caesar – Codebenutzt man zwei Alphabete. Das Klartextalphabet (das ist das Alphabet in natürlicher Reihenfolge (Abkürzung: KTA)) und das Geheimtextalphabet (GTA), dass unter das KTA geschrieben wird.

KTA: a b c d e f g h i j k l m n o p q r s t u v w x y z

GTA: v w x y z a b c d e f g h i j k l m n o p q r s t u

Das Geheimtextalphabet ist auch ein normales Alphabet, nur um einige Stellen verschoben. In unserem Beispiel ist unter dem Klartextbuchstaben – a, der Geheimtextbuchstabe v, danach geht es wie gewohnt weiter, w, x, y, …, bis man am Ende des Alphabets ist, und dann fängt man wieder bei a an, und geht über b, c, d, e, …., bis unter jedem KTA – Buchstaben ein GTA – Buchstabe steht. Jetzt kann man seinen Text verfassen, man muss nur die GTA – Buchstaben anstelle der KTA – Buchstaben schreiben.

3.3.1 Kryptoanalyse des Caesar – Codes

Wir gehen jetzt davon aus, dass ein Angreifer an einen Teil des Geheimtextes gekommen ist. Er vermutet, dass der Text mit dem Caesar – Code verschlüsselt worden ist. Er hat jetzt zum Beispiel den Text.

U Z V J V I J R K Q Z J K X V Y V Z D

Dieser Text ist ziemlich kurz. Normalerweise sind Geheimtexte länger. Wir werden sehen, dass man längere Texte leichter knacken kann als vergleichsweise kurze. Es gibt prinzipiell zwei verschiedene Methoden einen solchen Text zu analysieren.

Man könnte jede Möglichkeit ausprobieren, indem man die Einstellung der Caesar – Scheiben der Reihe nach durchgeht. Das heißt alle Schlüssel der Reihe nach durchgehen. Eine der Einstellungen ergibt dann den Klartext. Man erkennt, ob man den richtigen Schlüssel hat, wenn man einen verständlichen Text bekommt. Im folgenden Schema ist der Geheimtext in die oberste Zeile geschrieben. In der nächsten Zeile ist jeder Buchstabe um eine Stelle verschoben, dann wurde jeder Buchstabe um zwei Stellen, um drei Stellen, …, verschoben, bis sich dann ein klar verständlicher Satz gebildet hat. Die anderen Sätze ergeben nur Unsinn. Damit ist der Caesar – Code entschlüsselt.

Dieser Angriff ist nur sinnvoll, wenn es eine geringe Anzahl an Schlüsseln gibt. Wenn die Anzahl der Schlüssel zu groß ist, dann bedarf es für einen brute-force-attack zu viel Zeit, was dazu führt, dass es wiederum nicht lohnenswert wäre. Der Caesar – Code hat nur 26 Schlüssel, was eine Entschlüsselung ziemlich einfach macht. Der Idealfall müsste sein, das eine Errechnung des Schlüssels, mit den besten Computern, Jahrzehnte dauert. Es heißt aber nicht, dass eine astronomische Schlüsselvielfalt eine 100% Sicherheit garantiert, dass es noch eine Menge anderer Kryptoanalysen gibt.

Siehe Kryptoanalyse "Known ciphertext attack" (Schritt 1, Schritt 2 und Schritt 3)

3.4 Polyalphabetische Chiffrierung

Das Problem an der monoalphabetischen Chiffrierung ist, die Häufigkeit der Buchstaben, die erhalten bleibt, die nur immer wieder anderen Buchstaben zugeordnet wird. Man müsste jetzt so verschlüsseln, dass die Häufigkeiten der Buchstaben im Geheimtext gleich groß sind. Da kommt jetzt die Polyalphabetische Chiffrierung ins Spiel. Hierbei benutzt man nicht immer das gleiche Geheimtextalphabet, sondern man wechselt immer die Alphabete, sprich man benutzt mehrere Alphabete. Dies muss aber so geschehen, dass der Textempfänger den Geheimtext leicht entschlüsseln kann. Man kann ja immer problemlos einen Text so verschlüsseln, dass ihn im Endeffekt keiner mehr entziffern kann. Die Kunst ist es, denn Text so zu verschlüsseln, dass ihn nur ein legitimer Empfänger entschlüsseln kann. Diese Idee hatten im 16. Jahrhundert auch einige für die Kryptologie sehr wichtige Menschen, wie zum Beispiel die Italiener Leon Battista Alberti (1404 - 1472) und Giovan Battista Della Porta (1535 - 1615), der Deutsche Johannes von Trittenheim (Trithemius, 1462 - 1516) und der Franzose Blaise de Vigenère (1523 - 1585). Das System das am deutlichsten, und wohl am einfachsten zu erklären ist, ist das von Vigenère.

3.4.1 Die Vigenère - Chiffre

Die Vigenère Verschlüsselung wurde 1586 vom französischen Diplomaten Blaise de Vigenère veröffentlicht. Sie baut auf der Erkenntnis, mehre monoalphabetische Chiffrierungen im Wechsel zu benutzen. Seine Idee ist so all umfassend, dass einige Variationen von ihr (wieder-) erfunden wurden. Die Vigenère Chiffre ist die bekannteste unter den periodischen polyalphabetischen Algorithmen. Die Vigenère - Verschlüsselung ist der Vorfahre für die Meisten, auch heutigen, professionellen Algorithmen.

Bei der Kryptoanalyse gibt es zwei Methoden, die ziemlich wichtig sind, der Kasiski - Test und der Friedman - Test, auf die hier nicht weiter eingegangen wird.

Um nach dem Algorithmus von Vigenère zu chiffrieren braucht man zwei Dinge, als erstes ein Schlüsselwort und als zweites das Vigenère - Quadrat.

Vigenère - Quadrat:

Klartext: a b c d e f g h i j k l m n o p q r s t u v w x y z

Das Vigenère - Quadrat besteht aus 26 Alphabeten, die untereinander geschrieben sind. Das erste Alphabet ist das gewöhnliche, das darunter ist um einen Buchstaben verschoben, das darunter ist zum Vorgänger wieder um einen verschoben, und so weiter. Das heißt, dass das Vigenère - Quadrat aus 26 Verschiebechiffren in natürlicher Reihenfolge besteht. Das Schlüsselwort kann jede beliebige Buchstabenfolge sein. Im Beispiel benutzen wir das Schlüsselwort " SebastianAleksandar ". Dies schreibt man dann Buchstabe für Buchstabe über den Klartext (ohne Zwischenräume), solange bis das Ende des Klartextes erreicht ist.

Schlüsselwort : SebastianAleksandarSe

Klartext : besonderelernleistung

Die Chiffrierung wird vom Schlüsselwortbuchstaben, der jeweils über dem Klartextbuchstaben steht bestimmt. Das heißt, um den ersten Buchstaben des Klartextes zu verschlüsseln, muss man in dem Alphabet nachschauen, dass mit S beginnt, und dann muss man in der Spalte b suchen. So kommt man auf den Geheimtextbuchstaben T. Genauso geht man dann mit dem nächsten Buchstaben vor. Man sieht im Alphabet nach, welches mit e anfängt, dann geht man in die Spalte e, und schon bekommt man den Geheimtextbuchstaben I. Insgesamt erhält man dann:

Schlüsselwort : SebastianAleksandarSe

Klartext : besonderelernleistung

Geheimtext : TITOFWMRRLPVXDEVVTLFK

Ein Kryptoanalytiker steht bei einer Kryptoanalyse eines polyalphabetischen Systems vor einem größeren Problem als bei der Entschlüsselung eines monoalphabetischen Systems, da die Häufigkeit der Buchstaben gleichmäßiger verteilt ist.

3.5 One – Time – Pad

Das One – Time – Pad wurde 1917 von Major J. Mauborgne und G. Vernam von AT&T erfunden. Es ist eine Vigenère – Chiffre mit einem unendlich langen Schlüsselwort. Jeder Schlüsselwortbuchstabe wird einmal in höchstens einer Nachricht benutzt. (In der Praxis reicht es, wenn das Schlüsselwort länger ist als alle bis zum nächsten Schlüsseltausch übertragenen Nachrichten zusammen).

Heutzutage wird hauptsächlich binär verschlüsselt, das heißt über dem Alphabet {0, 1}. Ein Klartextbit z wird über einem Zufallsbit r des Schlüssels durch die Vorschrift:

z (z + r) mod 2 = z XOR r = z r

verschlüsselt. Das Verschlüsseln erfolgt durch Bitweise XOR – Verknüpfung eines Stroms von Klarbits mit einem Strom von echten Zufallsbits. Das One – Time – Pad gehört zu der Klasse der Stromchiffren.

Abbildung 5: One - Time - Pad

Es gehört zu den sichersten Verschlüsselungsverfahren:

"Ein Chiffrensystem heißt perfekt, wenn es bei einem beliebigen Klartext M und einem beliebigen Chiffretext C die a – priori Wahrscheinlichkeit p(M) gleich der bedingten Wahrscheinlichkeit (a – posteriori – Wahrscheinlichkeit) p(M|C) ist".

p(M|C) = p(M)

Der Klartext und der zugehörige Chiffretext müssen statistisch unabhängig voneinander sein, um eine makellose Sicherheit zu garantieren, weil mit der Definition der bedingten Wahrscheinlichkeit folgt aus der Gleichung

p(M|C) = p(M),

p(M|C) = p(M C) = p(M)

p(C)

was auch so zu schreiben ist,

p(M C) = p(M) * p(C).

Somit ist die statistische Unabhängigkeit von Klartext M und Chiffretext C gewährleistet.

Wird ein One – Time – Pad mit einer echten Zufallsfolge betrieben, so bietet es perfekte Sicherheit. < ALIGN="JUSTIFY">"Eine Zahlenfolge (an) mit ai {0, 1} heißt (echte) Zufallsbitfolge, wenn die Werte 0 und 1 jeweils mit Wahrscheinlichkeit 1/2 vorkommen und wenn es keine Möglichkeit gibt, aus der Kenntnis eines beliebig langen Anfangsstücks der Folge Informationen über den Rest der Folge abzuleiten".

Wenn X eine Zufallsvariable zur Erzeugung einer echten Zufallsbitfolge ist, dann gilt:

P(x 0 = 0) = P(x 0 = 1) = 1/2
P(x 1 = 0) = P(x 1 = 1) = 1/2

Beweis: Nach Vorraussetzung gilt P(x = 0) = P(x = 1) = 1/2.

Da 0 = x, ist für die Gleichung P(x 0 = 0) = P(x 0 = 1) = 1/2 nichts zu zeigen. Da x1 = 1 für x = 0 und x 1 = 0 für x = 1, werden die beiden Werte 0 und 1 für x gerade vertauscht. Die Wahrscheinlichkeiten bleiben damit bei 1/2.
Wenn M die Menge aller Klartexte M der Länge n, C die Menge aller Chiffretexte C der Länge n und K die Menge aller Schlüssel K der Länge n. Bei einem One – Time – Pad gilt:

|M| = |C| = |K| =: m = 2n

Alle drei Mengen bestehen aus allen Texten der Länge n, über einem vorgegebenen Alphabet. Weil der Schlüssel aus Zufallszahlen besteht, muss jeder Chiffretext mit der gleichen Wahrscheinlichkeit p(C) = 1/m erzeugt werden (siehe echte Zufallsbitfolge). Da es genau m Schlüssel der Länge n gibt, gibt es auch m unterschiedliche Chiffretexte zu jedem Klartext, die alle mit der gleichen Wahrscheinlichkeit auftreten. Also gilt

P(C|M) = 1/m

Wenn man jetzt die Definition der bedingten Wahrscheinlichkeit auf p(C|M) anwendet erhält man die Weltweit bekannte Bayes’sche Formel.

P(C|M)p(M) = p(M|C)p(C).

Wenn man jetzt einsetzt bekommt man,

1/m p(M) = p (M|C) 1/m,

woraus

p(M|C) = p(M)

folgt, was uns den passenden Beweis liefert.

Da es beim One – Time – Pad keine bekannte Möglichkeit gibt, aus einem beliebig langen Chiffretext den dazugehörigen Klartext zu rekonstruieren. Damit kann man über das One – Time - Pad sagen, dass es ein bedenkenlos sicheres Kryptosystem ist. Das One – Time – Pad ist zwar sehr sicher, jedoch ist es mindestens genauso schwer es zu realisieren, denn echte Zufallszahlengeneratoren sind auf Computern prinzipiell nicht zu programmieren. Dafür kann man jedoch Pseudozufallszahlen benutzen, die wiederum keine perfekte Sicherheit garantieren. Der einzige Weg wie man Zufallszahlen erzeugen kann, sind physikalische Prozesse. Zum Beispiel das thermische Rauschen eines Wiederstandes kann mit einfacher elektronischer Schaltung auf Zufallszahlen abgebildet werden. Auch wenn man Zufallszahlen benutzt, ist das One – Time – Pad trotzdem sehr unpraktisch und unhandlich, da auf dem Zielrechner, auf dem man C entschlüsseln will, die gleiche Schlüsselfolge benutzt werden wie auf dem Quellrechner. Es muss also auf beiden Rechnern eine sehr lange Folge von Zufallsbits gespeichert sein. Das heißt, dass der Schlüsselaustausch das größte Problem bei der Anwendung des One – Time – Pad darstellt. Für sehr, sehr wichtige Informationen lohnt sich der Aufwand. Zum Beispiel soll der heiße Draht zwischen Moskau und Washington mit dem One – Time – Pad verschlüsselt worden sein. Auch im Bletchley Park wurde das One – Time – Pad benutzt, um der Londoner Regierung die abgefangenen und entschlüsselten Funksprüche zu übermitteln. Dadurch blieb der Wehrmacht der sichere Beweis für die Decodierung der Enigma vorenthalten.


4 DES - Data Encryption Standard

Der DES Algorithmus ist heutzutage der populärste aller Algorithmen. Von allen Algorithmen er wird am häufigsten genutzt, und alle anderen und alle neuen Algorithmen werden an ihm gemessen. Der Data Encryption Standard wurde 1976 als amerikanischer Standart publiziert. Die Entwicklung des DES baut auf dem von IBM entwickelten Algorithmus Lucifer auf. Die amerikanische National Security Agency (NSA) hat dann den Lucifer Algorithmus weiterentwickelt, und sie hat damit auch einen der sichersten Algorithmen der Welt entwickelt.

4.1 Funktionsweise

Der DES verschlüsselt jeweils einen Block von 64 Bits auf eine Schlag. Dabei verwendet er einen Schlüssel von 56 Bits. (Es ist eigentlich ein 64 Bit Schlüssel jedoch gehen 8 Bit davon bei der Identifikation verloren).

Abbildung 6: DES Prinzip

Der Klartext muss als eine Folge von Bits vorhanden sein. Diese werden dann der Reihe nach in Blöcke von 64 Bits unterteilt. Diese 64 Bit Blöcke werden dann der Reihe nach verschlüsselt. Der eigentliche DES Algorithmus ist sehr kompliziert. Jedoch ist der DES Algorithmus veröffentlicht, so das ihn jeder programmieren als auch untersuchen kann.

4.2 Sicherheit

Der DES Algorithmus ist auf keinen Fall unknackbar, er wurde nur bis zum heutigen Tage nicht geknackt. Wie dieses Zeigt ist es ein sehr guter Algorithmus. In den Jahren unmittelbar nach der Veröffentlichung des DES, musste er harte Kritik von einigen Wissenschaftlern einstecken. Ihre Kritik hatte zwei Schwerpunkte:

In der heutigen Zeit gilt der DES Algorithmus eher als ein vorbildlicher vorzeige Algorithmus. Das zeigt sich insbesondere daran, dass: Der DES existiert seit nunmehr 20 Jahren. Er wird seit dem immer in der Öffentlichkeit diskutiert. Bisher hat es niemand geschafft den DES zu entschlüsseln, und dazu muss man sagen, dass es schon jeder versucht hat, der in der Kryptologie Rang und Namen hat. Man hat sogar praktische Tests und theoretische Untersuchungen vorgenommen. Man hat es nicht einmal geschafft herauszufinden, welches Equipment man zur Entschlüsselung braucht, und wie viel dieses dann kosten würde. Niemand hat bislang DIE Schwachstelle des DES herausgefunden. (Diese Argumente genieße man jedoch mit Vorsicht, da irgendwann der Tag kommen kann und auch kommen wird, wenn der DES als geknackt gilt). Ein weiteres Plus für den DES Algorithmus ist die enorme Größe des Schlüssels. Er umfasst 56 Bits, die alle unabhängig von einander gewählt werden können. Das heißt es gibt 256 Mögliche Schlüssel. (256 = 72.057.594.037.927.936) (zweiundsiebzig Billiarden siebenundfünfzig Billionen fünfhundertvierundneunzig Milliarden siebenunddreißig Millionen neunhundertsiebenundzwanzigtausend und neunhundertsechsunddreißig). Bei jeder Verschlüsselung mit dem DES Algorithmus wird einer dieser 72 Billiarden Schlüssel verwendet. Der Kryptoanalytiker hat jetzt die Aufgabe diesen einen Schlüssel zu finden. Diese Schlüsselsuche läuft wie folgt ab. Der Kryptoanalytiker hat nun einen Geheimblocktext g, und den dazugehörigen Klartextblock k. Jetzt braucht er den Schlüssel, der k in g umwandelt. Dieses unterfangen stellt sich als schwieriger heraus, als die berühmte Nadel im Heuhaufen zu finden. Die Chance den Schlüssel auf Anhieb herauszufinden ist so gut wie unmöglich. Sie beträgt 1/ 256 ≈ 0,0000000000000000138. Diese Wahrscheinlichkeit ist kleiner als die, am Samstag einen Sechser im Lotto zu haben und dann noch am Sonntag vom Blitz erschlagen zu werden. Also kann man diesen Angriff vergessen. Wenn man diesen Versuch jedoch etwas professioneller aufzieht, kann man wohl ernsthafter von einer Entschlüsselung reden. Das heißt, man läst jetzt einen Computer alle 256 Möglichkeiten an dem Block k der Reihe nach ausprobieren, bis man dann den Schlüssel bekommt, der aus k g entstehen lässt. Normale Hauscomputer sind immer noch zu langsam für solche Berechnungen, jedoch wurden Chips entwickelt, die es dem Computer gestatten blitz schnell alle Schlüssel durchzuprobieren, um ein möglichst schnelle Antwort zu bekommen. Diese Chips sind natürlich auf dem freien Markt nicht erhältlich. Mit diesen Chips soll es möglich sein den Schlüssel binnen kürzester Zeit herauszufinden. Das bedeutet, je mehr Geld man in eine solche Entschlüsselung investieret, desto schneller läuft die Entschlüsselung. Experten sind der Ansicht, dass schon eine Investition von einer halben Million Euro eine Entschlüsselung in einer Zeit von wenigen Stunden ermöglicht.

4.3 Zusammenfassung der Anwendung

Zuerst wird der Klartext durch die Eingangspermutation gemischt, durchläuft dann 16 Runden und nach der Schlusspermutation ist der Chiffretext erzeugt. Die Schlusspermutation ist das Inverse zur Eingangspermutation. Diese Permutationen tragen jedoch nichts zur Sicherheit des DES bei. Sie wurden wahrscheinlich zur Speicherung in entsprechende Register bei einer Hardware - Implementierung benutzt. Aus dem Schlüssel S werden dann 16 Schlüssel gebildet, für jede Runde einer.

4.4 Verständnisdurchlauf

Nach der Eingangspermutation wird der 64-Bit-Block in zwei 32 Bit Teile geteilt. In die linke Hälfte L0,und in die rechte Hälfte R0. In jeder der 16 Runden wird die rechte Hälfte unverändert als linke Hälfte der darauf folgenden Runde einfach übernommen. Das heißt es gilt Li = Ri - 1. Jetzt wird auf den Teilschlüssel Si und auf die rechte Hälfte Ri - 1 die Funktion f angewandt. Das Ergebnis wird mit der linken Hälfte Li - 1 XOR - verknüpft, und dann als rechte Hälfte der nächsten Runde übernommen. Diese Prozedur wird dann 16-mal wiederholt. Die Formeln für diese Prozedur lauten:

Li = Ri - 1

Ri = Li - 1 f(Ri - 1, Si).

Bei der Funktion werden erst die rechten 32 Bit Ri - 1 durch die Expansionsmutation auf 48 Bit erweitert. Danach werden sie mit den 48 Bit langen Teilschlüsseln Si XOR - verknüpft. Dann kommt der wohl wichtigste Teil für die Sicherheit des DES, nämlich die S - Box - Transformation. Zuerst werden die 48 Bit in acht Sechserblöcke zerteilt. Ein Block ist für eine S - Box Eingabe. Das jeweils erste und letzte Bit eines Blockes, als Zahl dargestellt, bestimmen die Zeile in der dazugehörenden S - Box, und die von den Bits 2 bis 5 dargestellte Zahl wird zur Auswahl der Spalte benutzt. Der passende Eintrag in der S - Box ist dann eine Zahl zwischen 0 und 15, die als 4 Bit Binärzahl ausgegeben wird. Wenn man alle S - Boxen zusammen nimmt, so erhält man ein 32 - Bit - Wort, welches durch die P - Box - Permutation permutiert und als Ergebnis von f mit Li - 1 XOR - verknüpft wird.

Abbildung 7: Die 16 Runden des DES, Rechtecke = Daten, Kreise & Ellipsen = Programme oder Aktionen

4.5 Tripple DES

Um diese Entschlüsselungsmöglichkeit zu erschweren, gar auszumerzen, wird anstatt des einfachen DES der sogenannte tripple DES verwendet. Für dieses Verfahren benötigt man zwei Schlüssel, S1 und S2, die dann jeweils aus 56 Bit bestehen. Dadurch, dass jetzt eine Gesamtschlüssellänge von 112 Bits vorhanden ist, wird der systematische Angriff eine enorm lange Zeit in Anspruch nehmen. So das ein solcher Angriff zwecklos wäre, da eine Entschlüsselung viel zu viel Zeit in Anspruch nehmen würde. Das heißt, die Informationen könnten schon veraltet sein, bis endlich die Entschlüsselung beendet wäre.

4.5.1 Funktionsweise des Tripple DES

Man hat zwei 56 Bit Schlüssel, k1 und k2. Man muss bei dieser Methode den Klartextblock erst mit k1 verschlüsseln, ihn dann mit k2 wieder entschlüsseln, und diesen "entschlüsselten" Block dann wieder mit k1 verschlüsseln.

Abbildung 8: Tripple DES Prinzip

In den letzten Jahren wurden Analysen zum DES veröffentlicht, diese eröffnen uns erstmals einen Einblick in die interne Struktur des Algorithmus. Bei diesen Analysen handelt es sich um die differentielle Analyse und die lineare Analyse. (Diese Analysen sind sehr interessant, aber viel zu kompliziert aber auch zu umfangreich, um hier jetzt näher darauf einzugehen). Es wurde in letzter Zeit überlegt, den DES durch bessere Algorithmen zu ersetzten. Der Lucifer Algorithmus zum Beispiel hat eine viel längere Schlüssellänge, und soll deshalb als sicherer gelten. Ein anderer Vorschlag ist es, die "suspekten" S – Boxen durch zufällig gewählte S – Boxen zu ersetzen. (Die S – Boxen bilden den Kern des DES Algorithmus). Diese "Verbesserungen" wurden jedoch durch die differentielle Analyse und die lineare Analyse als unsicher enttarnt. Hingegen war die Entschlüsselung des ursprüngliche DES Algorithmus nur mit Problemen behaftet. So das man sagen kann, dass der DES Algorithmus noch immer als der sicherste Verschlüsselungs- Algorithmus ist.


5 Public - Key - Kryptologie

5.1 RSA - Algorithmus

Nachdem 1976 von Whitfield Diffie und Martin Hellman die Theorie des asymmetrische Algorithmus vorgestellt wurde ist (Kapitel 3.2.2 "Asymmetrischer Algorithmus"), versuchten Ron Rivest, Adi Shamir und Len Adleman, Professoren des Fachgebietes Theoretische Informatik am MIT (Massachusetts Institute of Technology; USA) zu beweisen das es nicht möglich ist so einen Algorithmus mathematisch und praktisch umzusetzen. Im April des Jahres 1977 gelang es Rivest, Shamir und Adleman mit der Verwendung von Primzahlen zu beweisen, dass ein asymmetrischer Algorithmus doch mathematisch beweisbar und somit möglich ist. Ein Jahr später (1978) präsentierten Rivest, Shamir und Adleman der Öffentlichkeit den RSA - Algorithmus, einen funktionierenden Verschlüsselungsalgorithmus, der den asymmetrischen Algorithmus verwirklicht. In den folgenden Jahren wurde der RSA - Algorithmus zahlreichen Kryptoanalysen und konnte sich gegen die meisten erfolgreich durchsetzen. Dies lag einmal an seiner einfachen sowie soliden Grundstruktur und an der Tatsache, dass der RSA - Algorithmus ständig weiterentwickelt wurde und dadurch fast allen aktuellen kryptoanalytischen Angriffen standhielt. Heute wird der RSA - Algorithmus in vielen Verschlüsselungssystemen (z.B. PGP) als Standardverfahren oder Verschlüsselungsergänzung verwendet. Bis zum September des Jahres 2000 war der RSA - Algorithmus patengeschützt, heute jedoch ist er ohne Lizenzgebühr für jedermann frei erhältlich.

5.1.1 Funktionsweise

Der RSA - Algorithmus ist in zwei Verschlüsselungsschritte aufgeteilt. Der erste Schritt ist für die Schlüsselerzeugung zuständig. Der zweite Schritt ist für die eigentlich en- und decryption zuständig. Nach Schritt 1 und 2 wird der Algorithmus bewiesen und anschließend an einen Beispiel verdeutlicht.

Funktionsweise - Schritt 1 - Schlüsselerzeugung

Zuerst müssen die beiden Kommunikationspartner Alice (A) und Bob (B) ihre public keys (P) und private keys (S) erzeugen. Dafür wählen Alice und Bob jeweils zwei zufällig erzeugte Primzahlen p und q, die dem anderen für eine sichere Kommunikation nicht bekannt sein dürfen und jeweils 384 bis 512 Bit haben sollten. Jetzt multiplizieren Alice und Bob ihre jeweiligen p*q und erhalten als Produkt einer neue Primzahl n, die die erste Hälfte des public keys und des private keys bildet. Jetzt wählt jeder von ihnen eine natürliche positive ungerade Zahl e, die zweite Hälfte des public keys, die zu (n) = (p - 1)*(q - 1) relativ prim sein muss, also ggT(e, (n)) = 1. Mit dem euklidischen Algorithmus wird dies überprüft. Der public key P wird nun aus n und e zusammengesetzt und somit fertiggestellt, er wird aber noch nicht veröffentlicht. Als nächstes berechnen Alice und Bob mit dem erweiterten euklidischen Algorithmus die natürliche positive Zahl d, die zweite Hälfte des private keys, als Lösung der Gleichung ed = 1 mod (n). Aus d und n ergibt sich nun der private key S. Damit das Kryptosystem gegen spätere Angriffe auch sicher ist, muss unbedingt nach der Ermittlung von n, e und d, die Primzahlen p und q unwiederbringbar gelöscht werden, denn durch sie kann man den private key ermitteln und den public key manipulieren. Nachdem Alice und Bob ihre public und private keys fertiggestellt haben, veröffentlicht Alice ihren public key PA =(eA, n) sowie Bob seinen PB = (eB, n), jedoch halten sie ihre private keys S = (d, n) geheim. Der public und private key setzen sich also jeweils aus zwei Teilen zusammen. Es wird jedoch, wenn vom public key und/oder private key die Rede ist, meisten nur der Wert e als public key und der Wert d als private key bezeichnet.

Funktionsweise - Schritt 2 - En- und Decryption

Die eigentliche encryption E der message m, mit m Zn, erfolgt nun dadurch, dass Alice ihre message mit Bobs public key e potenziert, durch modulo n dividiert und dann an Bob schickt. Die messages, die verschlüsselt werden, müssen aus Zahlen bestehen, die nicht größer als n seinen dürfen. Wenn z.B. m = 23578906 und n = 642 ist, dann muss m in Blöcke; hier 23 57 89 06, zerlegt werden.

E(m) = me mod n = c

Die Decryption D erfolgt nun, durch die Potenzierung des ciphertextes c mit Bobs Private key d und die Modulorierung durch n. Falls die message in Blöcke zerlegt wurde, wird der ciphertext Blockweise wieder in plaintext umgewandelt und anschließen zusammengefügt.

D(c) = cd mod n = m

Funktionsweise - RSA - Algorithmus - Beweis

Der Beweis für die Gültigkeit des RSA - Algorithmus, wird dem Buch "Angewandte Kryptologie" von Wolfgang Ertel, erschienen im Jahre 2001 beim Carl Hanser Verlag, von den Seiten 76 - 78 entnommen. Es wird gezeigt, dass E und D des Algorithmus invers zueinander sind und dass die Gleichungen in Schritt1und 2 korrekt sind.

D(E(m)) = E(D(m)) = m

Aus den Gleichungen in Schritt 1 und 2 folgt:

D(E(m)) = E(D(m)) = med mod n.

Es muss also bewiesen werden, dass med m mod n. Da e und d multiplikative Inverse modulo (n) = (p - 1)*(q - 1) sind, gibt es ein kN mit

ed = 1 + k(p -1)*(q - 1).

Für m erhalten wir m0 mod p

med ≡ m1+k*(p - 1)*(q - 1) mod p
med = m (mp - 1)k*(q - 1) mod p
med = m *1k*(q - 1) mod p
med = m mod p,

wobei in der dritten Gleichung wird der Satz von Fermat angewendet wird. Der Satz von Fermat besagt: Sei n eine Primzahl, dann gilt in Zn für alle a ≠ 0. an - 1 = 1.

Parallel wird med m mod q berechnet.

Für m erhalten wir m 0 mod q

med ≡ m1+k*(p - 1)*(q - 1) mod q
med = m (mp - 1)k*(q - 1) mod q
med = m *1k*(q - 1) mod q
med = m mod q,

wobei in der dritten Gleichung wieder der Satz von Fermat angewendet wird.

Für die Primzahlen p und q gilt nach dem Chinesischen Restsatz:

x ≡ a mod p x ≡ a mod q x ≡ a mod pq

Daraus folgt, dass:

med ≡ m mod pq = m mod n.

Damit ist die Korrektheit des RSA - Algorithmus bewiesen.

Funktionsweise - RSA - Algorithmus - Beispiel

Alice will von Bob über eine unsichere Leitung eine message erhalten, die die Uhrzeit eines geplanten Treffen enthält. Damit die message nicht verfälscht wird, benutzen Alice und Bob zur Verschlüsselung den RSA - Algorithmus. Alice erzeugt nun die Primzahlen p = 47 und q = 101 und erhält so für n = 4747. Jetzt wählt sie eine kleine ungerade positive Zahl e und berechnet (n) = (p - 1)(q - 1) = (47 - 1)(101 - 1) = 4600 und überprüft mit dem euklidischen Algorithmus, ob die Zahl e und (n), teilerfremd sind. Als Wert für e wählt Alice die Zahl 533, überprüft sie und ermitteln, dass sie zu 4600 teilerfremde ist. Nun berechnet sie mit dem erweiterten euklidischen Algorithmus d und erhält für d = 397. Alice übermittelt nun Bob ihren public key e = 533. Bob sendet seine message 1400 (Uhrzeit) übers Internet. Die message wird mit dem ASCCI - Code ausgedrückt, wobei {0 =48, 1 = 49, 4 = 52} ist. Die message hat dann die Form m = 49 52 48 48. Bob chiffriert nun die message m in Blöcken (m1 =49, m2 =52, m3 =48, m4 =48) mit der Formel ci = mie mod n.

Verschlüsselung
c1 = 49533 mod 4747 = 4575
c2 = 52533 mod 4747 = 879
c3 = c4 = 49533 mod 4747 = 2633

Bob sendet anschließen die chiffrierte message c = c1 + c2 +...+ cn; c = 45758792633 an Alice, die wiederum die message mit ihrem private key d und der Formel mi = cid mod n entschlüsselt.

Entschlüsselung
m1 = 4575397 mod 4747 = 49
m2 = 879397 mod 4747 = 52
m3 = m4 = 2633397 mod 4747 = 48

Alice erhält nun die message m = m1 + m2 +...+mn; m =49 52 48 48 die mit dem ASCII-Code bearbeitet wieder die Uhrzeit des geplanten Treffens (1400 Uhr) angibt.

2.1.2 Primzahlentest

Die Sicherheit und Funktionsgarantie des RSA - Algorithmus basiert auf der Verwendung von Primzahlen. Zum zufälligen erzeugen von Primzahlen n verwendet man Pseudo- bzw. Zufallsgeneratoren und überprüft, ob die erzeugte Zahl auch tatsächlich eine Primzahl ist. Für die Überprüfung, ob es sich um Primzahlen handelt, stehen mehrere Verfahren zu Verfügung.

Primzahlentest - Der euklidische Primzahlensatz

Eine Primzahl ist eine natürliche Zahl, die nur durch 1 und durch sich selbst teilbar ist. Der euklidische Primzahlensatz zeigt, dass es unendlich viele Primzahlen gibt, die in der Menge der natürlichen Zahlen unregelmäßig verteilt sind. Es seien n Primzahlen vorgegeben p1, p2, ..., pn. Die Zahl p1 * p2 * ... * pn + 1 ist durch keine der vorgegebenen Zahlen teilbar. Sie ist somit entweder selbst eine neue Primzahl oder das Produkt von mehreren Primzahlen.
7 ist eine neue Primzahl, weil 2 * 3 + 1 = 7.
31 ist eine neue Primzahl, weil 2 * 3 * 5 + 1 = 31.
16 ist keine neue Primzahl, aber sie ist das Produkt aus Primzahlen.
Generell gilt, dass die Primzahlen in der Menge der natürlichen Zahlen unregelmäßig verteilt sind. Die Primzahldichte wird in einem Intervall von 1 bis z um so kleiner, je größer z wird.

Primzahlentest - Siebverfahren des Eratosthenes

Das einfachste und auch bekannteste Verfahren um Primzahlen zu ermitteln ist das Siebverfahren des Eratosthenes. Mit diesem Verfahren zeigt man die Zahlen, die auf keinen Fall Primzahlen seinen können und streicht diese für weitere Berechnungen. Die Zahlen die am Ende des Siebverfahrens übrig sind, sind mit einer sehr hohen Wahrscheinlichkeiten Primzahlen. Es ist nämlich einfacher zu zeigen, dass es sich bei einer Zahl um keine Primzahl handelt, als ihre Primzahleigenschaften zu beweisen. Das Siebverfahren des Eratosthenes ermittelt die Primzahlen folgendermaßen. Die natürlichen Zahlen werden von 1 bis n aufgelistet. Die 1 wird entfernt und die 2 wird als Primzahl p2 gekennzeichnet. Jetzt werden alle Vielfache von 2 berechnet mit pi * 1, pi * 2,..., pi * n und anschließend in der Liste gestrichen. Mit der nächsten ungestrichen Zahl, die eine Primzahl sein muss, wird das Siebverfahren des Eratosthenes fortgesetzt. Die nächste ungestrichene Zahl 3 ist die Primzahl p3. Es werden wieder alle Vielfachen von 3 mit pi * 1, pi * 2,..., pi * n berechnet und aus der Liste gestrichen, wobei auch bereits gestrichene Zahlen mitgezählt werden. Dies zeigt nämlich, dass diese Zahlen erste recht keine Primzahlen seien können. Von der nächste ungestrichen Zahl würden wieder alle Vielfachen berechnet werden und aus der Liste gestrichen werden. Das Siebverfahren wird solange fortgesetzt bis n erreicht ist. Alle Zahlen die am Ende des Siebverfahrendes Eratosthenes nicht gestrichen worden sind, müssen Primzahlen sein.

Siebverfahren des Eratosthenes - Primzahltabelle:

-

2

3

-

5

-

7

-

-

-

11

 

13

-

-

-

17

-

19

-

-

-

23

 

-

-

-

-

29

-

31

-

-

-

-

 

37

-

-

-

41

-

43

-

-

-

47

 

-

-

-

-

53

-

-

-

-

-

59

 

61

-

-

-

-

-

67

-

-

-

71

 

73

-

-

-

-

-

79

-

-

-

83

 

-

-

-

-

89

-

-

-

-

-

-

 

97

-

-

-

101

-

103

-

-

-

107

 

109

-

-

-

113

-

-

-

-

-

-

 

-

-

-

-

-

-

127

-

-

-

131

 

-

-

-

-

137

-

139

-

-

-

-

 
                       

Primzahlentest - Mersennsche Zahlen und Fermatsche Zahlen

Die Mathematiker versuchen schon seit langer Zeit eine Funktion zu finden, deren Wertebereich nur Primzahlen enthält. So eine Funktion wurde bisher aber noch nicht gefunden, jedoch sind Funktionen bekannt, die große Menge von Primzahlen in ihrem Wertebereich enthalten. Zwei solcher Funktionen, die sehr viele Primzahlen in ihrem Wertebereich enthalten, sind die Mersennsche Zahlen mit: Mp = 2p - 1; p ist eine Primzahl ≤ 257

und die Fermatsche Zahlen :

Fn = 22^n + 1; n ist eine natürliche Zahl

Beide Funktionen werden in der Kryptologie für die Suche nach Primzahlen verwendet.

Primzahlentest - statistische Primzahlen Suche

Sehr effizient Primzahlentester sind statistische Test. Den statistischen Tests liefern viele Primzahlen, jedoch muss man bei statistischen Tests mit Fehlern in der Echtheit der Primzahlen rechnen, so dass bei der Berechnung der Primzahlen die Fehlerwahrscheinlichkeit mit einbezogen werden muss.

2.1.3 Implementierung des RSA

Eins der größten Probleme des RSA - Algorithmus ist seine Implementierung. Die vom RSA - Algorithmus benutzte modulare Exponentiation ist sehr aufwendig Verfahren und erfordert sehr viel Rechenzeit. Die Berechnung von me mod n erfordert z. B bei der etappenweisen Multiplikation der message m = 684279871102 mit einen 160-Bit langen key 684279871102160 4*101893 Multiplikationen sowie die modulare Berechnung des Restes. Es ist aber nicht nötig schrittweise zu Multiplikation. Man kann die Rechenzeit stark verkürzen, indem man einfach wiederholt quadriert. Die Berechnung bei q23 erfolgen dann, indem man:

q23 = q24+2+2+2+1 = q2*2*2*2 * q2 * q2 * q2 * q1 = ((((q2)2)2)2) * q2 * q2 * q2 * q1

berechnet. Dadurch werden nicht mehr 23, sondern nur noch 8 Multiplikationen erforderlich. Bei der Berechnung mit modularer Exponentiation muss man zusätzlich noch nach jedem Quadrieren den Rest modulo n berechnen. Generell gilt auch, dass das Quadrieren nicht nur auf Exponenten 2. Grades beschränkt ist. Sie können auch 3. 4. oder höheren Grades sein, was zum Teil die Rechenzeit verkürzt. Es ist also nicht erforderlich q23 mod n nur in Exponenten 2. Grades zu zerlegen. Die Berechnung von q23 mod n kann also auch erfolgen, indem man:

c = me mod n
c = q23 mod n
c = [(q5 mod n)*(q5 mod n)*(q5 mod n)*(q5 mod n)*(q3 mod n)] mod n

berechnet. So sind statt benötigter 23 Multiplikationen zusätzliche Restberechnung nur 5 Multiplikationen und deren Restberechnung erforderlich.

Trotz dieser Erhöhung der Rechengeschwindigkeit und der Verringerung der Rechenzeit bleibt der RSA - Algorithmus sehr langsam. Die Software-Implementierungen von RSA sind zurzeit ca. 100-mal und die Hardware-Implementierungen von RSA sind etwa 1000-mal langsamer als symmetrische Algorithmen. Die momentan maximal erreichbare Leistung der Hardware-Implementierungen des RSA - Algorithmus beträgt 64 Kilobit/sec. Neue und schnellere Hardware-Implementierungen des RSA und anderen asymmetrischen Algorithmen sind in der Entwicklung. Sie sollen eine Leistung von mindestens 1 Megabit/sec. erreichen können. Die stetige Entwicklung immer leistungsfähigerer Implementierungs-Hard- und Software, wird dazu führen, dass der RSA - Algorithmus bald auf Chipkarten und anderen technischen Geräten, bei denen es vorher nicht oder nur sehr schlecht möglich war, realisierbar sein wird. Es gibt noch andere Methoden, um eine bessere Implementierung des RSA - Algorithmus zu erreichen, jedoch entstehen durch sie Sicherheitslücken. Zum Beispiel verwenden einige Verfahren statt der Berechnung me mod n die Berechnung me mod p und me mod q, da ja me mod pq = me mod n ist. p und q sind kleiner als n und deshalb ist me und auch cd leichter und schneller zu berechnen. Beide Werte müssen jedoch unter hohen Sicherheitsmaßnahmen geheim gehalten werden, denn p und q werden nicht (wie beim RSA - Algorithmus) gelöscht, sondern werden für die Implementierung benötigt. Solche Implementierungsverfahren sind deswegen oftmals unsicher. Die sicherste und effektivste Implementierung des RSA ist und bleibt die Berechnung der modulare Exponentiation und durch die Entwicklung immer schnellere Informationstechnologien, wird die Rechenzeit des RSA - Algorithmus beschleunigt und so die Implementierung verbessert.

5. 2 Sicherheit des Algorithmus

Die Hauptsicherheit des RSA - Algorithmus basiert nicht nur auf der Geheimhaltung des private keys d, wie es bei den meisten symmetrischen Algorithmen der Fall ist, sondern auch auf äußerst schwierig mathematischen Problemen. Das eine Problem ist das faktorisieren großer Zahlen, dass andere ist, dass die diskreten Logarithmusfunktion. Beide Probleme sind nach dem heutigen wissenschaftlichen Stand schwer oder gar nicht lösbar. Für die Mathematiker, die sich mit Faktorisierung und der diskreten Logarithmusfunktion beschäftigen, ist es das höchste Ziel, Wege zu finden, die diese beiden Probleme lösen könne. Es ist nichts gegen Forscherdrang einzuwenden, doch lasst uns alle hoffen, dass es ihnen nie gelingen wird ihr Ziel zu erreiche. Das Wissen wie man große Zahlen faktorisiert oder die diskrete Logarithmusfunktion durchführen könnte, würde nämlich dazu führen, dass der asymmetrische Algorithmus wertlos werden würde und so der Welt sehr viel, ihrer ohnehin kleinen, Privatsphäre abhanden kommen könnte. Dieses Wissen wäre erst eine Sinnvolle Entdeckung, wenn bis dahin ein neues, drittes Verschlüsselungsprinzip erfunden worden.

5.2.1 Faktorisieren

Jede natürliche Zahl, die größer ist als 1, läßt sich eindeutig in ihre Primfaktoren, jedoch nicht in die Reihenfolge der Primfaktoren, zerlegen. Diese Erkenntnis ist die Grundlage vieler zahlentheoretischer Betrachtungen, Theoreme und Lehrsätze. Primfaktoren sind Primzahlen p. Ihre Eigenschaften werden mit dem im Kapitel "5.1.2 Primzahlentest" dargestellten euklidischen Primzahlensatz nochmals erklärt. Eine Primzahl ist eine natürliche Zahl, die nur durch 1 und durch sich selbst teilbar ist. Es seien n Primzahlen p vorgegeben p1, p2, ..., pn. Die Zahl p1 * p2 * ... * pn + 1 ist durch keine der vorgegebenen Zahlen teilbar. Sie ist somit entweder selbst eine neue Primzahl oder das Produkt von mehreren Primzahlen. Generell gilt, dass die Primzahlen in der Menge der natürlichen Zahlen unregelmäßig verteilt sind. Die Primzahldichte wird in einem Intervall von 1 bis z um so kleiner, je größer z wird. Das Faktorisieren (zerlegen) in die einzelnen Primfaktoren erscheint auf den ersten Blick als ein triviales Problem. Man kann z. B das Produkt von 21 mühelos in seine Primfaktoren 3 und 7 zerlegen oder das Produkt 30 problemlos in die Primfaktoren 2 * 3* 5 zerlegen. Die Zahl 146851 ist das Produkt der Primfaktoren 131 * 59 *19. Wenn man diese Primfaktorzerlegung jedoch nicht weiß, muss erst irgendwie versuchen 146851 zu rekonstruieren. Es zeigt sich also, dass die Faktorisierung von Zahlen, besonders von großen Zahlen, schwieriger ist, als sie auf den ersten Blick erscheint. Die Faktorisierung von pq = n ist besonders schwierig, da eine Primzahl faktorisiert werden muss. Es existieren einige Faktorisierungsalgorithmen (auf die nicht näher eingegangen wird), wie z. B die "p - 1 Methode" oder "Das Quadratische Sieb", die zum faktorisieren benutzt werden. Sie können Primzahlen faktorisieren, jedoch probierenden die meisten Faktorisierungsalgorithmen dafür lediglich, nach unterschiedlichen Verfahren, die unterschiedlichen Kombinationen der Primfaktoren aus, um so die gesuchte Zahl zu faktorisieren. Dies erfordert sehr viel Rechenzeit und Rechenleistung. Die momentan existierenden Faktorisierungsalgorithmen können außerdem nicht mehr eingesetzt werden, wenn die Bit-Länge der Primzahl zu lang (256 Bit und mehr) wird, denn für die Faktorisierung erforderliche Rechenleistung existiert einfach noch nicht! Das Problem bei der Faktorisierung ist, daß man zurzeit noch nicht einmal genau sagen kann, wie schwer es eigentlich ist. Bisher hat man nämlich weder einen Faktorisierungsalgorithmus gefunden der jede Zahl in einer akzeptierbaren Zeit ermittelt, noch ist überhaupt bekannt, ob es einen solchen überhaupt gibt. Die Sicherheit des RSA - Algorithmus baut genau auf dieses Problem auf. Durch die Wahl großer Primzahlen p und q (Produkt ergibt sollte min. 512 Bit haben) wird dafür gesorgt, dass die momentan existierenden Faktorisierungsalgorithmen nicht einsetzbar werden. Der RSA - Algorithmus wird solange gegen Faktorisierungsversuche sicher sein, solange bei der Wahl der Zahlen p und q auf die Möglichkeiten der Faktorisierungsalgorithmen (z.B. Rechenleistungswachstum) geachtet wird und solange wie keine Faktorisierungsalgorithmus gefunden wird, die jede Zahl in kurzer Zeit faktorisieren kann.

5.2.2 Diskrete Logarithmusfunktion

Neben der Schwierigkeit des faktorisieren großer Zahlen ist auch das Gegenteil der diskreten Exponentialfunktion, die diskrete Logarithmusfunktion, von höchster Wichtigkeit für die Sicherheit des RSA - Algorithmus und generell für die meisten asymmetrischen Algorithmen. Die diskreten Exponentialfunktion gehört zur Klasse der Einwegfunktionen. Dies sind Funktionen die leicht zu berechnen, jedoch nicht oder nur sehr schwer wieder umkehrbar sind. Im Kapitel 5.4.1 "Einwegfunktionen" werden diese Funktionen genauer beschrieben.

Die diskrete Exponentialfunktion deg wird definiert durch:

Sei p eine Primzahl und g eine natürliche Zahl mit g ≤ p - 1 und die Basis zur

Exponentialfunktion, dann gilt:

k:gk mod p

mit 1 ≤ g ≤ p - 1.

Für die diskrete Logarithmusfunktion dlg gilt dann:

dlg(gk) = k.

Das Problem der diskreten Logarithmusfunktion ist das Finden einer zur Exponentialfunktion inverse Funktion, die auch wirklich die Inversen Werte liefert.

Gegeben sind p, g, y, und bestimmte k. Es gilt y = gk mod p. Die Gleichung 15 = 3k mod 17 besitzt z. B. die Lösung k = 6 oder die Gleichung 7 = 3k mod 17 beispielsweise hat als Ergebnis k = 11. Das Finden von k für y = gk mod p ist jedoch gegen den Anschein enorm schwierig. Es gibt nämlich auch diskrete Logarithmen, die keine Lösung besitzen oder solche, die für verschiedene k das gleiche y liefern. Nur die wenigsten haben eine Lösung. Die diskreten Exponentialfunktion ist im Gegensatz zur reellen Exponentialfunktionen nicht stetig steigend, sondern unvorhersehbar. Dies macht erklärbar warum die diskrete Logarithmusfunktion so schwierig zu bestimmen ist. Es ist möglich für k alle denkbaren Werte auszuprobieren, jedoch bestehen die oben genannten Probleme, dass kein k für ein bestimmtes y existiert oder verschiedene k dasselbe y liefern.
Es existieren einige Algorithmen, die versuchen die diskrete Logarithmusfunktion zu berechnen. Die zurzeit wichtigsten Verfahren sind der Baby-Step-Giant-Step-Algorithmus, der Silver-Pohlig-Hellmann-Algorithmus und der Indes-Calculus-Algorithmus. Diese Algorithmen sind jedoch sehr langsam in ihrer Berechnung des diskreten Logarithmus und liefern nicht immer den richtigen Wert. Der Baby-Step-Giant-Step-Algorithmus z B. benötigt für eine 1000 Bit lange Zahl ca. 10150 Rechenoperationen. Es würde selbst mit den modernsten und schnellsten Computern der Welt momentan noch Ewigkeiten dauern, bis alle Rechenoperationen durchgeführt worden sind, wodurch der Baby-Step-Giant-Step-Algorithmus zwar theoretisch, aber praktisch nicht sinnvoll eingesetzt werden kann. Trotz intensiver Forschung wurde noch kein Algorithmus gefunden, der die diskrete Logarithmusfunktion absolut korrekt und in einer realisierbaren Zeit berechnen könnte. Somit ist der RSA - Algorithmus und jeder anderer Algorithmus, der sich der diskreten Logarithmusfunktion bedient, auf unabsehbare Zeit sehr sicher, gegen Angriffe auf den diskreten Entschlüsselungsexponenten d.

5.3 Angriffsmöglichkeiten gegen RSA

Die Sicherheit des RSA - Algorithmus basiert, wie in Kapitel 5.2 "Sicherheit des Algorithmus" erwähnt, erstens auf der Schwierigkeit große Zahlen in ihre Primfaktoren zu zerlegen und zweitens in der Schwierigkeit der Diskreten Logarithmusfunktion. Das heißt aber nicht, dass es unmöglich ist große Zahlen zu faktorisieren, es ist aber mit dem heutigen Wissensstand noch mit großen Aufwand verbunden. Auch die diskrete Logarithmusfunktion ist nicht unüberwindbar, denn es hat noch niemand bewiesen, dass es nicht eine andere Möglichkeit zur Ermittlung des private keys geben könnte. Vielleicht wir ja schon in den nächsten Jahren eine Möglichkeit gefunden großes Zahlen schnell und effektiv in ihre Primfaktoren zu zerlegen oder eine Möglichkeit wird gefunden, mit der man dasselbe berechnen kann, wie mit diskrete Logarithmusfunktion, nur schneller und unkomplizierter. Wenn man das richtige Verfahren verwendet ist auch der RSA - Algorithmus gegen Angriffe nicht gefeit.

5.3.1 Standardangriffe

Eine Methoden der Kryptoanalytiker ist es einen chosen-plaintext-attack gegen den RSA - Algorithmus durchzuführen. Dies ist so gilt wie immer möglich, weil sie dafür einfach den public key ausnutzen können. Vor allem für kurze message wird dieser Angriff anwendbar. Claus will z. B. Alice ciphertext C cracken die er zuvor abgefangen hat. Dafür sagt er Alice er brächte ihren public key PA , um ihr eine message zu senden. Alice tut dies und nun probiert Claus systematisch solange alle plaintexte M aus bis EPA(M) = C gilt und er so denn ciphertext dechiffriert hat. Auch der brute-force-attack ist gegen den RSA - Algorithmus einsetzbar und ermöglicht es den private key zu ermitteln, jedoch erfordert diese Angriffsart gegen einen asymmetrischen Algorithmus noch mehr Zeit und Aufwand als gegen einen symmetrischen Algorithmus. Somit ist der brute-force-attack keine effiziente, in kurzer Zeit zu Erfolg führende, Angriffsmethode. Die Standardangriffe ciphertext-only-attack und known-plaintext-attack sind ebenfalls anwendbar, jedoch erfordern sie noch mehr Aufwand als der brute-force-attack und somit ineffizient. Sie sind aber die einzige Möglichkeit den RSA - Algorithmus zu cracken, wenn z.B. keine Möglichkeit mehr besteht den öffentliche key zu bekomme oder wenn eine alte mesage codiert werden muss, von der der public key nicht mehr existiert. Der chosen-plaintext-attack gegen einen RSA - Algorithmus ist unmöglich, denn der Algorithmus erlaubt es zwar einen ciphertext zu generieren, es ist aber prinzipiell für den Sender der message unmöglich an den zugehörigen plaintext zu gelangen. Dies ist nur dem Empfänger möglich.

5.3.2 Man-in-the-Middle-Attack

Die größte Schwäche des RSA - Algorithmus und somit die größte Chance für die Kryptoanalytiker an die begehrten messages zu gelangen, ist es, dass Identitätsproblem und das Schlüsselmanagement von asymmetrischen Verschlüsselungsverfahren (Kapitel 2.2.2) auszunutzen. Die man-in-the-middle-attack Methode bedeutet nichts anderes als, dass sich ein Kryptoanalytiker zwischen zwei Kommunikationspartner einklinkt, ohne das sie es merken und ihnen vorgaukelt er sei jeweils der andere gewünschte Gesprächspartner. Der Kryptoanalytiker erzeugt Schlüsselpaare, die er unter falschen Namen an die Gesprächspartner verschickt und kann so ganz leicht die Nachrichten selbst entschlüsseln. Wenn nun Alice sich eines Public - Key- Verschlüsselung bedient, kann sie sich nie sicher sein, dass Bob auch wirklich Bob ist. Genauso verhält es sich bei Bob. Er kann sich auch nie wirklich sicher sein, dass Alice Alice ist. ihre einzige Basis für ihr Gespräch ist gegenseitiges Vertrauen. Claus nutzt diese Vertauen aus und sagt Alice er sei Bob und Bob sagt er, er sei Alice. Claus schickt nun seine selbst erzeugten public keys PC unter dem Namen PB an Alice und PA an Bob. So erhält er die Möglichkeit alle messages, die die beiden verschicken, abzufangen und zu lesen, da ja nur er den passenden private key hat. Damit Claus Spionage auch nicht auffällt, kann er ganz leicht die messages jedesmal, nachdem er sie selbst gelesen hat, weiterleiten. Als Resultat daraus, dass sich Alice und Bob niemals vollständig vertrauen können oder weil sie denken, das Claus sie abhört könnte, brauchen beide Möglichkeiten die Identität des anderen Kommunikationspartners zu überprüfen, um so dem man-in-the-middle-attack entgegenzuwirken. Eine Möglichkeit wäre es, wenn die Kommunikationspartner ihre messages unterschreiben, wie sie dies auch im alltäglichem Leben tun. Damit wären sie sicher von wem die message kommt, d.h. die Identität des Kommunikationspartner kann eindeutig nachgeprüft werden. Diese Möglichkeit gibt es. Das Identitätsproblem, dass sich als größte Schwäche des RSA - Algorithmus erwiesen hat, ermöglicht es auch zum erstenmal in der Kryptologie, sich der Identität des anderen zu 100 % gewiss zu sein. Dies wird durch digitale Signaturen ermöglicht, welche im Kapitel 5.4 erklärt werden. Eine andere Möglichkeit wäre es, wenn sich die Kommunikationspartner an eine dritten Instanz wenden, die dafür sorgt, dass eine sichere Kommunikation stattfinden kann. Dafür ist ein gutes Schlüsselmanagement und eine sichere Schüsselgenerierung und -ausgabe nötig, welche in Kapitel 5.6 dargestellt und erklärt werden.

5.3.3 Andere Angriffe

Neben den unter Kapitel 5.3, 5.3.1 und 5.3.2 genannten Angriffen existiert noch eine Anzahl andere, ebenfalls effektiven Angriffsmethoden gegen RSA - Algorithmen, die jedoch leicht verhindert werden können.

Andere Angriffe - Gemeinsames p, q, n oder e

Die Primzahlen p, q, die daraus resultierende Primzahl n und die gewählte Zahl e sind entscheiden für die Sicherheit des RSA - Algorithmus. Schlechte Zufallszahlengeneratoren, zu wenig Vorsicht bei der Auswahl der Zahlen oder die Wahl von zu kleiner Zahlen, können dazu führen, dass mehrere Kommunikationspartner in einer Kommunikationsrunde ein gemeinsames p, q, n oder sogar e haben und so die Sicherheit des gesamten Kryptosystems gefährden. Bei gemeinsamen Primzahlen p oder q kann mit dem Bekanntwerden von einer dieser Primzahlen, durch die Division durch n, die zweite Primzahl ermittelt werden und somit auch der private key d. D gesamte Kryptosystem wird dadurch aufgebrochen. Bei gemeinsamen n, jedoch verschieden e, kann Claus versuchen Alice messages zu dechiffrieren, ohne Alice private key Komponente dA zu kennen. Claus hat sein Entschlüsselungsschlüsselteilstück dC, sein Verschlüsselungsschlüsselteilstück eC und das gemeinsame n. Claus sucht nun Alice Entschlüsselungsschlüsselteilstück dA. Aus ihrem public key P(eA, n) kann er eA entnehmen. Er berechnet nun die Zahl h, damit er die Zahl c suchen kann, mit der er die Bedingung dAeA mod fi(n) = 1 erfüllt wird. Die Zahl h ist ein Vielfaches von fi(n) und muss teilerfremd zu eA sein.

h = eBdB - 1 = kgV(eA,eBdB - 1)

ggT(eA,eBdB - 1) eA

Mit dem erweiterten Euklidischen Algorithmus berechnet Claus dann die Vielfachsummendarstellung von ch + dAeA = 1. Claus berechnet jetzt also

c*h mod fi(n) = 0,

wodurch er die Bedingung dAeA mod fi(n) = 1 erfüllt hat und somit dA berechnet hat. Claus kann jetzt sämtliche messages von Alice entschlüsseln.

Bei gemeinsamen kleinen e in einer Kommunikationsrunde ist eine sichere Unterhaltung gefährdet. Angenommen mehrere Kommunikationspartner haben verschiedene, teilerfremde n, aber alle haben dasselbe kleine e und verschlüsseln alle die gleiche message mit e, dann ist es möglich diese message zu dechiffrieren. Die message, die durch das gleiche e immer wieder verschlüsselt wurde, lässt sich folgend ausdrückender Kommunikationspartner:

c1 = me mod n1
c2 = me mod n2
...
cx = me mod nx

Nach dem Chinesischen Restsatz gilt:

cx = me mod n1n2...nx

Man erhält nun m, indem man die e-te Wurzel zieht und mit dem erweiterten Euklidischen Algorithmus m berechnet. Dafür muss aber me kleiner als das Produkt aus n1n2...nx sein. Der Angriff gegen niedrige gemeinsame Verschlüsselungsexponenten e ist meistens nur bei kurzen messages effizient einsetzbar.
Die eben geschildert Angriffe sind leicht abzuwenden, indem man dafür gesorgt wird, dass niemand in einer Kommunikationsrunde dasselbe p, q, n oder e hat. Die Primzahlen p und q sollten gleich groß sein und ihr Produkt n sollte mindestens 512 Bit umfassen, denn je größer die Primzahlen sind, desto mehr Primzahlen gibt es und dadurch wird das Faktorisierungsproblem noch weiter erschwert. Die Zahl e sollte eine Zahl sein, die größer als n ist. Durch die Verwendung guter Zufallszahlengeneratoren, durch Vorsicht bei der Auswahl der zahlen und Überprüfung der Zahlen, was durch ein Trustcenter geschehen müsste, kann dies vermieden werden.

Andere Angriffe - Physikalischer Zugriff

Neben den rein mathematischen Angriffen auf einen RSA - Algorithmus, gibt es noch andere Möglichkeiten. Heutzutage wird die Umsetzung von asymmetrischen und symmetrischen Algorithmen durch Computerprogramme vorgenommen, welche von Mathematikern und Informatikern entwickelt worden sind. Dadurch, dass die Algorithmen kein reines Gedankengut mehr sind, sondern praktische und physikalisch greifbar, ist es auch möglich sie zu zerstören bzw. aufzubrechen. Angriffe, die gegen die physikalischen Eigenschaften (Software, spezielle Verschlüsselungshardware, u.s.w.) der Algorithmen ausgerichtet sind, heißen Seiteneffektangriffe. Ein effektiver Seiteneffektangriff gegen RSA - Algorithmen ist der von Paul Kocher im Jahre 1995 entwickelte timing-attack, der die Berechungszeit des modulo-Exponentens ausnutzt. Bei den einzelnen Berechnungsdurchläufen, die ein Computer beim RSA - Algorithmus vornimmt, wird bei der Ver- und Entschlüsselung des modulo-Exponenten Zeit in Anspruch genommen. Diese Zeit variiert, je nachdem, ob das Schlüsselbit 1 oder 0 ist. Durch einen direkten physikalischen Zugang zum Computer, beispielsweise übers Internet oder durch einen Wohnungseinbruch, kann ein Kryptoanalytiker versuchen die Zeit T zu messen, die der RSA - Algorithmus zum dechiffrieren braucht und so den private key d berechnen. Meistens bedeutet eine langsame Dechiffrierungszeit als Schlüsselbit 1, eine schnell 0. Sollte es sein, dass die Zeit zum entschlüsseln für alle Schlüsselbits sehr ähnlich, jedoch nicht gleich ist, so kann der Kryptoanalytiker statistische Verfahren verwenden, um die Schlüsselbits zu unterscheiden. Der Schutz gegen timing-attack ist einfach, kostet aber zusätzliche Berechnungszeit. Man kann z. B. bei jeder Berechnung des modulo-Exponentens eine Warteschleife mit zufälliger Dauer einbauen, die die Ermittlung der Schlüsselbits stark erschwert. Eine Warteschleife erschwert zwar die Ermittlung der Schlüsselbits, aber sie schafft keine absolute Sicherheit. Warteschleifen erzeugen nämlich ein "Rauschen", welches bei der technischen Umsetzung solcher Schleife entsteht. Bei genügend Datenmenge ist es möglich, die Schleife herauszufiltern und so wieder die wahre Berechnungszeit der einzelnen Schlüsselbits zu ermitteln. Ein anderer wirkungsvoller, aber zeitraubender Schutz gegen eine timing-attack, ist es die Berechnungszeit für jeden Durchgang auf eine konstante Länge, der maximalen Durchlaufzeit entsprechende Zeit, zu vergrößern. Dieser konstante Durchlauf kostet zwar viel Zeit, lässt aber nun alle Schlüsselbits gleich aussehen und bietet so eine sehr hohe Sicherheit. Die sicherste Schutz gegen den timing-attack ist es, zu verhindern, dass der Angreifer überhaupt eine Möglichkeit bekommt die Schlüsselbits herauszufiltern. Dies wird erreicht, indem man den ciphertext c mit einer Zufallszahl r, die zwischen 0 und n - 1 liegt, multipliziert.

c = me mod n
c' = (c*r)e mod n
m' = (c')d mod n
m = (m' *r-1) mod n

Somit wird sichergestellt, dass die Berechnungszeit unabhängig vom ciphertext ist. Es gibt also keine Möglichkeit den Schlüssel d, anhand seiner einzelnen Schlüsselbits, zu bestimmen. Durch die zufällige Variation der Berechnungszeit, wird auch keine unnötige gesteigert der Gesamtzeit vorgenommen, was sehr viel Zeit kosten würde. Die einzige Schwachstelle in diesem Schutz, liegt in der Erzeugung echter Zufallszahlen. Nur durch echte Zufallszahlen, die z. B. durch physische Mittel erzeugt werden können, kann eine Sicherheit gegen den timing-attack gewähren werden. Ein weiterer Seiteneffektangriff der gegen asymmetrische, aber auch gegen symmetrische Verschlüsselung eingesetzt werden kann, ist der DPA-attack, der differential power analysis - attack ((engl.) = unterschiedlicher Stromverbrauchsanalyse). Beim DPA-attack, der auch SPA-attack (simple power analysis (engl.)= einfach Stromverbrauchsanalyse), misst der Kryptoanalytiker den Stromverbrauch des Computers bei der Ver- und Entschlüsselung und berechnet anhand der benötigten Berechnungszeit, ob es sich bei den Schlüsselbit, um eine 0 oder eine 1 handelt. Schutz gegen eine DPA-attack und generell gegen Seiteneffektangriffe, bietet kryptologische Software die solche Angriffe in ihrer Programmierung und Implementierung berücksichtigt und unterbinden.

5.4 Digitale Signaturen und Identität

Eine digitale Signatur, auch elektronische Unterschrift genannt, ermöglicht es, die Identität des Absenders einer message sowie die Datenintegrität der gesendet message einwandfrei zu überprüfen und gibt jedem Empfänger die zusätzlich die Möglichkeit die message zu verifizieren. Das Identitätsproblem, das mit dem asymmetrischen Algorithmus entstanden ist, kann auch durch ihn gelöst werden. Wie für alle Unterschriften, gelten auch für elektronische dieselben Bedingungen wie für analoge (Stift und Papier) Unterschriften.
Die Bedingungen für Unterschriften jeglicher Art (analoge / elektronische) lauten:

Nur eine elektronische Unterschrift kann diese Bedingungen zu 100 % erfüllen. Analoge Unterschrift erfüllen diese Bedingungen nicht alle und lassen in ihrer Qualität und Fälschungssicherheit zu wünschen übrig. In der Bundesrepublik Deutschland existiert seit einigen Jahren die juristische Grundlage digitale Signaturen als gleichwertige Unterschriften wie analoge zu benutzen. Dies eröffnet neue Möglichkeiten für die Wirtschaft, aber auch für jede Einzelperson. Es sind jedoch strenge gesetzliche Vorschriften an die Verwendung von digitalen Signaturen gebunden. Auf die juristischen Grundlagen und Vorschriften, die in Verbindung mit kryptologischen Verfahren entstehen, wird jedoch nicht näher eingegangen, da dies den Rahmen dieser Arbeit bei weitem sprengen würde.

Digitale Signaturen und Identität - Umsetzung

Die digitale Signierung s wird nun dadurch erzeugt, dass die message m mit dem RSA - Algorithmus (oder fast jedem anderen asymmetrischen Algorithmus) von Alice wie gewohnt verschlüsseln wird. Dafür benutzt sie jetzt aber nicht ihren public key e, sondern zuerst ihren private key d.

s = md mod n

Jede Person kann nun Alice message verifizieren, indem mit ihrem public key und ihrer digitale Signatur s die message m' entschlüsselt wird.

m' = se mod n

Es muss jetzt überprüft werden, ob m = m' ist. Da me*d mod n = m ist, folgt das m = m' sein muss. Wenn dies nicht zutrifft, handelt es sich nicht um Alice message mit ihrer elektronischen Unterschrift s, sondern um einen Manipulationsversuch der gescheitert ist.

Abbildung 9: digitale Signatur

Mit dem RSA - Algorithmus kann man also messages so signieren, dass ihr Absender alle Bedingungen für eine Unterschrift erfüllen. Bei der Unterzeichnung eine message auf diese Weise entstehen aber zwei erheblich Nachteil.

Ersten Datenmengeprobleme:
Die digitale Signatur benötigt genau soviel Speicherplatz, wie die eigentliche message, weil die gesamte message signiert wird, dass bedeute doppelt soviel Übertragungszeit und Speicherplatz.

Zweitens Zeitprobleme:
Die heutigen Signaturverfahren sind sehr langsam. Ein Durchschnittswert für die Berechnung von einer Zahl beträgt ca. eine Sekunde. Dadurch, dass das Signaturverfahren auf asymmetrischen Verschlüsselungen beruhen, wird die benötigte Rechenzeit, je nach Länge der zu signierenden message, erhöht.

Wenn die signierte message auch noch verschlüsselt werden soll, wird das Datenmengenproblem und das Zeitproblem nochmals gesteigert. Bob will seine message m an Alice schickt und sie wissen lassen, dass er es ist. Er signiert also die message mit seinem private key dB. Bob will aber auch, dass niemand seine message an Alice lesen kann, also codiert er nochmals die signierte message msB nach dem üblichen RSA - Verfahren.

sB = mdB mod n
c = msBeA mod n
m'sB = cdA mod n
m = seB mod n

Alice wird viel Zeit und Speicherplatz benötigen, damit sie Bobs messages entschlüsseln und überprüfen kann. Aufgrund der entstehenden Probleme bei der Signierung einer gesamten message, wurden schon frühzeitig alternativen entwickelt. Die gebräuchlichsten Signaturverfahren, die ebenfalls eine hohe Sicherheit für die Unterschrift garantieren sind Einwegfunktionen, Einweg-Hash-Funktion und Message-Authentication-Code (kryptographische Prüfsumme). Sie finden Anwendung sowohl bei den symmetrischen, als auch bei den asymmetrischen Algorithmen.

5.4.1 Einwegfunktionen

Einwegfunktionen sind Funktionen ƒ, die einfach zu berechnen sind, deren Umkehrfunktion ƒ-1 jedoch nicht oder nur unter enormen Aufwand möglich ist. Eine Differenzierung der Einwegfunktion ƒ ist leicht, jedoch eine passende Stammfunktionen zu ermittelt ist meistens immer unmöglich. Aus diesem Grund werden Einwegfunktionen Einwegfunktionalen genannt, denn das Differenzieren bildet Funktion auf Funktion, was bei den Einwegfunktionen nicht möglich ist, ab. Einwegfunktionen kann man sich auch als ein Telefonbuch vorstellen. Die Namen sind alphabetisch geordnet und sind einer bestimmten Telefonnummer zugeordnet. Einen Namen kann man ganz schnell und leicht eine bestimmte Nummer zuordnen. Eine Nummer hingegen einen Namen zuzuordnen ist so gut wie unmöglich. Der Mathematik sind viele solcher Einwegfunktionalen bekannt. Die bekanntesten Einwegfunktionalen sind Polynome. Alle Polynome ersten, zweiten, dritten und vierten Grades können mit speziellen Verfahren in ihre Linearfaktoren zerlegt werden. Zum Beispiel können die Nullstellen des Polynoms zweiten Grades x2 + 23x - 8 mit der p/q - Formel oder mit der quadratischen Ergänzung ermittelt und so in seine Linearfaktoren zerlegt werden. Bei Polynomen fünften und höheren Grades wurde mit der Galoistheorie bewiesen, dass kein Verfahren existiert, die die Polynome in ihre Linearfaktoren zerlegt. Das Polynom sechsten Grades:

(x +1)*(x + 3)*(x - 6)*(x - 7)*(x - 8)*(x + 11)

hat als Lösung:

x6 - 8x5 - 128x4 + 1076x3 + 1129x2 - 10974x - 11088.

Niemand könnte dieses Polynom in seine Linearfaktoren zerlegen. Auch der RSA - Algorithmus bedient sich einer Einwegfunktionalen. Die Funktion me mod n ist leicht zu berechnet. Die Umkehrfunktion, also die diskrete Logarithmusfunktion ist, wie in Kapitel 5.2 "Sicherheit des RSA" geschildert, so gut wie unmöglich. Andere einfachere aber effektive Einwegfunktionalen sind z. B. Quersummen. Die Quersumme von 231381 ist dieselbe wie die von 923211, nämlich 18. Beides ergibt dieselbe Quersumme, doch niemand könnte18 wieder in die vorherigen Komponenten zerlegen. Eine Einwegfunktionale eignen sich also als Mittel, um sie als Signaturverfahren zu benutzen, da jeder eine Einwegfunktion ƒ, aber niemand oder wen nur sehr aufwendig, die Umkehrfunktion ƒ-1 erzeugen kann. Sie finden sowohl Anwendung bei symmetrischen als auch bei asymmetrischen Algorithmen, jedoch werden sie meistens für symmetrische Verschlüsselungen eingesetzt. Sie sind nämlich anfällig gegenüber Signatur- und messagemanipulationen, denn Einwegfunktionen verschlüsseln keine messages, sondern erzeugen lediglich einen Wert, der die Identität des Absenders repräsentieren soll. Um nun den Wert einer Einwegfunktion gegen Angriffe zu schützen und generell Angriffe gegen digitale Signaturen abzuwenden, wurden die Einwegfunktion zu Einweg-Hash-Funktionen weiterentwickelt.

5.4.2 Einweg-Hash-Funktion

Die aktuellste und zugleich auch gängigste Methode um messages relativ sicher digital zu signieren, ist die Verwendung von Einweg-Hash-Funktionen, die auch schlicht Hashfunktion genannt werden. Sie werden bevorzugt und hauptsächlich beim RSA - Algorithmus und prinzipiell bei allen asymmetrischen Algorithmen eingesetzt. Hashfunktionen (to hash(engl.) = zerhacken, extrahieren) sind eine Weiterentwicklung der Einwegfunktionen, die beliebig lange messages auf einen Hash-Wert fester Länge begrenzen. Sie nutzen ebenfalls Funktionen, die leicht durchzuführen, jedoch nicht oder nur äußert schwer und aufwendig umzukehren sind. Einweg-Hash-Funktionen besitzen, im Gegensatz zu Einwegfunktionen, drei spezifische Eigenschaften. Sie heißen Kompressionseigenschaft, Einwegeigenschaft und Kollisionsfreiheit. Werden alle diese drei Eigenschaften einer Hashfunktion erfüllt, so ist die elektronische Unterschrift im hohem Maß gesichert.

Eigenschaft Nr. 1 - Kompressionseigenschaft
Messages beliebiger Länge werden auf eine kurze festgelegte Länge komprimiert. Eine Komprimierung auf 128 oder 160 Bit ist momentan üblich.

Eigenschaft Nr. 2 - Einwegeigenschaft
Zu einem vorgegebenen Komprimat (komprimierte message) existiert im Regelfall eine Vielzahl von Informationen. Es muss jedoch unmöglich sein, anhand dieser Informationen die im Komprimat enthaltenden Datensätze zu rekonstruieren. Das heißt also, dass die Signierung mit einer Hashfunktion unumkehrbar sein muss.

Eigenschaft Nr. 3 - Kollisionsfreiheit
Es dürfen keine messages existieren, die den gleichen Hash-Wert besitzen.

Zum signieren einer message mit einer Einweg-Hash-Funktion, braucht man zwei Funktionen. Eine Signierungsfunktion ƒS, die nur dem Absender möglich ist und eine Verifikationsfunktion ƒV, die, ähnlich dem public key, öffentlich bekannt ist und es so jedem ermöglicht die Echtheit einer signierten message zu überprüfen. Vor dem Verschlüsseln einer message muss jedoch zuerst Hashfunktion h gebildet werden. Die Hashfunktion h ist öffentlich und wird auf eine beliebig lange message m angewendet und ergibt so h(m). Die Funktion komprimiert die message auf eine fester Wert (durchschnittlich 128 bis 160 Bits) und erzeugt dann denn Hash-Wert m' = h(m). Die eigentliche Signierung sig der message mit der Signierungsfunktion ƒS erfolgt nun, indem nur der Hash-Wert m' durch:

sig = ƒS(h(m))

signiert wird. Die message m wird abschließend mit der Signatur s ergänzt und ergibt so die signierte message. Um nun die Echtheit der message zu überprüfen, bedient man sich der öffentlichen Verifikationsfunktion ƒV und wendet sie auf sig an, wobei das Ergebnis der Hash-Wert h(m) sein muss:

h(m) = ƒV(sig)

Gleichzeitig wird die öffentliche Hashfunktion h auf die message m angewendet. Beide Hash-Werte h(m), h(m) als Ergebnis der Verifikationsfunktion ƒV und h(m) als Ergebnis der öffentlichen Hashfunktion, werden dann miteinander verglichen. Stimmen beide überein, so handelt es sich um die unverfälschte Unterschrift des Absenders und man kann sich der Herkunft der message und der Identität des Absenders sicher sein. Stimmen sie nicht überein so handelt es sich um eine Fälschung der Unterschrift, die enttarnt worden ist. Im RSA - Algorithmus erfolgt nun die Signierung einer message mit einer Hashfunktion, indem zuerst die message m zu m' gehasht wird. Anschließend erfolgt die Signierung durch die Signierungsfunktion ƒS.

ƒS : sig = m'd mod n

Abbildung 10: Hashfunktion

Nach der Unterschreibung kann jeder die signierte message jederzeit mit der Verifikationsfunktion ƒV verifizieren.

ƒV : m' = sige mod n

Wenn z. B. Alice die message mA "Hallo Bob" übers Internet an Bob senden und ihn wissen lassen will, dass sie es ist. Zum signieren wählt Alice nun die Hashfunktion hQ, die alle Zeichen des ASCII - Codes (Kapitel X.X "Appendix") in ihren Zahlenwert umwandelt und davon die Quersumme zieht. Die ASCCI Zahlenwerte für Alice message sind {H=72; a=97; l=108; o=111; Leerzeichen=14; B=66; b=98}. Die Quersumme und somit der Hash-Wert m'A beträgt also 74. Alice signiert nun den Hash-Wert m' mit ihren private key dA = 23 und modulo 187 (p = 17, q = 11).

sigA = m'AdA mod n
sigA = 7423 mod 187
sigA = [(745 mod 187)*(745 mod 187)*(745 mod 187)*(745 mod 187)*
(743 mod 187)] mod 187
sigA = [109 * 109 * 109 * 109 * 182] mod 187
sigA = [((1092) mod 187)*((1092) mod 187)* (182 mod 187)] mod 187
sigA = [100 * 100 *182] mod 187
sigA = 1820000 mod 187
sigA = 116

Alice elektronische Unterschrift ist also sigA = 116. Ihre signierte message m' sendet sie nun umgehend an Bob, der die Echtheit sofort mit ihrem public key e = 7 und der öffentlichen Hashfunktion hQ überprüft.

m' = sige mod n
m' = 1167 mod 187
m' = [(1163 mod 187) * (1163 mod 187) * (1161 mod 187)] mod 187
m' = [7 * 7 * 116] mod 187
m' = 5684 mod 187
m' = 74

Bob erhält bei der Entschlüsselung von Alice Signatur mit ihrem public key den Wert 74. Die öffentliche Hashfunktion hQ (siehe oben) liefert ebenfalls den Wert 74. Somit kann sich Bob mit hohen Wahrscheinlichkeit davon ausgehen sein, dass Alice ihm die message gesendet hat.

Durch Einweg-Hash-Funktionen signierte messages sind also sehr sicher, aber auch nur, wenn die drei Einweg-Hash-Funktion Eigenschaften eingehalten werden. Die Kompressionseigenschaft von Hashfunktionen sorgt dafür, dass das Zeit- und Datenmengenproblem, welches bei der Signierung der gesamten message entsteht, auf ein Minimum reduziert wird. Dies wird dadurch erreicht, dass das Komprimat, also der Hash-Wert m' = h(m), zu einer Zahl reduziert wird die m' ≤ n ist. Die aus der Verschlüsselung entstehende Signatur s wird der eigentlichen message m nur hinzugefügt und erzeugt so nur eine geringe Datenvermehrung, die schnell berechnet werden kann. Die Erfüllung der Einwegeigenschaft ist sehr wichtig für die Sicherheit einer digitalen Signatur. Sollte eine Hashfunktion h nicht die Einwegeigenschaft besitzen, so kann ein Kryptoanalytiker zu einer message m eine gültige Signatur s erzeugen und Signaturfälschungen begehen. Der Kryptoanalytiker berechnet dazu eine Zahl z = se mod n. Zusätzlich berechnet er solange eine message m bis die von ihm generierte message die gewünschte gültige Signatur s des Opfers liefert. Jetzt sucht er nur noch eine message m die h(m) = z erfüllt. Hat er diese gefunden, kann er selber die gestohlene Signatur erzeugen:

h(m)d mod n = zd mod n = sed mod n = s

Kollisionsfreiheit bedeutet, dass für die Sicherheit der elektronischen Unterschrift, keine zwei oder mehr messages existieren dürfen, die den gleichen Hash-Wert haben. Ist die Hashfunktion h nicht kollisionsfrei, so kann ein Angreifer zu einer gültigen Signatur s mit h(m) eine andere message m' mit h(m') finden. Da h(m) = h(m') ist, hat der Angreifer eine absolut authentische Signatur s.

Es ist also für eine sicher Signierung von messages wichtig, dass alle Eigenschaften einer Einweg-Hash-Funktion eingehalten werden.

5.4.3 Message-Authentication-Code

Eine weitere Identitätsverifizierungsmöglichkeit ist die Verwendung von kryptographisch Prüfsummen. Solche Prüfsummen, Message-Authentication-Code (MAC) oder zum Teil auch fingerprint ((engl.) = Fingerabdruck) genannt, dienen dazu, genau wie Einwegfunktionen und Einweg-Hash-Funktionen, die Identität des Absenders zu überprüfen. Leider sind MACs nur bei symmetrischen Algorithmen sinnvoll einsetzbar, denn beide Kommunikationspartner müssen den gleichen secret key besitzen, um die message zu verifizieren. Der MAC ist nämlich eine Einwegfunktion ƒ, die auf die message m abgebildet und anschließend unverschlüsselt übermittelt wird. MACs sind dadurch anfällig gegenüber Signatur- und messagemanipulationen. Ein Kryptoanalytiker kann den MAC einfach aus der message herausextrahieren und ihn unter eine andere message plazieren. Wenn man z. B. die Quersumme eines Bankkonto als Prüfsumme nimmt, so kann ein Angreifer ganz leicht das Geld von Konto 657412398 auf sein Konto mit der Nummer 474836913 überweisen. Beide haben nämlich die gleiche Quersumme 45. Kryptographisch Prüfsummen sind also nicht kollisionsfrei und besitzen keine Einwegeigenschaft. MACs und messages werden deshalb normalerweise immer codiert, so dass nur die Kommunikationspartner mit dem gemeinsamen, geheimen secret key die message decodieren und überprüfen können. Mit MACs können lediglich die beiden Kommunikationspartner ihre Identität und die Authentizität der message überprüfen. Die größte Verwendung finden MACs im DES - Verschlüsselungsalgorithmus sowie in anderen symmetrischen Algorithmen und in technischen Produkten, wie z. B. Chipkarten.

5.4.4 Angriffe gegen die Digitale Signatur

Die Sicherheit von einsetzbaren digitalen Signaturen, die mit dem RSA - Algorithmus erzeugt werden (sig = m'd mod n), basiert auf den gleichen Problemen, die sich auch der eigentlichen RSA -Verschlüsselungsalgorithmus bedient. Diese Probleme sind die schon oft und in Kapitel 5.2 "Sicherheit des Algorithmus" erwähnten Probleme der diskreten Logarithmusfunktion und der Faktorisierung großer Zahlen.
Digitale Signaturen sind jedoch nicht ganz so sicher wie verschlüsselte messages. Sie sind sogar recht anfällig gegenüber Angriffen. Dies liegt daran, dass sie sich Hash-Werten bedienen, die von Einweg-Hash-Funktionen erzeugt werden und diese erzeugten Hash-Werte die drei Eigenschaften Kompressionseigenschaft Einwegeigenschaft und Kollisionsfreiheit nicht immer erfüllen. Das Problem ist nämlich, dass die Kompressionsverfahren zur Erzeugung von Hash-Werte bis jetzt noch nicht ihre Kollisionsresistenz mathematisch bewiesen haben, sondern lediglich gezeigt haben , dass sie bis jetzt noch nicht widerlegt worden sind! Es ist also theoretisch möglich zu angeblich sicheren Hash-Werten einen selbst erzeugten Hash-Wert m' zu erzeugen der mit m übereinstimmt.

Angriffe gegen die Digitale Signatur - Geburtstagsangriff

Ein Angriff gegen eine digitale Signatur ist der sogenannte Geburtstagsangriff. Bei diesem Angriff wird die message gegen eine andere message ausgetauscht, die jedoch den gleichen Hash-Wert liefert. Der Geburtstagsangriff wurde nach dem Geburtstag-Paradoxon benannt. Es geht darum die zwei Fragen zu beantworten. Erstens; wie viele Personen müssen in einem Raum sein, damit mit eine hohen Wahrscheinlichkeit von 1/2 eine Person am selben Tag Geburtstag hat und zweitens; wie viele Personen müssen in einem Raum sein, damit mit eine hohen Wahrscheinlichkeit von 1/2 mindestens zwei Person am selben Tag Geburtstag haben?

Frage 1 wird folgend beantwortet:

Damit mindesten eine Person x Geburtstag hat, muss die Wahrscheinlichkeit dafür x > 0.5 sein. Von Person i mit i = 1, 2,...., n sei gi der Geburtstag.

Es gilt also:

P(g1 = x g2 = x g3 = x ... gn = x)

1 - P(g1 ≠ x g2 ≠ x g3 ≠ x ... gn ≠ x)

1 - > 0.5

< 0.5

n ≥ 253

Es müßten also 253 Personen in einen Raum sein, damit eine Person am selben Tag Geburtstag hat.

Frage 2 wird folgend beantwortet:

Es werden nun also k Personen gesucht, von denen mindestens zwei am gleichen Tag Geburtstag haben.

Es gilt also:

P(g1 = x g2 = x g3 = x ... gn = x)

1 - P(g1 ≠ x g2 ≠ x g3 ≠ x ... gn ≠ x)

1 - > 0.5

Setzt man nun k(k - 1) = n, so erhält man für k

k = + k = 22,98

Damit also mindestens 2 Personen am gleichen Tag Geburtstag haben, müssen k ≥ 23 Personen im Raum sein. Für große n gilt näherungsweise k ≈ Das Geburtstag - Paradoxon zeigt also, dass Angriffe auf Hash-Werte und Hashfunktionen möglich sind. Wenn also ein Hash-Wert aus b Bit besteht, so müssen normalerweise bei vorgegebenem Hash-Wert ca. n = 2b - 1 messages überprüft und getestet werden, bis es zu Kollision kommt. Der Geburtstagangriff hingegen benötigt nur 2m/2 Überprüfungen, um mit einer Wahrscheinlichkeit von ≥ 0.5 eine Kollision zu erzielen. Beim Geburtstagangriff gilt nämlich k ≈ . Dies bedeutet:

k ≈ = = 2m/2.

Einweg-Hash-Funktionen und die erzeugten Hash-Werte können jedoch gegen einen Geburtstagangriff geschützt werden und somit als sicher gelten. Dafür muss man m so groß wählen, dass es für jeden Angreifer unmöglich oder unbezahlbar ist 2m/2 Hash-Werte zu berechnen und zu speichern. Heute werden standardmäßig Hash-Werte verwendet, die eine Länge von 128 bis 160 Bit besitzen, um eine sehr hohe Sicherheit zu garantieren. Diese langen Hash-Werte sind gegen heutige Geburtstagangriffe sicher.

5.5 Zero-Knowledge-Protokolle

Passwörter sind meistens durch Hash-Werte, MACs oder anderer Authentifikationsmerkmale geschützt. Dies bedeutet jedoch nicht, dass Passwörter sicher sind, denn Passwörter werden meistens über unsichere Kanäle in plaintextform eingegeben und übertragen. Auch die Passwörter, die mit asymmetrischen Algorithmen erzeugt wurden, welche speziell für unsicherer Kommunikationskanäle konzipiert sind, könnten entschlüsselt werden, indem die messages abgefangen und anschließen bearbeitet werden, bis das Passwort gefunden wurde. Damit nun Passwörter über unsichere Kanäle sicher übertragen werden können, entwickelte man Verfahren, die den anderen Kommunikationspartner davon überzeugen, dass man eine Geheimnis (z.B. das Passwort) kennt ohne ihm jedoch auch nur ein einziges Bit an Informationen des Geheimnisses zu übermitteln. Diese Verfahren werden Zero-Knowledge-Protokolle genannt. Die erste Verwendung eines Zero-Knowledge-Protokolles fand bereits im 16. Jahrhundert statt. Der italienische Mathematiker Niccolò Tartagila (ca. 1500 - 1557) konnte um das Jahr 1535 eine Formel entwickeln, die kubische Gleichungen (Gleichungen dritten Grades) lösen konnte. Aus Angst, dass seine Formel gestohlen werden könnte, behielt er seine Formel geheim, denn von der Antike bis ins Mittelalter wurde von einer Vielzahl von Mathematikern und Gelehrten versucht so eine Formel zu finden, die kubische Gleichungen lösen könne. Das Interesse war dementsprechend groß an Tartagila Behauptung, er hätte eine Gleichung zur Lösung kubischer Gleichungen gefunden. Der damalige italienische Rechenmeister Antonio Maria Fior stellte Tartaliga 30 Aufgaben dritten Grades, die Tartaliga lösen sollte, um seine Behauptung zu beweisen. Zu jeder der 30 Aufgaben der Form ax3+bx2+cx+d konnte Tartaliga mit seiner Formel die Lösungen (x -r)(x - s)(x - t) mit r, s, tR finden, die von Fior verifiziert wurden, indem er überprüft hat, ob

(x -r)(x - s)(x - t) = ax3+bx2+cx+d ist.

Tartaliga konnte so seine Behauptung beweisen ohne auch nur den geringsten Teil seiner Formel zu verraten. Das erste Zero-Knowledge-Protokoll der Geschichte. Jahre später weihte Tartagila Geronimo Cardano (1501 - 1576) in sein Geheimnis (die Formel für kubische Gleichungen) ein. Dieser veröffentlichte die Formel jedoch 1545. Geronimo Cardano veröffentlichte die Formel zwar unter Tartagila Namen, jedoch wird die Formel zur Lösung Gleichungen dritten Grades bis heute "Cardanische Formel" genannt.

Zero-Knowledge-Protokolle - Die magische Tür

Das Prinzip des heutigen, modernen Zero-Knowledge-Protokoll wird durch das Beispiel der magischen Tür erklärt. Alice befindet sich im Vorraum und wählt die Tür A oder B, die sie anschließend durchschreitet und hinter sich verschließt. Nun tritt Bob in den Vorraum und sagt A oder B, um damit Alice zu testen. Alice muss nun aus der Tür treten, die Bob ihr gesagt hat, um ihre Identität zu beweisen, denn nur wenn sie Alice ist, kann sie durch die richtige Tür kommen. Befindet sich Alice auf der Türseite die Bob gewählt hat, kann sie mühelos durch die besagte Tür wieder hervortreten. Befindet sie sich aber auf der andern Seite, muss Alice ihr Geheimnis, d. h. ihr Passwort eingeben, um die magische Tür durchqueren zu können und so auf der gewünschten Seite zu erscheinen. Dadurch, dass sie sich hinter der Tür A oder B befindet kann sie von niemandem beobachtet werden und so ungestört ihr Passwort eingeben. Es wird also kein Bit an Informationen über ihr Geheimnis nach außen getragen. Da aber Alice beim ersten Versuch immer mit einer Wahrscheinlichkeit von 1/2 durch die richtige Tür heraustreten kann, lässt Bob Alice mehrere Male diesen Test wiederholen, um sicher zu gehen, dass sie auch wirklich Alice ist. Es sind aber auch 10 oder 20 Testdurchläufe nicht genug, denn Alice könnte ja 10 bzw. 29-mal Glück gehabt haben. Damit sich Bob als wirklich sehr sicher sein kann, dass Alice Alice ist lässt er sie den Test n Male wiederholen. Mit wachsenden n sinkt die Wahrscheinlichkeit eines erfolgreichen Betruges auf . Bei 100 Wiederholungen diese Testes sinkt die Wahrscheinlichkeit eines Erfolges für eine Betrüger auf 2 - 100 ≈ 10 - 30.

Abbildung 11: Prinzip des Zero-Knowledge-Protokoll

Wenn sich nun Claus für Alice ausgibt, muss er n Testdurchläufe überstehen. Da er aber ihr Geheimnis (in den meisten Fällen das Passwort) nicht kennt und so die magische Tür nicht passieren kann, wird Claus nach einer sehr kurzen Zeit aus der falschen Tür heraus. Bob erkennt, dass er nicht Alice ist und unterbricht, beispielsweise bei einer digitalen Kommunikation, die Verbindung.

Das Zero-Knowledge-Protokoll schütz mit einer sehr hohen Effektivität das Passwort des Kommunikationsteilnehmer und ist zugleich eine effizient Identitätsüberprüfungsmethode.

Das Zero-Knowledge-Protokoll ist ein sehr gutes Verfahren zur Überprüfung der Identität, denn es wurde mathematisch bewiesen, dass beim Zero-Knowledge-Protokoll keine Informationen unabsichtlich bekannt gegeben werden. Bei anderen kryptographischen Verfahren zur Überprüfung der Identität glaubt man lediglich, dass die Verfahren keine Informationen verraten, jedoch wurde dies bis jetzt nicht mathematisch bewiesen! Der Beweis des Zero-Knowledge-Protokoll, er auch Zero-Knowledge-Beweis genannt wird, wird hier nicht geklärt. Es wird dafür auf [BMEK01] verwiesen.

5.5.1 Fiat-Shamir-Protokoll

Eine praktische und gute Verwirklichung des Zero-Knowledg-Protokolls, stellt das Fiat-Shamir-Protokoll dar, dass von A. Fiat, A. Shamir und U. Feige entwickelt wurde. Das Fiat-Shamir-Protokoll wird in zwei Schritte aufgeteilt. In den Schlüsselerzeugungsschritt und in den Anwendungsschritt.

Fiat-Shamir-Protokoll - Schlüsselerzeugungsschritt

Zuerst wählen Alice, wie beim RSA - Algorithmus, zwei zufällige Primzahlen p und q, die nur ihr bekannt seinen dürfen und deren Produkt die Primzahl n ergibt. Alice private key s wird dann zufällig bestimmt und ihr public key v wird durch die Formel

v = s2 mod n

berechnet. Den public key v und n gibt Alice Bob gekannt. Der private key s stellt Alices Geheimnis dar, von dem sie nichts preisgeben will und darf. Mit Hilfe von v kann Bob die Identität von Alice verifizieren, da v = s2 mod n ist und dies zeigt, ob eine Person ein Geheimnis kennt oder nicht.

Fiat-Shamir-Protokoll - Anwendungsschritt

Erster Schritt:

Alice wählt nun zufällig ein Element r aus Zn*, quadriert dies und moduliert es anschließend mit n, wobei r immer teilerfremd zu n sein muss.

x = r2 mod n.
Dann sendet Alice denn Wert x an Bob.

Zweiter Schritt:

Bob wählt dann ein zufälliges Bit b (0 oder 1) und sendet es an Alice.

Dritter Schritt:

Wenn b = 0 ist, dann berechnet Alice y = r mod n und sendet y an Bob.
Wenn b = 1 ist, dann berechnet sie y = rs mod n und sendet y an Bob.
Der Wert y muss immer teilerfremd zu n sein.

Vierter Schritt:

Nun überprüft Bob Alices gesendetes y, um so ihre Identität zu überprüfen.
Falls b = 0 ist, dann überprüft er, ob y2 mod n = x ist;
Falls b = 1 ist, dann überprüft er, ob y2 mod n = xv mod n ist.

Ende der ersten Runde.

Sollte Alice ein beliebiges y wählen, hat sie bei jeder Runde eine Wahrscheinlichkeit von 1/2 das ihr Betrug mißlingt. Damit sich Bob jedoch wirklich sicher sein kann, dass Alice Alice ist und keine unautorisierte Person die nur Glück hatte, lässt Bob Alice k-male die Runde durchlaufen. Damit sinkt die Wahrscheinlichkeit eines erfolgreichen Betruges beim Fiat-Shamir-Protokoll auf 1 - . Dies bedeutet, dass Bob entscheiden kann wie hoch die Wahrscheinlichkeit für eine erfolgreichen Betrug ist.

Viele Runden bedeutet also viel Sicherheit.

Die Sicherheit des Protokolls beruht auf der extremen Schwierigkeit der Berechnung modularer Quadratwurzeln. Die Berechnung von s = ist gleich quadratisch so schwierig, wie die Faktorisierung von n. Das Fiat-Shamir-Protokoll kann deswegen als sehr sicher und zuverlässig gelten, um die Identität eines Kommunikationspartner zu verifizieren.

5.6 Schlüsselmanagement

In allen offenen Kommunikationssystemen, in denen viele Teilnehmer vorhanden sind und die als Grundlage zur Verschlüsselung der messages ein asymmetrisches Verschlüsselungsverfahren benutzen, existieren zwei grundsätzliche Probleme.
Erstens: Wie kann Alice Bobs key erhalten, um so mit ihm kommunizieren zu können, wenn sie Bob gar nicht kennt?
Zweitens: Wie kann sich Alice sicher sein, dass der key, den sie erhalten hat, auch tatsächlich von Bob stammt?

Alice kann sich nie sicher sein, dass der public key nicht manipuliert wurde. Sie weiß nicht, ob die Hash-Werte, die öffentlichen Hashfunktionen und die digitalen Signaturen auch wirklich authentisch sind. Sie besitzt keinen Schutz gegen einen man-in-the-middle-attack oder andere kryptoanalytische Angriffe. Sie kann nicht überprüfen, ob sie und ihr Kommunikationspartner ein gemeinsames p, q, n oder e besitzen. Alice Probleme können nicht nur mit kryptologischen Methoden gelöst werden, denn ihre Probleme sind sowohl kryptologischer, als auch verwaltungstechnischer und organisatorischer Natur. Damit Alice Probleme gelöst werden können, ist ein Schlüsselmanagement erforderlich, dass die kryptologischen, verwaltungstechnischen und organisatorischen Probleme ihrer Kommunikation in offenen Kanälen löst. Je nach Anwendungszweck und Verschlüsselungsverfahren ist das Schlüsselmanagement dafür verantwortlich, dass Alice mit einem sehr hohen Niveau an Sicherheit sicher kommunizieren kann.

5.6.1 Trusted Third Party

Die Aufgaben des Schlüsselmanagement, eine sichere und zuverlässige sowie authentische Kommunikation zu garantieren, werden meistens von Trusted Third Parties (TTP) gelöst. Eine Trusted Third Party, eine dritte Partei/Instanz, die z. T. auch Trustcenter genannt wird, kann eine einzelne Person, eine Gruppe von Menschen, eine Firma oder eine Institution sein, denen alle beteiligten Gesprächsteilnehmer einer Kommunikationsrunde vertrauen. Trusted Third Party, die von staatlichen Institutionen oder Behörden eingerichtet werden, sind meistens am vertrauenswürdigsten und sichersten, da sie durch Gesetze dazu verpflichtet sind Sicherheitsstandards und Sicherheitssysteme zu benutzen, um das Datenschutzgesetz, das Signaturgesetz und andere Gesetzesvorschriften zu erfüllen und dies häufig besser tun, als private Anbieter. Die Hauptaufgaben der TTP sind, dass erstellt von Sicherheits- und Zertifizierungsstruktur. Sie ist für die Erzeugung und die Vergabe der public und private keys zuständig sowie für die Verleihung, die Verwaltung und für die Sicherheit und Authentizität des public keys zuständig, wobei diese Aufgaben von TTP zu TTP variieren können. Eine Trusted Third Party ist auch dafür verantwortlich, dass jeder Kommunikationsteilnehmer ihre Dienste auch problem- und mühelos annehmen kann. TTPs lösen aber nicht nur Probleme, die bei der Verwendung von asymmetrischen Algorithmen entstehen, sondern auch jene, die bei der Verwendung von symmetrischen Algorithmen vorkommen. Als Beispiel für eine Trusted Third Party im übertragenden Sinne dient die Post. Die Post versucht alle unsere Briefe, Pakete und sonstigen Sendungen an unseren gewünschten Partner zu senden. Sie kennt und erfüllt auch alle Gesetze und Vorschriften, die für die Versendung von Gütern notwendig sind und besitzt die erforderlichen Organisations- und Verwaltungsstrukturen. Die Post besitzt auch eine Sicherheitsstruktur die dafür sorgt, dass das Briefgeheimnis nicht verletzt wird. Es kann aber trotzdem von Zeit zu Zeit vorkommen, dass ein Brief verloren geht oder ein Paket gestohlen wird. Sowie die Post versuchen auch TTP sich immer weiter zu verbessern, um Diebstählen und sonstigen Beeinträchtigungen der Kommunikation entgegen zu wirken, damit alle Kommunikationsteilnehmer sicher ihre messages versenden können. Trusted Third Parties sind also nichts anderes als Einrichtungen, die (gleichgültig welches Verschlüsselungsprinzip verwendet wird) versuchen das Schlüsselmanagement sicher und effektiv zu lösen und benutzerfreundlich zu gestalten.

5.6.2 Schüsselgenerierung und -ausgabe

Um nun beide Probleme von Alice effektiv lösen zu können, muss jedem einzelnen Kommunikationsteilnehmer ein Schlüsselpaar, bestehend aus public und private key, zu Verfügung gestellt werden. Der erzeugte public key muss dann allen anderen Teilnehmern zugänglich gemacht werden, so daß eine Kommunikationsbeziehung jeder Zeit spontan stattfinden kann. Es ist also eine sichere und effektive Schüsselgenerierung und -ausgabe nötig, um Alice Probleme zu lösen. Die Erzeugung der Schlüsselpaare kann auf zwei Arten erfolgen. Die erste Möglichkeit ist, dass jeder Kommunikationsteilnehmer sein Schlüsselpaar selbst erzeugt und bei Bedarf seinen public key an seinen Kommunikationspartner sendet. Diese Methode ist sehr einfach, da jeder Kommunikationsteilnehmer für die Sicherheit seines public keys selbst verantwortlich ist. Es entstehen aber auch sehr viele Sicherheitsdefizite, denn die public keys sind nach wie vor gegen kryptoanalytische Angriffe ungenügend gesichert. Die meisten der Kommunikationsteilnehmer verfügen nämlich nicht über die Kenntnisse, wie sie ihren public key sicher und authentisch gestalten müssen. Viele asymmetrische Verschlüsselungsalgorithmen (die computertechnischen Umsetzungen, nicht die mathematischen Theorien) sind gar nicht oder nur gegen das Bezahlen eine Lizenzgebühr erhältlich. Der RSA - Algorithmus war z. B. bis zum September des Jahres 2000 patentiert. Erst danach war er für jedermann frei erhältlich. Die zweite Möglichkeit ist, dass sich die Kommunikationsteilnehmer an eine Trusted Third Party wenden und diese damit beauftragen für sie die Schlüsselpaare zu erzeugen. Diese Methode der Schüsselgenerierung und -ausgabe ist, wenn es sich bei der gewählten TTP um eine seriöse Einrichtung handelt, die sicherste sowie effizienteste Lösung und bietet viele Vorteile. Die TTPs verfügen nämlich über die technischen, organisatorischen und personellen Qualifikationen, um die public keys für die Kommunikationsteilnehmer sicher und authentisch zu generieren und anschließend gesichert an sie zu übermitteln. Sie besitzen außerdem die benötigten Algorithmen und die entsprechenden Verwaltungsstrukturen. Die Schüsselgenerierung und -ausgabe muss auch nicht zwangsläufig in einer Zentrale stattfinden, denn die Erzeugung der Schlüsselpaare und ihre Verteilung kann man als zwei unterschiedliche Aufgabenbereiche betrachten. Wenn nun die Generierung und Ausgabe der Schüsselpaare voneinander getrennt stattfinden soll, muss eine zusätzliche sichere interne Kommunikationsmöglichkeit für die TTP eingerichtet werden. Die räumliche und organisatorische Trennung zwischen Schüsselgenerierung und Schlüsselausgabe erfordert zwar einen höheren Sicherheitsaufwand der TTPs, bewirkt jedoch, dass die Sicherheit der public und private keys sowie des gesamten Kryptosystem, gesteigert wird, denn die Schlüsselausgabe ist lediglich eine verwaltungstechnische Aufgabe, die Schlüsselgenerierung ist jedoch der empfindlichste Aspekt der gesamten Sicherheitsstruktur. Sollte ein kryptoanalytischer Angriff auf die schlüsselgenerierende Abteilung erfolgreich sein, was durch sehr starke Sicherheitssysteme sehr selten passiert oder durch fehlerhafte interne Verwaltung, also durch menschliches Versagen, ein Zugang zu den Schüsselpaaren besteht, muss die TTP ihre gesamte Sicherheitsinfrastruktur umgestalten. Es ist also für eine Steigerung der Sicherheit und eine Verringerung der menschlichen Fehler nötig die Schüsselgenerierung von der Schlüsselaufgabe zu trennen.
Als Beispiel für die Schlüsselgenerierung und -ausgabe dient wieder im übertragenden Sinne die Post. Die von der Post hergestellt Briefmarken erfüllt die Aufgaben eines Schlüssel, denn nur Sendungen, die eine Briefmarke besitzen werden versendet. Der Kauf der Briefmarken findet am Postschalter oder am Briefmarkenautomat satt, die Herstellung der Briefmarken erfolgt jedoch in einer eigens dafür eingerichteten und abgesicherten Einrichtung satt. Die Briefmarkenherstellung und -ausgabe findet also an unterschiedlichen Orten statt. Dies ist auch verständlich, da Briefmarken einen entsprechenden Geldwert besitzen und dieser vor Fälschungen also vor Wertverfall geschützt werden muss. Eine Verwirklichung der Schüsselgenerierung und -ausgabe wird beispielsweise im Internet durch das Einrichten spezieller Server, sogenannter public key server, bewerkstelligt. Auf den public key server sind alle public keys der Kommunikationsteilnehmer, die sich dort haben eintragen lassen, gespeichert. Die TTP, die die public key server eingerichtet hat, trägt dafür die Verantwortung, dass jeder auf den public key server zugreifen (lesen), jedoch nicht eingreifen (schreiben), also manipulieren kann. Zum Schutz der Daten verwendet die TTP Verschlüsselungsalgorithmen, richtet aber gleichzeitig ein Benutzer - Interface, so dass die Kommunikationsteilnehmer auf die public keys zugreifen können ohne zu wissen, dass diese geschützt sind. Die Sicherung der public keys kann auf mehrere Arten erfolgt. Die sicherste Methode um benutzerspezifischer Daten zu schützen, ist die Verwendung von digitalen Signaturen, Hash-Werten, MACs und anderen Identifikationsverfahren, die von der Trusted Third Party erstellt werden.

5.6.3 Zertifizierungsinstanz

Um die Integrität des public key und gegebenenfalls auch die des private keys zu sichern und die Identität des Kommunikationspartners verifizieren zu können, müssen Informationen bereitgestellt werden, die den public key eines Teilnehmers mit dessen Identität in Verbindung bringen. Es werden innerhalb der Trusted Third Party Zertifizierungsinstanz gebildet die, je nach Verwendungszweck, durch die Erzeugung von digitale Signaturen, öffentlichen Hashfunktionen, Zero-Knowledge-Verfahren und anderen Methoden, dafür sorgen, dass eine verläßliche Identitäsprüfung stattfinden kann. Die digitalen Signaturen, Hash-Werte und sonstigen Identitätsnachweise die meistens mit dem private key des Kommunikationsteilnehmer erzeugt wurden, werden anschließend bei der Zertifizierungsinstanz gespeichert. Identitätsmerkmale und Identitätsprüfverfahren sind in Kapitel 5.4"Digitale Signaturen" uns Kapitel 5.5 "Zero-Knowledge-Verfahren" genauer erklärt. Bei jeder Kommunikation zwischen Alice und Bob kann sich Alice an eine Bobs TTP wenden. Diese sendet Alice den von ihnen verifizierten public key mit den zugehörigen Verifizierungsverfahren (z. B. öffentliche Hashfunktionen). Alice überprüft mit Bob zusammen und anschließend selber, ob Bobs Identität auch wirklich authentisch ist. Alice Sicherheit baut also auf der Vertrauenswürdigkeit der Zertifizierungsinstanz auf. Sollte Alice nun dieser einen TTP, mit ihrer Zertifizierungsinstanz, nicht trauen oder nicht kennen, kann sie sich, um sich Sicherheit über Bobs Identität zu verschaffen, an weitere TTPs und ihre Zertifizierungsinstanz wenden. Von den anderen Zertifizierungsinstanz kann sie ebenfalls Bobs verifizierten public key mit den zugehörigen Verifizierungsverfahren erhalten. Alice erhält so eine Vielzahl von Zertifikaten, die ihr eine hohe Sicherheit geben, dass Bob auch wirklich Bob ist. Sie hofft nämlich, dass mindestens eines der Zertifikate auch wirklich authentisch ist. Auch die Zertifizierungsinstanz kann anhand des Postbeispiels versinnbildlicht werden. Die Post verifiziert die Echtheit der Briefmarke (des Schlüssels) mit einem Stempel, einem Zeichen, dass nur sie vergeben kann. Der Empfänger der Postsendungen vertraut dem Siegel der Post und so der Echtheit des Briefes. Der Stempel der Post ist im übertragenden Sinn auf die Kryptologie eine elektronische Unterschrift die eine TTP ausgestellt hat. Die Zertifizierungsinstanz kann die Aufgaben der Schlüsselgenerierung und -ausgabe übernehmen, da sie die Identitätsmerkmale, um Zeit, Arbeit und sonstige Ressourcen zu sparen, schon bei der Generierung der Schlüsselpaare eingearbeitet werden könnten. Es sollte jedoch nur die von Schlüsselgenerierung und Zertifizierungsinstanz zusammengefasst werden und eine Trennung von der Schlüsselausgabe stattfinden, um wie bei der Schüsselgenerierung und -ausgabe die Sicherheit des gesamten Kryptosystem zu steigern. Da die Authentizität des public keys einer der wichtigsten Sicherheitsaspekte ist, wird die Zertifizierungsinstanz als eigentliche Hauptaufgabe der TTP betrachtet. Trusted Third Parties, die innerhalb ihrer eigenen Strukturen eine aufwendige hierarchisch von Zertifizierungsinstanzen aufbauen, werden auch als Certification Authority (CA) genannt und zum Teil mit der TTP gleichgesetzt. Diese Zertifizierungshierarchie ändert aber nichts an der Tatsache, dass Kommunikationsteilnehmer, die die Certification Authority nicht kennen oder ihr nicht trauen, sich weitere Zertifikate von anderen Trusted Third Parties bzw. Certification Authority besorgen. Je mehr beglaubigte Zertifikate ein Kommunikationsteilnehmer vorweisen kann, umso sicherer können sich alle seine Kommunikationspartner sein, dass seine Identität authentisch und nicht vorgetäuscht ist. Das Fälschen eines Zertifikates (z. B. eine digitale Signatur) ist schon schwierig und erfordert Aufwand. Der Versuch jedoch alle Zertifikate fälschen zu wollen, ist so gut wie unmöglich, da alle TTP unterschiedlich Sicherheitssysteme und -strukturen besitzen, die die Schwierigkeit und den Aufwand zum Fälschen enorm Steigern. Die momentan erforderlichen Sicherheitsstandard werden nämlich (normalerweise) von den Trusted Third Parties erfüllen. Sie passen sich auch relativ schnell, den steigenden Möglichkeiten der Kryptoanalytiker an und versuchen so ein Gleichgewicht zu halten.

Das Schlüsselmanagement in Public-Key-Verschlüsselungsverfahren kann also von Trusted Third Parties sicher, effektiv und benutzerfreundlich umgesetzt werden, so dass eine sichere Kommunikation zwischen den Teilnehmern stattfinden kann.


6 Die MedI-Karte

Wir stellen nun die von uns entwickelte Patienten - Karte, die MedI-Karte vor und erläutern die von uns aufgestellte Infra- und Sicherheitsstruktur. Es handelt sich dabei um eine Theorie zur Datensicherung und zur Datenverwaltung sowie Datenorganisation. Sollte Interesse an einer praktischen Umsetzung entstehen, so muss die technische und informatische Umsetzung durch Mathematikern, Informatikern und Ingenieuren erfolgen. Es werden Begriffe benutzt, welche auf die zuvor erklärten modern Kryptologie zurückgreifen. Es wird daher empfohlen zuerst die oben stehenden kryptologischen Unterlagen durchzulesen.

6.1 Einleitung

In allen Bereiche des Lebens, ob nun privat oder öffentlich, existieren Geheimnisse. Jeder Mensch, jede Gruppe und jede Institution haben Geheimnisse. Diese Geheimnisse sind Informationen, die nicht bekannt werden dürfen, denn es kann sich bei diesen Informationen beispielsweise um Kriegspläne, Bankgeheimnisse, medizinische Daten, Konto - PIN - Nummern oder andere sensible Daten handeln. Mit modernen kryptologischen Mitteln (computertechnischen Mitteln) wird versucht diese Geheimnisse auch weiterhin geheim zu halten. Es existieren jedoch Bereiche, die gegen kryptoanalytische Angriffe mit modernen kryptologischen Mitteln nur sehr schwer zu schützen sind oder solche die nicht ausreichend geschützt werden können. Dies ist meistens der Fall, wenn die zu schützenden Information von vielen Teilnehmern benutzt wird. Ein Beispiel sind PIN - Nummern von EC - Karten. Der Schutz der PIN - Nummern von EC - Karten ist sehr schwierig, denn die Anzahl möglicher Passwörter ist aufgrund des verwendeten Algorithmus (häufig wird der DES - Algorithmus, ein symmetrischer Verschlüsselungsalgorithmus benutzt) begrenzt. Dies führt dazu, dass mehrere Kontoinhaber dieselbe PIN -Nummer haben ohne voneinander zu wissen. Die Sicherheit basiert also, neben der Sicherheit des Algorithmus, darauf, dass die Kontoinhaber ihre PIN - Nummer geheim halten und nicht von den anderen Kontoinhaber mit derselben PIN - Nummer wissen. Ein anderer Bereich, der ebenfalls sehr schwer zu schützen ist, weil viele Menschen daran beteiligt sind, ist der effektive Schutz von medizinischen Daten. Die momentane Situation ist, dass die medizinischen Unterlagen eines Patienten verstreut bei den Ärzten, bei denen er jemals zu Besuch war, vorliegen und diese unterlagen der ärztlichen Schweigepflicht und dem Datenschutzgesetz unterliegen. Überdies werden die medizinischen Unterlagen im Regelfall nach einer gewissen Frist (meistens 10 Jahre) vernichtet, so dass keine vollständige Krankengeschichte des Patienten vorhanden ist. Eine effektive, Zeit und Geld sparende sowie auf den Patienten abgestimmte Behandlung ist also nicht möglich. Durch das fehlen des Zugriffs auf die komplette Krankengeschichte verschreiben Ärzte Medikamente, die der Patient nicht verträgt, wodurch der Patient nochmals zum Arzt muss und wieder neue Medikamente bekommt oder Ärzte verschreiben dem Patienten Medikamente, die eine sehr ähnliche Wirkung haben, wie diejenigen Medikament, die der Patient schon von einem anderen Arzt verschrieben bekommen hat. Das fehlen des Zugriffs auf die Krankengeschichte kann also dazu führten, dass der Patienten durch die Medikamente, die ihm eigentlich heilen sollen, krank wird. Durch das fehlen des Zugriffs auf die Krankengeschichte werden aber nicht nur Medikamente falsch verschrieben, sondern es werden auch unnötige und z. T. auch absolut falsch Behandlungen und Therapien angeordnet. Dies sind auch einige der Gründe, warum die Krankenkassen momentan in einer Finanzkrise sind, denn falsche Behandlungen verursachen Kosten. Damit nun eine effektive, Zeit und Geld sparende sowie auf den Patienten abgestimmte Behandlung möglich werden kann, ist es nötig die medizinischen Unterlagen eines Patienten zu digitalisieren und am besten auf einer Karte (mobiler Datenspeicher), einer sogenannten Patienten - Karte, zu speichern. Das Bundesministerium für Gesundheit arbeitet zurzeit an so einer Patienten - Karte, jedoch sind noch Fragen der Finanzierung, der Sicherung der Daten, des Datenschutzes sowie der Verwaltung und Organisation offen.

6.2 Inhalt der MedI-Karte

Damit einen Patienten optimal behandelt und versorgt werden können, müssen alle medizinischen relevanten Daten auf einer einzigen Karte, der MedI-Karte, gespeichert werden. Die MedI-Karte, die "Medizinische Identitätskarte", muss mindesten folgende medizinische Daten enthalten:

Diese Daten (die in nicht all zu ferner Zukunft) auf sehr kleinen hoch leistungsfähigen Datenspeicher, gespeichert werden könnten, müssen natürlich geschützt werden. Die MedI-Karte muss also auch über ein Sicherheitssystem verfügen, welches dafür sorgt, dass die Daten vor unautorisierten Zugriff geschützt sind. Zum Schutz der Daten werden moderne kryptologische Verfahren verwendet. Es werden u. a. der RSA - Algorithmus, ein symmetrischer Algorithmus zur Verschlüsselung und digitale Signaturen, MACs und andere Methoden zur Identitätsprüfung verwendet. Die Patienten erzeugen ihre public, private und secret keys in Zusammenarbeit mit einer staatlichen Institution (z.B. mit dem Bundesministerium für Gesundheit). Die staatliche Institution nimmt so die Rolle einer Trusted Third Party ein, die für die Authentizität und Unverfälschbarkeit der keys und die Sicherheit des Kryptosystems verantwortlich ist. Dies hätte u. a. den Vorteil, dass die Herstellung und Verteilung der MedI-Karte, gleichgültig in welcher wirtschaftlichen Situation sich der Patienten befindet, immer erfolgen kann. Wäre die TTP nicht staatlich, sondern eine privat Einrichtung, so könnte sie einen beliebigen Preis für die Herstellung fordern, den nicht alle zahlen könnten, was im Endeffekt dazu führen würde, dass nur noch die Wohlhabenden sich eine MedI-Karte und so eine bessere medizinische Versorgung leisten könnten. Es würde also eine Zwei-Klassen-Medizin entstehen. Die Herstellung der MedI-Karte müsste genauso erfolgen, wie die Herstellung und Verteilung des Personalausweise. Dieser Aspekt wird in Kapitel 6.4 "Sicherheitskonzept" genauer behandelt.
Die MedI-Karte enthält also die gesamte Krankengeschichte des Patienten, die Behandlung der Krankheiten, die Notfalldaten sowie der Verwaltungsdaten und die Sicherheitsdaten, die für eine Verschlüsselung nötig sind.

Anhand einer veranschaulichen Grafik wird der Inhalt der MedI-Karte dargestellt.

Abbildung 12: Inhalt der MedI-Karte

6.3 Infrastruktur

Die sensiblen medizinischen Daten des Patienten, die auf der MedI-Karte enthalten sind, müssen Medizin- und Verwaltungspersonal zugänglich gemacht werden, damit eine optimale Behandlung des Patienten stattfinden kann. Diese Medizin- und Verwaltungspersonal umfasst:

Alle diese Gruppen von Menschen würden mit den medizinischen Daten des Patienten in Kontakt kommen, wenn diese nicht verschlüsselt währen. Auf die Verschlüsselung der Daten wird in Kapitel 6.4 "Sicherheitskonzept" eingegangen. Damit die Geheimhaltung der medizinischen Daten auch gewährt werden kann, ist eine entsprechende Infrastruktur nötig, welche eine Sicherheitshierarchie für das Medizin- und Verwaltungspersonal enthält. Diese Sicherheitshierarchie verteilt die Lese- und Schreibberechtigung der Gruppen, die nun im Anschluß dar- und vorgestellt stellt wird.

An der Spitze der Sicherheitshierarchie steht der Patient, der die medizinischen Daten mit seinem Passwort entschlüsseln kann. Er ist ja auch derjenige, der seine MedI-Karte, also seine medizinische Identität, vergibt.

Die Ärzte stehen in der Hierarchie unmittelbar hinter dem Patienten, da sie es sind, die die Behandlung vornehmen. Es findet jedoch eine Unterteilung in Hausärzte (z.B. Allgemeinmediziner, Kinderärzten, Internisten u.ä.) und Fachärzte (z.B. Neurologen, Kardiologen, Orthopäden u.ä.) statt, wobei die Hausärzte über den Fachärzten stehen. Die Hausärzte haben den Zugang zu allen medizinischen Unterlagen, die Fachärzte nur den Zugriff zu ihrem fachspezifischen Bereich. Dies soll keine Diskriminierung der Fachärzte sein. Es soll vielmehr die Privatsphäre des Patienten schützen, denn ein Patient, der beispielsweise zu einem Augenarzt geht, will nicht, dass dem Augenarzt seine Hauterkrankung oder Inkontinenz oder sonstige Krankheit bekannt werden, die nichts mit dem Aufgabenbereich des Augenarzt zu tun haben. Einem Hausarzt hingegen vertraut der Patient alle seine Erkrankungen an. Aus diesen Gründen findet eine unterschiedliche Zugriffsberechtigung zwischen Hausärzten und Fachärzten statt. Die Ärzte (Haus- und Fachärzte) können Änderungen am Inhalt der medizinischen Unterlagen, die auf der MedI-Karte gespeichert sind, vornehmen. Sie können Therapien verordnen, den Verlauf und die Behandlung von Erkrankungen dokumentieren und für jeden einzelnen Patienten, seine individuellen Notfalldaten (Allergien, Blutgruppe, benötigte und z. Z. konsumierte Medikamente etc.) in die MedI-Karte eingeben. Die Fachärzte erhalten den Zugriff auf ihre fachspezifischen Bereiche sowie Zugriff auf für die Behandlung wichtige Bereiche, wie z. B. Medikamente, Impfpass, Allergien, Notfalldaten und ähnliches.

Das Krankenhauspersonal, das in der Hierarchie unter den Ärzten steht erhält Zugriff auf die allgemeinen Personaldaten (Name, Anschrift, Krankenkasse; Inhalt der jetzigen Krankenkassenkarten) und die gesicherten Notfalldaten (GS - Notfalldaten). Gesicherte Notfalldaten bedeutet, dass die Notfalldaten des Patienten vom Krankenhauspersonal gelesen werden könne, dass sie jedoch nicht in der Lage sind diese zu ändern. Dies ist nämlich nur ein Arzt. Das Krankenhaus hat ebenfalls Zugriff auf die "Krankenhaus Behandlung" und beauftragen Ärzte, die den Patienten behandeln sollen. Mit der "Krankenhaus Behandlung" sind Daten, Befunde und Behandlung (die den Patienten betreffen) gemeint, die anschließen dem weiter behandelnden Arzt zu Verfügung gestellt werden müssen. Damit soll insgesamt eine effiziente Krankenhaus Behandlung des Patienten möglich gemacht werden.

Am unteren Ende der Hierarchie stehen die Ambulanzkräfte. Die Ambulanzkräfte haben nur eine Zugriffsberechtigung auf die, wie bei den Krankenhäuser erwähnt würde, gesicherten Notfalldaten.

Ganz unten in der Sicherheitshierarchie steht die Verwaltung, die einen Lese- und Schreibzugriff auf die allgemeinere Personendaten haben. Unter dem Begriff "Verwaltung" sind die Krankenkassen, Praxispersonal und andere Gruppen gemeint die lediglich auf die allgemeinere zugreifen, wie es momentan bei der jetzigen Krankenkassenkarte der Fall ist. Dies ist ein sehr wichtiger Aspekt der Infrastruktur der MedI-Karte, denn dadurch, dass die Verwaltung nur einen Lese- und Schreibzugriff auf die allgemeinere Personendaten hat, kann sie einen Patienten aufgrund seiner Krankengeschichte nicht ablehnen zu behandeln. Krankenkassen z. B., die die Krankengeschichte des Patienten nämlich einsehen könnten, könnten Patienten ablehnen zu versichern, aus Angst vor den Kosten, die ein oft krank werdender Patient verursacht. Es ist also sehr wichtig, dass die Verwaltung nur eine Lese- und Schreibzugriff auf die allgemeinere Personendaten erhält, damit keine Zwei-Klassen-Medizin oder sonstige Benachteiligungen der Menschen entstehen.

Die folgende Grafik zeigt ausführlich die Infrastruktur und Zugriffsberechtigung der verschiedenen Gruppen sowie nochmals die medizinischen Unterlagen des Patienten.

Abbildung 13: Infrastruktur und Zugriffsberechtigung

6.4 Sicherheitskonzept

Der wichtigste Aspekt der MedI-Karte ist die sichere Verschlüsselung der medizinischen Unterlagen, denn nur durch eine sichere Verschlüsselung der Patientendaten kann eine effektive, Zeit und Geld sparende sowie auf den Patienten abgestimmte Behandlung überhaupt erst möglich sein.

Das Sicherheitskonzept beinhaltet fünf Bereiche:

Sicherheitskonzept - Schlüsselerzeugung und Schlüsselwahl

Die Schlüsselgenerierung sowie die Schlüsselausgabe erfolgt in der staatlichen Trusted Third Party vor Ort. Der Patient soll nämlich nur eine MedI-Karte bekommen können, wenn er schon vor ihrer eigentlichen Herstellung, seine Identität (durch den Personalausweis) einwandfrei nachweise kann. Es werden (nach der Überprüfung der Identität (Personalausweis)) unter der Verwendung von symmetrischen und asymmetrischen (RSA) Algorithmen public, private und secret keys erzeugt, wobei die Schlüssellänge des public key mindestes 512 und die des secret keys mindesten 80- Bit umfassen muss. Der public key wird von der staatlichen TTP erzeugt, denn der public key soll eindeutig mit der Identität des Patienten in Verbindung gebracht werden können. Dadurch, dass der public key von der TTP erzeugt wird, können Sicherheitslücken, wie z. b. die Wahl eines zu kleinen public key Wertes ausgeschlossen werden und die Wahl von gemeinsame p, q, e, oder n stark minimiert werden. Der beim RSA - Algorithmus entstehende private key wird für spätere Erzeugung von Identifikationsmerkmalen verwendet. Der secret key wird in zusammen Arbeit mit der staatlichen TTP erzeugt, wobei der secret key ein vom Patienten selbst gewählter (mindestens 80- Bit lang) Wert ist.

Sicherheitskonzept - Identitätsüberprüfung

Der bei der Schlüsselerzeugung entstandene private key wird für die Erzeugung von mehreren digitalen Signaturen (die alle Regeln von digitalen Signaturen erfüllen), die Hashfunktionen benutzen, verwendet. Nach der Erzeugung der elektronischen Unterschriften, werden diese auf der MedI-Karte gespeichert und der private key wird anschließend mit dem One-Time-Pad (genaueres siehe unten) verschlüsselt auf der MedI-Karte gespeichert. Es ist also sehr wichtig, dass der private key nicht bekannt werden darf, damit die digitalen Signaturen auch wirklich authentisch sind. Zu den elektronischen Unterschriften werden Verifikationsfunktion hinzubegeben, welche die digitalen Signaturen verifizieren sollen. Eine weitere Identitätsüberprüfung findet durch das Fiat-Shamir-Protokoll, das einen Zero-Knowledge-Beweis verwendet, statt. Das Fiat-Shamir-Protokoll verwendet den private key, nachdem er zuvor entschlüsselt worden ist. Die Verschlüsselung wird im nächsten Abschnitt behandelt. Die letzte Identitätsüberprüfung findet durch MACs statt, die dem gewählten secret key des Patienten von der staatlichen TTP hinzugefügt werden.

Sicherheitskonzept - Verschlüsselung

Die eigentliche Verschlüsselung der medizinischen Unterlagen erfolgt durch eine Hybridsystem (symmetrischen und asymmetrische Algorithmen), bei dem der Schwerpunkt der Verschlüsselung auf einem symmetrischen und der Schwerpunkt der Identitätsüberprüfung auf einem asymmetrischen (RSA) Algorithmus beruht. Die medizinischen Unterlagen werden zuerst mit einem symmetrischen Algorithmus verschlüsselt, der sehr viel von Kerckhoffs und Shannons Maximen erfüllt sollte und der eine secret key k1, der mindesten 80-Bit lang ist und durch echte Zufallszahl erzeugt wurde, verwendet. Dieser key k1 wird nun mit dem One-Time-Pad Verfahren codiert, wobei als Chiffrierungskey k2 der vom Patient selbst gewählte secret key k2 benutzt wir. Anschließend wir der codierte secret key k1 auf der MedI-Karte gespeichert. Damit ist die Codierung der medizinischen Daten abgeschlossen. Es ist nun wichtig vor der Entschlüsselung der medizinischen Daten die Authentizität des secret key k2 und somit die Identität des Patienten mit digitalen Signaturen, dem Fiat-Shamir-Protokoll und MACs zu überprüfen. Für zwei von drei Identitätsprüfverfahren benötigt man den auf der MedI-Karte gespeichert private key. Der Chiffrierungskey für das One-Time-Pad, welches den private key schützt, ist der gleiche key wie beim verschlüsseln der medizinischen Unterlagen, also der selbst gewählten secret key k2 des Patienten. Es ist also von extremer Wichtigkeit für die Sicherheit des gesamten Kryptosystem und für den Schutz der medizinischen Unterlagen, dass der vom Patienten gewählte secret key k2 geheim und nur dem Patienten bekannt ist. Nachdem der private key durch den secret key k2 entschlüsselt worden ist, wird er für das Fiat-Shamir-Protokoll zur Überprüfung der Identität verwendet und parallel dazu werden die staatlichen digitale Signaturen mit den Verifikationsfunktion und dem public key überprüft. Wenn der entschlüsselte private key und die damit verbundenen Identitätsprüfverfahren allen Überprüfungen (ohne einen Zwischenfall, wie z.B. falsche Signatur = gefälschte Identität) standhält, findet die letzte Stufe der Identifikation durch MACs statt. Es werden die MACs des secret key k2 aber erst überprüft nachdem die digitale Signaturen und das Fiat-Shamir-Protokoll durchgeführt und verifiziert worden sind. Sollten dann alle Identitätsprüfverfahren erfolgreich erfüllt worden sein, wird der secret keys k2 zur Entschlüsselung des durch das One-Time-Pad gesicherten secret keys k1 verwendet. Der decodiert secret key k1 kann nun die verschlüsselten medizinischen Daten entschlüsselt und so wieder zugänglich machen.

Sicherheitskonzept - MedPI-Karte

Der Schutz der medizinischen Daten beruht aber nicht allein auf dem Verschlüsselungsverfahren der MedI-Karte. Währe dies nämlich der Fall, so könnten Patienten, da ja nur sie den secret key zum entschlüsseln kennen, ihre medizinischen Unterlagen einlesen und nach Interesse manipulieren. Damit diese Möglichkeit verhindert werden kann und um generell die Sicherheit und Authentizität der medizinischen Unterlagen zu steigern, sind Änderungen am Inhalt der MedI-Karte nur möglich, wenn sie in Zusammenarbeit mit dem Medizin- und Verwaltungspersonal (Kapitel 6.3 "Infrastruktur") erfolgen. Das Medizin- und Verwaltungspersonal benötigt aber natürlich auch eine Möglichkeit ihre Identität dem den Patienten gegenüber zu beweisen. Dies wird durch die MedPI-Karte, die "Medizinische Personen Identitätskarte", erreicht. Der Inhalt der MedPI-Karte wird von der gleich staatlichen Institution erzeugt, die auch für die Erzeugung der MedI-Karte verantwortlich ist. Die Schlüsselerzeugung und Schlüsselausgabe ist für das Medizin- und Verwaltungspersonal dieselbe wie für den Patienten. Auch die Verschlüsselungsverfahren und Identifikationsprüfmethoden sind die gleichen, wie auf der MedI-Karte. Anstatt der medizinischen Unterlagen sind aber auf der MedPI-Karte die Daten "Medizinisches Personal" gespeichert. Unter dem Begriff "Medizinisches Personal" sind folgende Daten zu verstehen:

Arztdaten

Ambulanzkräfte

Verwaltungskräfte

Die auf der MedPI-Karte gespeichert Daten sind (im Gegensatz zu den Daten der MedI-Karte) statistisch, denn sie werden nur einmal erzeugt und bleiben dann für eine befristete Zeit) unverändert. Es wird empfohlen die Datenintegrität und die Zulassung der einzelnen Gruppe (Ärzte, Ambulanzkräfte etc.) spätestens alle fünf Jahre zu überprüfen. Um nun die "medizinischen Unterlagen", die "gesicherten Notfalldaten", die "allgemeinen Personaldaten" oder die "Krankenhaus Behandlung" Daten einlesen und gegebenenfalls verändern zu können, müssen sich zuerst der Patient und das Medizin- bzw. Verwaltungspersonal sich gegenüber der MedI- bzw. der MedPI-Karte identifizieren. Wenn sich der Patient und das Medizin- bzw. Verwaltungspersonal gegenüber ihren Karten positiv identifiziert haben, findet der nächste Schritt, nämlich die gegenseitige identifizieren, statt. Die gegenseitige identifizieren wird durch weitere Identitätsprüfverfahren, z. B. durch zusätzlich Fiat-Shamir-Protokoll und durch technische Barrieren erschwert. Auf die technischen Barrieren wird im nächsten Abschnitt "Mechanischer Schutz" eingegangen. Für die Sicherheit und Authentizität der medizinischen Unterlagen kann also nur garantiert werden, wenn eine zusätzliche gegenseitige Überprüfung durch eine staatliche anerkannte und überprüfte Person stattfinden kann. Die nächste Grafik zeigt noch mal den Inhalt der MedPI-Karte.

Abbildung 14: Inhalt der MedPI-Karte

Sicherheitskonzept - Mechanischer Schutz

Eine ebenfalls nicht zu verachtende Sicherungsmöglichkeit für die medizinischen Unterlagen, stellt der mechanische Schutz der Karte selbst dar, denn wenn man es noch nicht einmal schafft das Äußere der MedI- bzw. MedPi-Karte zu fälschen, dann wird man auch nicht an den Inhalt nicht gelangen können. Die MedI- und MedPi-Karte müssen unter mindestens genauso strengen Sicherheitsvorkehrungen und Sicherheitsaufwand hergestellt werden, wie der Personalausweis. Es müsste also für eine hohe Authentizität der MedI- und MedPi-Karte Sicherheitshologramme, Kennummern, das Passbild (am besten mit gesichtsspezifischen Merkmalen) und die Unterschrift des Patienten bzw. des Medizin- bzw. Verwaltungspersonals auf dem Äußeren der Karten vorhanden sein. Eine von der Norm abweichende und daher höchstwahrscheinlich gefälschte Karte, würde sofort auffallen. Die Konstruktion des Chips sowie des Datenspeichers stellt eine weitere physische Sicherheit dar. Sie müssen so hergestellt werden, dass der Versuch illegale Kopie herzustellen schnell auffällt. Es ist auch ein spezielle Lesegerät nötig welches die MedI- und MedPI-Karten lesen kann und welches eine gegenseitige Überprüfung der Identitäten durchführen kann erforderlich. Auch dieses Lesegerät müsste so hergestellt werden, dass der Versuch illegale Kopie herzustellen schnell auffällt. Für die Sicherheit der MedI- und MedPI-Karte sind also auch die Schutzmöglichkeiten durch mechanische Mittel wichtig und deshalb zu vergessen.

Sicherheitskonzept - Aufbewahrung

Die medizinischen Unterlagen werden an insgesamt drei Orten gespeichert gelagert.
Erstens: Auf der MedI-Karte.
Zweitens: Verstreut auf die Ärzte, bei denen ein Patient jemals war.
Drittens: In einem Zentralen Rechner auf dem alle medizinischen Unterlagen als Backup Dateien vorhanden sind.

Die ersten beiden Aufbewahrungsorte sind bekannt und werden nicht weiter behandelt. Der dritte Aufbewahrungsort wird genauer betrachtet. Die Aufbewahrung der medizinischen Unterlagen an einem Zentralen Ort hat sowohl Vor- als auch Nahteile. Vorteile sind unter anderem, dass man beim Verlust oder Diebstahl seiner MedI-Karte alle seiner medizinischen Unterlagen vollständig wieder bekommen kann, was bestimmt in einigen Situationen die Behandlung enorm vereinfachen würde. Die Nachteile in einer zentralen Speicherstelle bestehen jedoch darin, dass Kryptoanalytiker einen manifestierten Angriffspunkt, nämlich die zentrale Speicherstelle, haben. Es müsste also die Backup Dateien verschlüsselt auf dem Hauptrechner vorhanden sein. Nur die Patienten dürfen den decodiert key für die verschlüsselten Backup Dateien kennen. Ein weitere Nachteil stellt der Übertragungsweg für die Aktualisierung der Backup dar, denn die neuen Daten müssten über einen unsicheren Kanal übermittelt werden, was wiederum für die Kryptoanalytiker einen weiteren Angriffspunkt bedeutet. Der Übertragungsweg müsste also ebenfalls gesichert werden oder die Daten müssten schon verschlüsselt an die zentrale Speicherstelle gesendet werden, die wiederum die gesendeten Daten dem Patienten, der sie gesendet hat, zuordnen. Die Aufbewahrung an einer auf einem zentralen Rechner ist gewiss sinnvoll jedoch sind noch Fragen für die Sicherheit der Backup Daten offen.

6.5 Schlusswort zur MedI-Karte

Die in diesem Kapitel vorgestellte Datensicherung, Datenverwaltung und Datenorganisation ist zwar nur eine Theorie, trotzdem sind die zuvor dargestellten Probleme eine Tatsache und dafür entworfenen Lösungen durchaus sinnlos und realisierbar. Damit sie effektiv gelöst werden können und Zeit und Geld gespart sowie eine auf den Patienten abgestimmte Behandlung stattfinden kann, ist eine Digitalisierung der medizinischen Unterlagen auf lange Sicht gesehen eine zwangsläufige Entwicklung. Ein ausreichender Schutz der medizinischen Unterlagen muss gewährleistet sein und die hier aufgestellt Theorie stellt dafür die nötigen Grundlagen dar. Das Bundesministerium für Gesundheit hat, früher als erwartet, vor wenigen Tagen ihre Patienten - Karte der Öffentlichkeit präsentiert. Bei Beginn und bei der Fertigstellung der von uns entworfenen MedI-Karte war die vom Bundesministerium für Gesundheit geplante Patienten - Karte - angeblich - noch in Planung. Aus diesem Grund ist leider kein ausführlich Vergleich zwischen der von mir entwickelten MedI-Karte und der vom Bundesministerium für Gesundheit entwickelten Patienten - Karte möglich. Es werden in Kurzform die wichtigsten Unterschiede der Patienten - Karte zur MedI-Karte dargestellt.

Patienten - Karte:

Für ältere Patienten, die sich ihr Passwort nicht merken können, ist es gewiss praktisch, dass das Passwort auf der Patienten - Karte zu speichern. Es ist auch Kosten einsparend die medizinischen Unterlagen in einer zentralen Stelle und nicht auf einer erst aufwendig herzustellenden Karte zu speichern. Dadurch, dass die medizinischen Unterlagen jedoch an einem zentralen Punkt gespeichert sind und dass der Patient kein Passwort eingeben, sondern lediglich die Karte vorlegen muss, entstehen Sicherheitsmängel die durch Kryptoanalytiker ausgenutzt werden können. Ein Kryptoanalytiker könnte nämlich einfach eine Patienten -Karte stehlen, den darauf enthaltenen unverschlüsselten key entnehmen und mit diesem Versuchen die medizinischen Unterlagen einzusehen und zu verändern. Auch die Kommunikationskanäle müssten ausreichend gegenüber Angriffen geschützt sein. Die Patienten - Karte des Bundesministerium für Gesundheit benutzt als Schutzverfahren ebenfalls das Verfahren, dass der Arzt eine Karte hat und das Änderungen nur in Zusammenarbeit mit dem Arzt stattfinden kann. Es wird auch ein spezielles Lesegerät verwendet, um die Patienten - Karte zu lesen.
Abschließend kann man sagen, damit die Sicherheit der medizinischen Daten, also die Sicherheit der medizinischen Identität des Patienten, ausreichend gesichert werden und kein "Gläserner Patient" entsteht kann, muss der Patient mitentscheiden können, welches Passwort er hat.


7 Quellenverzeichnis

Gebundene Medien

Titel: Einführung in die Kryptographie
Autor: Buchmann
Auflage: 2., erweiterte Auflage
Erschienen: 2001
Verlag/Standort: Springer-Verlag / Berlin Heidelberg
Abkürzung: [BMEK01]

Titel: Angewandte Kryptographie
Autor: Wolfgang Ertel
Auflage: erste erschienen Auflage
Erschienen: 2001
Verlag/Standort: Carl Hanser Verlag / München Wien
Abkürzung: [AKWE01]

Titel: Moderne Verfahren der Kryptographie
Autoren: Albrecht Beutelspacher, Jörg Schwenk und Klaus-Dieter
Wolfenstetter
Auflage: 4., verbesserte Auflage
Erschienen: Juni 2001
Verlag/Standort: Vieweg / Wiesbaden

Titel: Geheimsprachen
Autor: Albrecht Beutelspacher
Verlag: C.H. Beck
Abkürzung: [GSAB]

Digitale Medien

http://www.ig.cs.tu-berlin.de/da/041/Kapitel1.htm
An Introduction to Cryptography.pdf
- aus www.nai.com
- Abkürzung [AITC]

Abbildungen

Abbildung Nr. 1, 2, 3, 9 und 10 aus [AITC] entnommen und der deutschen Sprache dem Text angepasst.
Abbildungen Nr. 5 und 6 aus " http://www.ig.cs.tu-berlin.de/da/041/Kapitel1.htm
Abbildung Nr. 6 und 8 aus [GSAB]
Abbildung Nr. 7 aus [AKWE01]
Abbildung Nr.11, 12, 13 und 14 selbst entworfen