-
Technisches
Gebiet
-
Die
vorliegende Erfindung betrifft allgemein sichere Übertragungen,
wenn Daten in verschlüsselter
Form von einer Sendeeinheit an eine Empfangseinheit gesendet werden
müssen,
und insbesondere betrifft sie ein Verfahren zur dynamischen Aktualisierung
von Verschlüsselungsschlüsseln, ohne
sie übertragen
zu müssen.
-
Stand der
Technik
-
Sichere
Datenübertragungssysteme,
die auf Kryptografie beruhen, werden eingesetzt, um den unbefugten
Zugriff auf Daten auf Übertragungsverbindungen
zu verhindern, so dass sensible Daten bei geringem Abhörrisiko
ausgetauscht werden können. Bei
typischen Punkt-zu-Punkt-Kryptographiesystemen sendet eine Verschlüsselungseinheit
verschlüsselte
oder codierte digitale Daten über
eine sichere Datenverbindung an eine Entschlüsselungseinheit.
-
Die
digitalen Daten werden mit einem Schlüssel codiert, der nur den Teilnehmern
an dem Vorgang der Verschlüsselung
und Entschlüsselung bekannt
ist, um unbefugten Dritten den Zugriff auf die Daten zu verwehren.
Dieses Schema bezieht sich selbstverständlich auf die symmetrische
Verschlüsselung,
wobei das herkömmliche
Verfahren zur Gewährleistung
der Sicherheit beim Datenaustausch dadurch gekennzeichnet ist, dass
derselbe Schlüssel sowohl
für die
Verschlüsselung
als auch für
die Entschlüsselung
verwendet wird. Die Sicherheit der symmetrischen Verschlüsselung
ist fest an den Schlüssel
gebunden, d.h., wenn der Schlüssel
preisgegeben wird, bedeutet dies, dass jeder Nachrichten verschlüsseln und
entschlüsseln
könnte.
Deshalb bezeichnet man die Algorithmen, die für eine symmetrische Verschlüsselung
verwendet werden, auch als Algorithmen mit geheimem Schlüssel. Das
beste Beispiel hierfür
ist DES, was für "Data Encryption Standard" (Datenverschlüsselungsstandard)
steht und in der Tat seit den siebziger Jahren ein Standard ist,
der immer noch allgemein angewendet wird. Die Sicherheit eines solchen
Algorithmus liegt ebenfalls nur in dem Schlüssel und hängt nicht in irgendeiner Weise von
der Sicherheit des Algorithmus ab. Ganz im Gegenteil, standardmäßig wird
der Algorithmus vollständig
angegeben und allen Benutzern zur Verfügung gestellt.
-
DES
ist ein Blockverschlüsselungsalgorithmus,
bei dem die Verschlüsselung
und die Entschlüsselung
von Daten in 64-Bit-Blöcken erfolgt.
Ein 64-Bit-Textblock wird von dem Algorithmus ohne Mehraufwand,
ausgenommen das notwendige Auffüllen,
damit die ganze Nachrichtencodierung ein Mehrfaches von 64 Bit ergibt,
in einen 64-Bit-Verschlüsselungstextblock
umgewandelt. Der Basisschlüssel
hat eine Länge
von 56 Bit, obgleich er als eine 64-Bit-Zahl ausgedrückt wird,
da für
die Paritätsprüfung ein
Paritätsbit
je Byte verwendet wird, das jedoch von dem Algorithmus ignoriert
wird. Folglich kann der Schlüssel
eine beliebige 56-Bit-Zahl sein, und es besteht die Möglichkeit,
ihn jederzeit zu ändern,
vorausgesetzt, beide Teilnehmer verfügen über ein sicheres Mittel, um
vor dem Austausch von Daten einen neuen Schlüssel zu vereinbaren. Um die
Stärke
des DES zu verbessern, d.h., um es schwieriger zu machen, ihn zu
knacken, wird heutzutage gewöhnlich
ein DES mit einem 112-Bit-Schlüssel oder mit
einem 168-Bit-Schlüssel
und drei Durchläufen verwendet.
Da es den DES schon seit über
20 Jahren gibt, ist er gründlich
geprüft
worden, und auch jahrelanger Kryptoanalyse hat er mit einem bemerkenswert
guten Verhalten getrotzt. Obgleich er immer noch sicher ist, wird
er aufgrund der enorm gestiegenen Rechenleistung, die jetzt in einem
einzigen Rechner und in noch viel höherem Maß in einer Gruppe von Rechnern
zur Verfügung
steht, die zusammenarbeiten, um einen solchen Code zu knacken, offensichtlich
doch etwas schwächer.
Daher besteht das Knacken des DES "lediglich" darin, den jeweiligen Schlüssel abzurufen,
der zur Codierung einer Nachricht oder einer Datei verwendet wurde,
da der Algorithmus selbst vollständig
bekannt ist, wie vorstehend erwähnt
wurde. Ganz einfach lässt
sich dies mit einem gewaltsamen Angriff (brute-force attack) bewerkstelligen,
bei dem alle 256 Schlüssel des standardmäßigen DES
ausprobiert werden, und der sicherstellt, dass nach durchschnittlich
228 Versuchen ein Verschlüsselungsschlüssel gefunden
wird.
-
Neben
der Länge
des Schlüssels,
die einen ganz entscheidenden Teil dazu beiträgt, dass verhindert wird, dass
sich der DES leicht knacken lässt,
ist folglich der andere sehr wichtige und mitentscheidende Faktor
die Dauer, über
die ein solcher Schlüssel zwischen
zwei Teilnehmern verwendet wird, die den Inhalt der Daten, die sie
austauschen, geheim halten möchten.
Als Faustregel sollte kein Verschlüsselungsschlüssel für unbegrenzte
Zeit verwendet werden, da das Risiko, dass er preisgegeben wird
(durch Verlust oder ein Versehen, zum Beispiel könnte ein Schlüssel aufgrund
eines Software-Fehlers in einer Anwendung versehentlich unverschlüsselt angezeigt werden),
zunimmt, je länger
ein Schlüssel
verwendet wird, und umso größer ist
die Versuchung, dass sich jemand die Mühe macht, ihn zu knacken. Das
Knacken eines Schlüssels,
der für
längere
Zeit, zum Beispiel für
die Dauer eines Monats, von zwei Banken gemeinsam benutzt wird,
würde es
einem Hacker ermöglichen,
sich während
dieses Zeitraums in den Geldtransfer zwischen diesen beiden Banken
einzuschalten. Je mehr Daten mit einem bestimmten Schlüssel gesichert
werden, desto verheerender ist auch der Verlust, wenn der Schlüssel preisgegeben wird.
Eine lange Lebensdauer eines Schlüssels liefert schließlich auch
einem Angreifer mehr Munition, um den Schlüssel zu knacken, da der Angreifer
möglicherweise
Zugang zu weitaus mehr Daten hat, mit denen er arbeiten kann. Folglich
ist klar, dass es äußerst wünschenswert
wäre, dass
Schlüssel
nur für kurze
oder nur für
sehr kurze Zeiträume
(und idealerweise nur für
eine Sitzung) verwendet werden, so dass einfach kein Angriff mit
einer guten Aussicht auf Erfolg durchgeführt werden könnte, bevor
der Schlüssel
aktualisiert wird. Dies bringt bei der symmetrischen Kryptographie
jedoch das übliche
Problem mit sich, dass man die Schlüssel, die von Benutzerpaaren
gemeinsam benutzt werden, über
ein großes
Netzwerk verteilen muss.
-
Um
dieses Problem zu lösen,
wurde die asymmetrische Verschlüsselung
erfunden. Der RSA-Algorithmus (benannt nach seinen Erfindern, d.h.
Rivest, Shamir und Adelman) und asymmetrische Algorithmen im Allgemeinen
lösen das
Problem durch die Verwendung von zwei Schlüsseln: einem privaten (geheimen)
Schlüssel
und einem öffentlichen
Schlüssel.
Der öffentliche
Schlüssel
des Teilnehmers A wird jedem zugänglich
gemacht, der sich mit A austauschen muss. Wenn der Teilnehmer B zum
Austausch mit A bereit ist, muss er somit eine Nachricht mit dem öffentlichen
Schlüssel
von A codieren, und weil das Schema asymmetrisch ist, kann nur A
die Nachricht mit seinem privaten (geheimen) Schlüssel decodieren.
Die Nachricht kann folglich den geheimen Schlüssel enthalten, der von zwei
Benutzern gemeinsam zu verwenden ist, die das zuvor beschriebene
symmetrische Verschlüsselungsverfahren,
d.h. DES, nutzen. Diese Vorgehensweise, die heutzutage Standard
ist, ist in der Praxis notwendig, weil RSA und, allgemein gesprochen,
alle bekannten Algorithmen mit einem öffentlichem Schlüssel sehr viele
Berechnungen voraussetzen, die Potenzierungen und/oder diskrete
Logarithmen einschließen, und
diese Berechnungen mit sehr großen
Zahlen durchgeführt
werden müssen.
Ein RSA-Algorithmus mit geheimem Schlüssel ist nun gewöhnlich ein 1024-Bit-Binärwort (in
den letzten Jahren wurde von großen Fortschritten beim Knacken
von RSA-ähnlichen
Schlüsseln
berichtet, was die Verwendung von sehr großen Schlüsseln zwingend erforderlich
macht, so dass bei der Realisierung der Kryptoprozessoren, die auf
die Verarbeitung des RSA- und des DES-Algorithmus für eine schnelle
Verschlüsselung
spezialisiert sind, 2048-Bit- und 4096-Bit-Schlüssel
in Betracht gezogen werden), wobei davon ausgegangen wird, dass
Potenzierungen in diesem Umfang zur Verschlüsselung einer Nachricht durchgeführt werden.
Somit ist der RSA-Algorithmus
Berichten zufolge um mehrere Größenordnungen
langsamer als der DES-Algorithmus, was erklärt, warum bei der Realisierung
eines kryptographischen Systems meistens beide Algorithmen miteinander
kombiniert werden.
-
Vor
der Verschlüsselung
werden die Daten in Datenübertragungssystemen
sehr oft komprimiert. Dabei werden zwei Ziele verfolgt. Neben der
Begrenzung der Speicherkapazität,
die zur Speicherung einer komprimierten Datei notwendig ist, liegt
der Hauptvorteil darin, dass insgesamt weniger Daten übertragen
werden müssen,
wodurch auf teuren Übertragungsleitungen
Bandbreite gespart werden kann. Auch kann eine Datenkomprimierung
die Kryptoanalyse schwieriger machen. Meistens benötigt ein Kryptoanalyst
zur Durchführung
eines Angriffs, insbesondere eines gewaltsamen Angriffs, bei dem
alle möglichen
Schlüssel
eines Schlüsselraums
durchprobiert werden, eine kleine Menge von Verschlüsselungsdaten
und die entsprechenden unverschlüsselten
Daten. In der Praxis ist es wahrscheinlich nicht schwierig, diese
zu erhalten, da Übertragungsprotokolle
auf verschiedenen Ebenen standardmäßige Nachrichtenkopfbereiche
haben, deren Formate bekannt sind. Da zusätzlich zur Verschlüsselung
eine Datenkomprimierung durchgeführt
wird, sind die entsprechenden unverschlüsselten Daten ohne Bedeutung,
oder zumindest wird es sehr schwierig, einen jeweiligen Protokoll-Kopfbereich
darauf abzustimmen. Insbesondere wird bei den zahlreichen Datenkomprimierungsverfahren,
die von dem Ziv-Lempel-Verfahren abgeleitet werden (J. Ziv und A.
Lempel "Compression
of individual sequences via variable-rate coding", IEEE Trans. Inform. Theory, Band IT-24,
Nr. 5, 1978), von der Verwendung eines sich weiterentwickelnden
Wörterbuchs,
das in jedem Knoten, in dem Daten komprimiert und dekomprimiert werden,
entsteht, ausgegangen. Dann enthält
das Wörterbuch
die Codewort-Darstellung auf der Grundlage einer Baumstruktur mit
Bruder-, Sohn- und Elternverknüpfungen
und das entsprechende Zeichen an jedem Knoten oder Blatt. Es besteht
die Möglichkeit,
mit einem leeren Wörterbuch
zu beginnen, das jedoch das erste Zeichen eines jeden Teilbaums
enthalten muss. Obwohl sich das Wörterbuch ständig weiterentwickelt, bleibt
sein Inhalt auf beiden Seiten stets völlig gleich, wobei jedoch kein
spezieller Datenaustausch stattfinden muss, um den gleichen Inhalt
beizubehalten. Dies wird durch die übertragenen Daten selbst erreicht.
Bei solch einem Schema steht folglich auf jeder Seite einer Übertragungsverbindung
eine identische, sich weiterentwickelnde Datenbank zur Verfügung, wobei
ein Lauscher die Änderungen
an der Datenbank jedoch nicht durch Beobachtung der Daten, die über die
Leitung ausgetauscht werden, herleiten kann. Daher kann ein dynamischer
Schlüssel
von dem Verzeichnisinhalt abgeleitet werden, wobei eine Form einer
Einwegfunktion wie zum Beispiel das Streuwertverfahren (Hashing) verwendet
wird, um häufig
neue Schlüssel
zu erzeugen.
-
Selbst
wenn eine vor der Verschlüsselung stattfindende
Datenkomprimierung die Sicherheit insoweit verbessern kann, als
die Komprimierung es schwieriger macht, den Verschlüsselungsschlüssel zu
knacken, lässt
sich folglich eine absolute Sicherheit nur dadurch erzielen, dass
der Verschlüsselungsschlüssel oft
geändert
wird. Obgleich der RSA-Schlüssel zum
Austausch von neuen geheimen Schlüsseln verwendet werden kann,
schließt
ein solcher Austausch die Inanspruchnahme von Ressourcen ein, er
verursacht einen Mehraufwand und hält die normale Datenübertragung
an, da die Sicherheitskombination neu gestartet werden sollte. Deshalb
werden geheime Schlüssel
nicht sehr oft geändert
und würden
nie bei jedem Paket geändert
werden. Wenn man jedoch über
einen gewissen Zeitraum denselben Schlüssel behält, eröffnet dies Wege, um die Daten
auszuspähen,
zu ändern,
sie umzuleiten oder mittels der Funktion Kopieren und Einfügen in einen
anderen Strom zu kopieren, und dies ist ungeachtet der Komplexität der Verschlüsselung nicht
sicher.
-
Die
US-Patentschrift 4 157 454 mit dem Titel "Method and System for Machine Enciphering
and Deciphering" beschreibt
ein Verfahren und ein System, bei denen Datenwörter veränderlicher Länge segmentweise
zusammen mit entsprechenden Segmenten eines Chiffrierschlüssels verarbeitet
werden. In Abhängigkeit
vom Inhalt eines Datensegments wird eine von mehreren Änderungsarten
gewählt. Gemäß der gewählten Änderungsart
wird der Chiffrierschlüssel
im Anschluss an jede Chiffrieroperation eines Segments geändert. Die
beschriebenen Schritte werden vorzugsweise dreimal bei dem ganzen
Datenwort durchgeführt.
Das Ergebnis des dritten Zyklus stellt das chiffrierte Datenwort
dar. Die Dechiffrierung wird in derselben Weise durchgeführt.
-
Die
Publikation mit dem Titel "Interlace
Coding System Involving Data Compression Code, Data Encryption Code
and Error Correcting Code" (2334B IEICE
TRANSACTIONS ON COMMUNICATIONS, Band E-75B, Nr. 6, Juni 1992, Seiten
458 bis 465, TOKIO), beschreibt ein Schnittstellencodiersystem (Interface
Coding System (ICS)), das einen Datenkomprimierungscode, einen Datenverschlüsselungscode
und einen Fehlerkorrekturcode einschließt, wobei das Fehlerverhalten
auf einem Kanal mit additivem weißen Gaußschen Rauschen (AWGN) mittels Quadraturphasenumtastung
(QPSK) ausgewertet wird. Das vorgeschlagene System wickelt die Prozesse
der Datenkomprimierung, der Datenverschlüsselung und der Fehlerkorrektur
zusammen ab, d.h., es sieht bei den Blocklisten des Wörterbuchs,
in dem Konstrukte eines Komprimierungssystems vorhanden sind, eine
Fehlerkorrekturredundanz vor, um die Quellenredundanz zu verringern.
Jede Blockliste wird mit dem Ziv-Lempel-Code und dem Data Encryption
Standard (DES) codiert. Da der von der Datenkomprimierungsprozedur
ermittelte katastrophale Zustand nicht vernachlässigbar ist, sollte zusätzlich eine
Fehlerkorrekturredundanz vorgesehen werden, um den katastrophalen
Zustand zu vermeiden. Es wurde festgestellt, dass der katastrophale
Zustand nur vom Umfang des Wörterbuchs
für das
vorgeschlagene System abhängt.
Wenn man folglich ein umfangreiches Wörterbuch verwendet, kann das
vorgeschlagene System ein gutes Fehlerverhalten erzielen, und der
katastrophale Zustand kann vermieden werden.
-
Zusammenfassung
der Erfindung
-
Folglich
besteht die Hauptaufgabe der Erfindung in der Verbesserung der Sicherheit
eines symmetrischen kryptographischen Systems, indem man eine häufige Änderung
des gemeinsamen geheimen Schlüssels
zulässt.
-
Es
ist eine weitere Aufgabe der Erfindung, ein Verfahren zur dynamischen
Aktualisierung des gemeinsamen Verschlüsselungs-/Entschlüsselungsschlüssels eines
symmetrischen Verschlüsselungssystems
auf beiden Seiten einer sicheren Übertragungsverbindung bereitzustellen,
ohne tatsächlich einen
neuen Schlüssel
austauschen zu müssen,
so dass auf diese Weise die häufige
Inanspruchnahme eines asymmetrischen Verschlüsselungssystems mit öffentlichem
Schlüssel
oder eines gleichwertigen Systems zur Verteilung von Schlüsseln vermieden wird.
-
Es
ist noch eine weitere Aufgabe der Erfindung, den nächsten geheimen
Schlüssel,
der verwendet werden soll, von einer sich weiterentwickelnden Datenbank
wie beispielsweise dem Wörterbuch eines
Datenkomprimierungssystems abzuleiten, wobei auf beiden Seiten einer Übertragungsverbindung ein
völlig
gleicher Inhalt der Datenbank aufrechterhalten wird.
-
Die
Erfindung betrifft folglich ein Verfahren zur Aktualisierung des
Verschlüsselungsschlüssels in
einem Datenübertragungssystem,
der von Knoten auf beiden Seiten einer Übertragungsverbindung gemeinsam
benutzt wird. Die Knoten enthalten eine sich genau gleich weiterentwickelnde
Datenbank. Wenn Daten von einem der Knoten an einen ihm gleichgestellten
fernen Knoten gesendet werden müssen,
wird die Datenbank zuerst mit den zu sendenden Daten aktualisiert.
Mit dem aktuellen Wert eines Schlüssels wird dann eine Verschlüsselung
der Daten durchgeführt,
welche somit an den gleichgestellten fernen Knoten gesendet werden.
Danach wird ein als Nächstes
zu verwendender Verschlüsselungsschlüssel von
dem neuen Inhalt der Datenbank abgeleitet. Wenn die verschlüsselten
Daten von dem gleichgestellten fernen Knoten empfangen werden, werden
sie zuerst mit dem aktuellen Wert des Verschlüsselungsschlüssels entschlüsselt. Daraufhin wird
die Datenbank des gleichgestellten fernen Knotens mit den empfangenen
entschlüsselten
Daten auf den identischen Inhalt aktualisiert. Von dem Inhalt der Datenbank
wird ein als Nächstes
zu verwendender Verschlüsselungsschlüssel abgeleitet,
wodurch man in dem gleichgestellten fernen Knoten einen als Nächstes zu
verwendenden identischen Schlüssel erhält.
-
In
einer bevorzugten Ausführungsform
der Erfindung ist die Datenbank das Wörterbuch eines Datenkomprimierungs-/dekomprimierungssystems, das
gleichzeitig mit der Verschlüsselung/Entschlüsselung
verwendet wird, um Daten zu versenden. Das erfindungsgemäße Verfahren
lässt die
häufige
Aktualisierung des Schlüssels
eines symmetrischen Verschlüsselungssystems
auf beiden Seiten einer sicheren Übertragungsverbindung zu, wodurch
die Sicherheit enorm verbessert wird, ohne dass die neuen Schlüssel tatsächlich übertragen
werden müssen.
-
Kurze Beschreibung
der Zeichnungen
-
Weitere
Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden
für den
Fachmann offensichtlich, nachdem er die folgende Beschreibung unter
Bezugnahme auf die beigefügten Zeichnungen
sorgfältig
gelesen hat.
-
1 ist
eine schematische Darstellung, die den geringfügigen Netzwerkkonfigurationsaufwand zeigt,
der notwendig ist, um das erfindungsgemäße Verfahren auszuführen.
-
2 ist
ein Blockschaltbild eines Knotens, der alle Funktionen umfasst,
die zur Ausführung
des erfindungsgemäßen Verfahrens
verwendet werden.
-
3 ist
ein Flussdiagramm, das die verschiedenen Schritte des erfindungsgemäßen Verfahrens
beim Sendevorgang an einen fernen Knoten zeigt.
-
4 ist
ein Flussdiagramm, das die verschiedenen Schritte des erfindungsgemäßen Verfahrens
beim Empfangsvorgang von einem fernen Knoten zeigt.
-
Ausführliche Beschreibung der Erfindung
-
1 beschreibt
den geringfügigen
Netzwerkkonfigurationsaufwand, der notwendig ist, um die grundlegende
Struktur der Erfindung besser zu verstehen. In diesem Netzwerk müssen zwei
Datenendeinrichtungen (data terminal equipment (DTE)), die Einheit
DTE1 10 und die Einheit DTE2 12, die jeweils über den
KNOTEN 1 14 und den KNOTEN 2 16 Daten austauschen,
eine sichere Verbindung über beispielsweise
eine Weitverkehrsnetz-(WAN-)Verbindung 18 aufbauen, und
folglich bilden sie eine Sicherheitskombination (security association) 20,
die nachfolgend als SA bezeichnet wird. Daher können die Knoten 14 und 16 ihre
Nachrichten unter Verwendung eines gemeinsamen geheimen Schlüssels verschlüsseln und
entschlüsseln.
Der Schlüssel
wird mit Hilfe des erfindungsgemäßen Mechanismus,
der in den folgenden Figuren ausführlicher beschrieben wird,
laufend aktualisiert, um die Sicherheit der Transaktionen über die
WAN-Verbindung 18 erheblich zu verbessern. Dieser Mechanismus
beruht auf der Annahme, dass in jedem Knoten eine sich weiterentwickelnde
Datenbank 22 oder 24 vorhanden ist, deren Inhalt
mit dem Inhalt der jeweils anderen Datenbank völlig gleich gehalten wird.
Im Gegensatz dazu sind die Übertragungen
zwischen der DTE1 und dem KNOTEN 1 14 einerseits und zwischen
der DTE2 und dem KNOTEN 2 16 andererseits unverschlüsselt, da
davon ausgegangen wird, dass sie in einer sicheren abgegrenzten
Umgebung stattfinden, zum Beispiel in einer einzelnen Systemeinheit,
die sich in den Räumlichkeiten
des Benutzers befindet. Das erfindungsgemäße Verfahren geht davon aus, dass
im KNOTEN 1 14 und im KNOTEN 2 16 ein erster gemeinsamer
Schlüssel
vorhanden ist, mit dem ein Austausch gestartet werden kann. Die
Art und Weise, in der dies durchgeführt wird (einmal bei der Initialisierung
und möglicherweise
in regelmäßigen Intervallen
oder zu einem späteren
Zeitpunkt beim Auftreten eines Ereignisses), liegt außerhalb
des Umfangs der Erfindung und könnte
beispielsweise durch die Verwendung eines Algorithmus mit einem öffentlichen
Schlüssel,
wie zum Beispiel des RSA-Algorithmus, der in der Technik bekannt
ist und vorstehend im Abschnitt "Stand
der Technik" kurz
beschrieben wurde, oder mittels eines anderen Verfahrens zur Verteilung
eines geheimen Schlüssels
vorgenommen werden. Es sei darauf hingewiesen, dass die Bildung
einer solchen SA oder deren Wiederherstellung nach einer bestimmten
Zeit (da SAs aus Sicherheitsgründen
im Allgemeinen so konfiguriert sind, dass sie ungeachtet des Verkehrs
sowieso ablaufen, aber nur auf Anforderung wiederhergestellt werden)
zu einer Unterbrechung des laufenden Verkehrs führt beziehungsweise die Wiederaufnahme
des Verkehrs Zeit in Anspruch nimmt, während der Verkehr bei dem erfindungsgemäßen verfahren,
das eine häufige
Aktualisierung von Schlüsseln
erlaubt, überhaupt
nicht angehalten wird.
-
2 beschreibt
einen Knoten 30 von der in 1 gezeigten
Art besser, der auf einer Seite mit einer DTE 32 und auf
der anderen Seite mit einer Übertragungsleitung 34 verbunden
ist. Der Knoten enthält eine "DTE-Schnittstellen-
und Flusssteuerungsschaltung" 36,
deren Funktion im Zusammenwirken mit einem Mikrocontroller 38 darin
besteht, den Datenstrom oder Pakete, der beziehungsweise die von
der DTE 32 empfangen werden, vorübergehend in einem "Pufferspeicher" 40 zu speichern,
so dass sie schließlich
an einen fernen Knoten übertragen
werden können.
Zum Beispiel wird dies hier mit Hilfe eines "Speichers und einer Direktspeicherzugriffs-(DMA-)Steuereinheit" 42 durchgeführt. Daraufhin
werden die Datenpakete an einen "Datenkomprimierer/Datendekomprimierer" 44 gesendet,
der ein Wörterbuch 46 verwendet
und aktualisiert.
-
Bei
jedem Datenpaket oder bei jeder Gruppe von Paketen, die eine über die Übertragungsleitung 34 zu
sendende Einheit bilden, wird am Wörterbuch 46 eine Einwegfunktion 48 wie
zum Beispiel eine Hash-Funktion oder eine zyklische Blockprüfung (Cyclic
Redundany Check (CRC)) ausgeführt,
um eine Zusammenfassung fester Größe oder eine Signatur davon
zu berechnen, die seinen aktuellen Inhalt widerspiegelt. Dies ist üblicherweise
ein Vektor in der Größenordnung
von 100 Bit bis 200 Bit, der der "Datenverschlüsselungs- und -entschlüsselungseinheit" 50 übergeben
wird, von der der nächste
zu verwendende Schlüssel
erzeugt wird, welcher auf die komprimierten Daten, die ebenfalls
an die "Datenverschlüsselungs-
und -entschlüsselungseinheit" 50 gesendet
werden, angewendet wird. Dann werden verschlüsselte Pakete über eine
Leitungsschnittstellen- und Flusssteuerungsschaltung 52 an
einen fernen Knoten zur Kapselung auf einer unteren Ebene und zur Übertragung über die
Leitung 34 gesendet.
-
Der
Empfang findet in ähnlicher
Weise wie der soeben vorstehend beschriebenen statt, jedoch in umgekehrter
Reihenfolge. Verschlüsselte
Daten, die von der Leitung 34 empfangen werden, werden gleichermaßen im "Pufferspeicher" 40 abgelegt, nachdem
sie mit dem aktuellen Schlüssel
entschlüsselt
worden sind, der in der "Datenverschlüsselungs- und -entschlüsselungseinheit" 50 zur
Verfügung steht.
Sobald sie entschlüsselt
worden sind, werden die komprimierten Daten an den "Datenkomprimierer und
-dekomprimierer" 44 gesendet,
und das Wörterbuch 46 wird
aktualisiert, wodurch ein neuer Schlüsselwert erzeugt werden kann,
der mit derselben Einwegfunktion 48, die vorstehend erwähnt wurde,
von dem neuen Inhalt des Wörterbuchs
abgeleitet wird. Dieser neue Wert wird der "Datenverschlüsselungs- und -entschlüsselungseinheit" 50 zur
Verwendung für ein
nächstes
Datenpaket oder für
eine nächste
Gruppe von Datenpaketen übergeben.
Die dekomprimierten Daten werden vorübergehend im Pufferspeicher 40 gespeichert,
bevor sie über
die "DTE-Schnittstellen-
und Flusssteuerungsschaltung" 36 unverschlüsselt an
die DTE 32 gesendet werden.
-
3 beschreibt
den Verschlüsselungsprozess,
der beginnt, wenn ein neuer Schlüssel
in beiden Knoten zur Verfügung
gestellt wurde, d.h. in den Knoten 14 und 16,
die zuvor in 1 gezeigt wurden und die dann
eine sichere Verbindung zwischen ihnen herstellen können, indem
sie eine neue Sicherheitskombination beziehungsweise SA bilden,
die bereits in 1 erörtert wurde. Der Schritt 54 prüft, ob soeben
eine neue SA festgelegt worden ist. Dies ist immer dann der Fall,
wenn eine sichere Übertragung
initialisiert wird, findet aber auch jedes Mal statt, wenn zu einem
späteren
Zeitpunkt über
einen anderen Kanal oder mit einem anderen Mechanismus ein neuer
Verschlüsselungsschlüssel ausgetauscht
wird, zum Beispiel, indem ein Austausch von Schlüsseln über eine sichere Sitzung und
unter Verwendung eines Verschlüsselungssystems
mit einem öffentlichen Schlüssel, einem
in der Technik bekannten Verfahren, ermöglicht wird. Erfindungsgemäß kann eine neue
Sicherheitskombination auch in regelmäßigen Abständen oder nach dem Eintreten
eines bestimmten Ereignisses gebildet werden, wie zum Beispiel dem Überlaufen
der Paketfolgenummer oder der Feststellung einer fehlerhaften Übertragung.
-
Wenn
dies tatsächlich
der Fall ist, erfolgt die Weiterschaltung zum Schritt 56,
wo der aktuelle Verschlüsselungsschlüssel, der
nachstehend einfach als KEY bezeichnet wird, der neue SA-Schlüssel wird. Auch
wird die Folgenummer "SN", die im Kopfbereich des
Verschlüsselungsprotokolls
verwendet wird, auf 1 zurückgesetzt.
Wenn die Antwort auf die Frage 54 jedoch negativ ist (was
gewöhnlich
der Fall ist), wird KEY im Schritt 58 von einem Wert aktualisiert,
der von dem in 2 gezeigten Verschlüsselungswörterbuch 46 abgeleitet
wird. Wie bereits erörtert
wurde, ist dieser Wert, der zur Aktualisierung des aktuellen Schlüssels verwendet
wird, allgemein gesprochen eine Zusammenfassung fester Größe, zum
Beispiel das Ergebnis einer Hash-Funktion oder einer zyklischen
Blockprüfung,
die auf die Inhalte des Wörterbuchs
angewendet wird, welche sich ständig
in Abhängigkeit
von den Daten, die zwischen den beiden Knoten ausgetauscht werden,
weiterentwickeln.
-
Sobald
ein Schlüssel
KEY festgelegt wurde, wird der Schritt 60 durchgeführt, in
dem Daten komprimiert werden. Dieser letztere Schritt kann in Abhängigkeit
davon, welches Kriterium als Erstes berücksichtigt werden muss, so
kompliziert oder so einfach gestaltet werden, wie es notwendig erscheint. Zum
Beispiel könnte
man an einem einfachen Komprimierungsalgorithmus festhalten, wenn
Rechenressourcen in Knoten knapp sind. Wenn die Datenverarbeitungsressourcen
jedoch nicht der einschränkende Faktor
sind, kann man sich für
ein besseres Komprimierungsverhältnis
entscheiden, indem man ein komplexeres Verfahren wie zum Beispiel
das im Standard V.42 bis der ITU-T (International Telecommunications
Union) festgelegte Verfahren anwendet, das auf dem zuvor erörterten
Ziv-Lempel-Algorithmus beruht. Ungeachtet dessen jedoch, welche
Lösung
für eine
Komprimierung gewählt
wird, bleibt die Hauptzielsetzung, dass bei der Übertragung Codewörter anstelle von
realen Daten verwendet werden, wobei tatsächlich Codewörter ausgetauscht
werden, die auf einem sich weiterentwickelnden Wörterbuch beruhen.
-
Im
Anschluss an die erfolgte Komprimierung werden die komprimierten
Daten im Schritt 62 mit Hilfe des aktuellen Schlüssels KEY
verschlüsselt.
Im Schritt 64 wird daraufhin ein verschlüsseltes
Paket formatiert, dessen Kopfbereich „Folgenummer" (Sequence Number – SN) 66 um
eins erhöht
wird, damit die chiffrierten Daten über die Leitung an den gleichgestellten
fernen Knoten gesendet werden können. Es
sei an dieser Stelle erwähnt,
dass das SN-Feld immer ein Feld fester Größe ist (üblicherweise ein 16 Bit breites
Feld), so dass schließlich
ein Umbruch des SN-Zählers
erfolgt. Deshalb empfiehlt es sich, dass ein Zählerumbruch bei diesem Feld
einen neuen SA auslöst,
so dass die Wiederaufnahme des Prozesses der Aktualisierung von
Schlüsseln
mit einem neuen Anfangsschlüssel
stattfindet, was zusätzlich
dazu beiträgt,
dass die Transaktionen zwischen den Knoten sicher bleiben.
-
Schließlich führt der
Schritt 68 eine Hash-Funktion an dem neuen Inhalt des Wörterbuchs
aus (oder eine beliebige andere Funktion, die gewählt wird,
um eine Zusammenfassung fester Größe des Inhalts zu bekommen),
um einen neuen Schlüssel
zu erstellen, der in der nächsten
Schleife verwendet wird, wenn der Prozess im Schritt 54 wieder
aufgenommen wird.
-
4 beschreibt
den Entschlüsselungsprozess,
der mit dem Empfang eines neuen Pakets von einem gleichgestellten
Knoten beginnt. Dieser kann erst stattfinden, nachdem eine Sicherheitskombination
(SA) zwischen den beiden Knoten festgelegt wurde, was bedeutet,
dass in den Knoten ein erster gemeinsamer Schlüssel zur Verfügung steht,
mit dem der Prozess begonnen werden kann. Die Schritte 70, 72 und 74 sind
identisch mit dem, was vorstehend in 3 in Bezug
auf den Entschlüsselungsprozess beschrieben
wurde. Kurz gesagt, der zu verwendende Schlüssel KEY ist wie bei der Verschlüsselung entweder
ein neuer Schlüssel,
der sich aus einer neuen SA ergibt, oder ein aktualisierter Schlüssel, der
sich aus einer Berechnung des aktuellen Inhalts des Wörterbuchs
ergibt. Sobald ein KEY ausgewählt wurde,
hat der nächste
Schritt 76 die Aufgabe, die von ihm eingehenden Daten zu
entschlüsseln.
Im Schritt 78 werden die Daten dann dekomprimiert. Zwar
wird bei dem aktuellen Inhalt des Wörterbuchs begonnen, doch wirkt
sich der Dekomprimierungsschritt selbst dahingehend aus, dass er
den Inhalt auf der Grundlage der von dem gleichgestellten Knoten empfangenen
neuen Daten aktualisiert (so dass sich das Wörterbuch ständig weiterentwickelt). Wie
bei der Verschlüsselung
muss schließlich
eine am Inhalt des Wörterbuchs
ausgeführte
neue Hash-Funktion im Schritt 80 einen Wert zurückliefern,
der gleich dem Wert ist, den man bei dem Verschlüsselungsprozess in dem fernen
Knoten erhalten hat und von dem derselbe neue Schlüssel abgeleitet
wird, woraufhin der Empfangsprozess im Schritt 70 wiederaufgenommen wird.
Offensichtlich wird bei all diesem stillschweigend davon ausgegangen,
dass bei der Übertragung kein
Fehler auftritt, so dass sich die Wörterbücher auf beiden Seiten der
sicheren Verbindung völlig
gleich weiterentwickeln. Sobald jedoch ein Fehler festgestellt wird,
können
gegebenenfalls alle in der Technik bekannten Standardverfahren zur
Wiederherstellung angewendet werden, so dass die Übertragung
in einem bekannten Zustand wiederaufgenommen werden kann. Dies schließt die einfache
Lösung
in Form des kompletten Neustarts mit einem neuen Schlüssel ein,
während
die Wörterbücher zurückgesetzt werden.
Was diesen letzteren Punkt angeht, wird bei der Erfindung nicht
davon ausgegangen, dass der Inhalt von Wörterbüchern zum Zeitpunkt der Initialisierung oder
im Anschluss an die Wiederherstellung nach einem Fehler gelöscht werden
muss oder dass die Wörterbücher nur
ein Skelett enthalten dürfen,
auf dessen Grundlage sie über
den Prozess der Datenkomprimierung schrittweise wieder erstellt
werden. Es ist möglich,
Wörterbücher mit
vorher festgelegten Werten zu füllen,
doch geht dies zu Lasten des Umstands, dass dies als ein Geheimnis
zu betrachten ist, das wie die Schlüssel geschützt werden muss.