-
Allgemeiner Stand der Technik
-
Die
Erfindung betrifft allgemein das sichere Übertragen von Daten unter Verwendung
eines elektronischen Codier- und Decodiersystems. Die Erfindung
findet besondere Anwendung in der schlüssellosen Fernbedienung von
Zugangssystemen, obwohl sie nicht auf diese Anwendung begrenzt ist,
die hierin im Folgenden nur zu Beispielzwecken beschrieben wird.
-
Elektronische
Codier- und Decodiersysteme werden in immer größeren Umfang in der Zugangssteuerung
und anderen Sicherheitssystemen verwendet.
-
Beim
Anwenden zum Öffnen
eines Garagen- oder eines anderen Tors bietet eine Fernbedienung
dem Benutzer die Bequemlichkeit, das Fahrzeug nicht verlassen zu
müssen,
um den Toröffner
zu betätigen.
Der schlüssellose
Fernzugang, der in einem Fahrzeug verwendet wird, gestattet dem
Benutzer den einfachen Zugang zu einem Fahrzeug, ohne einen Schlüssel in
ein Schlüsselloch
einführen
zu müssen.
Fernbedienungssender bieten einen praktischen Mechanismus zum Aktivieren
und Deaktivieren von Sicherheitssystemen, wie beispielsweise Alarmen,
und können
als mobile Alarmknöpfe
wirken.
-
Das
Potenzial eines Angriffs auf ein Sicherheitssystem erhöht sich
mit der zunehmenden Leistung und Geschwindigkeit von im Handel erhältlichen
Computern und damit, dass diese Geräte billiger werden. Mit anderen
Worten, Sicherheitsebenen für
Zugangssteuerung sind von Natur aus dynamisch und müssen von
Zeit zu Zeit angepasst werden.
-
Stand der Technik
-
Frühere Codierer
und Decodierer auf digitaler Basis waren so ausgelegt, dass sie
einen festen Code von angenommen 8 Bits übertrugen. Der Codierer (Sender)
sendete jedes Mal den gleichen Code, wenn er aktiviert wurde.
-
Der
Typ von System wurde angegriffen, indem eine Abtastvorrichtung mit
einem Sender verwendet wurde, der alle Codes der Reihe nach durchging.
Da die Anzahl der möglichen
Codes ziemlich klein war, war es machbar, alle Codes in einer relativ
kurzen Zeit durchzugehen. Dieser Typ von Abtastung konnte manuell unter
Verwendung von DIP-Schaltern in einem serienmäßig produzierten Sender durchgeführt werden.
-
Um
diesem Problem entgegenzutreten, wurde die Anzahl von Bits (die
Code-Länge)
erhöht,
und es wurden Anti-Abtasttechniken implementiert. Wenn zum Beispiel
eine Anzahl von ungültigen
Codes innerhalb einer kurzen Zeitperiode empfangen wurde, blockierte
das System immer für
einige Minuten, um die Zeit, die zum Abtasten des Code-Raums erforderlich
war, in inakzeptabler Weise zu verlängern.
-
Die
Lösung
wurde wiederum von Codefangschaltungen oder Recordern zunichte gemacht.
Der gesendete Code wurde aufgezeichnet und wiedergegeben. Abgesehen
von der Code-Länge
war der Empfänger (Decodierer)
nicht in der Lage, zwischen einer ursprünglichen Nachricht und einer
Aufzeichnung davon zu unterscheiden. Ein typischer Wiedergabe-Angriff
ist in einem unidirektionalen System mit festem Code unmöglich zu
verhindern.
-
Um
die Code-Abfangtechnik abzuwehren, wurden Systeme mit variablem
Code, rollierendem Code oder Code-Sprungentwickelt. Dabei handelte
es sich durchweg um unidirektionale Systeme, weil bidirektionale Systeme
teuer und unhandlich waren. Obwohl eine Reihe dieser Systeme relativ
sicher war, wiesen einige praktische Einschränkungen auf, und im Allgemeinen
fehlte es ihnen an akzeptablen Mitteln für die Bearbeitung von verlorenen
Codes, d.h. von Codes, die außerhalb
der Reichweite des dazugehörigen
Empfängers
gesendet wurden. Diese Zwangsläufigkeit
schuf eine "Hintertür", was zu einer Verletzung
der Sicherheit führte.
-
Soum
(
U.S.-Patent Nr. 5107258 ),
Yoshizawa (europäische
Veröffentlichungs-Nr.
EP 0311112 A ) und Bruwer
und andere (
U.S.-Patent Nr. 5517187 )
zeigen Systeme, die sich mit verschiedenen Problemen beschäftigen,
die mit unidirektionalen Codierer/Decodierer-Sicherheitssystemen
verbunden sind. Allerdings, wie bereits dargelegt, sind Sicherheitssysteme
dynamisch, und es haben sich neue Angriffstypen entwickelt, und es
sind Mängel
in solchen Systemen zutage getreten.
-
Soums
System weist einen inkrementierenden Zähler auf, und jede Übertragung
basiert auf einem neuen Zählerwert.
Der Zählerwert
wird zusammen mit anderen Informationen unter Verwendung eines irreversiblen
Algorithmus und geheimer Informationen verschlüsselt. Die Zählung wird
im Klartext zusammen mit dem verschlüsselten Datenwort übertragen.
Der Empfänger
muss prüfen,
ob der verschlüsselte
Wert einem offenen Wert entspricht. Insofern stellt ein verlorener
Code bzw. eine verlorene Synchronisation kein Problem dar.
-
In
dem von Bruwer und anderen gelehrten System wird ein Zähler verwendet,
der sich bei jeder Aktivierung ändert.
Unter Verwendung eines geheimen Schlüssels bzw. einer Identifikationsnummer
wird der Zählwert
zusammen mit anderen Daten mittels eines Algorithmus verschlüsselt, der
einen dazugehörigen
Decodier-Algorithmus
am Empfänger
aufweist. Am Empfängerende
wird das verschlüsselte
Codewort entschlüsselt,
um den Zählerwert
zu ergeben. Durch Subtrahieren des vorherigen gültigen empfangenen Codewort-Zählerwerts
von dem jüngsten
Zählerwert
kann die Anzahl verlorener Codes ermittelt werden.
-
In
den vorgenannten Referenzen kann die Anzahl verlorener Codes einige
weitere Maßnahmen
bestimmen, aber wichtiger ist, es kann festgestellt werden, ob der
empfangene Code tatsächlich
ein neuer Code und nicht eine Wiedergabe eines alten Codes ist,
der aufgezeichnet worden sein könnte.
-
Die
vorgenannten Systeme zeigen jedoch die folgenden Schwachpunkte auf,
ungeachtet der Qualität des
Verschlüsselungsalgorithmus,
der zum Sichern der Daten verwendet wird:
-
(a) Angriff durch externe Aufzeichnungs-Wiedergabe:
-
In
diesem Szenario wird der Sender außerhalb der Reichweite des
zugehörigen
Empfängers
aktiviert. Der Code wird dann aufgezeichnet und kann durch eine
Wiedergabe dazu verwendet werden, einen Garagentor-Öffner (GDO)
oder eine Fahrzeugtür usw.
zu aktivieren (zu öffnen).
Dies kann auch erfolgen, obwohl sich der legale Schlüssel immer
noch beim Besitzer befindet und vom Empfänger entfernt ist. Nach der
Aufzeichnung können
Stunden vergehen. Natürlich
wird die nächste Übertragung
von dem authentischen Schlüssel, die
von dem Decodierer empfangen wird, den aufgezeichneten Code ungültig machen.
-
Dieser
Angriff kann gefährlicher
sein, wenn nach der bzw. den Aufzeichnungen der legale Schlüssel (nicht
sichtbar, aber funktionell) beschädigt wird und daher die aufgezeichnete Übertragung
nicht ungültig
machen kann, indem für
den Empfänger
ein neuerer Code bereitgestellt wird.
-
Sofern
der Benutzer diesen speziellen Sender (oder Schlüssel) nicht löscht, kann
der Angreifer den bzw. die aufgezeichneten Codes für einen
längeren
Zeitraum (Monate oder Jahre) verwenden, um sich unerlaubten Zugang
zu schaffen. Es ist bekannt, dass der durchschnittliche Benutzer
solche Aufgaben selten sorgfältig
durchführen
kann.
-
Der
Angriff benötigt
keinen physischen Zugang zu dem legalen Schlüssel, und man kann argumentieren,
dass der Angriff irrelevant ist, was auf die meisten Situationen
wahrscheinlich zutrifft. Allerdings ist es immer noch so einfach,
oder sogar noch einfacher, wie einen mechanischen Schlüssel zu
stehlen, ein Duplikat anfertigen zu lassen und das Original wieder
zurückzulegen,
um Verdacht zu vermeiden.
-
(b) Doppelte Aufzeichnung, Blockierung
und Wiedergabe:
-
Für diesen
Angriff ist etwas mehr Fachwissen erforderlich, aber für die meisten
Leute mit Elektronik-Kenntnissen ist er sicherlich möglich. Dieser
Angriff ist sehr relevant für
GDOs mit einem Knopf. Wenn ein Benutzer einen Sender aktiviert,
um ein Tor zu schließen,
zeichnet der Angreifer das gesendete Codewort auf, blockiert zu
gleichen Zeit aber den Empfang des speziellen Codeworts an dem GDO-Empfänger. Dies
kann erfolgen, indem die Übertragungswörter selektiv
blockiert werden.
-
Typischerweise
versucht der Benutzer eine weitere Übertragung. Der Angreifer zeichnet
wieder auf und blockiert. Wenn die Übertragung beendet ist, gibt
der Angreifer das erste erfasste Codewort wieder. Das GDO empfängt dieses
und schließt
sich.
-
Wenn
der Benutzer jetzt wegfährt,
hat der Angreifer ein Codewort erfasst, dass momentan, (bis der rechtmäßige Benutzer
einige Stunden oder Tage später
zurückkommt),
in der Lage ist, diese spezielle GDO zu aktivieren.
-
(c) Ungesicherte Befehls-Bits:
-
Das
von Soum vorgeschlagene System sendete seine Befehle ungesichert.
Dies würde
es für
einen Angreifer einfach machen, einen Befehlstyp (Alarm einschalten)
in einen anderen (Deaktivieren) zu ändern. Unter Verwendung dieser
Technik kann auch der Angriff mittels doppelter Aufzeichnung, Blockierung
und Wiedergabe bei Mehrschalter-Sendersystemen verwendet werden;
und
-
(d) Schrittweiser Schnelldurchlauf:
-
Umlauf
in kurzer Zeit. Dabei handelt es sich vermutlich um das schlimmste
Problem, weil für
diesen Angriff nur sehr wenig Technologie erforderlich ist. Der
Angreifer nimmt eine schrittweise Übertragung vor, indem der Sender
einige Male, z.B. 100 mal, aktiviert wird und dann einige Aufzeichnungen
von anschließenden Übertragungen
vorgenommen werden. Dann aktiviert der Angreifer den Sender, bis
er umläuft
und stoppt ihn beim gleichen Zähler,
bei dem er sich befand, bevor er ursprünglich gestartet wurde. Der
Benutzer bemerkt nichts, aber der Angreifer verfügt über einige künftige Codes
für die
Verwendung bei einem Angriff, der jederzeit während der nächsten längeren Zeitperiode erfolgen
kann.
-
Nicht
sicherheitsbezogene Mängel
sind:
- (a) Wenn ein legaler Schlüssel für mehr als
einen Decoder/eine Anwendung verwendet wird, kann der Zähler viele
Male zwischen Aktivierung in dem am wenigsten verwendeten Decodierer
erhöht
werden. Dies kann zu Anforderungen eines breiteren Fensters führen, das,
obwohl es das Sicherheitsniveau senkt, eher ein praktisches Betriebsproblem
ist.
- (b) Die Tatsache, dass der Zählerwert
ebenfalls unverschlüsselt übertragen
wird, z.B. wie bei Soums Technik, macht das Codewort länger. Dies
hat Auswirkungen auf die Übertragungsenergie
und Geräuschwahrnehmbarkeit.
-
Wie
aus der vorhergehenden Diskussion ersichtlich ist, weisen die Systeme,
die von Bruwer und anderen sowie Soum vorgestellt wurden, obwohl
es sich um in hohem Maße
verbesserte Systeme gegenüber den
vorherigen Systemen mit festem Code handelt, immer noch einige Bereiche
auf, die für
Verbesserungen offen sind. Dies wird zwingend notwendig, da die
den Angreifern zur Verfügung
stehende Technologie immer fortschrittlicher wird. Der Anreiz für einen
Angreifer wird ebenfalls attraktiver, da dieser Systemtyp verwendet wird,
um immer wertvolleres Eigentum zu schützen.
-
Das
von Yoshizawa vorgestellte System ist zeitbasiert, wobei ein Zeitgeber
den von Soum und Bruwer und anderen verwendeten inkrementierenden
Zähler
ersetzt, um Codes zu sichern, die sich mit jeder Übertragung ändern. Diese
Vorgehensweise bietet für
die Sicherheit große
Vorteile. Das System, so wie es von Yoshizawa vorgestellt wird,
weist jedoch ernsthafte Mängel
auf, wenn es für
eine weitreichende Implementierung in Produkten wie beispielsweise
schlüsselloser
Fernzugang (RKE) für
Fahrzeuge, Fernbedienungen für
Tore und Garagentor-Öffner
(GDOs) oder andere Zugangssteuerungsanwendungen mit Sicherheitsanforderungen in
Betracht gezogen wird.
-
Yoshizawa
schlägt
ein System vor, in dem Sender- und Empfänger-Zeitgeber zum gleichen
Zeitpunkt gestartet werden, um die Zeitgeber zu synchronisieren.
Diese Prozedur wäre
für einen
großen
Prozentsatz der Benutzer zu kompliziert. Wenn mehr als ein Sender
einen einzelnen Empfänger
steuern muss, wird die Lage noch schlimmer. Wenn nicht alle Sender
zur gleichen Zeit vorhanden sind, ist diese Vorgehensweise tatsächlich unmöglich (Spalte
3, Zeile 36–41).
Für die
meisten Anwendungen ist dies praktisch undurchführbar.
-
Yoshizawa
anerkennt die Zeitdifferenz, die aufgrund der natürlichen
Drift zwischen den Zeitgebern auftritt, spricht dieses Problem aber
nur an, indem das Zeitfenster zum Akzeptieren von Übertragungen
vergrößert und
eine Warnung ausgegeben wird, wenn der Zeitunterschied einen gewissen
Grenzwert erreicht, der geringer als der Grenzwert ist, über den
hinaus der Empfänger
nicht gesteuert werden kann.
-
In
einer weiteren Ausführungsform
ist eine Code-Einstellmaßnahme
erforderlich (Spalte 5, Zeile 16–21). In einem Beispiel sind
eine Armbanduhr mit einer Anzeige und einer Tastatur (10 Tasten)
gezeigt. In dieser Ausführungsform
kann der Empfänger
direkte Übertragungen
akzeptieren, um eine Reihe von Zeitgebern einzustellen. In diesem
Fall sind Tastaturen an dem Sender und dem Empfänger erforderlich.
-
Die
Sender/Empfänger-Zeitanzeigen
leiten den Benutzer auch dazu an, die Zeit zu korrigieren, wenn eine
Unstimmigkeit festgestellt wird. Für ein System wie dieses sind
Anzeigen, Tastaturen und Benutzereingriffe erforderlich und können für eine große Anzahl
von Anwendungen aufgrund der Kosten, der Größe und Anforderungen bezüglich einer
bedienungsfreundlichen Benutzertransparenz inakzeptabel sein.
-
Das
Yoshizawa-System ist für
Anwendungen gedacht, in denen einige wenige "illegale Eingaben", die in einer relativ kurzen Periode
erreicht werden können,
(Spalte 9, Zeile 45–48),
nicht als ein Problem betrachtet werden. In allgemeinen Sicherheitsanwendungen
wäre ein
solches Ereignis jedoch inakzeptabel.
-
Yoshizawa
stellt keine Lösung
für das
sehr reale Problem vor, bei dem der Empfänger- oder Sender-Zeitgeber
Energie verliert, (leere Batterie), und daher die Zeit nicht mehr
verfolgt, die sich auf andere Zeitgeber in dem System bezieht. Daraus
muss gefolgert werden, dass ein vollständiges Neu-Erlernen durchgeführt werden
muss. Dies wäre
auf dem allgemeinen Markt sicherlich nicht akzeptabel.
-
FR-A-2678755 offenbart
eine Fernsteuerung, die einen Erkennungscode verwendet, der einen
festen Teil und einen zeitabhängigen
Teil umfasst, der gleichzeitig durch einen Zähler in einem Sender und durch
einen Zähler
in einem Empfänger
erzeugt wird. Diese Zähler
werden zu Beginn und danach bei jedem Betrieb der Fernsteuerung
synchronisiert.
-
Zusammenfassung der Erfindung
-
Die
Erfindung stellt ein Verfahren zum sicheren Übertragen von Daten von einem
Codierer zu einem Decodierer bereit, wobei das Verfahren die folgenden
Schritte umfasst:
- (a) am Codierer Verschlüsseln eines
Datenworts, das wenigstens teilweise auf Zeitgeber-Informationen
basiert, die durch den Codierer-Zeitgeber erzeugt werden, um ein Übertragungswort
zu bilden;
- (b) Übertragen
des Übertragungsworts
zu dem Decodierer; und
- (c) an dem Decodierer Entschlüsseln des Übertragungsworts; wobei das
Verfahren gekennzeichnet ist durch die folgenden Schritte
- (d) an dem Decodierer Speichern eines Zeitgeber-Verhältniswerts,
der während
eines Lernprozesses des Codierers und des Decodierers erstellt wird
und wenigstens von einer Differenz zwischen einem Wert des Codierer-Zeitgebers und einem
Wert des Decodierer-Zeitgebers abhängt;
- (e) Validieren des Übertragungsworts
durch Vergleichen der Codierer-Zeitgeberinformationen,
der Decodierer-Zeitgeberinformationen und ihrer Beziehung zu dem
gespeicherten Zeitgeber-Verhältniswert;
und
- (f) Aktualisieren des Zeitgeber-Verhältniswerts in den Decodierer
nach dem Empfang eines gültigen Übertragungsworts,
um sämtliche
Unstimmigkeiten in der Beziehung zwischen dem Codierer-Zeitgeber,
dem Decodierer-Zeitgeber
und dem Zeitgeber-Verhältniswert
zu beseitigen.
-
In
einigen Ausführungsformen
der Erfindung wird der Zeitgeber-Verhältniswert einer Fenstergröße in dem
Decodierer zugeordnet, und der Codierer-Zeitgeber wird betrieben,
um sicherzustellen, dass die Codierer-Zeitgeberinformationen nicht
außerhalb
des Fensters für
eine gültige Übertragung
eines Übertragungsworts
liegen.
-
Die
Daten, die verschlüsselt
sind, werden in ein Datenwort kompiliert, das verschlüsselt wird,
um das Übertragungswort
zu bilden.
-
Das
Datenwort kann zusätzlich
wenigstens eines von dem Folgenden enthalten: Identitätsinformationen,
die zu dem Sender gehören;
Befehlsinformationen; Dienstprogramm-Informationen; feste Code-Informationen
und benutzerdefinierte Informationen.
-
Das
Verfahren kann den Schritt umfassen, den Sender und Empfänger unter
Verwendung eines Kaltstartzählers
in Gleichlauf zu halten, der jedes Mal geändert wird, wenn der Sender
eingeschaltet wird oder aus dem Reset zurückkehrt. Der Zählwert des
Kaltstartzählers
kann verwendet werden, um einen Schlüssel oder Algorithmus an dem
Sender zu beeinflussen, und der Zählwert ist nicht notwendigerweise
Teil des Datenworts, das verschlüsselt
ist.
-
Der
Zählwert
des Kaltstartzählers
kann unverschlüsselt
zu dem Empfänger übertragen
werden.
-
Wenigstens
ein Teil eines Worts, in dem der Zählwert des Kaltstartzählers integriert
ist, kann zum Bezeichnen eines möglichen
optionalen Zustands verwendet werden.
-
Da
jedes Übertragungswort,
(d.h. einschließlich
des codierten oder verschlüsselten
Datenworts), das von dem Sender übertragen
wird, auf einem neuen Wert von dem Zeitgeber an dem Sender basiert,
folgt daraus, dass die Übertragungswörter sich
voneinander unterscheiden können,
obwohl die Übertragungswörter von
einer einzigen Aktivierung des Senders herrühren. Diese Vorgehensweise
kann jedoch nicht immer wünschenswert
sein, und gemäß einer
Variation der Erfindung wird ein neues Übertragungswort nur bei jeder
neuen Aktivierung des Senders oder nach einer längeren Periode einer Übertragungsaktivierung
gebildet.
-
Gemäß einem
bevorzugten Gesichtspunkt der Erfindung weist der Codierer an dem
Sender einen benutzerdefinierten, veränderbaren Teil seines Schlüssels auf.
Dieser Teil des Schlüssels
kann durch eine oder mehrere, in irgendeiner entsprechenden Weise
vorgenommenen Eingaben in den Sender-Codierer verändert werden,
beispielsweise mittels DIP-Schaltern, einer Knopfbetätigungsprozedur
oder dergleichen. Zusätzliche Sicherheit
wird erhalten, weil die benutzerdefinierten Informationen dem Hersteller
unbekannt bleiben.
-
Gemäß einem
bevorzugten Gesichtspunkt der Erfindung weist der Empfänger-Decodierer einen
Lernmodus auf, der es dem Decodierer ermöglicht, einen neuen authorisierten
Codierer zu erlernen. Nach Beendigung der Lernmaßnahme ist der Decodierer in
der Lage, Übertragungen
von dem jetzt erlernten Codierer zu erkennen. Da ein Schlüssel aus
Daten abgeleitet werden muss, die während des Lernprozesses von
dem Codierer zu dem Decodierer übertragen
werden, zum Beispiel aus Seriennummer, Startparameter und benutzerdefinierten
Schlüsselinformationen,
sorgt das Verfahren der Erfindung dafür, dass diese Informationen
gespeichert werden können,
und dass der Schlüssel
nur während
des Prozesses des Empfangens und Interpretierens von Befehlen abgeleitet
werden kann.
-
Vorzugsweise
umfasst das Verfahren der Erfindung während der Phase, in der der
Decodierer Informationen von einem Sender erlernt, den Schritt des
Speicherns der Lerninformationen in einer FIFO-Struktur.
-
Während des
Lernprozesses wird ein Verhältnis
zwischen dem Zeitgeberwert des Senders und dem Zeitgeberwert des
Empfängers
erstellt. Die Erfindung sorgt dafür, dass die Differenz zwischen
den zwei Zeitgeberwerten am Empfänger
ermittelt und gespeichert und im Bedarfsfall aktualisiert werden
kann, und die Differenz kann mit der Differenz, die sich mit jeder
darauf folgenden Übertragung
ergibt, verglichen und im Bedarfsfall aktualisiert werden.
-
Um
den Zeitgeber (oder die Uhr) an dem Sender (Codierer) mit dem Zeitgeber
(oder der Uhr) am Empfänger
(Decodierer) in Gleichlauf zu halten, sorgt die Erfindung gemäß einem
bevorzugten Gesichtspunkt dafür,
dass der zweite Zeitgeber an seiner langsamsten Abweichung (aufgrund
von Drift oder anderen Faktoren) schneller als der Decodierer-Zeitgeber
an seiner schnellsten Abweichung (aufgrund von Drift oder anderen Faktoren)
ist.
-
Die
Erfindung kann dafür
sorgen, dass der Decodierer bei jedem gültigen Empfang eines Übertragungsworts
das Verhältnis
zwischen dem Codierer- und dem Decodierer-Zeitgeber, (das als der
Tr-Wert bezeichnet wird), für
den spezifischen Codierer neu kalibriert. Mit anderen Worten, der
vorherige Tr-Wert wird durch den jüngsten Tr-Wert ersetzt, der
das exakte Verhältnis
zwischen den Zeitgebern des spezifischen Codierers und des Decodierers
wiedergibt.
-
Gemäß einem
weiteren Gesichtspunkt der Erfindung stellt das Verfahren ein Autosynchronisationsfenster
und ein minimales oder maximales Fenster bereit.
-
Das
Autosynchronisationsfenster (Wa) legt eine zeitliche Begrenzung
für Drift
fest, was nicht als Problem betrachtet wird. Dieses Fenster kann
ein fester Wert sein, steht vorzugsweise aber in Beziehung mit der Betriebszeit
des Senders und Empfängers
und wird infolgedessen mit fortschreitender Zeit größer. Die
Größe des Fensters
kann eine Funktion der vergangenen oder der Betriebszeit sein, kann
aber trotzdem auf eine akzeptable Periode begrenzt sein.
-
Wenn
der Codierer-Zeitgeberwert außerhalb
eines Neusynchronisationsfensters (Wr) liegt, kann das Verfahren
der Erfindung den Empfang von weiteren Übertragungen von dem Codierer
verhindern und eine erneute Lernmaßnahme erzwingen, um die Codierer/Decodierer-Beziehung
zurückzusetzen.
Alternativ kann das Verfahren wenigstens einen der folgenden Schritte
in dem Fall zulassen, in dem der Codierer-Zeitgeber schnell ist,
oder der Wert des Codierer-Zeitgebers außerhalb des Wa- und Wr-Fensters
liegt:
- (a) Neu synchronisieren von einem "offenen/sicheren" Zustand aus. Dies
ist gleichbedeutend mit dem Korrigieren der Kombination aus einem
sicheren Zugangscode, wenn er offen ist; oder
- (b) der Codierer kann in physischen Kontakt mit dem Decodierer
gebracht werden mittels eines elektrischen Leiters oder Steckverbinders.
Dieser Schritt kann erforderlich sein, bevor weiterer Zugang gewährt wird.
-
Durch
die Verwendung eines physischen elektrischen Steckverbinders zum Übertragen
von Neusynchronisationssignalen zwischen dem Codierer und dem Decodierer
ist es möglich,
dem Decodierer zu gestatten, Aktivierungsknöpfe oder Eingänge an dem
Codierer zu steuern, um ein quasi-bidirektionales System herzustellen.
Aktivierungen können
so ausgeführt
werden, dass die Wahrscheinlichkeit von Codes, die nicht von dem
authentischen Codierer stammen und dem Decodierer vorgelegt werden,
sehr niedrig ist.
-
Indem
zum Beispiel der Codierer physisch mit dem Decodierer verbunden
wird, ist es möglich,
den Codierer an einem genauen Zeitpunkt zu aktivieren und den Zeitgeber
an dem Codierer zu starten. Der Decodierer aktiviert dann andere
Eingänge
an dem Codierer, welche die Übertragungswörter von
dem Codierer beeinflussen, indem Befehls-Bits in dem Datenwort verwendet
werden. Der Decodierer stellt sicher, dass die Wörter zu dem präzisen Zeitpunkt
mit den richtigen Befehlseingabeinformationen konstruiert wurden.
Indem sichergestellt wird, dass die Aktivierungsfolge dergestalt
ist, dass der Codierer-Zeitgeber verwendet wird, kann die Vorab-Aufzeichnung
von mehreren Befehlen verhindert werden, wodurch die Wahrscheinlichkeit
eines erfolgreichen Angriffs verringert wird.
-
In
einer spezifischen Ausführungsform
kann ein zeitbasierter Sender (oder Schlüssel) so ausgelegt werden,
dass er sowohl mit nicht-zeitgeber- und zeitgeberbasierten Decodierern
(Empfängern)
arbeitet. Dies ist in einer Situation wichtig, in der ein duales
System erforderlich sein kann für
eine Verschiebung in der Technologie von zählerbasierten zu zeitgeberbasierten
Techniken, in der aber die Kompatibilität mit vorhandenen Systemen
auf dem Gebiet wesentlich ist.
-
Der
Zeitgeber in einem Sender kann normal bei Aktivierung zählen, wenn
Batterien eingesetzt sind. Wenn der Sender von einem Empfänger "erlernt" wird, akzeptiert
der Decodierer jeden Wert. Das heißt, der Decodierer unterscheidet
nicht zwischen einem Zähler
oder einem Zeitgeber, sondern akzeptiert einfach einen Wert. Dies
verringert die Anforderung an ein gemeinsames Starten der Systeme
wie beim bisherigen Stand der Technik.
-
Der
Sender hält
dann den Zeitgeber nur für
einen Zeitraum aktiv, der den Zeitgeberwert innerhalb des automatischen
Neusynchronisationsfensters des alten zählbasierten Systems (bei Tastenaktivierung)
halten würde.
-
Wenn
der Zeitgeber den Punkt erreicht, an dem der Zeitgeberwert das Fenster
verlässt,
stoppt der Zeitgeber. Das bedeutet, dass bei der nächsten Senderaktivierung
der verwendete Zeitgeberwert von dem "alten" Decodierer als ein Zähler betrachtet
wird, der sich immer noch innerhalb der Grenzen des Auto-/Neusynchronisationsfensters
befindet und ohne Problem akzeptiert wird.
-
In
einer anderen Ausführungsform
setzt der Sender ein Flag, wenn sein Zeitgeber sich außerhalb
des Auto-/Neusynchronisationsfensters bewegt. Bei der nächsten Übertragung
führt der
Sender automatisch Maßnahmen
durch, die für
die Neusynchronisation erforderlich sind, wenn sich der Zähler außerhalb
des Fensters befindet, zum Beispiel Durchführen von zwei Übertragungen
mit Zeitgeberwerten, die nahe bei einander liegen.
-
Um
Situationen zu bewältigen,
in denen Batterie-(Energie) ausfälle
auftreten, kann der Zeitgeberwert jedes Mal, wenn eine Übertragung
eintritt, in einem nichtflüchtigen
Speicher gespeichert werden. Nach dem Rücksetzen wird der gespeicherte
Wert als Basis für
den Neustart verwendet.
-
Vorzugsweise
wird der Zeitgeberverhältniswert
in Schritt (f) so korrigiert, dass er die Drift zwischen dem Sender-Zeitgeber
und dem Empfänger-Zeitgeber
oder jede andere Unstimmigkeit oder Abweichung an dem Empfänger ausgleicht.
-
Die
Erfindung stellt auch eine Vorrichtung zum Übertragen von Daten bereit,
die einen Codierer und einen Decodierer umfasst, und wobei der Codierer
einen Zeitgeber und eine Verschlüsselungseinheit
zum Verschlüsseln
von Daten umfasst, die wenigstens teilweise auf Zeitgeberinformationen
von dem Codierer-Zeitgeber basieren, um dadurch ein Übertragungswort
zu bilden, und der Decodierer einen Decodierer-Zeitgeber, eine Empfängereinheit
zum Empfangen des verschlüsselten Übertragungsworts,
eine Entschlüsselungseinheit
zum Entschlüsseln
des empfangenen Übertragungsworts
umfasst, um wenigstens die Zeitgeberinformationen aus dem Codierer
zu extrahieren, dadurch gekennzeichnet, dass die Vorrichtung eine
Komparatoreinheit umfasst, um die entschlüsselten Codierer-Zeitgeberinformationen,
die Zeitgeberinformationen von dem Decodierer-Zeitgeber und ihre Beziehung mit einem
Zeitgeber-Verhältniswert
zu vergleichen, um die Gültigkeit des Übertragungsworts
zu ermitteln, wobei der Zeitgeber-Verhältniswert
während
eines Lernprozesses des Codierers und Decodierers erstellt wird
und wenigstens von einer Differenz zwischen einem Wert des Codierer-Zeitgebers und einem
Wert des Decodierer-Zeitgebers abhängt, und dadurch, dass der
Zeitgeber-Verhältniswert
im Einsatz beim Empfangen eines gültigen Übertragungsworts aktualisiert
wird, um alle Unstimmigkeiten in der Beziehung zwischen dem Codierer-Zeitgeber,
dem Decodierer-Zeitgeber und dem Zeitgeber-Verhältniswert
zu beseitigen.
-
Kurze Beschreibung der Zeichnungen
-
Die
Erfindung wird des Weiteren mittels Beispielen unter Bezugnahme
auf die folgenden begleitenden Zeichnungen beschrieben:
-
1 ist
eine Blockschaltbild-Darstellung eines Codierers, der in einem erfindungsgemäßen Datenübertragungssystem
verwendet wird,
-
2 ist
eine Speicherabbildung des in 1 gezeigten
Codierers,
-
3 ist
eine Blockschaltbild-Darstellung eines Decodierers für den Einsatz
zusammen mit dem Codierer von 1,
-
4 ist
eine Abbildung eines nichtflüchtigen
Speichers des Decodierers von 3,
-
4a ist
eine Abbildung eines flüchtigen
Speichers des Decodierers von 3,
-
5 und 6 stellen
jeweils Daten- und Übertragungswörter dar,
die vom Sender stammen,
-
7 veranschaulicht
Speicheradressen für
einen lernenden Codierer,
-
8 veranschaulicht
eine FIFO-Technik für
das Lernen eines zweiten Codierers,
-
9 (die in zwei Teilen dargestellt ist,
die jeweils mit 9a und 9b bezeichnet
sind,) ist eine Ablaufdiagramm-Darstellung, die den normalen Betrieb
des Codierers darstellt,
-
10a ist ein Ablaufdiagramm eines Verschlüsselungsprozesses,
-
10b veranschaulicht die Wirkung eines Verschlüsselungsalgorithmus,
-
11 ist
ein Ablaufdiagramm von Schritten während eines normalen Betrieb
eines Decodierers,
-
12 ist
eine Ablaufdiagramm-Darstellung eines Lernvorgangs an dem Decodierer,
und
-
13 veranschaulicht
die Einstellung von benutzerdefinierten Informationen an dem Codierer.
-
Beschreibung der bevorzugten
Ausführungsform
-
1 ist
eine Blockschaltbild-Darstellung eines Codierers 10, der
für einen
erfindungsgemäßen Sender
zum Übertragen
von Daten in einer sicheren Form über ein Funkfrequenz-, Infrarot-
oder ein anderes Medium verwendet wird.
-
Der
Codierer kann als integrierte Schaltung implementiert werden, wobei
seine verschiedenen Komponenten Bestandteil dieser Schaltung sind
oder als diskrete Komponenten bereitgestellt werden.
-
Der
Codierer 10 weist einen nichtflüchtigen Speicher 12,
eine Steuereinheit bzw. einen Prozessor 14, ein Schnittstellen-
oder Eingangsmodul 16, das Daten von Eingabequellen 18 empfängt, wie
beispielsweise Schaltern oder Drucktasten, einen Oszillator 20,
einen Zeitgeber 22 und ein Spannungsreferenzmodul 24 auf.
-
Informationen,
die die Identität
des Codierers betreffen, werden in dem nichtflüchtigen Speicher 12 gespeichert.
-
Der
Zeitgeber 22 läuft
kontinuierlich und ist mit dem Oszillator 20 oder mit einem
Kristall verbunden, um einen Zeitablaufbezug anzugeben. Der Zeitgeber 22 schaltet
in regelmäßigen Intervallen
um, um Zeit ungeachtet dessen wiederzugeben, ob der Codierer zur Übertragung
aktiviert ist. Das Zeitmaß können Minuten oder
Sekunden sein, es kann aber jede regelmäßige Periode sein.
-
Der
Codierer wird von einem Benutzer gesteuert, der einen oder mehrere
der Eingänge 18 aktiviert, und
die daraus resultierenden Signale werden über eine Schnittstelle zu dem
Steuermodul 14 übertragen,
das die Eingabe interpretiert und einen entsprechenden Betrieb des
Codierer veranlasst.
-
5 veranschaulicht
ein Beispiel eines Datenworts 28, das in dem Codierer erzeugt
wird. In diesem Beispiel umfasst das Datenwort Zeitgeberinformationen 30,
die von dem Zeitgeber 22 abgeleitet werden, Befehlsinformationen 32,
die von einem oder mehreren der Eingänge 18 erzeugt werden,
eine Seriennummer 34 oder einen Teil davon, der sich auf
die Identität
des Codierers bezieht, festen Code oder benutzerdefinierte Informationen 36 und
Dienstprogramminformationen 38, welche Betriebsparameter
des Codierers betreffen. Die Zeitgeberinformationen sind Wesentlich,
um Varianz in dem Datenwort 28 zu erzeugen, um Wiedergabe-Angriffe
zu verhindern. Die Länge
des Zeitgebers und seine Auflösung
geben die Ausgeglichenheit zwischen Kosten, Sicherheit und praktischen
Implementierungsfaktoren wieder. Zum Beispiel kann der Zeitgeber eine
24-Bit-Vorrichtung
sein, die alle 10 Sekunden inkrementiert. Aufgrund der Tatsache,
dass der Zeitgeber alle 10 Sekunden umschaltet, wird ein Übertragungswert,
der außerhalb
des Empfängers
aufgezeichnet wird, bald ungültig,
weil der Decodierer in der Lage ist, festzustellen, dass der Zeitgeberwert
nicht mehr aktuell ist.
-
Der
Oszillator 20 in 1 ist vorzugsweise
vollständig
chipbasiert, wobei der Schwingungsbereich in Ermangelung dessen
eingeschränkt
werden muss. Als solcher kann der Oszillator nicht schnell weitergeleitet werden,
um die gleiche Wirkung wie bei einem "Schnellschritt"-Angriff zu erzielen oder einfach nur
Zeit auszugleichen, die verwendet werden kann, um außerhalb
des Empfängers
aufzuzeichnen und dann die "Extra"-Zeit zu nutzen,
um zum Empfänger
zurückzukehren.
-
Eines
der Hauptprobleme eines zeitbasierten Systems ist, dass Energie 40 (siehe 1),
gleichgültig, ob
von einer Batteriequelle oder Sonstigem, verloren gehen kann. Wenn
dies geschieht, verliert der Codierer sofort seine relative Zeit
im Vergleich zu anderen Codierern und Decodierern, die einen Bestandteil
des fraglichen Sicherheitssystems bilden. Die Zeit kann in dem nichtflüchtigen
Speicher in regelmäßigen Intervallen gespeichert
werden, so dass nach Wiederanlegen von Energie an den Codierer der
Zeitgeber an dem Punkt fortfahren kann, an dem er angehalten hat.
Er befindet sich jedoch immer noch um ungefähr den Zeitraum außerhalb
der Synchronisation, den er ohne Energie war.
-
Ein
kontinuierliches Schreiben in den Speicher erfordert ein "Aufwecken" in regelmäßigen Intervallen, und über mehrere
Jahre Einsatz kann das Geschriebene umfangreich werden. Die Aufweck-
und Schreibvorgänge
verbrauchen bedeutende Energiemengen, was in den meisten Anwendungsfällen unerwünscht ist.
Diese Vorgänge
können
auch die Optionen auf nichtflüchtigem
Speicher aufgrund der hohen Anzahl von Überschreibzyklen und damit
die Qualität
des nichtflüchtigen
Speichers begrenzen, die erforderlich ist.
-
Eine
weitere Option ist, die Zeit bei jeder Übertragung zu speichern. Keine
dieser Möglichkeiten
ist jedoch vom Standpunkt der Sicherheit her ohne Nachteile. Die
Erfindung nutzt als Alternative zu den vorgenannten Ansätzen einen
Kaltstartzähler
(CBC) 46, wie in der Speicherabbildung 48 von 2 gezeigt.
Der Kaltstart-Zählerwert
wird jedes Mal inkrementiert oder geändert, wenn der Codierer eingeschaltet
wird oder von einem Rücksetzvorgang
zurückkehrt.
Der Kaltstartzähler
kann auch geändert
werden, wenn der Zeitgeber nach einer längeren Betriebsperiode überläuft.
-
Der
Einsatz des Kaltstartzählers
weist in der Praxis mehrere Vorteile auf:
- (a)
Der Codierer ist im Allgemeinen kostengünstiger. Das Inkrementieren
des Zeitgebers in einem flüchtigen Speicher
(RAM) bei niedrigeren Spannungen ist billiger als einen Wert in
einem nichtflüchtigen
Speicher (EEPROM) bei sehr niedrigen Spannungen zu speichern;
- (b) es sind weniger Schreibvorgänge in den nichtflüchtigen
Speicher erforderlich;
- (c) das Risiko von Schreibfehlern wird reduziert;
- (d) da der Kaltstartzähler
nur zum Zeitpunkt des Einschaltens oder Rücksetzens geändert wird,
sind die zeitlichen Einschränkungen
sehr gelockert. Vom Standpunkt der Sicherheit aus kann es jedoch
wünschenswert
sein, die Zeitvorgaben von Sekunden auf Minuten zu erhöhen; und
- (e) der Energiebedarf ist reduziert.
-
Es
wird angemerkt, dass es wichtig ist, dass der Kaltstart-Zählerwert
sich in einer konstanten Richtung ändert (nach oben oder unten),
um neue und alte Übertragungen
(mögliche
Wiedergaben) ermitteln zu können.
-
Wie
in 2 gezeigt, umfasst die Speicherabbildung 48 am
Codierer eine Identifikationsnummer bzw. einen Schlüssel 50,
den Kaltstartzähler
(CBC) 46, eine Seriennummer 52, ein Konfigurationswort 54,
einen Startparameter 56 und benutzerdefinierte Schlüsselinformationen 58.
Der Kaltstart-Zählerwert
kann verwendet werden, um den Schlüssel oder Algorithmus an dem
Codierer zu beeinflussen und bildet nicht notwendigerweise einen
Bestandteil des zu verschlüsselnden
Datenworts 28. Es wird jedoch vorgeschlagen, dass der Kaltstart-Zählerwert unverschlüsselt zum
Empfänger/Decodierer übertragen
wird. Dies kann nicht für
jedes Wort erfolgen, kann aber zum Beispiel nur in einer längeren Übertragung
erfolgen, für
beispielsweise mindestens 15 Sekunden oder für die erste halbe Stunde nach
einem Einschaltereignis. Der CBC-Wert kann ebenfalls teilweise mit
aufeinander folgenden Übertragungsworten übertragen
werden.
-
6 veranschaulicht
ein Übertragungswort 70,
das den (unverschlüsselten)
Kaltstart-Zählerwert 46, Befehlsinformationen 72,
eine verschlüsselte
Version 74 des Datenworts 28, die Seriennummer 34,
einen Kopf 76 und einen Wert des zyklischen Redundanzzählers (CRC) 78 umfasst.
Dieses Wort wird zu dem Decodierer übertragen, an dem das Wort
verschlüsselt
wird, und die daraus extrahierten Daten werden auf eine im Folgenden
beschriebene Weise verwendet.
-
Gemäß einem
Gesichtspunkt der Erfindung wird eine Anzahl von oberen Bits des
Zeitgeberwerts für einen
Hochgeschwindigkeitszeitgeber verwendet, um für eine kurze Zeitdauer, beispielsweise
in der Größenordnung
von 10 Sekunden, rückwärts zu zählen. Dies
erfolgt unmittelbar nach einer ersten Übertragung in einer Abfolge
von Aktivierungen. Ein Bit des Zeitgebers wird verwendet, um ein
optionales Status-Bit
zu bezeichnen, das angibt, was in dem Zeitgeber 22 wiedergegeben
wird. Der Hochgeschwindigkeitszeitgeber gestattet einen einfachen
Zugriff und eine bessere Zeitauflösung in dem Zeitraum, nachdem
eine Übertragung
aktiviert worden ist, und unterstützt einen Decodierer bei zeitbasierten
Aktivierungsentscheidungen. Zum Beispiel kann eine zweite Übertragungsaktivierung
innerhalb von drei Sekunden nach einer ersten Aktivierung ein Befehl sein,
alle Türen
in einem Fahrzeug und nicht nur die Tür des Fahrers zu entriegeln.
Der Decodierer muss die erste Übertragung
noch nicht einmal empfangen.
-
Wenn
der Zeitgeber 22 läuft,
kann jedes Übertragungswort
aus einer einzigen Aktivierung des Codierers auf dem neuen Zeitgeberwert
basieren und sich als solches von einem vorhergehenden Wort unterscheiden.
Dieser Ansatz ist unter Umständen
jedoch nicht immer wünschenswert,
und gemäß einer
Variation der Erfindung kann ein neues Übertragungswort mit jeder neuen
Aktivierung des Codierers oder nach einem längeren Zeitraum einer Übertragungsaktivierung
von beispielsweise mehr als 5 Sekunden gebildet werden.
-
3 ist
eine Blockschaltbild-Darstellung eines Decodierers 80.
Der Decodierer umfasst eine Steuereinheit bzw. einen Prozessor 82,
einen bordeigenen Oszillator 84, einen Zeitgeber 86,
einen Decodier- und Schlüsselerzeugungs-Algorithmus 88,
der in einem nichtflüchtigen
Speicher gespeichert ist, ein Speichermodul 90, einen Rücksetz-
und Spannungs-Referenzwert 92 und ein Ausgabemodul 94,
das als Schnittstelle zu einer Ausgabevorrichtung 96 wirkt,
z.B. LEDs oder dergleichen. Daten 98 können zu der Steuereinheit während einer
normalen Übertragung übertragen
werden, wogegen für
eine Lerneingabe 100 die Steuereinheit angewiesen werden
kann, in einen Lernmodus einzutreten. Vorzugsweise wird der Oszillator
durch einen Kristall 102 gesteuert.
-
4 ist
eine Decodierer-Speicherabbildung 104 von Informationen,
die in dem nichtflüchtigen
Speicher 90 enthalten sind. Die Abbildung umfasst einen
Erzeugungsschlüssel 106 und
eine Vielzahl von Datengruppen 108(1), 108(2) ...
usw., die aus aufeinander folgenden Übertragungen von jeweiligen
Sendern/Codierern resultieren. Jede Übertragung umfasst den jeweiligen
Kaltstart-Zählerwert,
den Startparameter und die Seriennummer, die Benutzer-Identifikationsnummer
und das Konfigurationswort, auf das in Verbindung mit 2 Bezug
genommen wurde. Der Decodierer im flüchtigen Speicher (4(a)) kann auch Informationen über die
Beziehung jedes Codierer-Zeitgebers zu dem Decodierer-Zeitgeber
(Tr) umfassen.
-
LERNEN
-
Der
Decodierer 80 weist einen Lernmodus auf, in dem er einen
neuen autorisierten Codierer "erlernen" kann. Nach Beendigung
des Lernvorgangs ist der Decodierer in der Lage, Übertragungen
von dem jetzt erlernten Codierer zu erkennen. Der Lernprozess ist
im Allgemeinem im Fachgebiet bekannt. Es wird jedoch vorgeschlagen,
dass jeder Codierer einen benutzerdefinierten änderbaren Teil seines Schlüssels 58 (siehe 2) aufweist,
der ein Teil des Schlüssels
ist, der geändert
oder von dem Benutzer beeinflusst werden kann und welcher dem Hersteller
nicht bekannt ist. Dies weist eine Reihe von Sicherheitsvorteilen
auf. Die benutzerdefinierten Schlüsselinformationen können durch
Eingaben 18 in den Codierer festgelegt werden, z.B. durch DIP-Schalter
oder Tastenbetätigungs-Prozeduren. Ein Beispiel
ist die Zeitdauer zwischen einem ersten Einschaltvorgang und dem
Augenblick, in dem eine Taste gedrückt wird. Die benutzerdefinierten
Informationen 36 können
auch in das Datenwort 28 eingefügt werden, und beide Verfahren
bewirken eine Änderung
in den Werten und der Abfolge des Übertragungsworts (70).
-
Da
ein Schlüssel
aus Daten abgeleitet werden muss, die von dem Codierer zu dem Decodierer
während
des Lernprozesses übertragen
werden, (zum Beispiel die Seriennummer, der Startparameter und die
benutzerdefinierten Schlüsselinformationen),
fällt es
in den Umfang der Erfindung, diese Informationen zu speichern und
den Schlüssel
nur während
des Prozesses des Empfangens und Interpretierens von Befehlen abzuleiten.
Dies hat den Nachteil, dass zum Zeitpunkt des Empfangens eines Befehls
zusätzliche
Verarbeitung benötigt
wird, spart aber Kosten, da kein nichtflüchtiger Speicher zum Speichern
der Schlüssel
erforderlich ist. Wenn von einem Sender während des Lernmodus Informationen
erlernt werden, werden diese Informationen in einer FIFO-Stapelstruktur
gespeichert.
-
Wie
aus 7 und 8 ersichtlich ist, wird jeder
neue Codierer in die gleiche Position erlernt. Bis zu diesem Zeitpunkt
sind alle anderen Positionen in die nächste Speicherstelle programmiert
worden, wobei die Informationen überschrieben
werden, die sich vorher dort befunden haben. Der vorherige Wert,
der sich in Position "n" (8)
befunden hat, geht eindeutig verloren – daher die FIFO-Bezeichnung.
-
Während des
Lernprozesses wird eine Beziehung (Tr) zwischen dem Zeitgeberwert
(Te) des Codierers und dem Zeitgeberwert (Td) des Decodierers erstellt.
-
Wenn
zum Beispiel während
der Zeit des Erlernens Te = 120 und Td = 1234 ist, kann die Differenz
Tr zwischen den beiden Werten, die 1123 beträgt, gespeichert werden. Wenn
angenommen wird, dass der Decodierer- und der Codierer-Zeitgeber
sich in perfektem Gleichlauf befinden, muss der empfangende Te-Wert zum
Zeitpunkt der nächsten Übertragung,
wenn Td = 1574 ist, 1574 – 1123
= 451 entsprechen. Es ist wichtig, dass der Tr-Wert für jeden
erlernten Codierer gespeichert wird.
-
SYNCHRONISATION
-
Da
der Codierer- und der Decodierer-Zeitgeber (jeweils 22 und 86)
in allen, außer
den teuersten Systemen, unweigerlich eine Drift zwischen sich aufweisen,
ist es wichtig, eine solche Drift ohne übermäßige Verluste in Bezug auf
die Sicherheit und mit so geringen Anforderungen an Benutzereingriff
wie möglich
anzupassen. Dies gilt auch für
die Bewältigung
eines Energieausfalls am Codierer oder Decodierer.
-
Gemäß einem
bevorzugten Gesichtspunkt der Erfindung sind die Zeitgeber 22 und 86 so
ausgelegt, dass der Codierer-Zeitgeber immer schneller als der Decodierer-Zeitgeber ist. Die
Auslegung ist so, dass, selbst wenn der Codierer-Zeitgeber seine
langsamste Varianz aufweist und der Decodierer-Zeitgeber seine schnellste
Varianz, der Codierer-Zeitgeber der schnellere der beiden ist.
-
Mit
jedem gültigen
Empfang kalibriert der Decodierer den TR-Wert für den spezifischen Codierer
neu, und der vorherige Tr-Wert wird durch den neuen Tr-Wert ersetzt,
der die genaue und jüngste
Beziehung zwischen dem Codierer- und dem Decodierer-Zeitgeber (22 und 86)
wiedergibt. Zum Beispiel, selbst wenn eine Drift von (angenommen)
1 Minute pro Tag vorhanden ist, und ein 5-Minuten-Fenster für eine gültige Übertragung
gestattet ist, weist ein System, das regelmäßig verwendet wird, keine zu
große
Drift auf, weil bei jedem Einsatz die vorherige Drift herauskalibriert
wird. Zum Beispiel wird sich ein System in einem Fahrzeug, das zwei
Mal pro Tag (in gleichmäßigen Abständen) eingesetzt
wird, auf Basis der vorhergehenden Annahmen immer innerhalb einer
Genauigkeit von ungefähr
0,5 Minuten liegen.
-
Aufgrund
von Sicherheitsüberlegungen
ist ein Empfang unter Bedingungen, unter denen Te in Bezug auf Td
weiter vorverlegt ist, ein geringeres Problem als ein langsames
Te. Letzteres kann eine versuchte Wiedergabe oder eine Übertragung
sein, die außerhalb
der Reichweite des Decodierers aufgezeichnet wurde und dann dem
Decodierer zugeführt
(daher der Zeitgeberverlust) und wiedergegeben wird.
-
Erzeugungs-Versätze, (d.h.
eine Drift zwischen Zeitgebern, die konstant ist und sich nicht
mit der Zeit ändert),
kann mit einem Koeffizienten ebenfalls herauskalibriert werden.
Wenn zum Beispiel ein Alarmsystem in einer gesteuerten Umgebung
installiert wird, (regulierte Temperatur und Spannung), können zwei Übertragungen
mit einer sinnvollen Zeitperiode (in einer Größenordnung von einigen Minuten)
dazwischen verwendet werden, um solche fertigungsbedingten Offsets
auszugleichen. Wenn bekannt ist, dass unter Bedingungen von geregelter
Spannung und Temperatur die normale Drift 1% beträgt, aber
durch Messung der Drift zwischen zwei aufeinander folgenden Übertragungen
festgestellt wird, dass die Drift tatsächlich 2% beträgt, kann
die Differenz künftig
immer mit einem Faktor (101/102) multipliziert
werden. Wenn die Drift andererseits –1% beträgt, wird ein Faktor (101/99)
zum Korrigieren der Drift verwendet.
-
Die
Erfindung gestattet die Aufnahme von zwei Typen von Weiterleitungsfenstern,
nämlich
ein Auto-Synchronisationsfenster Wa und ein Neusynchronisationsfenster
Wr.
-
Das
Autosynchronisationsfenster legt eine zeitliche Begrenzung für Drift
fest (Te größer Td),
was nicht als Problem betrachtet wird. Sicherheitsanforderungen
geben zwingend vor, dass dieser Wert so klein wie möglich sein
soll, doch sollte dies von einem praktischen Standpunkt aus einem
Benutzer zusätzliche
Maßnahmen
nicht in einem solchen Ausmaß auferlegen,
dass das System schwerfällig
oder für
den Benutzer unannehmbar wird. Das Autosynchronisationsfenster könnte ein
fester Wert sein, wird in einer bevorzugten Ausführungsform aber durch einen
Faktor von angenommen 3% der Einsatzzeit dargestellt. In dem letzteren
Fall wird das Fenster mit der Zeit größer, ist aber eine genauere
Darstellung der Drift zwischen den Zählern. Beim Stand der Technik,
der in Bruwer und andere und Soum verkörpert ist, wiesen die Zähler eine
Anzahl von Aktivierungen auf, die zeitlich in keiner Beziehung stehen.
In der vorliegenden Erfindung steht das Autosynchronisationsfenster
jedoch nicht mit der Anzahl von Aktivierungen in Beziehung und ist
eine reine Funktion der relativen Drift zwischen den Zeitgebern über die
Zeit, die seit einem vorherigen gültigen Empfang verstrichen ist.
Dies ist der Fall, da Tr zuletzt mit dem Minimum oder dem Zeitpunkt
des vorherigen gültigen
Empfangs kalibriert wurde. Es ist zu beachten, dass in Yoshizawa
das Fenster verstrichene Zeit abdecken muss, da der Codierer zuerst
mit dem Decodierer verbunden wurde. Dies stellt ein ziemliches Hindernis
dar.
-
Das
Fenster des Typs Wa, das durch das System aufgenommen werden kann,
kann einen Mindest- und/oder Höchstwert
aufweisen. Dieses Fenster kann spezifiziert werden, obwohl ein Faktor
der verstrichenen Zeit für
die Bestimmung der Fenstergröße verwendet
wird. Dies hat den Vorteil, dass in einem System, das auf einer
regelmäßigen Basis
eingesetzt wird, das Wa-Fenster ziemlich klein ist, aber selbst,
wenn das System über
eine lange Zeit nicht eingesetzt wird, angenommen mehr als ein Jahr
lang, wird die Größe des Fensters auf
einer akzeptablen Periode von angenommen 10 Minuten gehalten.
-
Zum
Beispiel tritt für
einen Wa-Faktor von 0,1% und einen Minimum mit einer 5-Sekunden- und ein Maximum
mit einer 10-Minuten-Obergrenze Folgendes ein:
Zeit
seit vorherigem gültigem
Code | Wa-Größe |
10
Minuten | 5
Sekunden |
5 Stunden
(600 mm) | 35
Sekunden |
5 Tage | 7,2
Minuten |
10
Tage | 10
Minuten |
1 Jahr | 10
Minuten |
-
Sollte
der Te-Wert schneller sein, so dass er außerhalb von Wa liegt, ist es
von der Sicherheit her wünschenswert,
weitere Sicherheitsprüfungen
durchzuführen.
Ein weiteres Fenster, das als Neusynchronisationsfenster (Wr) bezeichnet
wird, kann verwendet werden, und dieses Fenster erfordert weitere
Sicherheitsprüfungen,
die nicht zu starr sein können.
-
Eine
solche Sicherheitsprüfung
erfordert eine weitere Übertragung,
um zu prüfen,
ob die zeitlichen Informationen mit dem erwarteten Wert, unter Bezugnahme
auf denjenigen der vorherigen Übertragung,
der außerhalb
Wa, aber innerhalb Wr lag, korrelieren. In einigen Anwendungen würde diese
Prüfung
genügen,
und wenn die Codierer-Zeitablaufinformationen diesen Test bestehen,
akzeptiert der Decodierer den Befehl und synchronisiert auch den
Tr-Wert neu, um die aufgetretene Drift zu beseitigen.
-
Wenn
der Te-Wert außerhalb
von Wr liegt, akzeptiert der Decodierer Übertragungen von diesem Codierer
nicht und erzwingt ein Neu-Erlernen oder eine andere Maßnahme,
wie hierin im Folgenden beschrieben wird, wodurch die Codierer/Decodierer-Beziehung
vollkommen zurückgesetzt
wird.
-
Mit
einem Te-Wert, der unter Bezugnahme auf den Td-Wert langsam ist,
sind die erforderlichen Sicherheitsvorgaben viel strenger. Mit einer
korrekten Auslegung gibt es keinen Grund, warum der Te-Wert hinter
den erwarteten Wert zurückfallen
sollte. Man muss jedoch begreifen, dass jede Inkrementierung über den
vorher empfangenen Wert hinaus, selbst wenn sie in Bezug auf den
erwarteten Wert langsamer ist, immer noch zu einer besseren Sicherheit
führt als
Systeme auf Basis einer "Aktivierungszählung", wie beispielsweise
diejenigen, die in Bruwer und andere und Soum beschrieben sind.
Yoshizawa behandelt andererseits langsame und schnelle Fenster auf
die gleiche Weise.
-
Abhängig von
den Sicherheitsanforderungen können
verschiedene Optionen in dem System vorgesehen werden, um die Authentizität des Codierers "doppelt zu prüfen". Wenn der Te-Wert
zum Beispiel 30 Sekunden schnell ist, kann der Decodierer 30 Sekunden
später
prüfen,
ob ein neuer Wert vorliegt. Ein gültiger neuer Code würde bedeuten,
dass der Codierer vorhanden und daher authentisch ist.
-
Mit
einer einwandfreien Auslegung und einer Garantie, dass Te schneller
statt langsamer als Td ist, kommen beim Empfang eines langsamen
Te jedoch ernsthafte Sicherheitsbedenken auf.
-
Es
ist möglich,
einen Codierer mit einem langsamen Te oder einem Te, das außerhalb
des Wa- oder Wr-Fensters liegt, in einer von drei verschiedenen
Weisen, die hierin im Folgenden beschrieben werden, neu zu synchronisieren:
-
(A) Neusynchronisation aus einem "offenen/sicheren" Zustand
-
Dies
ist gleichbedeutend mit dem Korrigieren der Kombination eines sicheren
Zugangscodes, wenn er offen ist. Dazu muss ein weiterer legaler
oder genehmigter Mechanismus verwendet werden, um das System in
einen "offenen" Zustand zu versetzen.
Dies kann einer weiterer Codierer, ein mechanischer Schlüssel, eine elektronische
Chipkarte oder dergleichen sein. Sobald der "offene" Modus hergestellt ist, kann der Tr-Wert
automatisch korrigiert werden.
-
(B) Physischer Kontakt zwischen dem Codierer
und Decodierer kann mittels eines elektrischen Steckverbinders hergestellt
werden
-
Dies
kann eine Anforderung sein, bevor weiterer Zugriff gewährt wird.
Physischer Kontakt kann durch einen elektrischen Steckverbinder
hergestellt werden, der sich an der Außenseite eines Sicherheitsperimeters befindet,
der durch ein Zugangskontrollsystem geschützt wird, das mit dem Codierer/Decodierer
verbunden ist.
-
Wenn
zum Beispiel das System einen Garagentor-Öffner steuert, kann sich die
elektrische Steckverbindung in einem Haus oder an einer Außenseite
des Hauses befinden. Wenn das Sicherheitssystem andererseits in
Verbindung mit einem Fahrzeug verwendet wird, kann sich der Steckverbinder
an einer Außenseite des
Fahrzeugs oder irgendeiner Stelle befinden, die nur mit einem mechanischen
Schlüssel
zugänglich
ist, z.B. im Kofferraum oder Laderaum des Fahrzeugs.
-
Wenn
ein physischer elektrischer Steckverbinder verwendet wird, um elektrische
Signale zu übertragen,
kann der Decodierer Aktivierungstasten steuern, um ein quasi-bidirektionales
System zu schaffen. Elektrische Kontakte zu den Aktivierungseingängen des
Codierers gestatten, dass Aktivierungen so ausgeführt werden,
dass die Wahrscheinlichkeit, dass Codes, die nicht von dem authentischen
Codierer stammen, dem Decodierer zugeführt werden, sehr gering ist.
Die Wahrscheinlichkeit kann durch eine geeignete Auslegung statistisch
kontrolliert werden. Mit anderen Worten, die Wahrscheinlichkeit
eines erfolgreichen Angriffs kann verringert werden, indem die Kommunikation über die
elektrischen Kontakte komplexer oder ausgedehnter gestaltet wird.
-
In
einer bevorzugten Ausführungsform
spielen der Hochgeschwindigkeitszeitgeber und Wiederholungs-(Aktivierungs-)
Zähler
eine Hauptrolle. Nach dem Einstecken in den Verbinder aktiviert
der Decodierer den Codierer. Diese erste Übertragung startet den Hochgeschwindigkeitszeitgeber,
und der Decodierer aktiviert dann nach dem Zufallsprinzip andere
Tasten, welche die Übertragungswörter von
dem Codierer über
die Befehlsbits in dem Datenwort beeinflussen. Der Decodierer prüft, ob die
Wörter
zu dem genauen Zeitpunkt mit den korrekten Befehlstasteninformationen
konstruiert worden sind. Indem sichergestellt wird, dass die Aktivierungsfolge
derart ist, dass der Hochgeschwindigkeitszeitgeber verwendet wird,
oder dass der normale Zeitgeber angegeben würde, kann die Vorab-Aufzeichnung von
mehreren Befehlen verhindert werden, wodurch die Wahrscheinlichkeit
eines erfolgreichen Angriffs verringert würde.
-
In
einer anderen Ausführungsform
kann die Abfolge auch über
den Wiederholungs-Aktivierungszähler geprüft werden,
der die Anzahl von Aktivierungen in einer definierten Periode nach
einer ersten Aktivierung zählt.
Wiederum kann dies die Vorab-Aufzeichnung von mehreren Aktivierungen
verhindern, um eine Wiedergabereaktion auf die Decodierer-Aktivierungen
zur Verfügung
zu haben.
-
Der
gleiche Mechanismus kann über
eine Rückkopplung
zu einem Benutzer verwendet werden, ist für den durchschnittlichen Benutzer
aber wahrscheinlich nicht akzeptabel. Ein Beispiel ist ein Anzeigetableau,
das die Abfolge von Tasten angibt, die gedrückt werden müssen.
-
(C) Bidirektionale Kommunikation
-
Volle
bidirektionale Kommunikation kann verwendet werden. Wenn jedoch
bidirektionale Kommunikationseinrichtungen zur Verfügung stehen,
sollten diese Einrichtungen für
einen umfangreicheren Einsatz in Erwägung gezogen werden, da sie
bei korrekter Implementierung die Sicherheit erhöhen können. Eine Situation ist jedoch
vorhersehbar, in der eine Kommunikation in einer Richtung von begrenzter
Reichweite ist. Zum Beispiel kann das Medium von Codierer zu Decodierer
HF sein, während
der Decodierer mit dem Codierer aus Kostengründen oder aus anderen Überlegungen
heraus über
optische, Antwortsendegerät-
oder fest verdrahtete Mittel kommuniziert.
-
In
einem Beispiel für
eine Anwendung unter Verwendung der Prinzipien der Erfindung kann
eine IR-LED verwendet werden, um das Kommunikationsmedium von dem
Decodierer zu dem Codierer bereitzustellen. Der Codierer ist Bestandteil
eines HF-Schlüsselanhängers. Der
Codierer überwacht
einen optischen Empfänger
(PIN-Diode), nachdem er aktiviert worden ist und ein Codewort übertragen
hat. Wenn der Decodierer von dem Codierer einen Code mit einem nicht
akzeptablen Te empfängt,
nimmt er über
das optische Medium eine Verbindung zurück zum Codierer auf. Wenn der
Schlüsselanhänger in
den optischen Pfad gehalten wird, (weil der Benutzer bemerkt, dass
der Decodierer keine Abfrage vornimmt), empfängt er die Decodierer-Daten
und der Codierer/Decodierer kann mit einem bidirektionalen Prüfprozess
fortfahren.
-
Es
ist anzumerken, dass ein physischer Steckverbinder auch das Problem
einer leeren Codierer-Batterie lösen
kann, indem Energie zugeführt
wird, wogegen das optische System dies nicht kann.
-
Wenn
die Authentizität
des Codierers über
irgendeines dieser Verfahren festgestellt wird, wird der Tr-Wert
automatisch so korrigiert, dass Te und Td neu synchronisiert werden,
indem jede Drift beseitigt wird, die das Problem möglicherweise
verursacht hat.
-
CODIERER-BETRIEB
-
Ein
Beispiel für
einen Lebensdauerzyklus eines Codierers wird unter Bezugnahme auf 9 beschrieben.
-
Nach
einer Einschaltabfolge oder wenn ein Rücksetzen eintritt (210),
findet eine Reihe von Funktionen statt, um die integrierte Schaltung,
die den Codierer verkörpert,
zurückzusetzen.
Im Wesentlichen wird die integrierte Schaltung in einen gut definierten
Zustand versetzt, um sicherzustellen, dass ihre Funktion vorgegeben
ist, wenn sie das Rücksetzen
verlässt.
Zum Beispiel werden Speicher gelöscht
und Zeiger und Programmzähler
auf definierte Positionen gesetzt.
-
Der
Codierer inkrementiert (212) jetzt den Wert des Kaltstartzählers (CBC).
Es ist wichtig, dass Redundanz- oder Fehlerkorrektur in diesem Schritt
verwendet wird, um zu verhindern, dass der CBC-Wert aufgrund von
Schreibfehlern oder dergleichen gelöscht oder verscrambelt wird.
Solche Prüfungen
sollten auch vorgenommen werden, um zu prüfen, ob die der Schaltung zugeführte Spannung
ausreichend ist, um ein erfolgreiches Schreiben in den nichtflüchtigen
Speicher sicherzustellen.
-
Sobald
der CBC-Wert inkrementiert worden ist, bewegt sich der Codierer
in den Zyklus, in dem er den größten Teil
seiner Lebensdauer verbringen wird. Wenn der Zeitgeber inkrementiert
werden soll (216), und dies erfolgt in regelmäßigen Intervallen
von angenommen 10 Sekunden, wird die Zeitgeberzählung erhöht (218). Eine weitere
Prüfung
(220) erfolgt, um zu prüfen,
dass der Zeitgeber seinen Grenzwert nicht erreicht hat und dabei
ist, überzulaufen.
Dieser Fall tritt jedoch nur selten ein.
-
Die
Eingänge 18 (siehe 1)
werden überwacht
(222), um zu prüfen,
ob der Codierer aktiviert worden ist. Wenn keine Eingänge aktiv
sind, wiederholt sich der Zyklus selbst endlos.
-
Wenn
aktive Eingänge
erfasst werden, werden die Eingänge
entprellt und gelesen (224). Wenn die Eingänge gültig sind
(226), wird der Zeitgeberwert gelesen, und das Datenwort
wird konstruiert (228). In Verbindung mit 5 wurde
erklärt,
dass das Datenwort aus mehreren Elementen besteht, die zusammengelegt werden,
um das verschlüsselte
Datenwort 74 zu entwickeln (siehe 6).
-
Wenn
die Eingänge
nicht gültig
sind (229), werden die vorangegangenen Zyklusschritte wiederholt.
-
Nach
dem Ablesen des Zeitgebers prüft
die Steuereinrichtung, ob der Hochgeschwindigkeitszeitgeber (HST)
bereits läuft,
oder ob diese Übertragung
tatsächlich
die erste Übertragung
ist, die nach einer Periode der Inaktivität stattgefunden hat (230).
Wenn der HST nicht läuft,
wird er gestartet, und das Flag für den HST wird gesetzt, so
dass erkannt wird, dass der HST aktiv ist (232). Die anschließenden Übertragungen
enthalten die Zählung
des Hochgeschwindigkeitszeitgebers als Bestandteil des Datenworts.
-
Das
sich daraus ergebende Datenwort wird verschlüsselt (234), und das
Ergebnis wird in der Konstruktion des Übertragungsworts 70 (siehe 6)
in einem Schritt 236 (siehe 9b) verwendet.
Bevor das Übertragungswort über das
fragliche Medium (HF, IR oder Sonstiges) übertragen wird, werden die
Eingänge 18 geprüft, um zu
prüfen,
ob der gleiche Befehl noch immer aktiv ist (238). Falls
nicht, wird die Übertragung abgebrochen,
und die Steuereinrichtung 14 kehrt zu ihrem Wartezyklus
zurück
(216, 222).
-
Wenn
der Befehl noch immer aktiv ist, beginnt der Codierer damit, die
Daten des Übertragungsworts so
auszugeben, dass es übertragen
werden kann (240). Typischerweise ist der Codierer für die Datenübertragungsgeschwindigkeit
zuständig.
Obwohl dies nicht gezeigt ist, kann der Codierer kontinuierlich
nach einem neuen Eingang suchen, mit dem gefordert wird, dass sofort
ein neues Wort gebildet werden soll. Unter solchen Umständen kann
die Übertragung
sofort beendet werden, um mit der Vorbereitung und Übertragung
des neuen Übertragungsworts
zu beginnen.
-
Die
Steuereinrichtung kann einige der CBC-Bits austauschen, die einen
Bestandteil des Übertragungsworts
bilden (242). Wenn der CBC beispielsweise 16 Bits beträgt und nur
jeweils zwei Bits auf einmal zu einem Übertragungswort hinzugefügt werden,
dann wären
8 aufeinanderfolgende Wörter
erforderlich, um den CBC-Zähler
am Empfänger/Decodierer
zu rekonstruieren. Dies wirkt sich nicht nachteilig auf die Sicherheit
der Übertragung
aus, bietet aber eine bequeme Möglichkeit,
die Länge
des Übertragungsworts
zu reduzieren.
-
Danach
kann die Steuereinrichtung den Arbeitsschritt (244) an
die Phase vor dem Schritt 238 zurückverweisen. Wenn das System
jedoch so ausgelegt ist, dass es mit der Ausgabe des HST nach Ablauf
einer bestimmten Zeit (von angenommen 5 Sekunden) beginnt, fährt es mit
einem Schritt 248 fort, in dem die HST-Zählung abgelesen
wird. Dann wird eine Prüfung
vorgenommen, um festzustellen, ob der derzeit aktive Befehl wenigstens
5 Sekunden lang aktiv gewesen ist (248). Wenn vorher kein Übertragungswort
konstruiert worden ist (250), wird eine Prüfung durchgeführt (252),
um festzustellen, ob der gleiche Eingang 18 immer noch
aktiv ist. Ein Rücklauf
oder Schritte zum Zurückkehren
einem vorangegangenen Prozess finden abhängig vom Resultat dieses Test
statt.
-
Wenn
vorher ein Übertragungswort
konstruiert worden ist, synchronisiert der Prozess das Hinzufügen eines
neuen HST-Zählers
mit dem Abschluss einer früheren Übertragung,
und ein neues Datenwort wird gebildet (254) und verschlüsselt (256),
und ein neues Übertragungswort
wird konstruiert (258). Der Sender-Zyklus fährt dann
von unmittelbar vor Schritt 238 fort. Der Prozess kann
jederzeit beendet werden, wenn sich die Eingänge ändern oder entfallen (238 oder 252).
-
Wenn
sich die Eingänge ändern oder
innerhalb einer kurzen Periode, angenommen ab dem Start des HST,
wiederholt werden, nimmt der Wiederholungszähler mit jeder neuen Aktivierung
eine Inkrementierung vor. Sobald der HST überläuft, wird der normale Zeitgeber
inkrementiert. Wenn der HST innerhalb des gleichen Intervalls (von
angenommen 10 Sekunden) läuft,
sollte dies einen nahtlosen Zeitablauf verhindern.
-
CODIERUNG
-
Ein
Codierungsbeispiel wird unter Bezugnahme auf 10a und 10b beschrieben. Zu Beginn eines Verschlüsselungsalgorithmus
(300) wird die gesamte Installation von Hardware und Software
vorgenommen. Ein spezifischer Schlüssel wird aus dem nichtflüchtigen
Speicher ausgelesen, und der CBC-Zähler wird erhalten (302).
Der Schlüssel
ist der einem spezifischen Codierer zugeordnete Schlüssel. Wenn
ein Codierer mehrere Schlüssel
hat, wird einer von diesen mittels eines bestimmten Befehls bestimmt.
Der Schlüssel
kann mit jeweils 8 Bits gelesen werden. Die Daten, die in dem verschlüsselten
Datenwort verwendet werden sollen, d.h. das Datenwort und die benutzerdefinierten
Informationen, werden erhalten (304), und die verschiedenen Elemente
werden in den Algorithmus eingespeist (306), um ein verscrambeltes
Datenwort zu ergeben (308), das in dem Übertragungswort verwendet wird.
-
10b veranschaulicht schematisch einen Codier-Algorithmus 310,
der auf das Datenwort und die benutzerdefinierten Informationen 312 sowie
den Schlüssel
und die CBC-Zählung 314 angewendet
wird, um das verscrambelte Datenwort 74 zu ergeben.
-
Es
ist anzumerken, dass in dem Decodierprozess, der an dem Empfänger ausgeführt wird,
der Decodier-Algorithmus insofern die umgekehrte Operation ausführt, dass,
wenn der Decodier-Algorithmus mit dem korrekten Schlüssel und
der CBC-Zählung
bereitgestellt wird, der Decodier-Algorithmus das verscrambelte Datenwort 74 umwandelt,
um das Datenwort und die benutzerdefinierten Informationen zu ergeben.
-
Ein
Beispiel für
eine Decodierer-Operation wird unter Bezugnahme auf 11 erörtert.
-
Nach
dem Rücksetzen
(350) des Decodierers wird in einem Schritt (352)
eine Abtastung für
die empfangenen Daten eingegeben (98 in 3).
Wenn ein Test 354 zeigt, dass das Datenformat nicht korrekt
ist, wird der vorhergehende Zyklus wiederholt. Sobald ein vollständiges Übertragungswort
mit dem korrekten Format empfangen worden ist, führt der Decodierer in einem
Schritt 356 eine zyklische Redundanzprüfung (CRC) durch, um zu prüfen, ob
das Übertragungswort
richtig empfangen wurde, und prüft
die Seriennummer und den CBC-Teil des Übertragungsworts. Danach werden
in Schritt 358 und 360 die Seriennummer und der
CBC-Wert mit entsprechenden Werten abgeglichen, die im nichtflüchtigen
Speicher 90 (siehe 3) gespeichert
sind.
-
Wenn
der CBC-Wert nicht mit dem gespeicherten Wert abgeglichen wird,
läuft eine
Zeitperiode ab, in der zusätzliche
Daten empfangen werden und ein neuer CBC-Wert konstruiert wird (Schritt 362).
Der Validierungsprozess wird dann wiederholt.
-
Nachdem
der Validierungsprozess erfolgreich abgeschlossen worden ist, liest
der Decodierer die Zeitgeberdaten Td (Schritt 364) und
verwendet dann die Seriennummer und andere während eines Lernprozesses gespeicherte
Informationen, um einen Entschlüsselungsschlüssel zu
berechnen (366), der dem Codierer entspricht, der das bestimmte Übertragungswort
erzeugt hat.
-
Der
Decodierer verwendet den Entschlüsselungsschlüssel zusammen
mit dem CBC-Wert, um einen Verschlüsselungsprozess (368)
an dem verscrambelten Teil des Übertragungsworts
durchzuführen.
Es ist anzumerken, dass einige Befehle keinerlei Sicherheit erfordern
können,
und in diesem Fall kann der Decodierer den Befehl nach dem Schritt 360 interpretieren
und aktivieren. Da der einzige Vorteil jedoch darin bestünde, dass
der Befehl einige Millisekunden früher ausgegeben werden kann,
ist dies nicht von besonderer Bedeutung.
-
Wenn
das entschlüsselte
Datenwort verfügbar
ist, führt
der Decodierer eine Prüfung
durch, um einen Abgleich zwischen den benutzerdefinierten Codierer-Informationen
und den benutzerdefinierten Decodierer-Informationen zu prüfen (370).
Ein Nicht-Abgleich
erzwingt eine Rückkehr
zum Abtasten des Eingangs für ein
gültiges Übertragungswort
(Schritt 352).
-
Wenn
der Abgleich positiv ist, wird die komplexere Prüfung zwischen dem Codierer- und dem Decodierer-Zeitgeber
durchgeführt.
In diesem Beispiel wird ein Neu-Erlernen
angenommen, wenn das Neusynchronisationsfenster Wr überschritten
wird oder Te hinter Td zurückfällt. Zuerst
wird das automatische Synchronisationsfenster geprüft (372),
und wenn die Prüfung
bestanden wird, werden die Befehls-Bits interpretiert und die Ausgänge aktiviert
(374). Der Tr-Wert wird aktiviert, um die jüngste Beziehung
zwischen dem Codierer- und dem Decodierer-Zeitgeber (376)
wiederzugeben, und danach wird der Prozess wiederholt.
-
Wenn
der Schritt 372 zeigt, dass die Differenz zwischen dem
Codierer- und dem Decodierer-Zeitgeber einen Tr-Wert zeigt, der
außerhalb
des Autosynchronisationsfensters Wa liegt, wird der Wert im Vergleich
mit dem weniger starren Neusynchronisationsfenster Wr geprüft (Schritt 378).
Wenn Tr auch außerhalb
von Wr fällt,
wird das empfangene Übertragungswort
als ungültig
aufgegeben, und der Decodierer kehrt zum Abtasteingang in Schritt 352 zurück.
-
Wenn
die zeitliche Differenz Tr in Wr fällt, bereitet sich der Decodierer
darauf vor, ein weiteres Übertragungswort
innerhalb einer kurzen Zeit (von angenommen 10 oder 20 Sekunden)
zu empfangen, und er kann dann die HST-Daten verwenden, um eine
zweite Übertragung
(380) zu bestätigen
und die zeitliche Beziehung zu prüfen (382). Weil das
fragliche Zeitintervall besonders kurz ist, kann keine bedeutsame
Drift auftreten. Für Wa
wird eine Prüfung
vorgenommen, doch kann eine strengere Prüfung durchgeführt werden,
falls erforderlich. Wenn der Test fehlschlägt, bricht der Decodierer den
Neusynchronisations-Prozess ab (384) und kehrt zu Schritt 352 zurück.
-
Wenn
der Zeitgebertest (382) erfolgreich ist, wird der Tr-Wert
korrigiert (386), und die Befehle werden interpretiert
und aktiviert (390), worauf der Prozess zur Stufe 352 zurückkehrt.
-
Das
vorhergehende Beispiel behandelt weder die Bearbeitung des HST,
Wiederholen von Daten, Batteriestandsanzeige, Umschaltepegel noch
eine Situation, in der der Decodierer Energie verliert oder verloren hat
und daher Zeitgeber-Informationen verloren hat.
-
Normalerweise
ist der Decodierer teurer und komplexer als der Codierer. Ein einzelner
Decodierer muss typischerweise auch mit mehreren Codierern zusammenarbeiten.
Der Energieverbrauch ist im Vergleich mit dem Codierer normalerweise
am Decodierer weniger eingeschränkt.
Aufgrund dieser Faktoren ist es wünschenswert, dass der Decodierer
den HST-Teil permanent enthält.
Dies kann sich als praktisch erweisen für Vergleiche bei Neusynchronisations-Maßnahmen
oder wenn zweite oder dritte Anweisungen innerhalb eines kurzen
Zeitraums empfangen werden. Es ist auch wichtig für die Bearbeitung
eines quasibidirektionalen Synchronisations- oder Authentisierungsprozesses,
wie vorher erörtert.
-
Die
Umschaltepegel, Batteriestandsanzeigen und Wiederholungswerte umfassen
allesamt Informationen, die die Ausgaben beeinflussen könnten, die
vom Decodierer erzeugt werden.
-
Wenn
der Decodierer Energie verlieren sollte, würde er den Rücksetz-Zustand
(350) durchlaufen, wenn die Energiezufuhr wieder hergestellt
wird. An diesem Punkt wird eine Auswahl aus einer Reihe von Optionen
getroffen. Zum Beispiel kann die Zeit für jeden gültigen Empfang jedes Mal in
dem nichtflüchtigen
Speicher gespeichert werden, wenn ein gültiges Wort empfangen und erfolgreich
decodiert wird. Jetzt kann ein Flag gesetzt werden, um Wa und Wr
für alle
Codierer, die bereits erlernt worden sind, für eine Auto-Neusynchronisationsmaßnahme aufzuweichen.
Eine Prüfung
wird ausgeführt,
ob der Codierer-Zeitgeber über
das hinaus erhöht
worden ist, was beim Empfang des vorherigen gültigen Übertragungsworts von dem entsprechenden Codierer
gespeichert worden ist.
-
Eine
weitere Option besteht darin, die Änderung des CBC-Werts an dem
Codierer oder die Neusynchronisation der Tr-Werte des Decodierers
zu erzwingen, indem der Sender betrieben wird, während er in dem offenen Zustand
ist.
-
In
einer anderen Variation kann der Decodierer einen Zeitgeber-Wert
von dem nächsten
gültigen
und vorher erlernten Codierer verwenden, indem er ihn nach dem Rücksetzen
aktiviert, um seinen Haupt-Zeitgeber neu anzupassen. Alle Tr-Werte
(für andere
erlernte Codierer) würden
automatisch wieder ins Spiel kommen. Dies kann unter einiger Berücksichtigung
von Fehlern erfolgen, indem der Decodierer für nur 99% der erkannten verlorenen
Zeit korrigiert wird, wie von diesem einzelnen Codierer-Zeitgeber
abgeleitet werden kann. Der Grund dafür ist, dass es wesentlich schwieriger
ist, Codierer mit Zeitgebern zu bearbeiten, die dem Decodierer-Zeitgeber nacheilen,
als Codierer mit Zeitgebern, die dem Decodierer-Zeitgeber vorauseilen.
-
DECODIERER: LERNMODUS
-
Der
Decodierer-Lernvorgang wird unter Bezugnahme auf 12 erörtert. Der
Decodierer muss angewiesen werden, vom normalen Betrieb in den Lernmodus
umzuschalten, und typischerweise erfolgt dies, indem ein Eingangsschalter 100 (siehe 3)
verwendet wird. Sobald die Aktivierung des Eingangsschalters erfasst
wird (400), wird der Schalter entprellt (402),
um zu bestätigen,
dass der Eingang aktiviert ist. Der Eingang für den Lernmodus kann auf einer
Interrupt-Basis arbeiten, oder er kann von Zeit zu Zeit in dem Programmablauf
während
des normalen Betriebs des Decodierers getestet werden.
-
Sobald
der Lernmodus bestätigt
worden ist (404), muss der Decoder ausreichende Übertragungswörter empfangen,
um den CBC-Wert zu konstruieren, der nicht notwendigerweise vollständig in
jedem Übertragungswort
aufgenommen sein kann (406). Wenn dieser Prozess fehlschlägt aufgrund
der Übertragungs-Beendigung,
bevor der vollständige
CBC-Wert empfangen worden ist, oder aufgrund des nicht korrekten
Empfangs von Code-Wörtern,
wird der Lernprozess abgebrochen (408), und der Prozess
kehrt zu Schritt 402 zurück, um zu prüfen, ob
der Lernmodus immer noch gewählt
ist. Der Decodierer-Zeitgeber wird zu Referenzzwecken ebenfalls
gelesen.
-
Wenn
ausreichende Informationen empfangen werden, um den CBC-Wert zu
konstruieren (410), konstruiert die Steuereinheit 82 (siehe 3)
den Kaltstart-Zählerwert
und liest die Zeitgeberdaten Td von dem Zeitgeber 88. Die
Steuereinheit berechnet dann (Schritt 412) den Entschlüsselungsschlüssel unter
Verwendung der Seriennummer, der CBC-Zählung und anderer Informationen,
die über
die Übertragungswerte übertragen
wurden. Dieser Schlüssel
wird in dem Entschlüsselungsprozess
(414) verwendet, um das Datenwort zu erhalten, das die benutzerdefinierten
Informationen, Befehle und Codierer-Zeitgeberinformationen enthält.
-
In
einem Schritt 416 werden die Daten geprüft, um festzustellen, ob sie
den Anforderungen entsprechen. Eine weitere Übertragung eine kurze Zeit
später
kann erforderlich sein, um die Zeitgeber-Bewegung zu prüfen. Sobald
sie als gültiger
Lernwert akzeptiert worden sind, werden die relevanten Informationen
in dem nichtflüchtigen
Speicher 90 des Decodierers gespeichert. Dies umfasst den
Tr-Wert, (die Beziehung zwischen dem Codierer- und dem Decodierer-Zeitgeber),
und dem Te des letzten gültigen
empfangenen Datenworts.
-
Der
Decoder kann den Zustand des Lernprozesses an irgendeiner Anzeige
für den
Benutzer anzeigen (Schritt 418), z.B. einer LED. Der Abschluss
des Lernprozesses eines Codierers kann auf die gleiche Weise ebenfalls
angezeigt werden.
-
Der
vorgenannte Prozess kann wiederholt werden, um das Erlernen von
mehreren Codierern zu ermöglichen.
Die Informationen von jedem anderen Codierer können in einer FIFO-Abfolge
in den Speicher geschrieben werden, wie in 7 und 8 gezeigt.
-
In
der vorgenannten Abfolge ist es nicht möglich, ein selektives Löschen von
Codierern vorzunehmen. Es ist jedoch möglich, den ältesten Codierer durch Hinzufügen eines
neuen Codierers zu löschen,
sobald der Speicher für
erlernte Codierer voll ist. Ein weiterer Befehl zum Löschen aller
erlernten Codierer kann implementiert werden.
-
CODIERER: EINSTELLEN VON "BENUTZERDEFINIERTEN
INFORMATIONEN"
-
13 veranschaulicht
Prozessschritte beim Einstellen von benutzerdefinierten Informationen
am Codierer 10.
-
Wenn
der Codierer eingeschaltet wird (450), wird eine Prüfung auf
dem internen nichtflüchtigen
Speicher 12 (siehe 1) durchgeführt, um
festzustellen, ob die benutzerdefinierten Informationen ("UDI") bereits eingestellt
worden sind. Falls nicht, kann der Codierer automatisch in einen
UDI-Einstellmodus gehen. In einer Variation kann der Codierer prüfen, ob
eine spezielle Gruppe von Eingängen
aktiviert worden ist (452), um den Codierer zu veranlassen,
in den UDI-Einstellmodus
zu gehen. Falls nicht, fährt
der Codierer mit dem normalen Betrieb fort (454).
-
Wenn
spezielle Eingänge
aktiv sind (456), aktiviert der Codierer den Hochgeschwindigkeitszeitgeber (HST)
in einem Schritt (458). In einem besonderen Beispiel wird
die Periode, für
die die Eingänge
aktiv sind, verwendet, um einen Wert zu bestimmen, indem der HST
gestoppt wird, sich zu dem Zeitpunkt zu ändern, zu dem sich die Eingänge ändern (460).
Der im Wesentlichen zufällige
Wert in dem HST kann als ein UDI-Wert gelesen und verwendet werden
(462), um ein benutzerdefiniertes Informationen-Wort zu
konstruieren (464), das dann in dem nichtflüchtigen
Speicher des Codierers gespeichert werden kann (466), bevor
mit dem normalen Betrieb fortgefahren wird (454).
-
Die
vorhergehende Beschreibung betrifft eine Situation, in der der Sender
einen Zeitgeber aufweist und der Empfänger einen Zeitgeber aufweist.
Wenn ein bestehendes zählerbasiertes
Sicherheitssystem in ein zeitgeberbasiertes Sicherheitssystem aufgerüstet werden
soll, dann ist es notwendig, eine duale Leistungsfähigkeit
bereitzustellen, so dass das zeitgeberbasierte System auch mit einem
zählerbasierten
System verwendet werden und mit diesem kompatibel sein kann.
-
Um
dies zu erreichen, ist ein zeitgeberbasierter Sender so ausgelegt,
dass er mit einem nicht-zeitgeberbasierten (d.h. zählerbasierten)
System und mit einem zeitgeberbasierten System arbeitet.
-
Der
Zeitgeber in dem Sender zählt
normalerweise, wenn dieser eingeschaltet wird. Wenn der Sender von
dem Empfänger "erlernt" worden ist, akzeptiert
der Decodierer an dem Empfänger
jeden Wert, der zu diesem Zweck zugewiesen oder dem Decodierer anderweitig
vorgelegt wird. Daher unterscheidet der Decodierer nicht zwischen
zählerbasierten
und zeitgeberbasierten Informationen. Die Notwendigkeit, das Starten
des Senders und Empfängers
zu synchronisieren, wird hiermit beseitigt.
-
Der
Sender-Zeitgeber wird dann für
eine Periode betrieben, die begrenzt oder gesteuert ist, um sicherzustellen,
dass die Zeitgeberinformationen innerhalb des automatischen Neusynchronisationsfensters
des zählerbasierten
Systems gehalten werden (d.h. dem früheren System, das aufgerüstet werden
soll).
-
Wenn
der Sender-Zeitwert einen Punkt erreicht, an dem er das Fenster
verlässt,
stoppt der Zeitgeber. Dementsprechend wird bei der nächsten Aktivierung
des Senders der Zeitgeberwert, der verwendet wird, von einem vorherigen
(zählerbasierten)
System als ein Zählerwert
betrachtet, der sich immer noch in den Grenzen des automatischen
Neusynchronisationsfensters befindet, und daher wird er akzeptiert.
-
Diese
Prozedur kann bis zu einem solchen Zeitpunkt implementiert werden,
an dem ein vollständiges zeitgeberbasiertes
System eingesetzt werden kann.