-
Gebiet der
Erfindung
-
Die Erfindung betrifft verschlüsselte Kommunikationssysteme.
Wir beziehen uns auf die US-Patentanmeldung Nr. 08/649,098 mit dem
Titel "DECRYPTION
OF RETRANSMITTED DATA IN AN ENCRYPTED COMMUNICATION SYSTEM", eingereicht am
selben Tag wie die vorliegende Erfindung im Namen von Kevin G. Doberstein
et al., mit demselben Rechtsnachfolger wie die vorliegende Erfindung.
-
Hintergrund der Erfindung
-
Verschlüsselte Sprach- und Datensysteme sind
wohlbekannt. Viele dieser Systeme bieten eine sichere Kommunikation
zwischen zwei oder mehr Nutzern, indem eine oder mehrere Informationen zwischen
den Nutzern geteilt werden, wodurch es nur denjenigen Nutzern, die
die Information kennen, erlaubt ist, die Nachricht korrekt zu entschlüsseln.
-
Allgemein gesagt wird ein Schlüsselgenerator
("key generator", KG) verwendet,
um Sprach- und Datennachrichten zu verschlüsseln oder zu entschlüsseln. Ein
KG ist eine nichtlineare mathematische Funktion, die mit einem anfänglichen
Startvektor und einer Schlüsselvariablen,
die die mathematische Funktion definiert, eine Pseudozufallsfolge
generiert. Der KG gibt einen Schlüsselstrom aus, der einer EXKLUSIV-ODER-Verknüpfung (EXKLUSIV-ODER-Funktion,
wie in der Technik bekannt) mit Klartext (unverschlüsselt) unterzogen
wird, um verschlüsselten
Text zu generieren. Der verschlüsselte Text
wird zu einem Empfänger übertragen.
Der Empfänger
unterzieht den empfangenen verschlüsselten Text einer EXKLUSIV-ODER-Verknüpfung mit
einem Schlüsselstrom,
der von dem Empfänger
anhand der empfangenen Information ermittelt wurde, so daß man den
Klartext aus dem Sendegerät
erhält.
-
Die verschlüsselnde und die entschlüsselnde
Verschlüsselungsvorrichtung
haben nicht nur denselben Verschlüsselungscode, um eine verschlüsselte Nachricht
zu entschlüsseln,
sondern müssen
auch identisch sein, d. h. denselben Verschlüsselungsalgorithmus auf die
selbe Weise zur selben Zeit aus demselben (internen) Verschlüsselungszustand durchführen. Synchronisationsdaten
(auch bekannt als Sync-Daten)
werden über
den Nachrichtenkanal gesendet, damit das entschlüsselnde Gerät seinen Verschlüsselungszustand
mit dem Verschlüsselungszustand
des verschlüsselnden
Geräts
abgleichen kann, wonach die korrekte Entschlüsselung der ankommenden Nachricht
durchgeführt
wird. Verschlüsselungssynchronisationsdaten
werden bei Verwendung in verschlüsselten
Kommunikationssystemen oft als Nachrichtenindikator ("message indicator", MI) bezeichnet.
-
Die Verschlüsselungsvorrichtungen können in
einer von mehreren Betriebsarten betrieben werden. Die Betriebsart,
bei der die Verschlüsselungsvorrichtung
verwendet wird, stellt verschiedene Verfahren zum Synchronisieren
des Empfangsgeräts
mit dem Sendegerät
bereit. Eine Betriebsart ist bekannt als Schlüsselrückkopplung ("cipher feedback", CFB). CFB erlaubt
die Selbstsynchronisation. Mit anderen Worten, die Daten, die entschlüsselt sind,
können auch
dazu verwendet werden, den KG zu initialisieren. Die Daten, mit
denen der KG initialisiert wird, werden jedoch falsch entschlüsselt, bis
der empfangende KG mit dem sendenden KG synchronisiert ist. Wenn
zwei Geräte
zu Beginn unterschiedliche Verschlüsselungszustände haben,
ihnen aber identische verschlüsselte
Ströme
eingespeist werden, werden sich die Geräte selbst in den Verschlüsselungszustand
des verschlüsselnden
Geräts
synchronisieren und dieselbe entschlüsselte Information ausgeben, nachdem
eine bestimmte Anzahl von Bits in die Geräte eingegeben wurden (je nach
der Länge
der internen Register in der Verschlüsselungsvorrichtung). Synchronisationsdaten
vor der Nachricht zu senden hilft dem Empfangsgerät, sich
ohne Verlust von Daten zu synchronisieren. Am Sender wird ein KG
durch einen MI initialisiert. Der Verschlüsselungsalgorithmus wird ausgeführt, um
einen Schlüsselstrom
zu generieren. Der Schlüsselstrom
wird dann einer EXKLUSIV-ODER-Verknüpfung mit Klartext unterzogen,
um verschlüsselten
Text zu generieren. Der verschlüsselte
Text wird dann wieder in den Eingang des KG eingegeben, um die nächsten Schlüsselstromdaten
zu generieren. Dieser Prozess wird für alle Daten wiederholt. Am
Empfänger
wird der MI zum Initialisieren des KG verwendet. Der Verschlüsselungsalgorithmus
wird ausgeführt,
um den Schlüsselstrom
zu gene rieren. Der empfangene verschlüsselte Text wird einer EXKLUSIV-ODER-Verknüpfung mit
dem Schlüsselstrom
unterzogen, um die Daten zu entschlüsseln. Der verschlüsselte Text
wird auch in den KG eingespeist, um den Schlüsselstrom für den nächsten Block zu generieren.
-
In vielen Systemen ist es wünschenswert,
einen Datendurchsatzpegel zu haben, der sowohl für verschlüsselte Daten als auch für unverschlüsselte Daten
konstant ist. Wenn Daten empfangen werden, ist es jedoch nicht ungewöhnlich,
daß die
Daten fehlerhaft empfangen werden. In vielen Kommunikationssystemen
ist es bekannt, eine erneute Übertragung
jedes fehlerhaft empfangenen Datenblocks zu verlangen. Eine solche
erneute Übertragung
von Daten stellt in verschlüsselten
Datensystemen ein Problem dar. Weil der Verschlüsselungsprozess synchronisiert
ist, müssen
N – 1
Blöcke
entschlüsselt werden,
während
ein selektiver Wiederholungsblock N entschlüsselt wird. Durch diese Eigenschaft
wird der Durchsatz in einem verschlüsselten Datensystem stark herabgesetzt,
was zu einem signifikanten Unterschied im Durchsatz zwischen verschlüsselten und
unverschlüsselten
Daten führt.
Bei typischen Systemimplementationen wird gewartet, bis alle Blöcke fehlerfrei
empfangen sind, bevor die Nachricht entschlüsselt wird. Ein solches Verfahren
führt zu Verarbeitungsverzögerungen
nach Empfang des letzten Blocks. Ein weiteres Verfahren ist die
Entschlüsselung
der vorherigen N – 1
Blöcke,
während ein
selektiver Wiederholungsblock N entschlüsselt wird. Dieses Verfahren
braucht das (N – 1)-fache
der Entschlüsselungszeit
länger,
um eine selektive Wiederholung zu entschlüsseln. Im Wesentlichen erfordert
dieses Verfahren die erneute Entschlüsselung mög lichst einer ganzen Nachricht,
die bereits entschlüsselt
wurde, nur um einen Block zu entschlüsseln.
-
Eine weitere Lösung für das Problem der Entschlüsselung
einer erneuten Übertragung
besteht darin, Synchronisationsinformation bzw. MI für jeden Datenblock
zu senden. Eine solche Lösung
erhöht die
Zeit und Energie, die es braucht, um Nachrichten zu senden und zu
empfangen. Die anschließende
erneute Übertragung
eines MI kann auch fehlerhaft empfangen werden, was weitere Wiederholungen
erfordert.
-
Demnach besteht ein Bedarf an einem
Verfahren zum Entschlüsseln
von Daten, nachdem die erneute Übertragung
von einigen der Blöcke
durch die Empfangseinheit empfangen wurde, ohne den Entschlüsselungsprozess
unnötig
zu verzögern.
Außerdem
sollte ein solches Verfahren konstante Datendurchsatzpegel sowohl
für verschlüsselte als auch
für unverschlüsselte Daten
bereitstellen.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Blockdiagramm einer empfangenen Nachricht als Eingabe in einen
im CFB-Modus arbeitenden Schlüsselgenerator
gemäß der Erfindung.
-
2 ist
ein Flussdiagramm zur Darstellung eines Verfahrens zum Entschlüsseln einer
mit Schlüsselrückkopplung
verschlüsselten
Nachricht, wenn die erneute Übertragung
fehlerhafter Datenblöcke
gemäß der Erfindung
stattgefunden hat.
-
3 ist
ein Flussdiagramm zur Darstellung eines Verfahrens zur Verarbeitung
von mit Schlüsselrückkopplung
verschlüsselten
Daten gemäß der Erfindung.
-
4 ist
ein Flussdiagramm zur Darstellung eines Verfahrens zum Empfangen
und Verarbeiten eines erneut gesendeten Datenblocks gemäß der Erfindung.
-
Die veröffentlichte Patentanmeldung
EP-A-0 446 194 hat den Titel "Continuous
cipher synchronisation for cellular communication System". Jede Verschlüsselungsvorrichtung
in der EP-A-0 446 194 umfasst einen Mehrbit-Zähler und generiert einen pseudozufälligen Schlüsselstrom,
der mit den zu verschlüsselnden
Daten kombiniert wird. Der Schlüsselstrom
ist eine Funktion des Werts des Mehrbit-Zählers, der in regelmäßigen Abständen in
Reaktion auf eine Serie von Taktsignalen inkrementiert wird. Das System
liefert kontinuierliche oder sehr häufige Updates des Zählerwerts
des Senders, die dazu verwendet werden können, den Zähler des Empfängers zurückzusetzen
und das System erneut zu synchronisieren, ohne Reinitialisierung
und Wiederholung der störenden
Taktsignale.
-
Beschreibung einer bevorzugten
Ausführungsform
-
Nachfolgend wird ein Verfahren zum
Entschlüsseln
von erneuten Übertragungen
von verschlüsselten
Daten beschrieben, wobei die erneute Übertragung nicht die Übertragung
einer ganzen Nachricht umfasst. Nach dem ersten Empfang einer aus
einer Vielzahl von Blöcken
bestehenden verschlüsselten
Datennachricht wird festgestellt, ob die empfangenen Blöcke fehlerhaft
oder nicht fehlerhaft sind. Ein Vorbereitungsblock wird für Teile
der fehlerhaft empfangenen Nachricht gespeichert. Es erfolgt die
Aufforderung zur erneuten Übertragung
von fehlerhaft empfangenen Blöcken.
Wenn die erneut gesendeten Blöcke
ohne Fehler empfangen werden, wird der Vorbereitungsblock aus dem
Speicher aus dem ersten Empfang der verschlüsselten Datennachricht gezogen.
Auf diese Weise muss man nicht warten, bis die ganze Nachricht empfangen
ist, oder Daten erneut entschlüsseln,
um die ganze Nachricht zu entschlüsseln. Die Entschlüsselung
von ausgewählten
Teilen der Nachricht erfolgt also ohne unnötige Verzögerungen oder redundante Arbeit.
-
Ein Verfahren zum Entschlüsseln von
erneut gesendeten Teilen einer Nachricht umfasst den Empfang (201)
einer Nachricht, die Verschlüsselungssynchronisation
und eine Vielzahl von verschlüsselten Blöcken umfasst.
Bis ein erster Block aus der Vielzahl von verschlüsselten
Blöcken
mit Fehler empfangen wird, wird ein erster Schlüsselstrom aus der Verschlüsselungssynchronisation
und mindestens einem aus der Vielzahl von verschlüsselten
Blöcken generiert
(205), und unter Verwendung des ersten Schlüsselstroms
wird die Vielzahl von verschlüsselten
Blöcken,
die ohne Fehler empfangen wurden, bevor der erste Block aus der
Vielzahl von verschlüsselten
Blöcken
mit Fehler empfangen wird, entschlüsselt (207). Ein Vorbereitungsblock
wird aus der Nachricht ermittelt (211). Wenn der erste
Block aus der Vielzahl von verschlüsselten Blöcken mit Fehler empfangen wird,
wird eine zweite Nachricht gesendet (219), die eine erneute Übertragung
des ersten Blocks verlangt. Nachdem die erneute Übertragung des ersten Blocks
ohne Fehler empfangen wurde, wird ein zweiter Schlüsselstrom
aus dem Vorbereitungsblock und der erneuten Übertragung des ersten Blocks
generiert (223) und die erneute Übertragung des ersten Blocks
wird unter Verwendung des zweiten Schlüsselstroms entschlüsselt (225).
-
Ein Blockdiagramm einer empfangenen Nachricht
als Eingabe in einen im CFB-Modus arbeitenden Schlüsselgenerator
ist in 1 dargestellt. Eine
empfangene Nachricht 100 umfasst normalerweise einen Nachrichtenindikator
(MI) 101. Mit dem MI 101 werden die internen Zustände von
Verschlüsselungsvorrichtungen
synchronisiert, die als Schlüsselgeneratoren
oder KGs bekannt sind. Block 1 103 wird mit 0 Fehlern empfangen.
Block 2 105 wird mit 1 Fehler empfangen. Block 3 107 wird
mit 0 Fehlern empfangen. Block 4 109 wird mit 2 Fehlern
empfangen. Block X 111 wird mit 0 Fehlern empfangen, wobei
X eine ganze Zahl ist, die angibt, wie viele verschlüsselte Blöcke in der
Nachricht 100 empfangen werden. In einem System, bei dem
fehlerhafte Blöcke erneut
gesendet werden müssen,
wird eine Aufforderung zur erneuten Übertragung für fehlerhafte
Blöcke gesendet,
in diesem Fall für
Block 2 105 und Block 4 109, unter der Annahme,
dass alle Blöcke
zwischen Block 4 und Block X ohne Fehler empfangen wurden.
-
Die empfangene Nachricht 100 wird
als verschlüsselter
Text in den CTI-Eingang (CTI = "cipher text
in") eines KG 113 eingegeben.
Der KG 113 verarbeitet den CTI zu einem Schlüsselstrom
unter Verwendung des Verschlüsselungsalgorithmus
des KG 113. Der Schlüsselstrom
wird durch ein EXKLUSIV-ODER-Gatter 115 einer EXKLUSIV-ODER-Verknüpfung mit
dem in den KG eingegebenen verschlüsselten Text unterzogen, so
dass man Klartext, d. h. unverschlüsselte Daten erhält, und
der Entschlüsselungsprozess
ist beendet. Weil der KG 113 im CFB-Modus arbeitet, ist
der KG 113 selbstsynchronisierend. Daten werden falsch
entschlüsselt,
bis der Verschlüsselungszustand
des empfangenden KG 113 mit dem KG synchronisiert ist,
der die Nachricht 100 gesendet hat.
-
Wenn zwei Geräte zu Beginn unterschiedliche
Verschlüsselungszustände haben,
ihnen aber identische verschlüsselte
Ströme
eingespeist werden, werden sich beide Geräte selbst in den Verschlüsselungszustand
des verschlüsselnden
Geräts synchronisieren
und dieselbe entschlüsselte
Information ausgeben, nachdem eine bestimmte Anzahl Bits in die
Geräte
eingegeben wurden (in Abhängigkeit
von der Länge
der internen Register in der Verschlüsselungsvorrichtung). Bei der
bevorzugten Ausführungsform
werden 64 Bits verwendet.
-
Das Senden verschlüsselter
Daten als Synchronisationsdaten vor der Nachricht hilft dem empfangenden
KG, sich ohne Datenverlust zu synchronisieren. Die zum Synchronisieren
des KG verwendeten verschlüsselten
Daten werden als Vorbereitungsblock bezeichnet. Bei der bevorzugten
Ausführungsform
stellt der Vorbereitungsblock für
einen Datenblock N die letzten 64 Datenbits von Block N – 1 dar, d.
h. den unmittelbar vor dem Empfang von Block N empfangenen Datenblock.
Wenn N = 1, ist der Vorbereitungsblock der MI 101, bei
dem es sich um die vor den Nachrichtendaten gesendeten Synchronisationsdaten
handelt. Der (verschlüsselnde)
KG des Senders wird durch denselben MI 101 initialisiert.
-
Um die Mitte oder das Ende einer
Nachricht zu entschlüsseln,
ohne zuerst den Anfang der Nachricht zu entschlüsseln, z. B. um zuerst den
Block 107 der empfangenen Nachricht 100 zu entschlüsseln, ohne
zuerst Block 103 und Block 105 zu entschlüsseln, wird
der KG 113 mit den letzten Bits von verschlüsselten
Daten aus dem zuvor empfangenen Block 105 vorbereitet,
um den Verlust von Daten zu verhindern. Die Vorbereitung des KG 113 umfasst
die Eingabe des Vorbereitungsblocks in den KG 113. Wenn
nach der Vorbereitung des KG 113 das nächste Datenbit aus der verschlüssel ten
Nachricht in den KG 113 eingegeben wird, d. h. das erste
Bit von Block 107 in den KG 113 eingegeben wird,
wird das erste Bit von entschlüsselten
Daten als Klartext ausgegeben. Der Prozess wird wiederholt, wenn
die verbleibenden Bits von verschlüsselten Daten in den KG 113 eingegeben
werden, bis alle Daten in der empfangenen Nachricht entschlüsselt sind.
-
Wenn in Schlüsselrückkopplungssystemen ein Block
fehlerhaft empfangen wird, ist die korrekte Entschlüsselung
des folgenden Blocks nicht möglich, weil
zumindest ein Teil des vorherigen verschlüsselten Textblocks der Vorbereitungsblock
des aktuellen Blocks ist, mit dem der korrekte Schlüsselstrom
generiert wird, um den Block zu entschlüsseln. Um die Entschlüsselung
einer Nachricht von einem anderen Startpunkt aus als dem Anfang
zu beginnen, wird der Zustand des KG am Ende des vorigen Blocks
als bevorzugte Ausführungsform
beibehalten, indem zumindest ein Teil des letzten Blocks, der vor
dem fehlerhaft empfangenen Block korrekt empfangen wurde, als Vorbereitungsblock
gespeichert wird. Wenn der erste Block der Nachricht fehlerhaft
empfangen wird, wird der MI markiert und als Vorbereitungsblock gespeichert.
-
Ein Verfahren zum Entschlüsseln einer
mit Schlüsselrückkopplung
verschlüsselten
Nachricht, wenn die erneute Übertragung
fehlerhafter Datenblöcke
stattgefunden hat, ist in dem Flussdiagramm von 2 dargestellt. In Schritt 201 wird
eine Nachricht 100 empfangen. Wenn in Schritt 203 ein
Block ohne Fehler empfangen wird, fährt der Prozess mit Schritt 205 fort,
wo aus einem Vorbereitungsblock ein Schlüsselstrom generiert wird. Bei
der bevorzugten Ausführungsform
handelt es sich bei dem Vorbereitungsblock für einen Datenblock N um die
letzten 64 Datenbits aus Block N – 1, d. h. dem vorigen Datenblock.
Wenn N = 1, d. h. für
den ersten Block 103 der Nachricht, ist der Vorbereitungsblock
der MI 101. Jeder Datenblock hat einen anderen, nach dem
obigen Verfahren ermittelten Vorbereitungsblock. Ein Vorbereitungsstrom
besteht aus dem Vorbereitungsblock gefolgt von dem verschlüsselten
Text bzw. verschlüsselten
Daten. Wenn sich zum Beispiel die verschlüsselten Daten in den Blöcken 103 bis 111 finden,
ist der Vorbereitungsblock der MI 101 und die verschlüsselten
Daten in den Blöcken 103 bis 111 für den Vorbereitungsstrom.
Mit dem Vorbereitungsstrom wird der Schlüsselstrom wie folgt generiert.
Der Vorbereitungsstrom wird in den CTI-Eingang des KG 113 eingegeben.
Der KSO-Ausgang des KG 113 ist der Schlüsselstrom, der notwendig ist,
um den verschlüsselten
Text zu entschlüsseln,
der als Teil des Vorbereitungsstroms in den KG eingegeben wurde.
-
In Schritt 207 werden die
ohne Fehler empfangenen Blöcke
unter Verwendung des Schlüsselstroms
entschlüsselt.
Wenn es in Schritt 209 mehr Blöcke in der Nachricht 100 gibt,
fährt der
Prozess mit Schritt 203 fort. Wenn in Schritt 203 ein
Block fehlerhaft empfangen wird, wird in Schritt 211 ein
Vorbereitungsblock ermittelt. Der letzte empfangene Block, der ohne
Fehler empfangen wurde, wird in Schritt 211 als Vorbereitungsblock
für den
speziellen fehlerhaft empfangenen Block markiert. Wenn der erste
Block 103 von verschlüsselten
Daten fehlerhaft empfangen wird, d. h. der erste fehlerhaft empfangene
Block ist der rechtzeitig empfangene erste Block der Nachricht,
dann ist der MI 101 der Vorbereitungsblock in Schritt 211.
Wenn in Schritt 213 noch mehr Blöcke in der Nachricht 100 zu
ent schlüsseln
sind, fährt
der Prozess mit Schritt 215 fort. Wenn in Schritt 213 keine
weiteren Blöcke
in der Nachricht 100 übrigbleiben, fährt der
Prozess mit Schritt 219 fort. Wenn der Block in Schritt 215 korrekt
empfangen wird, wird jener Block in Schritt 217 als Folgeblock
markiert, der später
zu entschlüsseln
ist und bei der bevorzugten Ausführungsform
als Vorbereitungsblock für
den nächsten
empfangenen Block zu verwenden ist, und der Prozess fährt fort
mit Schritt 209. Wenn der Block in Schritt 215 fehlerhaft
empfangen wurde, fährt
der Prozess fort mit Schritt 213.
-
In Schritt 219 verlangt
die Kommunikationseinheit die erneute Übertragung aller fehlerhaft
empfangenen Blöcke,
d. h. benötigten
Blöcke.
Wenn Blöcke,
für die
die erneute Übertragung
verlangt wurde, in Schritt 221 ohne Fehler empfangen werden,
d. h. die benötigten
Blöcke
werden ohne Fehler empfangen, wird der Schlüsselstrom aus dem in Schritt 211 für diesen
Block ermittelten Vorbereitungsblock und den verschlüsselten
Daten für
diesen erneut gesendeten Block generiert. In Schritt 225 wird
die erneute Übertragung
des(der) benötigten
Blocks (Blöcke)
unter Verwendung des Schlüsselstroms
entschlüsselt. Wenn
in Schlüsselrückkopplungssystemen
ein Block fehlerhaft empfangen wird, kann der folgende Block nicht
entschlüsselt
werden, weil der vorhergehende verschlüsselte Textblock verwendet
wird, um den Vorbereitungsstrom (Schlüsselstrom) des aktuellen Blocks
zu generieren. Bei der bevorzugten Ausführungsform wird also in Schritt 227 der
Folgeblock unmittelbar nach dem Entschlüsseln der benötigten Blöcke entschlüsselt, weil
die benötigten
Blöcke
den zum korrekten Entschlüsseln
des Folgeblocks benötigten
Vorbereitungsblock liefern. Wenn in Schritt 229 mehr Blöcke aus
der Nachricht 100 zu empfangen sind, fährt der Prozess mit Schritt 221 fort,
andernfalls endet der Prozess. Die Entschlüsselung der erneuten Übertragung
von benötigten
Blöcken
kann stattfinden, wenn eine erneute Übertragung eines Blocks ohne
Fehler empfangen wird, oder wenn die erneute Übertragung von zwei oder mehr
Blöcken ohne
Fehler empfangen wird, und so weiter, oder wenn die erneute Übertragung
aller benötigten
Blöcke
ohne Fehler empfangen wird.
-
Ein Verfahren zum Verarbeiten von
mit Schlüsselrückkopplung
verschlüsselten
Daten ist in dem Flussdiagramm von 3 gemäß der bevorzugten
Ausführungsform
dargestellt. Dieses Flussdiagramm beschreibt die Maßnahmen,
die ergriffen werden, wenn eine verschlüsselte Datennachricht zum ersten
Mal empfangen wird. In Schritt 301 wird der MI 101 abgerufen.
In Schritt 303 wird der Schlüsselgenerator mit dem MI 101 initialisiert.
Der MI wird verwendet, um das Sendegerät mit dem Empfangsgerät zu synchronisieren.
Diese Synchronisation erfolgt durch Initialisieren des Eingangsregisters
sowohl des Sende- als auch des Empfangsgeräts mit derselben Information
in Form des MI 101, d. h. dieselbe Information, der MI 101,
ist diejenige, die in den verschlüsselnden (sendenden) KG als
Eingang für den
empfangenden KG 113 eingegeben wurde. In Schritt 305 wird
der Blockzähler
N initialisiert, d. h. N = 1. In Schritt 307 wird Block
N aus der Nachricht 100 abgerufen. Wenn Block N in Schritt 309 nicht
fehlerhaft empfangen wurde, d. h. Block N wurde korrekt empfangen,
fährt der
Prozess fort mit Schritt 311. In Schritt 311 wird
Block N in dem Puffer N + 1 gespeichert, um als Vorbereitungsblock
verwendet zu werden, wenn Block N + 1 fehlerhaft empfangen wird.
In Schritt 313 wird Block N entschlüsselt, und das Ergebnis wird
gespeichert. In Schritt
315 wird der Blockzähler inkrementiert,
d. h. N = N + 1. Wenn in Schritt 317 Block N der letzte
Block der Nachricht ist, fährt
der Prozess fort mit Schritt 337, andernfalls fährt der
Prozess fort mit Schritt 307.
-
Wenn in Schritt 309 Block
N fehlerhaft empfangen wurde, fährt
der Prozess fort mit Schritt 319. In Schritt 319 wird
ein Wiederholungsflag für
Block N gesetzt. In Schritt 321 wird Block N weggeworfen.
In Schritt 323 wird der Blockzähler inkrementiert, d. h. N =
N + 1. In Schritt 325 wird Block N abgerufen. Wenn Block
N in Schritt 327 korrekt empfangen wird, fährt der
Prozess fort mit Schritt 329, wo Block N zur anschließenden Entschlüsselung
in dem Puffer N gespeichert wird und verwendet werden kann, um den empfangenden
KG erneut für
den sendenden KG zu initialisieren, wenn der nächste Block (N + 1) ohne Fehler
empfangen wird, und der Prozess fährt fort mit Schritt 315.
Wenn Block N in Schritt 327 fehlerhaft empfangen wird,
wird das Wiederholungsflag für Block
N in Schritt 331 gesetzt. In Schritt 333 wird
der Blockzähler
inkrementiert, d. h. N = N + 1. Wenn Block N in Schritt 335 nicht
der letzte Block der Nachricht 100 ist, fährt der
Prozess fort mit Schritt 325, andernfalls fährt der
Prozess fort mit Schritt 337. In Schritt 337 verlangt
die Kommunikationseinheit die erneute Übertragung aller fehlerhaft
empfangenen Blöcke,
d. h. benötigten
Blöcke,
und der Prozess endet. Zu diesem Zeitpunkt hat jeder benötigte Block bzw.
jede Gruppe von aufeinanderfolgenden benötigten Blöcken einen Vorbereitungsblock,
der zur späteren
Verwendung beim Generieren eines Schlüsselstroms gespeichert wird,
wenn die erneute Übertragung
des benötigten
Blocks oder der Gruppe von benötigten
Blöcken
ohne Fehler empfangen wird.
-
Um eine Beschreibung des Flussdiagramms von 3 anders zu formulieren,
wird ein Datenblock empfangen und geprüft, um festzustellen, ob er
korrekt empfangen wurde.
-
Wenn der Block korrekt empfangen
wurde, dann wird der empfangene Block in dem Empfangspuffer in Block
N + 1 gespeichert, wobei N die aktuelle Blocknummer ist. Die Daten
werden ebenfalls entschlüsselt,
und das Ergebnis wird in entschlüsseltem Text
in dem Pufferblock N gespeichert. Die Datenblocknummer wird inkrementiert,
und es wird geprüft, ob
die ganze Nachricht empfangen wurde. Wenn nicht, wird der nächste Datenblock
verarbeitet. Wenn der Datenblock nicht korrekt empfangen wird, dann wird
der empfangene Datenblock verworfen, und das Wiederholungsflag für den aktuellen
Datenblock wird gesetzt. An diesem Punkt werden die empfangenen Daten
für den
(korrekt empfangenen) vorherigen Block in dem Puffer für den aktuellen
Block gespeichert. Die gespeicherte Information wird als Initialisierung
für den
KG verwendet, wenn die Daten für den
fehlerhaft empfangenen Block erneut gesendet werden. Der nächste (anschließende) Datenblock wird
abgerufen. Wenn die Daten korrekt empfangen werden, wird der verschlüsselte Text
in dem Puffer für Block
N gespeichert. Der Block wird nicht gleich entschlüsselt, weil
der vorherige Block fehlerhaft war, und daher wird der KG nicht
mit dem Sender synchronisiert sein. Der erneut gesendete Block,
der korrekt empfangen wurde, wird verwendet werden, um den KG zur
Entschlüsselung
des Folgeblocks erneut zu initialisieren, bevor der Prozess zu der
Hauptschleife (fehlerfrei) zurückkehrt.
An diesem Punkt werden, solange Datenblöcke fehlerhaft empfangen werden,
die Daten weggeworfen, und das Wiederholungsbit wird bis zum Ende
der Nachricht gesetzt oder bis ein Datenblock ohne Fehler empfangen
wird.
-
Ein Flussdiagramm zur Beschreibung
des von einer Kommunikationseinheit beim Empfang eines erneut gesendeten
Datenblocks verwendeten Verfahrens ist in dem Flussdiagramm von 4 gemäß der bevorzugten Ausführungsform
dargestellt. In Schritt 401 wird Block N gelesen, wobei
Block N ein Block ist, der auf Anforderung durch die Kommunikationseinheit
erneut zu der Kommunikationseinheit übertragen wird. Wenn dieser
Block in Schritt 403 fehlerhaft empfangen wird, endet der
Prozess. Wenn der Block in Schritt 403 korrekt empfangen wurde,
fährt der
Prozess fort mit Schritt 405, wo Block N in einem temporären Puffer
gespeichert wird. Wenn in Schritt 407 Block N – 1 bei
dem ursprünglichen
Empfang der Nachricht korrekt empfangen wurde, fährt der Prozess fort mit Schritt 409,
wo der KG mit dem verschlüsselten
Text aus Block N – 1
initialisiert wird, der in Schritt 311 als Vorbereitungsblock gespeichert
wurde. Block N wird dann entschlüsselt und
das Ergebnis in Schritt 411 gespeichert.
-
Wenn in Schritt 407 Block
N – 1
beim ursprünglichen
Empfang der Nachricht fehlerhaft empfangen wurde, fährt der
Prozess fort mit Schritt 413, wo Block N im Puffer N gespeichert
wird. Bei der bevorzugten Ausführungsform
wird der verschlüsselte Text
in Schritt 413 für
Block N gespeichert, weil er jetzt nicht korrekt entschlüsselt werden
kann, weil der Vorbereitungsblock, der zum Entschlüsseln von Block
N, d. h. der Information aus Block N – 1, notwendig ist, zu diesem
Zeitpunkt nicht korrekt empfangen wurde. Bei der bevorzugten Ausführungsform wird
dieser Block entschlüsselt
werden, nachdem der vorherige Block, N – 1, kor rekt entschlüsselt wurde. Das
Wiederholungsflag für
Block N wird in Schritt 415 erneut gesetzt. In Schritt 417 wird
Block N als Vorbereitungsblock zum Initialisieren des KG 113 verwendet,
d. h. der Vorbereitungsblock wird in den KG 113 eingegeben,
und der Prozess fährt
fort mit Schritt 419. Wenn in Schritt 419 Block
N + 1 beim ursprünglichen
Empfang der Nachricht korrekt empfangen wurde, wird Block N + 1
nun entschlüsselt,
weil der KG 113 nun entweder aus Schritt 411 oder
aus Schritt 417 synchronisiert ist, um Block N + 1 zu entschlüsseln, und
das Ergebnis wird in Schritt 421 gespeichert. Wenn Block
N + 1 in Schritt 419 fehlerhaft empfangen wurde, wird Block
N in Schritt 423 im Puffer N + 1 gespeichert, um als Vorbereitungsblock
verwendet zu werden, wenn Block N + 1 erneut gesendet wird (was
bei der bevorzugten Ausführungsform
notwendig ist, wenn zwei oder mehr Blöcke hintereinander fehlerhaft
empfangen werden, die erneute Übertragung
des ersten Blocks korrekt empfangen wird und der zweite Block fehlerhaft
empfangen wird), und der Prozess endet.
-
Der Prozess von 4 wird für jeden Block wiederholt, der
erneut gesendet wird. Wenn es nach dem erneuten Senden jedes Blocks
immer noch Blöcke
gibt, die nicht korrekt empfangen wurden, erfolgt ein Auftrag zur
erneuten Übertragung
der immer noch fehlerhaften Blöcke.
Der Prozess von 4 wird
wieder für
jeden Block wiederholt, der erneut gesendet wurde. Ein Auftrag zur
erneuten Übertragung der
fehlerhaften Blöcke
erfolgt, bis alle Blöcke
korrekt empfangen werden oder bis die Kommunikationseinheit die
maximale Zahl von Wiederholungen, die für die Kommunikationseinheit
erlaubt sind, ausgeschöpft
hat.
-
Das Verfahren der Flussdiagramme
von 3 und 4 kann wie folgt beschrieben
werden. Das Verfahren umfasst die Schritte des Empfangens einer
Nachricht mit Verschlüsselungssynchronisation und
einer Vielzahl von verschlüsselten
Blöcken.
Die Vielzahl von verschlüsselten
Blöcken
umfasst einen N-ten Block, der ohne Fehler empfangen wird, unmittelbar
gefolgt von M aufeinanderfolgenden, mit Fehler empfangenen Blöcken, unmittelbar
gefolgt von L aufeinanderfolgenden, ohne Fehler empfangenen Blöcken, wobei
N und L ganze Zahlen ≥ 0
sind und M eine positive ganze Zahl ist. Wenn N ≥ 0, wird ein erster Vorbereitungsblock
aus der Nachricht ermittelt, ein erster Schlüsselstrom aus dem Vorbereitungsblock
und dem N-ten Block generiert, und der N-te Block wird unter Verwendung
des ersten Schlüsselstroms
entschlüsselt.
Nach Empfang der M aufeinanderfolgenden, mit Fehler empfangenen
Blöcke
wird ein zweiter Vorbereitungsblock aus der Nachricht ermittelt
und eine zweite Nachricht wird gesendet, die eine erneute Übertragung
der M aufeinanderfolgenden, mit Fehler empfangenen Blöcke verlangt.
Nach Empfang der erneuten Übertragung
der M aufeinanderfolgenden Blöcke
ohne Fehler wird ein zweiter Schlüsselstrom aus dem zweiten Vorbereitungsblock und
der erneuten Übertragung
der M aufeinanderfolgenden Blöcke
generiert, und die erneute Übertragung
der M aufeinanderfolgenden Blöcke
wird unter Verwendung des zweiten Schlüsselstroms entschlüsselt.
-
Außerdem wird bei der bevorzugten
Ausführungsform
der (N + M + 1)-Block aus der Vielzahl von verschlüsselten
Blöcken
als Folgeblock markiert. Der Folgeblock wird unmittelbar nach dem
Entschlüsseln der
erneuten Übertragung
der M aufeinanderfolgenden Blöcke
entschlüsselt.
Ferner wird, wenn N = 0, die Verschlüsselungssynchronisation als
Vorbereitungs block markiert, andernfalls umfasst der Vorbereitungsblock
den N-ten Block.
-
In bekannten Verschlüsselungssystemen wird
die Entschlüsselung
durchgeführt,
indem entsprechend des jeweiligen Verschlüsselungsmodus ein Schlüsselstrom
generiert wird und dann sofort die verschlüsselte Nachricht entschlüsselt wird,
indem der Schlüsselstrom
mit der verschlüsselten
Nachricht kombiniert wird (normalerweise einer EXKLUSIV-ODER-Verknüpfung für digitale
Informationen unterzogen wird), um Klartext (unverschlüsselten Text)
zu erhalten. Der Schritt des Kombinierens kann einfach und schnell
in einem Mikroprozessor durchgeführt
werden, der zum Beispiel mit 1 MHz läuft. Das Generieren des Schlüsselstroms
ist jedoch begrenzt durch die Frequenz, bei der der KG betrieben werden
kann, normalerweise 6 bis 50 kHz. Daher ist die tatsächliche
Zeit zum Generieren eines Schlüsselstroms
und zum Entschlüsseln
der verschlüsselten
Nachricht im Wesentlichen begrenzt durch die maximale Frequenz,
mit der der KG betrieben wird. Das obige Verfahren und seine Alternativen
spart Zeit gegenüber
bekannten Verfahren, indem die entsprechende Information gespeichert
und/oder generiert wird, um die Zeit zum Empfangen und Entschlüsseln einer
ganzen Nachricht zu minimieren, wenn die erneute Übertragung
von Daten erforderlich ist.