2b. Kryptographische Protokolle
2b.7 Spezifikation - Definition von Protokollen
Definitionen
- Algorithmus:
- Folge von Handlungsanweisungen -
- Handlungsanweisungen formal als Zeichenketten
in einem Alphabet ausgedrückt, interpretiert als Wörter in einer
formalen Sprache, ausgeführt von Maschinen,
die geeignet formal beschrieben sind.
- Protokoll:
- Algorithmus mit mehreren Handelnden (formal: Maschinen),
die synchronisiert handeln, z. B. Nachrichten austauschen.
- Kommunikationsprotokoll:
- Protokoll mit folgenden möglichen Handlungsweisungen:
- Erzeugen einer Nachricht.
- Übermitteln einer Nachricht (Sender an Empfänger).
- Das Transformieren einer Nachricht (z. B. übersetzen,
komprimieren, verschlüsseln, ...) kann als eine oder mehrere separate
Handlungsanweisuneng betrachtet werden oder fällt unter »Erzeugen« -
erzeugt wird die transformierte Nachricht;
die algorithmischen Details der Transformation werden in diesem
Zusammenhang meist nicht betrachtet.
- Beispiele:
- TCP/IP (telnet, FTP, HTTP ...), OSI
Beschreibung eines Protokolls
- Teilnehmer (Subjekte),
- Nachrichten (Informationen, Daten) (Objekte),
- zeitliche Folge (in diskreter Zeit).
Dabei Verzweigungen, Parallelität usw. möglich.
Die Modellierung ist auf verschiedene Weise möglich.
Es ist ein zum jeweiligen Protokoll mit seinen Anforderungen passendes Modell
zu wählen.
Grundannahmen über Protokolle
- Das Protokoll muss korrekt sein.
- Wohldefinierte und eindeutige Handlungsanweisungen.
- Das Protokoll muss widerspruchsfrei sein.
- Das Protokoll muss vollständig sein.
- Jeder mögliche Zustand muss erfasst sein.
- Das Protokoll muss bekannt sein.
- Jeder Teilnehmer des Protokolls kennt das Protokoll
mit allen Schritten vorher.
- Das Protokoll muss verbindlich und akzeptiert sein.
- Jeder Teilnehmer folgt dem Protokoll.
- [Achtung! Genau diese Annahme ist naiv, wenn es
um Verlässlichkeit geht.
Sicherheitsnachweise erfordern auch Überlegungen,
was passiert, wenn Teilnehmer mogeln.]
Kurz: Ein Protokoll muss eindeutig spezifiziert sein
wie jeder Algorithmus.
- Diese Spezifikation kann informell, semiformal oder formal sein.
- Eine mindestens semiformale Spezifikation ist nötig, um eine
korrekte Implementation zu erreichen.
- Eine formale Spezifikation ist (nur) sinnvoll, wenn sich damit
etwas beweisen lässt, was nicht offensichtlich ist.
(Korrektheits- oder Sicherheitsbeweis)
Autoren: Klaus Pommerening, Marita Sergl, 31. März 1999;
letzte Änderung: 25. Juli 2004.
E-Mail an Pommerening »AT« imbei.uni-mainz.de.