-
Hintergrund
der Erfindung
-
Diese
Erfindung betrifft im allgemeinen die Fernsteuerung von Geräten und
Sicherheitssystemen und insbesondere ein geschütztes Lernsystem und ein Verfahren.
-
Die
Fernsteuerung der Systeme oder Geräte über Ultraschall, Hochfrequenz
oder Infrarotübertrager
ist für
viele Anwendungen, die Sicherheitssysteme für Gebäude und Fahrzeuge und ferngesteuerte Garagentore
und Toröffner
beinhalten üblich.
-
Bestimmte
unidirektionale Übertragungssysteme,
die gegenwärtig
im Gebrauch sind, haben zwei sehr wichtige Sicherheitsmängel:
- (a) die Kodes, die sie senden, sind gewöhnlich festgelegt;
und
- (b) die Anzahl möglicher
Kodekombinationen ist relativ klein. Jeder dieser Mängel kann
zu einem nichtautorisiertem Zugriff führen.
-
Die
begrenzte Anzahl von möglichen
Kombinationen, die in den meisten Fernsteuerungssystemen verfügbar ist,
ermöglicht
es, alle möglichen Kombinationen
in relativ kurzer Zeit zu senden. Ein von Hand gehaltenes mikroprozessorbasiertes
System (das Kode-Scanner genannt wird) kann für diesen Zweck leicht konstruiert
werden.
-
In
Systemen, die acht DIP-Schalter (256 Kombinationen) verwenden, kann
ein derartiger Abtastprozess typischerweise in weniger als 32 Sekunden
vollendet werden, wenn acht Kombinationen pro Sekunde versucht werden.
Selbst in Systemen, die 16 bit-Schlüssel verwenden, welche über 65 536 Kombinationen
ver fügen,
sind nur 2,25 Stunden erforderlich, um alle Kombinationen auszuprobieren. Es
ist auch anzumerken, dass der Scanner in erheblich weniger als dieser
maximalen Zeit den Zugriff erlangen kann – die mittlere Zeit wird tatsächlich bei
der Hälfte
der totalen Zeit liegen.
-
Ein
leichterer Weg, um einen nichtautorisierten Zugriff zu einem Sicherheitssystem
zu erlangen, ist frei verfügbar.
Eine Einheit dieser Art wird als ein Werkzeug für die „legale Rückgewinnung der Fahrzeuge" angeboten.
-
Ein
Fernsteuerungssender der Art, wie er in Fahrzeugssicherheits- und
Fernsteuerungssystemen verwendet wird, umfasst einen kleinen Radiosender, der
eine Kodenummer auf einer speziellen Frequenz sendet. Diese Kodenummer
wird normalerweise durch einen integrierten Schaltkreiskodierer
erzeugt. Die Sendefrequenz ist gewöhnlich Gesetz innerhalb eines
bestimmten Landes festgelegt. Somit ist es möglich einen Empfänger zu
bauen, der die Signale von allen Sendern empfangen kann und diesen
zusammen mit einer Schaltung verwendet, welche die durch den Empfänger eingefangenen Übertragungen aufzeichnet.
Ein derartiges Gerät
ist als ein Kode oder Schlüsselfänger bekannt
und kann verwendet werden, um einen Zugriff zu geschützten Räumlichkeiten
oder zu Fahrzeugen mit Fernsteuerungssicherheitssystemen zu erreichen.
-
Kode-Hopping-
und Kode-Rolling-Systeme sind gegenwärtig verfügbar, um die Einschränkungen der
fixierten Kodesysteme zu überwinden
(Bezugnahme auf das ZA-Patent Nr. 91/4063 und US-Patent Nr. 5,103,221). Die Beschreibungen
dieser Patente beschreiben Sender, die Algorithmen verwenden, um eine
unterschiedliche Übertragung
immer dann zu erzeugen, wenn der Sender aktiviert wird. Wenn ein Kode
empfangen und dekodiert ist, reagiert ein Dekodierer nur wenn eine
gültige Übertragung
durchgeführt
wurde. In einigen Fällen
(vergleiche ZA-Patent Nr. 91/4063) wird ein spezieller Algorithmus
mit einem gespei cherten Schlüssel
verwendet, um einen verschlüsselten
Empfang zu dekodieren. Der dekodierte Wert wird dann verglichen
mit einem gespeicherten Wert, um zu bestimmen, ob die Übertragung legitimiert
ist oder nicht.
-
Der
Nachteil eines Kode-Hopping- und Kode-Rolling-Systems ist die Tatsache, dass es schwierig
ist, verlorene, gestohlene oder nicht betreibbare Sender zu ersetzen
oder abzuschalten. Es wird eine externe Ausrüstung durch einen Hersteller oder
Vertreiber verwendet, um einen Sender umzuprogrammieren oder zu
ersetzen. Während
dieses Prozesses kann ein zusätzliches
Sicherheitsproblem entstehen.
-
Idealerweise
sollte ein Sicherheitssystem keinen Eingriff durch einen Vertreiber
erfordern, wenn ein Benutzer Hilfe benötigt, um einen neuen Sender
für das
System hinzuzufügen
oder einen Sender zu ersetzen. Der Benutzer sollte in der Lage sein,
einen generellen Ersatzsender aus dem Lager zu kaufen und diesen
Sender wunschgemäß ohne Hilfe
hinzuzufügen.
Lernende Systeme sehen diese Fähigkeit
vor, indem der Dekodierer die Identität des neuen Senders "lernen" kann, ohne dass
er von außen
unter Verwendung einer speziellen Ausstattung umprogrammiert werden
muss.
-
Ein
lernendes System sollte jedoch nicht nur dem Benutzer ermöglichen,
einen neuen Sender zu dem System hinzuzufügen, sondern sollte auch Mittel
aufweisen, um einen vorherigen Sender von dem System auf Grund der
Möglichkeit,
dass ein derartiger Sender in falsche Hände fällt auszuschließen.
-
In
lernenden Systemen mit fixiertem Kode wird der eingehende Kode für eine zukünftige Referenz
durch den Dekodierer gespeichert, wenn er in einem lernenden Modus
ist. Nachfolgende Übertragungen
werden mit dem Lernkode verglichen. Es werden unterschiedliche Anordnungen
verwendet, um neue Sendekodes zu lernen. Ein Schalter kann verwendet
werden, um den Dekodierer entweder in einen normalen Betriebszustand
oder in einen Lern modus zu versetzen (US Patent Nr. 4,750,118 und 4,912,463).
In dem lernenden Modus kann der Dekodierer neue gültige Kodes
von einem Sender lernen. Ähnliche
Mittel werden verwendet (vergleiche US Patent Nr. 4,931,789 und
5,049,867), den Dekodierer zu programmieren, um auf neue Sendekodes
zu reagieren. In einer anderen Erfindung (vergleiche US Patent Nr.
5,148,159) wird ein zufälligerweise
gewählter fester
Kode durch den Dekodierer erzeugt und in dem zugehörigen Sender
programmiert. Das US-Patent Nr. 4,855,713 beschreibt die Verwendung
eines handgehaltenen Programmgebers, um den neuen fixierten Kode
zu programmieren und um von dem Dekodier erkannt zu werden. In all
diesen Fällen
sind die gesendeten oder programmierten Kodes festgelegte gespeicherte
Kodes. Sicherheitsgefahren auf Grund eines Kode-Abfangens oder einer
Kode-Erzeugung bestehen weiterhin unabhängig von dem verwendeten Lernmechanismus.
-
Es
sollte auch Bezug genommen werden auf die Beschreibungen der nachfolgenden
U.S.A. Patente Nr. Re 29,525; 4,380,762; 4,385,296; 4,426,637; 4,529,980;
4,535,333; 4,574,247; 4,590,470; 4,596,985; 4,638,433; 4,652,860; 4,686,529;
4,737,770; 4,779,090; 4,835,407; 4,847,614; 4,855,713; 4,878,052;
4,890,108; 4,928,098; 4,951,029; 4,988,992; 5,049,867; 5,055,701;
5,191,610.
-
Zusammenfassung
der Erfindung
-
Die
Erfindung wird in den unabhängigen
Ansprüchen
1 und 13 definiert, vorteilhafte Ausführungsformen werden in den
abhängigen
Ansprüchen festgelegt.
-
Eine
Ausführungsform
sieht als erstes ein Verfahren zum Betreiben eines Kodierers vor,
der die Verfahrensschritte einschließt:
Speichern einer Seriennummer;
Speichern
mindestens eines der Folgenden:
einen Startparameter;
einen
Schlüssel;
und
eine Ableitung des Schlüssels;
und
Übertragen
einer Schlüsselgenerierungsinformation, die
mindestens eines der Folgenden einschließt:
den Startparameter;
den
Schlüssel;
die
Ableitung des Schlüssels;
die
Seriennummer; und
Informationen, die von der Anwendung des
Schlüssels
oder der Ableitung des Schlüssels
und einem Algorithmus auf einen Eingangswert abgeleitet werden.
-
Der
Schlüssel
kann unter Verwendung von mindestens eines der Folgenden erzeugt
werden:
einem Herstellerschlüssel;
dem Schlüssel;
der
Ableitung des Schlüssels;
dem
Startparameter; und
der Seriennummer.
-
Der
Eingangswert kann die Informationen enthalten, die mindestens eines
der Folgenden aufweist:
einen Management-Kode;
einen Zählerwert;
und
Informationen, die ein Kommando betreffen.
-
In
einer Ausführungsform
beinhaltet das Verfahren die Schritte:
Speichern einer Mehrzahl
von Parametersätzen,
wobei jeder Parametersatz mindestens eines der Folgenden beinhaltet:
eine
entsprechende Seriennummer;
einen entsprechenden Startparameter;
einen
entsprechenden Schlüssel;
und
entsprechende Informationen, die vom Anwenden des entsprechenden
Schlüssels
und des Algorithmus auf einen entsprechenden Eingangswert abgeleitet werden;
Auswählen eines
Parametersatzes; und
Übertragen
der entsprechenden Schlüsselgenerierungsinformation
für den
ausgewählten
Parametersatz.
-
Jeder
entsprechende Eingangswert kann mindestens eines der Folgenden beinhalten:
einen
entsprechenden Management-Kode;
einen entsprechenden Zählerwert;
und
Informationen, die ein Kommando betreffen.
-
Der
Kodierer kann auch Bereitstellungen für ein Abschalten der Übertragung
der Schlüsselgenerierungsinformation
beinhalten. Diese Möglichkeit
ist hilfreich, um zu verhindern, dass ein Außenseiter die Schlüsselgenerierungsinformation
erhält,
nachdem der Sender durch einen Dekodierer erkannt worden ist. Die Übertragung
der Schlüsselgenerierungsinformation
kann dauernd durch eine bewusste Maßnahme des Benutzers oder durch
einen automatischen Prozess abgeschaltet werden, z. B. wenn der
Kodierer für
eine vorbestimmte Anzahl benutzt worden ist. In dem vorhergehenden
Fall kann eine Handhabung unter Verwendung einer programmierten
Maßnahme oder
einer bestimmten Kombination von Eingaben vorgenommen werden.
-
Eine
Anwendungsform erstreckt sich auch auf ein Verfahren des Betriebs
eines Dekodierers, welches die Schritte des Empfangens eines Signals beinhaltet,
das die Schlüsselgenerierungsinformation enthält; und
das die Schlüsselgenerierungsinformation
von dem empfangenen Signal herausfiltert.
-
Die
Schlüsselgenerierungsinformation
kann mindestens eines der Folgenden beinhalten:
einen Startparameter;
eine
Seriennummer; und
eine verschlüsselte Information, die von
der Anwendung eines ersten Schlüssels
und eines Algorithmus auf einen Eingangswert abgeleitet werden.
-
Das
Verfahren kann den Schritt des Speicherns von mindestens einem der
Folgenden beinhalten:
den zweiten Schlüssel;
die Schlüsselgenerierungsinformation;
und
die Seriennummer.
-
In
einer Ausführungsform
beinhaltet das empfangene Signal die verschlüsselte Information und das
Verfahren schließt
die Schritte ein:
Entschlüsseln
der verschlüsselten
Information unter Verwendung eines Dekodierungsalgorithmus und eines
vorher erzeugten zweiten Schlüssels,
um einen dekodierten Eingangswert zu erhalten, welcher die Informationen
einschließt,
die mindestens ausgewählt
sind von:
einem Management-Kode;
einem Zählerwert;
und
Informationen, die ein Kommando betreffen; und
Speichern
des dekodierten Eingangswertes.
-
Das
Verfahren kann auch die Schritte beinhalten:
Speichern einer
Mehrzahl von Parametersätzen,
wobei jeder Parametersatz die Informationen, die mindestens aus
dem nachfolgendem ausgewählt
sind, beinhalten:
eine entsprechende Seriennummer;
einen
entsprechenden Management-Kode; und
einen entsprechenden Zählerwert.
-
In
einer weiteren Ausführungsform
beinhaltet die Schlüsselgenerierungsinformation
einen Abschnitt, der in dem Dekodierer verwendet werden kann, um
den gespeicherten Herstellerschlüssel während des
Lernens zu modifizieren oder zu vergrößern. Der ursprüngliche
oder modifizierte Herstellerschlüssel
kann zum Erzeugen des zweiten Schlüssels verwendet werden.
-
Eine
Ausführungsform
erstreckt sich weiterhin auf ein Betriebsverfahren eines Zugriffsteuersystems,
das einen Kodierer und einen Dekodierer beinhaltet, wobei das Verfahren
die Schritte beinhaltet:
Speichern der Seriennummer;
Speichern
von mindestens eines der Folgenden:
einen Startparameter;
einen
ersten Schlüssel;
und
eine Ableitung des ersten Schlüssels; und
Verwenden des
Kodierers zum Übertragen
eines Signals, das die Schlüsselgenerierungsinformation
beinhaltet und das mindestens eines der Folgenden einschließt:
den
Startparameter;
die Seriennummer; und
Informationen, die
von einem Anwenden des ersten Schlüssels oder der Ableitung des
ersten Schlüssels und
einem Algorithmus auf einen Eingangswert abgeleitet werden; und
bei dem Dekodierer,
Empfangen des gesendeten Signals; und Extrahieren
der Schlüsselgenerierungsinformation
von dem empfangenen Signal.
-
Der
erste Schlüssel
kann unter Verwendung des Herstellerschlüssels und mindestens eines
der Folgenden erzeugt werden:
dem Startparameter, und
der
Seriennummer.
-
Während des
Lernens kann die Schlüsselgenerierungsinformation
verwendet werden, um den Herstellerschlüssel, der in dem Dekodierer
gespeichert ist, zu modifizieren oder zu vergrößern. Alternativerweise kann
ein Dekodierer überhaupt
keinen Herstellerschlüssel
aufweisen und kann den Dekodierungsschlüssel einzig und allein aus
der Schlüsselgenerierungsinformation,
die durch den Kodierer übermittelt
wurde, ableiten, oder kann die Schlüsselgenerierungsinformation
direkt als einen Dekodierungsschlüssel benutzen.
-
Der
zweite Schlüssel
oder die Schlüsselgenerierungsinformation
kann gespeichert werden. In dem ersteren Fall beinhaltet das Verfahren
die Schritte:
Aktivieren des Kodierers mit einem Kommando;
Kodieren
mindestens eines Eingangswertes unter Verwendung des ersten Schlüssels und
eines Algorithmus, um einen kodierten Teil zu bilden, wobei der Eingangswert
Informationen einschließt,
die mindestens aus dem folgenden ausgewählt sind:
einem Zählerwert;
einem
Management-Kode; und
Informationen, die das Kommando betreffen;
Verwenden
des Kodierers, um ein Signal zu übertragen,
das von mindestens der Seriennummer und dem kodierten Teil gebildet
ist; und beim Dekodierer; Empfangen des Signals; und
Verwenden
des zweiten Schlüssels
und eines Dekodierungsalgorithmus zum dekodieren des kodierten Teils
in dem übertragenen
Signal, um den Eingangswert zu erhalten.
-
In
dem letzteren Fall beinhaltet das Verfahren die Schritte:
Aktivieren
des Kodierers mit einem Kommando;
Kodieren von mindestens einem
Eingangswert unter Verwendung des ersten Schlüssels und eines Algorithmus,
um einen kodierten Teil zu bilden, wobei der Eingangswert eine Formation
aus Folgendem ausgewählt
enthält:
einen
Zählerwert;
einen
Management-Kode; und
Informationen, die sich auf das Kommando
beziehen;
Verwenden des Kodierers, um ein Signal zu übertragen,
das von mindestens einer Seriennummer und dem kodierten Teil gebildet
wird; und bei dem Dekodierer
Empfangen des übertragenen Signals; und Verwenden
der Schlüsselgenerierungsinformation
und einem Dekodierungsalgorithmus, um den kodierten Teil in dem übertragenen
Signal zu dekodieren, um den Eingangswert zu erhalten.
-
Das
Verfahren kann weiterhin die Schritte beinhalten:
Verwenden
einer Mehrzahl von Kodierern;
Aktivieren eines ausgewählten Kodierers
unter Verwendung eines Kommandos; Übertragen eines Signals, das
die Schlüsselgenerierungsinformation
verbunden mit dem ausgewählten
Kodierer enthält;
und
bei dem Dekodierer, Speichern einer Mehrzahl von Parametersätzen, wobei
jeder Parametersatz mit einem entsprechenden Kodierer zusammengehört und Informationen
beinhaltet, die mindestens aus Folgendem ausgewählt sind:
einer entsprechenden
Seriennummer;
einem entsprechenden Management-Kode; und
einem
entsprechenden Zählerwert;
Empfangen
des übertragenen
Signals und Erzeugen eines entsprechenden zweiten Schlüssels, der
mit einem ausgewählten
Parametersatzes assoziiert ist, unter Verwendung des Herstellerschlüssels und
der Schlüsselge nerierungsinformation,
die in dem übertragenen
Signal enthalten ist.
-
Vorzugsweise
sind der Kodierer und der Dekodierer jeweils in einem entsprechenden
Mikrochip gebildet.
-
Eine
Ausführungsform
sieht auch einen Kodierer vor, der folgendes beinhaltet:
Mittel
zum Speichern einer Seriennummer;
Mittel zum Speichern von
mindestens einem der Folgenden:
einen Startparameter;
einen
Schlüssel;
und
eine Ableitung des Schlüssels;
und
Mittel zum Übertragen
der Schlüsselgenerierungsinformation,
welche mindestens eines der Folgenden beinhaltet:
den Startparameter;
den
Schlüssel;
die
Ableitung des Schlüssels;
die
Seriennummer; und
Informationen, die von der Anwendung des
Schlüssels
oder der Ableitung des Schlüssels
und einem Algorithmus auf einen Eingangswert abgeleitet werden.
-
Eine
Ausführungsform
erstreckt sich auch auf einen Dekodierer, der ein Mittel zum Empfangen eines
Signals beinhaltet, das eine Schlüsselgenerierungsinformation
enthält;
und der Mittel zum Extrahieren der Schlüsselgenerierungsinformation
von dem empfangenen Signal enthält.
-
Die
Schlüsselgenerierungsinformation
kann mindestens eines der Folgenden beinhalten:
einen Startparameter;
einen
ersten Schlüssel;
und
eine Ableitung des ersten Schlüssels; und
eine Seriennummer;
und
kodierte Informationen, die von der Anwendung des ersten
Schlüssels
oder der Ableitung des ersten Schlüssels und einem Algorithmus
auf einen Eingangswert abgeleitet werden.
-
Der
Dekodierer kann Mittel zum Erzeugen eines zweiten Schlüssels unter
Verwendung von mindestens der Schlüsselgenerierungsinformation
enthalten. Der zweite Schlüssel
kann die Schlüsselgenerierungsinformation
sein.
-
Die
Mittel können
für ein
Speichern von mindestens einem der Folgenden vorgesehen sein:
dem
zweiten Schlüssel;
der
Schlüsselgenerierungsinformation;
und
der Seriennummer.
-
Der
Dekodierer kann Mittel zum Speichern eines Herstellerschlüssels und
Mittel zum Generieren des zweiten Schlüssels unter Verwendung von mindestens
der Schlüsselgenerierungsinformation und
des Herstellerschlüssels
beinhalten.
-
Der
Dekodierer kann Mittel zum Speichern einer Mehrzahl von Parametersätzen beinhalten,
wobei jeder entsprechende Parametersatz mindestens eines der Folgenden
beinhaltet:
eine entsprechende Seriennummer;
einen entsprechenden
Startparameter;
einen entsprechenden Schlüssel; und
einen entsprechenden
abgeleiteten Schlüssel.
-
Während des
Lernens kann die Schlüsselgenerierungsinformation
verwendet werden, um den Herstellerschlüssel, der in dem Dekodierer
gespeichert ist, zu modifizieren oder zu vergrößern. Alternativerweise kann
der Dekodierer überhaupt
keinen Herstellerschlüssel
enthalten und kann den Dekodierungsschlüssel einzig und allein von
der Schlüsselgenerierungsinformation,
die durch den Kodierer gesendet wurde, ableiten, oder verwendet
diese Schlüsselgenerierungsinformation
direkt als Dekodierungsschlüssel.
-
Eine
Ausführungsform
sieht weiterhin ein Zugriffssteuersystem vor, das einen Kodierer
und einen Dekodierer einschließt,
wobei der Kodierer beinhaltet:
Mittel zum Speichern einer Seriennummer;
Mittel
zum Speichern mindestens eines der Folgenden:
einen Startparameter;
einen
ersten Schlüssel;
und
eine Ableitung des ersten Schlüssels; und
Mittel zum Übertragen
eines Signals, welches die Schlüsselgenerierungsinformation
beinhaltet und welches mindestens eines der Folgenden einschließt:
den
Startparameter;
den ersten Schlüssel;
die Ableitung des
ersten Schlüssels:
die
Seriennummer; und
eine Information, die von dem Anwenden des
ersten Schlüssels
oder der Ableitung des ersten Schlüssels mit einem Algorithmus
auf einen Eingangswert abgeleitet wird;
wobei der Dekodierer
beinhaltet:
Mittel zum Empfangen des übertragenen Signals; und
Mittel
zum Extrahieren der Schlüsselgenerierungsinformation
von dem empfangenen Signal.
-
Der
erste Schlüssel
kann unter Verwendung des Herstellerschlüssels erzeugt werden und mindestens
einem der Folgenden:
des Startparameters;
der Seriennummer.
-
Der
Dekodierer kann Mittel zum Speichern eines Herstellerschlüssels beinhalten
und der zweite Schlüssel
wird unter Verwendung mindestens der Schlüsselgenerierungsinformation
und des Herstellerschlüssels
erzeugt.
-
Es
ist verständlich,
dass während
des Lernens die Schlüsselgenerierungsinformation
zum Modifizieren oder Vergrößern des
Herstellerschlüssels, der
im Dekodierer gespeichert ist, verwendet werden kann. Alternativ
kann der Dekodierer keinen einzigen Herstellerschlüssel aufweisen
und kann einzig und allein den Dekodierungsschlüssel von der Schlüsselgenerierungsinformation,
die durch den Kodierer gesendet wird, abgeleitet werden oder diese
Schlüsselgenerierungsinformation
wird direkt als Dekodierungsschlüssel
eingesetzt.
-
Das
System kann Mittel zum Speichern des zweiten Schlüssels oder
der Schlüsselgenerierungsinformation
beinhalten.
-
In
einer Ausführungsform
kann das System beinhalten:
Mittel zum Aktivieren des Kodierers
mit einem Kommando;
Mittel zum Kodieren mindestens eines Eingangswertes
unter Verwendung des ersten Schlüssels
und eines Algorithmus, um einen kodierten Teil zu bilden, wobei
der Eingangswert Informationen beinhaltet, die ausgewählt sind
wenigstens von:
einem Zählerwert;
einem
Management-Kode; und
Informationen, die das Kommando betreffen;
Mittel
zum Bilden eines Signals, zum Übertragen durch
den Kodierer von mindestens der Seriennummer und des verschlüsselten
Teils;
der Dekodierer beinhaltet Mittel zum Verwenden des zweiten
Schlüssels
und eines Dekodierungsalgorithmus, um den kodierten Teil in dem übertragenen
Signal zu dekodieren, das durch das Signalempfangsmittel empfangen
wird, um diesen Eingangswert zu erhalten.
-
Eine
andere Ausführungsform
des Systems kann beinhalten:
Mittel zum Aktivieren des Kodierers
mit einem Kommando;
Mittel zum Kodieren von mindestens einem
Eingangswert unter Verwendung des ersten Schrittes und eines Algorithmus,
um einen kodierten Teil zu bilden, wobei der Eingangswert Informationen
beinhaltet, die mindestens vom folgenden ausgewählt sind:
einem Zählerwert;
einem
Management-Kode; und
Informationen, die das Kommando betreffen;
Mittel
zum Bilden eines Signals, zum Übertragen durch
den Kodierer von mindestens der Seriennummer und des verschlüsselten
Teils;
der Dekodierer beinhaltet Mittel zum Verwenden der Schlüsselgenerierungsinformation
und eines Dekodierungsalgorithmus, um den verschlüsselten
Teil in dem übertragenen
Signal zu dekodieren, das durch das Signalempfangsmittel empfangen
wurde, um den Eingangswert zu erhalten.
-
Das
System kann Mittel zum Speichern von einer Mehrzahl von Parametersätzen in
dem Kodierer enthalten, wobei jeder Parametersatz Informationen,
die mindestens von dem folgenden gewählt sind, enthält:
eine
entsprechende Seriennummer;
ein entsprechender Startparameter;
und
entsprechende Informationen, die vom Anwenden des entsprechenden
Schlüssels
und des Algorithmus auf einen entsprechenden Eingangswert abgeleitet werden;
Mittel
zum Auswählen
eines Parametersatzes;
Mittel zum Aktivieren des Kodierers
unter Verwendung eines Kommandos;
das Signalübertragungsmittel,
das dann ein Signal überträgt, das
die Schlüsselgenerierungsinformation zusammen
mit einem ausgewählten
Parametersatz enthält;
Mittel
zum Speichern einer Mehrzahl von Parametersätzen in dem Dekodierer, wobei
jeder Parametersatz eine Information enthält, die mindestens aus dem
Folgenden ausgewählt
ist:
einer entsprechenden Seriennummer;
einem entsprechenden
Management-Kode; und
einem entsprechenden Zählerwert; und
Mittel zum
Erzeugen eines entsprechenden zweiten Schlüssels, der einem ausgewählten Parametersatz zugeordnet
ist, unter Verwendung der Schlüsselgenerierungsinformation,
die in dem übertragenen
Signal enthalten ist.
-
Dieser
entsprechende zweite Schlüssel
kann unter Verwendung der Schlüsselgenerierungsinformation
und des Herstellerschlüssels
erzeugt werden.
-
Vorzugsweise
sind der Kodierer und der Dekodierer in einem entsprechenden Mikrochip
gebildet.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, ein Zugriffssteuersystem
bereitzustellen, worin ein Sender oder eine Sendeberechtigung, wie
eine sogenannte „smart
card", durch einen
Benutzer ohne externes Equipment und ohne Übertragen eines Kodierungsschlüssels in
einem offenen Format, nämlich in
nicht kodierter Form, ersetzt oder zu dem System hinzugefügt werden
kann.
-
Das
Zugriffsteuersystem kann das Abschalten in einem Dekodierer von
gestohlenen Senderkodes ermöglichen,
um einen nicht autorisierten Zugriff zu dem System zu verhindern.
-
Eine
andere Aufgabe der Erfindung ist es, ein Zugriffsteuersystem vorzusehen,
das gegen die Verwendung eines Verfahrens zum Kode-Abfangen oder
zum Scanen arbeitet.
-
Die
Erfindung betrifft weiterhin einen Kodierer und einen Dekodierer
zum Gebrauch in einem Zugriffsteuersystem und ihr Betriebsverfahren.
-
Während des
Herstellungsprozesses werden Kodierer mit unterschiedlichen Seriennummern, die
einem Bereich von Dekodierern zugehören programmiert. Ein einzigartiger
Herstellerschlüssel
wird zusammen mit einem Algorithmus verwendet und die Seriennummer
wird verwendet, um einen Benutzerschlüssel in einem nicht-flüchtigen
Speicher des Kodierers zusammen mit einem Zähler, einem Management-Kode
und anderen Informationen zu speichern. Mehrere Sätze dieser
Parameter können
gespeichert werden, um einige Sendungen durchzuführen (Senden unterschiedlicher
Kommandos durch Aktivieren unterschiedlicher Eingaben). Der Herstellerschlüssel wird
in allen Herstellerdekodierern gespeichert. Die Benutzerdaten und
die Steuerdaten werden auch programmiert, um die unterschiedlichen
Funktionen zu steuern, die von dem Kodierer aktiviert werden müssen. Der
gleiche Algorithmus, der wird, um den Benutzerschlüssel in
dem Kodierer zu erzeugen, muss auch in dem Dekodierer vorhanden
sein. Der Algorithmus kann einen oder mehrere unter anderen, wie
der Seriennummer, dem Schlüsselgenerierungs-Startparameter
und dem Herstellerschlüssel
in einer modifizierten oder nicht modifizierten Form verwenden,
um den Kodiererschlüssel
zu erzeugen.
-
Bei
einem normalen Betrieb eines Kodierers wird die Schlüsselinformation,
die mit einem Parametersatz verbunden ist, verwendet, um die variable Zählerinformation
zu kodieren zusammen mit dem Kodierungs-Management-Kode, der Seriennummer und
anderer Informationen durch Gebrauch eines besonderen Algorithmus.
Die Information, die kodiert wird, ist jedes Mal unterschiedlich,
wenn der Kodierer aktiviert ist. Auf diese Technik wird als Kode-Hopping Bezug
genommen. Obgleich es bekannt ist, dass die Zählerinformation sich ändert, ist
die Übertragung wegen
des Geheimschlüssels
und des Algorithmus, der die Information kodiert, nicht vorhersagbar.
In einem Zugriffsteuersystem kann ein fixierter Teil die Seriennummer
kennzeichnen und mit dem Kode-Hopping-Teil erzeugt sein und zusammen
einen Übertragungswert
bilden, der durch eine Datentransferschnittstelle gesendet wird.
-
In
einer Ausführungsform
ist eine Lernfähigkeit
eines Kodierers realisiert. Dieses ermöglicht einem Anwender, einen
Kodierer zu ersetzen oder einen Kodierer hinzufügen, der durch einen Dekodierer erkannt
wird, der eine Lernmodusfunktion aufweist, die durch den Benutzer
auswählbar
ist. Die Lernmodusfunktion kann durch Aktivieren auf dem Dekodierer
ausgewählt
werden. Diese kann durch einen normalen Kodierer und einem Programmieren
der Ausgangsfunktion erreicht werden, um den Dekodierer in den Lernmodus
zu versetzen. Dieser ist auch als Hauptkodierer oder als Token bekannt.
Die Verwendung eines derartigen Hauptkodierers ermöglicht, dass
ein höheres
Niveau der Sicherheit erreicht wird. Der Haupttoken kann auch in
Verbindung mit Eingangsschaltern verwendet werden.
-
In
einer anderen Ausführungsform
ist es möglich,
einen externen Eingangswert für
eine Kodierer zu kodieren. Dieser Eingangswert ersetzt den Wert
des durch den Kodierer intern kodierten Wertes. Eine bi-direktionale
Kommunikationsanordnung wird in diesem Fall verwendet. Dieser Vorgang
kann verwendet werden, um die Originalität des Kodierers zu identifizieren,
was als Identifikation als Freund oder Feind (IFF) für die Zugriffsteuerung
und für
Authentifizierungszwecke bekannt ist. Der Kodierer akzeptiert einen
Herausforderungswert als einen Eingang von einem Endgerät als Teil
eines Zugriffsteuerungssystem. Dieser Eingangswert wird durch den
Kodierer unter Verwendung der Kodierfunktion und einem Schlüssel zum
Bilden eines kodierten Wertes kodiert. Der kodierte Wert wird dann
an den Dekodierer übertragen,
der ein Teil eines Zugriffsteuerungsendgerätes ist. Wenn ein legitimierter
Kodierer verwendet wird, entspricht der kodierte Wert einem dekodierten Wert,
der durch den Dekodierer berechnet wird und der Dekodierer wird
eine externe Funktion zum Betreiben einschalten. Wenn es kein legitimierter
Kodierer ist, korrespondiert der dekodierte Wert nicht mit dem durch
den Dekodierer erzeugten Wert und verhindert die geforderte Reaktion
durch den Dekodierer.
-
Der
Kodierer kann in einem Token oder senderartigem Gerät in einem
Zugriffsteuerungssystem verwendet werden. Ein Sender würde im allgemeinen
im aktiven Zustand Informationen von dem Kodiererausgang zu einem
Empfangssystem über
ein Übertragungsmedium
wie einem Radio (rf), Infrarot (ir) oder eine Mikrowelle übertragen.
Ein Token kann auch für
ein Sendegerät
bestimmt sein, aber beinhaltet im allgemeinen ein Gerät, in dem
ein Informationstransfer mittels elektrischer Kontakte und Leitungen durchgeführt wird.
In diesen physischen Kontakttoken (oder smart cards) können Informationen
bi-direktional durch Lese- und Schreiboperationen übertragen
werden. In beiden Fällen
richtet sich die Erfindung auf die Übertragung von Informationen
bezüglich
eines Kodierungs- oder Dekodierungsschlüssels ohne die Möglichkeit
den Kodierungs- oder Dekodierungsschlüssel der Außenwelt zu präsentieren.
-
Falls
der Lernmodus des Dekodierers ausgewählt wird, werden die Daten
des neuen Kodierers gefangen und die Seriennummer wird zuerst verwendet.
Durch Verwenden des Herstellerhauptschlüssels und der eingefangenen
Kodierer-Seriennummer wird ein neuer Kodierungsschlüssel abgeleitet,
mit dem Schlüsselgenerierungsalgorithmus,
der einen Teil des Dekodierers bilden muss. Die Schlüsselgenerierungsinformation
kann verwendet werden, den Herstellerschlüssel zu modifizieren oder zu
vergrößern, bevor
der neue Schlüssel
kalkuliert wird. Alternativ kann der Dekodierer überhaupt keinen Herstellerschlüssel aufweisen
und kann den Entschlüsselungsschlüssel einzig
und allein von der Schlüsselgenerierungsinformation,
die durch den Kodierer gesendet wird, ableiten oder verwendet die
Schlüsselgenerierungsinformation
direkt als Dekodierschlüssel.
Der neuerlich abgeleitete Schlüssel
wird verwendet, um den variablen (kodierten) Teil der vorher eingefangenen Übertragung
zu dekodieren. Wenn es dekodiert ist, wird es geprüft, um sicher
zu stellen, dass der korrekte Schlüssel erzeugt und verwendet wurde.
-
In
einer anderen Ausführungsform
kann es erforderlich werden eine weitere Übertragung zu dekodieren. Dieses
doppelte Übertragungssystem
kann dann auch die dekodierte Zählerinformation überprüfen, um
sicher zu stellen, dass der erzeugte Schlüssel gültig ist. Die kodierte Seriennummer
wird in einem nicht-flüchtigem
Speicher gespeichert und dem abgeleiteten Dekoderschlüssel, dem
Management-Kode, dem Zähler
und andere Benutzerinformationen zugeordnet. Das Lernen wird somit
verifiziert, bevor es als gültig
akzeptiert ist, wonach der Kodierer verwendet werden kann, um den
Dekodierer im normalen Betrieb zu aktivieren.
-
In
einem Normalbetrieb kodiert der Kodierer, wenn er durch eine elektrische
Eingabe z. B. durch Pressen eines Druckknopfschalters oder durch Schalter
oder durch irgendein anderes geeignetes Kommandomittel wie, den
Zähler-,
den Druckknopf- und den Management-Kode-Informationen mit einem Algorithmus
und einem Schlüssel
aktiviert wird. Die Management-Kode-Information besteht gewöhnlich aus
einer Information, die aus der folgenden Gruppe gewählt ist:
der Kodiererstatus, dem Kommando, der Identifizierung, dem Technologietyp,
der Zeit, dem Modus, der Integrität und den Benutzerdaten. Es kann
auch Zeitinformationen enthalten. Diese Zeitinformationen können verwendet
werden, um die Zeit, in der der Kodierungsvorgang erfolgt, zu übertragen oder
die gültige
Zeitdauer oder die Verfallsdaten für das Dekodiersystem anzuzeigen.
Der Benutzerschlüssel
ist mit der Seriennummer verbunden, die einen Teil der Information
bildet, die in dem nicht-flüchtigen
Speicher gespeichert ist. Die unverschlüsselte Seriennummer und die
verschlüsselte
Information werden durch externe Datenübertragungsmittel übertragen.
Die Datenübertragung
kann eine Übertragung
durch den Kodierer oder der Kodierer kann in einer besonderen Anwendung
elektrisch aktiviert werden, um Daten zu übertragen.
-
Der
Dekodierer ermittelt beim Empfang der Übertragung die unverschlüsselte Seriennummer und
den verschlüsselten
Teil. Er vergleicht die Seriennummer mit den Seriennummern der gelernten Kodierer,
die in seinem Speicher gespeichert sind. Wenn keine Übereinstimmung
gefunden wird, wird die Übertragung
verworfen. Wenn ein passender Wert gefunden ist, wird der Dekodierschlüssel, der
in dem Speicher der mit der passenden Seriennummer verbunden ist,
benutzt, um die verschlüsselte
Information mit einem Dekodierungsalgorithmus zu dekodieren. Die
Integrität
der Übertragung
wird geprüft, um
zu verifizieren, dass das Signal korrekt empfangen und dekodiert
wurde. Wenn dieses gültig
ist, wird der Zähler
geprüft.
Wenn das gültig
ist, wird die Dekodierzählerinformation
aktualisiert und die Ausgabefunktionssteuerung wird aktiviert. Wenn
der Zähler nicht
gültig
ist, wird die Übertragung
verworfen.
-
Die
Vorteile dieses Sicherheitssystems sind, dass die Übertragungen
immer unterschiedlich sind ohne Eingriff von dem Benutzer und dass
der Lernprozess in einer sicheren Art durchgeführt wird. Der lernende Dekodierer
muss zugriffsbereit sein und verfügbar und eine Information in
Bezug auf den Herstellerschlüssel
muss in dem Dekodierer zur Verfügung
stehen.
-
In
einer anderen Ausführungsform
wird sogar ein noch sicherer Lernprozess realisiert. Unter Verwendung
eines Algorithmus und eines Herstellerschlüssels zusammen mit einem einzigartigen Schlüsselgenerierungs-Startparameter,
der für
jeden Kodierer ausgewählt
wird, wird ein Kodierungsschlüssel
erzeugt. Der Schlüsselgenerierungs-Startparameter
und der Benutzerschlüssel
werden in jedem Kodierer zusammen mit der Kodiererseriennummer und
der Management-Kode-Information programmiert. Der Schlüsselgenerierungsalgorithmus und
der Herstellerschlüssel
müssen
in keinem einzigen Kodierer vorhanden sein. Keine mathematische Verbindung
ist erforderlich oder sollte zwischen Kodierer-Seriennummern und
Schlüsselgenerie rungs-Startparametern
existieren. Wenn ein Dekoder einen neuen Kodierer kennen lernen
soll, wird der Kodierer in einen Lernmodus gestellt und der Schlüsselgenerierungs-Startparameter
und die Seriennummer werden zu dem Dekodierer übertragen. Der Dekodierer erzeugt
einen Schlüssel
für diesen
Kodierer unter Verwendung des Herstellerschlüssels, des Schlüsselgenerierungs-Startparameters
und des Schlüsselgenerierungsalgorithmus.
Da der Schlüsselgenerierungs-Startparameter
nur während
des den Lernprozess gesendet wird, ist unter Normalbetrieb ein nicht
autorisierter Zugriff nicht möglich, selbst
wenn der Herstellerschlüssel
bekannt ist.
-
In
einer weiteren Ausführungsform
des sichereren Lernprozesses kann ein einzigartiger Herstellerschlüssel für jeden
Sender für
die Berechnung des Schlüssels
für diesen
Sender verwendet werden. Alle Dekodierer müssen deshalb nicht einen vollständigen Herstellerschlüssel enthalten.
Während
des Lernens wird der Herstellerschlüssel, der zu einem bestimmten
Kodierer gehört,
von der Schlüsselgenerierungsinformation,
die von dem Kodierer empfangen wird, abgeleitet. Der Herstellerschlüssel kann durch
Modifizieren und Vergrößern eines
gespeicherten vollständigen
oder teilweisen Herstellerschlüssels
oder unter Verwendung der hereinkommenden Schlüsselgenerierungsinformation
exklusiv abgeleitet werden, um den Herstellerschlüssel zu
bestimmen.
-
Der
Dekodierer kann dann den Kodiererschlüssel unter Verwendung des modifizierten
oder vergrößerten Herstellerschlüssels und
eines oder mehreren der Folgenden berechnen: der Kodierer-Seriennummer,
derselben Schlüsselgenerierungsinformation,
die für
die Bestimmung des Herstellerschlüssels verwendet wird, und weiterhin
der Schlüsselgenerierungsinformation,
die von einer weiteren Übertragung
erhalten wird.
-
Der
Rest des Lernprozesses ist identisch mit den beschriebenen Prozessen.
-
In
noch einer anderen Ausführungsform
des sichereren Lernprozesses kann der einzigartige Kodiererschlüssel ohne
zusätzliche
gespeicherte oder geheime Informationen abgeleitet werden, jedoch von
einer Information, die als ein lernender Startparameter gesendet
wird. In dieser Ausführungsform
ist kein Herstellerschlüssel
in dem Dekodierer erforderlich.
-
In
irgendeinem oder in allen dieser Ausführungsformen kann der Kodierer
konstruiert sein, um zu ermöglichen,
eine Übertragung
der Schlüsselgenerierungsinformation
permanent, nachdem der Lernprozess vollendet ist, abzuschalten.
Der Abschaltungsvorgang kann mittels eines besonderen Eingabefehls
durch einen programmierenden Vorgang oder automatisch durchgeführt werden.
Automatische Prozesse können
ein Zählen
der Zahl der Aktivierungen des Senders und ein Abschalten der Übertragung
der Schlüsselgenerierungsinformation nach
einem oder einer vorbestimmten Anzahl von Vorgängen beinhalten.
-
Ein
Verifikationsprozess wird initialisiert, um zu verifizieren, dass
der korrekte Schlüssel
erzeugt worden ist und dass andere Kodiererinformationen gespeichert
wurden. Bei Vollendung wird der Kodierer nun ein gültiger Kodierer
mit korrekter Synchronisationsinformation. Dieser Verifikationsprozess
stellt auch sicher, dass Sender mit kriminellen Kodierern oder Sendern
von anderen Herstellern, die nicht den korrekten Herstellerschlüssel aufweisen,
nicht ausgebildet werden können.
-
Die
Verwendung eines Schlüsselgenerierungs-Startparameters schützt die
Sicherheit des Systems in dem Fall des nicht autorisierenden Abtastens
der Seriennummer eines Kodierers. Mit den bekannten Seriennummern
ist es sehr unwahrscheinlich aber möglich, dass ein Kodierer gefälscht werden kann,
wenn ein Zugriff zu dem Herstellerequipment und zu dem Herstellerschlüssel erreicht
wird. Wenn ein Schlüsselgenerierungs-Startparameter
jedoch verwendet wird, kann der Schlüs sel, der in dem Dekoder gespeichert
ist, nicht erzeugt werden ohne Zugriff auf den Sender oder auf den
Token des Eigentümers
zu haben.
-
Nachdem
der Lernvorgang erfolgreich durchgeführt worden ist und der Dekoder
zurück
zu dem normalen Betriebszustand gekehrt ist, kann der Kodierer verwendet
werden, um den Dekodierer auf normale Weise zu aktivieren. Das bedeutet,
dass erneut die Seriennummer verglichen wird gegenüber den
gelernten Systemen. Eine spezielle Baud-Ratenkompensationsschaltung
kann während
des Empfangsprozesses verwendet werden, um einen zuverlässigen Kodeempfang
zu ermöglichen.
Der gespeicherte Schlüssel,
der mit der Kodierer-Seriennummer zusammenhängt, wird verwendet, um die Übertragung
zu dekodieren. Die Integrität
der empfangenen und dekodierten Übertragung
wird auf ihre Gültigkeit
durch Vergleichen der Management-Kode-Information geprüft, die
von dem Kodierer empfangen und mit der gespeicherten Information
dekodiert wurde. Ein ähnlicher
Prozess wird auf die zugehörige Zählerinformation
angewandt. Wenn diese erfolgreich ist, wird die Zählerinformation
aktualisiert und das vorbestimmte Ausgangssignal ausgewählt, das in
der korrekten externen Funktion, die aktiviert wird, resultiert.
-
Um
einen Eindringling am Abfangen von Schlüsselinformationen zu hindern
und ein Sicherheitssystem zu kompromittieren-, ist es wünschenswert,
dass die Schlüsselinformation
nicht übertragen werden
sollte. Ein Kode-Hopping macht es unmöglich für einen Eindringling einen
nicht autorisierten Zugriff auf den Dekoder oder die Lernfähigkeit
des Dekoders unter Verwendung des Kode-Abfangens oder der Generierung
zu erlangen oder durch Initialisieren eines nicht autorisierten
Kode-Hopping-Kodierers.
-
Das
beschriebene System macht Gebrauch von den gespeicherten Schlüsseln in
dem Dekodierer, um eingehende Übertragungen
zu dekodieren. Eine alternative Anordnung für ein Lern system ist es, nur
den Schlüsselgenerierungs-Startparameter
zu speichern anstelle des vollständigen
Schlüssels
an dem Ort des Dekodierschlüssels.
Während
der Dekodierungsvorgänge
wird der korrekte Schlüssel
von einer Auswahl aus dem zugehörigen
Startparameter, der Seriennummer und des Herstellerschlüssels erzeugt.
Der Vorteil ist, dass weniger nicht-flüchtiger Speicherplatz erforderlich
ist, da der Schlüsselerzeugungs-Startparameter weniger
Speicherplatz erfordern kann als der Schlüssel selbst. Der korrekte Schlüssel wird
in einem RAM, wenn immer erforderlich ist, erzeugt. Da einige Kodierer
von einem einzigen Dekodierer ausgebildet werden können und
der RAM immer wieder verwendet werden kann, kann diese Realisierung ökonomisch
sein.
-
Diese
Erfindung kann in unterschiedlichen Konfigurationen verwendet werden,
um einen Hersteller in die Lage zu versetzen, ihre Prinzipien zu nutzen
z. B. in einem Fahrzeugsicherheitssystem, einem Fernsteuerungssicherheitssystem
für Türen oder
Tore oder in einem System, den persönlichen Zugang zu einem Sicherheitsbereich
zu steuern. Unterschiedliche Arten der Übertragungsmittel können auch
verwendet werden z. B. eine Radio-, eine Infrarot- oder eine physische
Drahtverbindung.
-
Kurze Beschreibung
der Zeichnungen
-
Die
Erfindung wird weiterhin mit Hilfe eines Beispiels mit Bezug auf
die angefügten
Zeichnungen beschrieben, in denen:
-
1 eine
vereinfachte Darstellung in Blockdiagrammform eines Kodierers und
einer Datenübertragungsschnittstelle
und eines Dekodierers und einer Datenübertragungsschnittstelle in
einem Zugriffsteuerungssystem gemäß der Erfindung ist;
-
2 ein
Blockdiagramm in größerem Detail des
Kodierers der 1 ist;
-
3 ein
Blockdiagramm in größerem Detail des
Dekodierers der 1 ist;
-
4a und 4b Flussdiagramme
des Betriebs eines Lernalgorithmus, der in dem System der Erfindung
ausgeführt
ist, sind; und
-
5 ein
Diagramm für
das Speicherformat von Parametersätzen, die in dem Kodierer und
dem Dekodierer der Erfindung verwendet werden, ist.
-
Beschreibung
der bevorzugten Ausführungsform
-
Die
Erfindung wird hiernach zuerst in einem allgemeinen Sinne mit Bezug
auf 1 beschrieben, um die Prinzipien der Erfindung
zu erläutern
und danach mit Bezugnahme auf die 2 bis 5 in
einer näher
detaillierten Weise zu beschreiben, die auf eine praktische Ausführungsform
der Erfindung bezogen ist.
-
Vereinfachte
Beschreibung
-
1 ist
ein vereinfachtes Blockdiagramm eines Senders, der einen Kodierer 10 und
eine Datenübertragungsschnittstelle 11 und
einen Empfänger,
der einen Dekodierer 12 und eine Datenübertragungsschnittstelle 13 aufweist,
die in einem Kode-Hopping-Fernsteuerungssystem verwendet werden.
Detailliertere Funktionen und mehrfache Kodierer/Dekodierer-Kombinationen
wurden nur aus Gründen
der Klarheit weggelassen.
-
Die
Erfindung betrifft primär
die Realisierung des Lernens in einem Kode-Hopping-System. Das Lernen
wurde realisiert in standardfixierten Kodesystemen, aber die Hopping-Systeme
stellen eine einzigartige Herausforderung dar. Die Informationen,
die verschlüsselt
durch den Kodierer sind, können
nicht dekodiert werden außer
man hat einen Zugriff zu einem Bedienerschlüssel und die kodierte Information kann
konsequenterweise nicht verwendet werden, um den Schlüssel an
den Dekodierer zu senden. Die Erfindung richtet sich darauf, dieses
Problem zu überwinden.
-
Der
Kodierer beinhaltet einen Schalterkodierer 14, eine Zähler/Speicher-
und Fehlerkorrektur 16, einen Management-Kode-Speicher 17,
einen nicht-linearen Kodierer 18, der einen Kodieralgorithmus
aufweist, einen Speicher 20 für einen Schlüsselgenerierungs-Startparameter,
einen Speicher 22 für
einen Benutzerschlüssel,
einen Speicher 24 für
eine Seriennummer, die mit dem Kodierer verbunden ist und mit einem
breitenmodulierten Kodegenerator (PWM) 26 verbunden ist.
-
Der
Dekodierer 12 beinhaltet eine Steuerung 31, einen
Format-Detektor 32, einen Dekodierer 34, der einen
Dekodierungsalgorithmus aufweist, ein Integritätsprüfungsteil 35, eine
Zählerstandsynchronisationsprüfungseinheit 36,
eine Ausgabe-Managementfunktion 38, einen Zähler/Speicher 40 für einen Herstellerschlüssel, einen
Schlüsselgenerierungsalgorithmus/Steuerungseinheit 42,
einen Speicher 43 für
den Management-Kode, einen Speicher 44 für einen
Dekodiererschlüssel
und eine Zähler/Speicher und
Fehlerkorrektur 46 für
eine Zählerinformation.
-
Der
Schalterkodierer 14 ist spricht an auf eine Vielzahl von
Schaltern 48, die mit Hand betätigbar werden. Wenn ein Schalter
betätigt
wird, ist der Kodierer 10 als ganzes aktiviert. Der Kodierer
kann in einer von einer Vielzahl von Moden funktionieren, wie es
mit der folgenden Beschreibung deut lich wird, mit dem Kodiererbetriebsmodus,
der durch den Schalter bestimmt wird oder durch eine Kombination
von Schaltern, die betätigt
werden. Die Kodiererfunktionen werden durch eine Steuerung 49 gesteuert.
-
Die
Steuerung 49 des Kodierers steuert den Kodiererbetrieb.
Die Steuerung 49 ist mit jedem Teil des Kodierers verbunden
und überprüft den Betriebszustand
jedes Teiles und stellt Betriebssteuersignale zu jedem Teil bereit,
um den Betrieb und das Funktionieren des Kodierers als ganzes zu
steuern. Die Kodierkommandos werden von dem externen Schalter empfangen
und verwendet, um Betriebssteuerungssignale an die übrigen Kodierer
auszulösen.
Die Steuerungssignale können
aus Kodierungsmodusänderungen,
einer Auswahl der Übertragungsinformationen
und der Betätigung
all der unterschiedlichen Teile, wenn nötig nach Bedarf bestehen.
-
Die
Steuerung 31 des Dekoders steuert den Dekodierer in einer ähnlichen
Weise, welche durch die Steuerung 49 für den Kodierer durchgeführt wird. Die
Steuerung 31 ist mit jedem Dekodiererteil verbunden. Es
prüft den
Betriebszustand von jedem Teil des Dekodierers und stellt Betriebssteuerungssignale
für jedes
Teil bereit, um den Betrieb und die Funktionsfähigkeit des Dekodierers insgesamt
von den Dekodierkommandos, die von dem Formatdetektor und dem Modeauswahleingabessignalen
empfangen werden, zu steuern. Die Steuerungssignale können aus
den Dekoderzustandsänderungen
bestehen, wie der Auswahl der Schlüsselgenerierung, dem Speichern
der Informationen, wie Schlüssel
und Seriennummern, der Integritätsüberprüfung, der
Synchronisation und Zählerstandsspeicherung
und den Ausgangssignalen.
-
Die
Steuerung 49 kann entweder in einem von zwei Moden arbeiten,
nämlich
einem Lernmodus oder einem normalen Betriebskodierungsmodus. Jeder
Modus kann gewählt
werden, wie bereits aufgezeigt, durch eine geeignete Auswahl der
Schalter 48 oder in irgendeiner anderen geeigneten Weise
speziell für
die Anwendungsanordnung des Kodierers. Wenn ein Befehl durch den
Schalterkodierer 14 eingegangen ist, werden Steuerungssignale
durch die Steuerung 49 ausgegeben. In dem normalen Betriebsmodus
werden die Steuerungssignale zum Betreiben des Zähler/Speicher und Fehlerkorrekturteils 16,
des Management-Kode-Speicher 17,
des nicht-linearen Kodierers 18, des Schlüsselspeichers 22,
der Seriennummerspeicherung 24 und dem PWM Kodegenerator 26 eingesetzt,
um die geeignete Ausgabe von jedem spezifischen Teil auszuwählen und
zu aktivieren. Dieses sichert, dass der Kodierer, wie beschrieben
insbesondere hiernach beschrieben wird, funktioniert.
-
Wenn
der Kodierer in dem Lernmodus verwendet wird, gibt die Steuerung 49 Steuerungssignale
an die Startparameterspeicherung 20, den Speicher für die Seriennummer 24 und
den PWM Kodegenerator 26, um die geeignete Ausgabe für jedes spezifische
Teil auszuwählen
und zu aktivieren. Dieses stellt sicher, dass der Kodierer, wie
spezieller hiernach beschrieben, funktionieren wird.
-
Die
Steuerung 31 des Dekodierers kann in jedem von zwei Moden
funktionieren, nämlich
einem Lernmodus und einem normalen Betriebskodierungsmodus. Der
Modus kann gewählt
werden durch geeignete interne oder externe Schaltung. Eine interne
Schaltung kann durch den normalen Erfassungs- und Dekodierungsbetrieb,
wie hiernach beschrieben wird, aktiviert werden, um den Dekoder
in den Lernzustand zu versetzen. Eine externe Schaltung wie ein Druckschalter 110 oder
andere Schaltungsmittel können
ebenfalls benutzt werden.
-
In
einem normalen Betriebsmodus, wenn der Dekodierer ein empfangenes
Signal unter Verwendung des Formatdetektors 32 detektiert
hat, entscheidet die Steuerung 31 über die Steuerungssignale den
Dekoder zu betreiben. Die Steuerungssignale werden an die Schlüsselgenerierungsalgorithmus/Steuerungs einheit 42,
den Schlüsselspeicher 44,
den Dekodierer 34, den Managementspeicher 43,
die Integritätsprüfung 35,
die Zähler/Speicher
und Fehlerkorrektur 46, die Zählerstandsprüfung 36 und das
Ausgabemanagement 38 ausgegeben, um die geeignete Ausgabe
für jedes
spezielle Teil auszuwählen
und zu aktivieren. Diese stellt sicher, dass der Kodierer die hiernach
spezieller beschriebene Funktion ausführt.
-
Wenn
der Dekodierer in dem Lernmodus verwendet wird, gibt das Steuergerät 31 Kommandos
an die Schlüsselgenerierungsalgorithmus/Steuerungseinheit 42,
die Schlüsselsspeicherung 44,
den Dekodierer 34, den Managementspeicher 43,
die Integritätsprüfung 35,
die Zähler/Speicher
und Fehlerkorrektur 46, das Ausgangsmanagement 38 und
die Lernsteuerung 100 aus. Dieses stellt sicher, dass der Dekodierer
die geeigneten Informationen speichert und wie hiernach speziell
beschrieben, funktioniert.
-
In
dem normalen Betriebsmodus wird die Zähler/Speicher und Fehlerkorrektur 16 jedes
Mal aktiviert, wenn der Kodierer 10 verwendet wird. Sein Zählerstand
ist deshalb ein Indikator für
die Anzahl des Benutzens des Kodierers. Der Zählerstand wird in einem nicht-flüchtigem
Speicher gespeichert. Der Speicher wird nur betrieben, wenn Strom
an den Kodierer geliefert wird. Wenn der Zählerstand geändert wird
und gleichzeitig die Stromversorgung abgeschaltet ist, kann das
falsche zu speichernde Werte verursachen. Aus diesem Grunde ist
eine Fehlerkorrekturfunktion in die Zähler/Speicher und Fehlerkorrektur 16 eingeschlossen.
Die Zählerinformation
wird in dem nicht-linearen
Kodierer 18 unter Verwendung des Benutzerschlüssels in
dem Speicher 22 kodiert. Die Ausgabe des Kodierers 18 umfasst
somit eine veränderbare
Information, die in dem Generator 26 mit der Seriennummer
von dem Speicher 24 kombiniert wird. Die Seriennummer,
wie beschrieben wurde, hängt
mit dem Kodierer zusammen. Der Ausgang des Generators 26 wird
an die Datenübertragungsschnittstelle 11 angeschlossen
und zu der Datenübertragungsschnittstelle 13 und
dem Dekodierer 12 gesendet. Die Seriennummer kann auch
ein Teil einer Einheitsnummer sein, um einzigartig eine Kodierungseinheit
zu identifizieren.
-
Es
ist festzustellen, dass der Kodierer und der Dekodierer direkt miteinander
verbunden sein können,
z. B. mittels eines Drahtes, oder dass der Kodierer oder der Dekodierer
entfernt voneinander verbunden sind und die Übertragung der Informationen
durch ein Radiosignal, durch optische, mit einer Infrarotfrequenz
oder auf irgendeine andere geeignete Weise durchgeführt wird.
-
Das
Signal, das vom Dekoder 12 unter Verwendung der Datentransferschnittstelle 13 empfangen
wird, wird zu einem Logiksignal, das seinerseits durch den Formatdekoder 32 in
eine Zahl, die auf den Dekodierer 34 angewendet wird, konvertiert
wird. Der Detektor kann ein Pulsbreitenmodulations-Kodedetektor
sein. Der Dekodierungsalgorithmus des Dekoders 34 dekodiert
den variablen Abschnitt der Zahl, unter Erhalten von Zähler- und
Management-Kode-Informationen, die Integrität dieser wird durch den Teil 35 unter
Verwendung der Management-Kode-Information
in dem Speicher 43 geprüft, um
die Gültigkeit
des dekodierenden Vorgangs zu verifizieren. Wenn er gültig ist,
vergleicht die Einheit 36 die dekodierte Zählerinformation
mit der Zählerinformation,
die in dem Speicher 46 gehalten wird, um zu bestimmen,
dass die dekodierte Anzahl gültig
ist und nicht vorher verwendet wurde. Wenn der Empfang gültig ist,
dann werden die relevanten Ausgaben durch die Ausgabe-Managementfunktion 38 aktiviert.
-
Um
ein Lernen zu implementieren, versetzt der Benutzer den Dekodierer 12 in
einen Lernzustand. Der Kodierer 10 wird auch effektiv in
einen Lernmodus durch Aktivierung der geeigneten Schalter 48 eingestellt.
In diesem Fall wird der Schlüsselgenerierungs-Startparameter,
der in dem Speicher 20 gehal ten wird, zusammen mit der
Seriennummer in dem Speicher 24 an den Generator 26 geschaltet. Es
ist festzustellen, dass der Schlüsselgenerierungs-Startparameter
nur während
des Lernvorgangs verwendet wird. Der gesamte Betrieb des Dekoders
wird durch die Steuerung 31 gesteuert.
-
Die
Datenübertragungsschnittstelle 11 sendet
somit die Information über
den Schlüsselgenerierungs-Startparameter
und die Seriennummer an den Dekodierer 12. Die Datenübertragungsschnittstelle 13 empfängt diese
Information, die dann durch den Detektor 32 erfasst wird
und gibt sie an die Schlüsselgenerierungseinheit 42 weiter.
Diese Einheit rechnet einen Dekodierschlüssel aus, der auf dem hereinkommenden
Schlüsselgenerierungs-Startparameter und
dem Herstellerschlüssel
basiert, der in dem Speicher 40 gehalten wird. Der neuerlich
erzeugte Dekodierschlüssel
wird in dem Platz 44 gespeichert und kann für alle zukünftigen
Dekodierungsvorgänge
verwendet werden, die mit dem Dekodieralgorithmus des Dekodierers 34 arbeiten.
-
Der
Schlüsselgenerierungsalgorithmus,
der in der Schlüsselgenerierungseinheit 42 während des sicheren
Lernprogramms verwendet wird, ist gewöhnlicherweise ein nicht-linearer Algorithmus.
Dieser Algorithmus akzeptiert eine Eingabe des Herstellerschlüssels 40 (nicht
gezeigt) und der Schlüsselgenerierungsinformation.
Die Schlüsselgenerierungsinformation
kann aus der Kodierer-Seriennummer 24 oder dem Startparameter 20 oder
beiden bestehen. Die Schlüsselgenerierungsinformation
kann verwendet werden, um den Herstellerschlüssel, der in dem Dekodierer
gespeichert wurde, bevor der neue Schlüssel berechnet wurde, zu modifizieren
oder zu vergrößern. Alternativ
kann der Dekodierer keinen einzigen Herstellerschlüssel aufweisen
und kann den Kodierungsschlüssel
einzig und allein von der Schlüsselgenerierungsinformation,
die durch den Kodierer gesendet wird, abgeleitet sein oder es wird
die Schlüsselgenerierungsinformation
direkt als Dekodie rungsschlüssel
verwendet. Diese Information wird von dem Kodierer in einem Lernvorgang
an den Dekodierer übertragen.
-
Der
Dekoder 12 verwendet den Schlüsselgenerierungsalgorithmus,
um einen Schlüssel
zu erzeugen, der in dem Speicher 44 gehalten wird, welcher verwendet
wird, um eine normale Kode-Hopping-Übertragung zu dekodieren. Die
Sicherheit dieses Mechanismus ergibt sich aus der Tatsache, dass die
Beziehung zwischen dem gesendeten Startparameter und dem Dekodierungsschlüssel nicht
bekannt ist, was jede Art des Eingriffs auf die Übertragung nutzlos werden lässt. Die
nicht-lineare Schlüsselgenerierungsfunktion
macht es auch unmöglich,
irgendeine Beziehung zwischen dem Schlüssel und der Schlüsselgenerierungsinformation
herzustellen und somit kann kein nicht-legitimierter Kodierer produziert werden.
Der Schlüssel 22,
die Seriennummer 24 und der zufällig erzeugte Startparameter 20 eines Kodierers 10 werden
während
des Herstellungsprozesses geladen. Der Hersteller erzeugt den Schlüssel unter
Verwendung des Startparameters, der Seriennummer des Herstellerschlüssels und
des Schlüsselgenerierungsalgorithmus.
Der Schlüsselgenerierungsalgorithmus
ist der Öffentlichkeit
nicht bekannt. Da der Startparameter eine Zufallsnummer ist und die
Seriennummer auch in dem Prozess verwendet wird, ist die Möglichkeit
der Herstellung von zwei Kodierern mit den gleichen Schlüsseln sehr
klein.
-
Die
Verifizierung des Lernprozesses wird wie folgt bewirkt. Der Benutzer
drückt
den geeigneten Schalter 48 für den normalen Betrieb des
Kodierers 10, dadurch verursacht er die Übertragung
des variablen Kodes, der durch den nicht-linearen Kodierer 18 produziert
wird und der Seriennummer, die in dem Speicher 24 gehalten
wird. Der neuerlich erzeugte Dekoderschlüssel in dem Speicher 44 wird
zum Dekodieren des hereinkommenden Kodes in dem Dekodieralgorithmus
des Dekodierers 34 verwendet. Die Management-Kode-Information,
die dadurch er zeugt wird, wird verwendet, um die Gültigkeit
des Dekodiervorgangs durch seinen Vergleich mit dem Management-Kode
in dem Speicher 34 zu verifizieren. Die hereinkommende
Zählerinformation
wird in dem relevanten Speicherplatz 46 gespeichert. Eine
Fehlerkorrekturfunktion ist in der Einheit 46 enthalten,
um sicherzustellen, dass wenn falsche Daten während eines Stromausfalls gespeichert
werden, die korrekten Daten rückgewonnen
werden können,
sobald die Stromversorgung für
den Dekodierer wieder hergestellt ist.
-
Der
Benutzer aktiviert dann den Kodierer 10 erneut. Noch einmal
werden der resultierende variable Kode und die Seriennummer durch
die Datenübertragungsschnittstelle 13 empfangen.
Der variable Kode wird dekodiert durch den Dekodierungsalgorithmus
des Dekoders 34 unter Verwendung des neuerlich erzeugten
Dekodierschlüssels.
Die Zählerinformation,
die sich aus der Übertragung
ergibt, wird gegenüber
der Zählerinformation,
die in dem Speicherplatz 46 gehalten wird, geprüft. Wenn
der Vergleich anzeigt, dass die beiden variablen Kodeübertragungen
nachfolgend sind, dann wird angenommen, dass der Lernvorgang gültig war
und der Dekodierer wird aus dem Lernmodus herausgenommen. Das System kann
nun für
einen normalen Betrieb verwendet werden.
-
Eine
spezielle Beziehung existiert zwischen dem Schlüsselgenerierungs-Startparameter
in dem Speicher 20 und dem Benutzerschlüssel, der in dem Speicher 22 gehalten
wird. Diese Beziehung hängt von
dem Herstellerschlüssel,
der in dem Speicher 40 gehalten wird, ab. Der Herstellerschlüssel ist
jedoch nicht in dem Kodierer programmiert, sondern anstelle dessen
wird er in einer Produktionslinien-Programmierungseinheit verwendet,
die entsprechende Schlüsselgenerierungs-Startparameter
und Benutzerschlüssel
in den entsprechenden Kodierern programmiert. Der Herstellerschlüssel wird
andererseits vollständig
oder teilweise in jedem der Dekodierer programmiert und wird während des
Lernens in der oben beschriebenen Weise verwendet, um den korrekten
Dekoderschlüssel
zu berechnen, welcher dann in dem Speicherplatz 44 von
dem empfangenen Schlüsselgenerierungs-Startparameter
gehalten wird.
-
Die
Berechnung des Dekodierschlüssels kann
eine Vergrößerung oder
eine Modifikation des Herstellerschlüssels von der Schlüsselgenerierungsinformation
betreffen. Alternativ kann der Dekodierer überhaupt keinen Herstellerschlüssel enthalten
und der Dekodierschlüssel
kann einzig und allein von der Schlüsselgenerierungsinformation,
die durch den Kodierer gesendet wird, abgeleitet werden oder die Schlüsselgenerierungsinformation
direkt als einen Dekodierungsschlüssel verwenden.
-
In
einer Variation des Lernprozesses wird die Seriennummer, die in
dem Speicher 24 gehalten wird, durch die Schlüsselgenerierungseinheit 42 verwendet,
um den Dekoderschlüssel
zu erzeugen. In diesem Falle besteht keine Notwendigkeit für den Kodierer,
die Fähigkeit
des Übertragens
des Schlüsselgenerierungs-Startparameters
aufzuweisen. Weiterhin existiert eine spezielle Beziehung zwischen
der Seriennummer und dem Benutzerschlüssel eher als zwischen dem
Schlüsselgenerierungs-Startparameter
und dem Benutzerschlüssel.
-
Die
Seriennummer ist in jeder Übertragung vorhanden.
Somit kann der Kodierer, von dem die Übertragung erzeugt wird, identifiziert
werden, obwohl selbst ein Außenseiter
keinen Zugriff zu der Information, die in der Übertragung enthalten ist, gewinnen
kann. Die Seriennummer kann verwendet werden, um mehrere Kodierer
in einem einzelnen System zu identifizieren, und ermöglicht damit
mehrere bestimmte Kodierer in einem einzigen Dekodierungssystem
unterzubringen.
-
Funktionale Beschreibung
-
Die
folgende Beschreibung, die auf den 2 bis 5 der
anliegenden Zeichnungen basiert, wird mit Bezug auf eine praktische
Ausführungsform
des Steuerungssystem der Erfindung, welches die allgemeinen Prinzipien,
die im Zusammenhang mit 1 beschrieben wurden, ausführt.
-
Dort,
wo es passt werden ähnliche
Referenznummern zu denen, die in 1 eingesetzt
sind, in den 2 bis 5 verwendet,
um ähnliche
Komponenten zu kennzeichnen.
-
2 zeigt
eine Ausführung
eines Kode-Hopping-Fernsteuerungsenders,
der einen Kodierer 10, Schalter 48, eine Steuerung 49,
eine Stromversorgung 50 und eine Datenübertragungsschnittstelle 11 umfasst,
die alle in einem Schutzgehäuse
untergebracht sein können,
zu dem ein Schlüsselring
passt, der dem Benutzer ermöglicht, den
Sender bequem zu transportieren. Die Schalter 48 können Druckknopfschalter
zur Aktivierung durch Fernsteuerung der unterschiedlichen Funktionen
des Sicherheitssystems sein und möglicherweise für die Stromversorgung
von einem Stromversorger 50, der eine Batterie sein kann,
für den
gesamten Sender.
-
Alle
Elemente, die in dem Blockdiagramm neben dem Stromversorger 50,
den Knopfschaltern 48 und der Datenübertragungsschnittstelle 11 gezeigt
werden, können
in einem einzigen integrierten Schaltkreis eingebaut sein. Ein anwendungsspezifischer
integrierter Schaltkreis ist die bevorzugte Ausführungsform, um einen Nachbau
so schwierig wie möglich
zu machen. Der Nachbau besitzt ein Sicherheitsrisiko in den Sicherheitssystemen,
wenn der volle Zugriff zu dem Algorithmus und der gespeicherten Information
durch diesen Prozess bereitgestellt wird.
-
Der
Kodierer 10 beinhaltet einen Schalterkodierer 14,
um Informationen zu kodieren, die die Schalter 48 welche
gedrückt
werden betreffen und gibt eine verschlüsselte Information 52 aus,
welche zum Steuern des Betriebs des Kodierers un ter Verwendung der
Steuerung 49 sowie unter Verwendung anderer Teile verwendet
wird, und welche kodiert sein kann als eine „Funktionsanforderung", um die Funktionen,
die durch den Dekodierer 12 zu aktivieren sind, zu bestimmen.
Die Steuerungsfunktionen schließen
ein Auswählen
des Modus des Betriebs des Serienkodegenerators 26 und
ein Auswählen des
virtuellen Kodierers ein, der zu emulieren ist. (Die Bedeutung des
Merkmals „virtueller
Kodierer" wird mit
der nachfolgenden Beschreibung deutlich.) Eine Funktionsanforderung
kann einen der unterschiedlichen Ausgaben des Dekodierers aktivieren.
Eine typische Anwendung wäre
in einem Fahrzeugsicherheitssystem, wo unterschiedliche Dekodiererausgaben
verwendet werden können,
eine Wegfahrsperre zu entschärfen,
einen Alarm scharf zu machen, den Alarm zu entschärfen und
elektrische Fenster des Fahrzeugs zu bedienen.
-
Ein
Beispiel des Schalterkodierers 14 ist es, wenn eine Anzahl
b von Schaltern verwendet wird, um den Kodierer zu aktivieren, kodiert
die Schalterkodierungsfunktion den Wert b zu erkennbaren Werten,
die dem internen Schaltkreis des Kodierers zugeführt werden. Beim Pressen von
zwei Schaltern zur gleichen Zeit kann z. B. ein bestimmter Wert durch
den Schalterkodierer 14 erzeugt werden, der den Kodierer
zum Übertragen
der kodiererbezogenen Information aktiviert. Wenn einer der gleichen zwei
Schalter getrennt verwendet wurde, wird ein vollständig anderer
Wert durch den Schalterkodierer 14 erzeugt, der in einer
Auswahl und einer Übertragung
von unterschiedlichen Informationen resultiert. Das bedeutet, dass
mit b Schaltern, 2b unterschiedliche Funktionen
erkannt und ausgewählt
werden können.
Der Schalterkodierer 14 kann auch verwendet werden, um
die Kodierer in einen Lernmodus durch Programmieren der Kodierungsfunktion
zu versetzen, um einen vorbestimmten Wert auszugeben, der vorgezeigt
werden kann, wenn irgendeiner oder eine Kombination der Schalter
gedrückt
wird.
-
Ein
Abschnitt des nicht-flüchtigen
Speichers 54 wird verwendet, um eine Mehrzahl von Parametersätzen 56A ... 56N zu
speichern. Jeder Parametersatz besteht aus einem festen Schlüsselgenerierungs-Startparameter 60,
der dem Startparameter, der in dem Speicher 20 der 1 gehalten
wird, einer Seriennummer 62, die der Seriennummer, die
in Speicher 24 der 1 entspricht
einem Kodier- oder Benutzerschlüssel 64,
der dem Benutzerschlüssel, der
in dem Speicher 22 gehalten wird, entspricht, dem Zähler und
der Fehlerkorrekturinformation 66, welche die Zählerinformation
einschließt,
die in die Zähler/Speicher
und Fehlerkorrektur 16 beinhaltet, und einem Management-Kode 68,
der dem in dem Speicher 17 gehaltenen Kode entspricht.
-
Wie
bereits erwähnt
wurde ein Bereitstellen für
das Speichern mehrerer Parametersätzen 56 durchgeführt. Jeder
Parametersatz ist einem wie hierin bezeichnet „virtuellen Kodierer" zugehörig, wobei
der Kodierer als irgendeiner der unterschiedlichen virtuellen Kodierer
abhängig
davon welcher Schalter 48 gedrückt wird, arbeiten kann.
-
Die
Zähler/Speicher
und Fehlerkorrektur 16 wird jedes Mal aktualisiert, wenn
der Kodierer betätigt wird.
Wenn mehrere Parametersätze
verwendet werden, wird jedoch nur die Zählerinformation in einem speziellen
Parametersatz jedes Mal aktualisiert, wenn der entsprechende virtuelle
Speicher verwendet wird.
-
Ein
spezieller Kodierer kann entweder als ein einzelner gespeicherter
Parametersatz 56 zusammen mit unterschiedlichen Funktionsanfragen
oder mit unterschiedlichen Parametersätzen mit ähnlichen oder unterschiedlichen
Funktionsanfragen verwendet werden. Typischerweise werden unterschiedliche Parametersätze verwendet,
wenn zu mehreren unterschiedlichen Dekodierern zugegriffen werden
soll. Mehrere Funktionen können
in jedem dieser Kodierer erreichbar sein. Ein einzelner Kodierer kann
deshalb konfiguriert sein, um alle Dekodierer unter Verwendung unterschiedlicher
Parametersätze
zu erreichen und kann in der Lage sein unterschiedliche Funktionsanfragen
mit jedem der Parametersätze
zu kombinieren.
-
Die
Seriennummer 62 ist für
einen speziellen Kodierer einzigartig und wird mit jeder Ausgabe
von diesem speziellen virtuellen Kodierer entschlüsselt. Der
Kodierungs- oder Benutzerschlüssel 64 ist
eine Zahl, die einzigartig für
einen speziellen virtuellen Kodierer ist und die verwendet wird,
um die Übertragung in
einer Weise zu kodieren, dass die ursprüngliche kodierte Information
nicht durch Außenseiter
zurückgewonnen
werden kann. Der Management-Kode 68 besteht aus Informationen über den
Status des speziellen virtuellen Kodierers und kann Abschnitte beinhalten
mit vordefinierten Werten für
ein Prüfen
der Integrität
der Dekodierungsvorgänge
in dem Dekodierer. Die Zähler-
und Fehlerkorrekturinformation 66 ist der Zählerstand
eines 16-Bit-Zählers,
der zum Feststellen der Synchronisation zwischen dem Kodierer und
dem Dekodierer verwendet wird, und der hinsichtlich eines Fehlers
korrigiert, wenn ein verdächtiger
Fehler während
eines Speichervorgangs auftritt. Der Zählerstand wird jedes Mal, wenn
der virtuelle Kodierer betrieben wird, geändert. Der Schlüsselgenerierungs-Startparameter 60 ist
eine Zahl, die mit Bezug auf die 1 erwähnt wurde,
die eine spezielle Beziehung zu dem Kodierungsschlüssel 64 aufweist.
Während
der Schlüssel
lesegeschützt
ist, ist der Startparameter 60 nicht notwendigerweise unerreichbar.
Jedoch ist die Beziehung zwischen den beiden ausreichend unverständlich,
so dass ein Außenseiter
nicht in der Lage ist, den Schlüssel
von dem Wert des Startparameters abzuleiten.
-
Das
Mittel 61 kann auch permanent enthalten sein, um die Übertragung
des Startparameters 60 abzuschalten, nachdem das Lernen
vollendet worden ist. Das Abschaltmittel kann automatisch (z. B. wenn
eine vorbestimmte Nummer von Übertragungen
durchgeführt
sind) oder durch eine bewusste Aktion des Benutzers einschließlich einer
aber nicht begrenzt auf eine spezifische Kombination von Eingaben
aktiviert werden.
-
Der
nicht-flüchtige
Speicher 54 ist lesegeschützt, um eine genaue Prüfung der
Kodierungsschlüssel 64 von
außen
zu verhindern. Ein Zugriff zu den Schlüsseln oder zu der Seriennummer 62,
dem Startparameter 60 und dem Herstellerschlüssel in dem
Speicher 40 kann einen Außenseiter in die Lage versetzen,
einen ähnlichen
Kodierer mit einem identischen Schlüssel zu programmieren und Zugriff
zu dem System zu erlangen.
-
Der
Kodierer schließt
einen nicht-linearen Kodierer 18 ein, der einen Benutzerschlüssel 64 verwendet,
um einen Eingabe-String zu kodieren. Die Schlüssellänge sollte ausreichend sein,
um eine vernünftige
Immunität
gegen analytische Angriffe unter Berücksichtigung des Standes der
Technik in der Computertechnologie zu sichern. Eine Schlüssellänge von
64 Bits wird als adäquat
für Sicherheits-
und Zugriffsteuerungssysteme erachtet. Die Verwendung längerer Schlüssel hat
ungünstige
Kostenfolgen, während
kürzere
Schlüssel
ein vermindertes Sicherheitsniveau bereitstellen. Die Länge des
Ausgabe-Strings 70 des nicht-linearen Kodierungsalgorithmus
bestimmt die Zahl der Bits die durch den Kodierer kodiert sind.
Ein 32-Bits-Ausgabe-String
stellt eine gute Balance zwischen Sicherheit und Reaktionszeit bei
typischen Fernsteuerungsübertragungsraten
bereit. Der Eingabe-String an dem Kodierungsalgorithmus ist 32 Bits
und enthält
Funktionsinformationen 52 von dem Schalterkodierer 14 (4
Bits), der Zählerinformation 66 (16
Bits) und dem Management-Kode 68 (12 Bits) speziell zu
dem Kodierer, der aktiviert wird. Der Management-Kode kann eine
Systemzustandsinformation enthalten, die Batteriespannungsanzeigen
und Modus-auswahlen einschließen.
-
Ein
serieller Kodegenerator 26 wird verwendet, um den Kode,
der zu senden ist, zusammenzufügen.
Der Kode besteht entweder aus einer Kombination des 32-Bit-kodierten
Strings 70, der durch den nicht-linearen Kodierer 18 erzeugt
wird und der Seriennummer 62 des Kodierers oder aus einem
festen Schlüsselgenerierungs-Startparameter 26 und
der Seriennummer 62. Der Kodegenerator 26 implementiert
auch das für
die Übertragung
durch die Datenübertragungsschnittstelle 11 erforderliche
Modulationsschema, das in diesem Fall eine Impulsbreitenmodulation
(PWM) ist.
-
Die
Ausgabe 72 des seriellen Kodegenerators 26 wird
durch die Schnittstelle 11 unter Verwendung von elektromagnetischen
oder anderen Mitteln gesendet. Die Datenübertragungsschnittstelle 28 kann
durch eine direkte Verbindung in dem Fall, in dem ein Fernbetrieb
nicht erforderlich ist, ersetzt werden.
-
Der
Kodierer schließt
einen Statusmonitor 74 ein, der Teile ändern kann z. B. die Statusinformation des
Management-Kodes 68 in
einem bestimmten Speicherblock, abhängig von einer gewählten Option und
von Konditionen, die in dem Kodierer existieren. Diese Änderungen
können
in dem Dekodierer erfasst werden, um eine Rückkopplung auf drohende Kodiererprobleme
bereitzustellen z. B. einer schwachen Batterie. Die Zustandsaspekte,
die überwacht
werden, werden über
ein Optionsregister 76 ausgewählt.
-
Die
Optionen sind in dem Kodierer in dem Optionsregister 76 programmiert,
welches einen Teil des nicht-flüchtigen
Speichers bildet. Der Statusmonitor 74 wählt unterschiedliche
Kodiererzustände
entsprechend den Optionen, die in dem Optionsregister 76 programmiert
sind, aus. Eine besondere vorbestimmte Option kann z. B. eine niedrige
Batteriespannung anzeigen. Derselbe Wert wird in dem Dekodierer
programmiert, um die niedrige Batteriespannungsanzeige in einer Übertragung
zur Anzeige für den
Benutzer zu messen. Die programmierten Optionen und der Auswahlstatusmonitor 74 werden
aktiviert, wenn ein Kodierer aktiviert ist. Der vorbestimmte Wert
wird ersetzt in Teile des Management-Kodes 68 vor einer
Kodierung und Übertragung
der Information. Die Optionen werden, wenn sie ausgewählt und übertragen
sind, durch den Dekodierer nach dem Dekodieren gemessen, so dass
die programmierte Aktion durchgeführt werden kann.
-
3 zeigt
eine Ausführungsform
eines Lernkode-Hopping-Zugriffsteuerungsdekodierer 12.
-
Eine
Datentransferschnittstelle 13 konvertiert die elektromagnetischen
oder anderen Signale, die für
die Übertragung
des Signals von der Datenübertragungsschnittstelle 11 in
ein Basisband-Logiksignal 78 verwendet werden, die noch
entsprechend dem Modulationsschema, das durch den seriellen Kodegenerator 26 angewendet
wird, moduliert werden.
-
Der
Dekodierer beinhaltet einen Detektor 32, der Mittel für ein Kompensieren
für Unterschiede
in der Übertragungslänge auf
Grund der Zeitunterschiede zwischen dem Kodierer und dem Dekodierer
aufweist.
-
Der
Detektor 32 extrahiert eine 32-Bit-variable Zahl 80 von
dem Signal 78 und liefert es an einen Dekodieralgorithmus 34,
der die variable Zahl unter Verwendung eines 64-Bit-Dekodierungsschlüssels 82,
der in einem nicht-flüchtigem
Speicher 84 gespeichert ist, dekodiert. Wenn ein gültiger Dekodierungsprozess
durchgeführt
wurde, enthält
der sich ergebende 32-Bit-Kode 86 die Information, die
in dem nicht-linearen Kodierungsalgorithmus des Kodierers 18 vor
einem Kodieren eingeführt
wurde.
-
Der
Dekodierer schließt
eine Integritätsprüfungseinheit 35 ein,
um die Gültigkeit
des Dekodierungsprozesses zu verifizieren. Für eine gültige Dekodierung gibt es eine
vorbestimmte Beziehung zwischen einem gespeicherten Management-Kode 90, der zu
dem in dem Speicher 34 gehaltenen Kode der 1 und
dem entsprechenden Abschnitt des dekodierten 32-Bit-Wortes 86 korrespondiert.
-
Der
Dekodierungsschlüssel 82 entspricht dem
Dekodierungsschlüssel,
der in dem Speicherplatz 44 des Dekodierer 12 der 1 gehalten
wird.
-
Eine
Synchronisationsprüfungseinheit 36 verifiziert
die Gültigkeit
einer Übertragung
durch Vergleichen der hereinkommenden Zählerinformation 92,
die durch die Integritätsprüfungseinheit 35 erzeugt
wird, mit einer gespeicherten Zählerinformation 94 für den relevanten
Kodierer. Die Zählerinformation 94 entspricht
der Information, die in dem Speicherplatz 46 des Dekodierers 12 der 1 gehalten
ist, und schließt
eine Fehlerkorrekturfunktion ein, um sicherzustellen, dass der Wert
des Zählerstandes
korrigiert wurde, wenn ein Fehler während eines Stromausfalls gespeichert
wurde.
-
Eine
Ausgaben-Managementeinheit 38 managt die Aktivität von oder
die Kommunikation mit anderen Geräten in dem System. Die Einheit 38 stellt eine
Anzeige davon bereit, von einigen Funktionen, die gewünscht sind,
ob der Kodierer 10 die Kodierung eingestellt hat oder ob
irgendeine spezielle Option angefordert wurde. Eine Anzeige der
Identität
des Kodierers von dem das empfangene Signal erzeugt wurde, kann
auch bereitgestellt werden. Die Einheit 38 verwendet auch
einen Speicherplatz in dem nicht-flüchtigen Speicher 84,
um Optionen zu managen, die durch eine Optionssteuerungseinheit 96 bestimmt
sind, welche das Format beeinflussen, in dem Ausgabesignale 98 dargestellt
werden, die durch die Einheit erzeugt werden, oder die bestimmte
Systemmerkmale ein- oder ausschalten können.
-
Eine
Lernsteuerungseinheit 100 managt den Lernprozess mittels
Weitergeben geeigneter Anweisungen an den Detektor 32,
den Dekodierungsalgorithmus des Dekodierers 34, der Integritätsprüfungseinheit 35,
der Synchronisationsprüfungseinheit 36 und
einer Schlüsseladressen-Managementeinheit 102.
Die Einheit 100 kann in dem Lernmodus außerhalb
des Dekodierers angeordnet sein oder spezielle Ausgabekombinationen
können
verwendet werden, um den Dekodierer in den Lernmodus durch Weitergabe
des relevanten Signals von der Managementsteuerungseinheit 38 zu
der Lernsteuerungseinheit 100 zu bringen. Typischerweise
wird ein einzelner Speicherblock für diesen Zweck reserviert.
Der Dekodierer, der die Lernsteuerung 100 beinhaltet, wird durch
eine Steuerung 31 gesteuert.
-
Ein
Parametersatz 56 eines vorbezeichneten Kodierers, auf den
als Hauptkodierer Bezug genommen wird, wird in diesem reservierten
Speicherblock gespeichert. Wenn der Hauptkodierer aktiviert ist, sendet
die Ausgabefunktionssteuerungseinheit 38 ein Steuerungssignal
an die Einheit 100, wodurch der Dekodierer 12 in
den Lernmodus versetzt wird.
-
Der
nicht-flüchtige
Speicher 84 bildet Vorbereitungen zum Speichern einer Vielzahl
von Parametersätzen 102A ... 102N,
die den Parametersätzen 56A ... 56N in
dem Kodierer entsprechen. Jeder Parametersatz beinhaltet eine Seriennummer 104,
die der Seriennummer 62 in dem entsprechenden Kodierer
entspricht und dem zugehörigen
Dekodierschlüssel 82,
dem Management-Kode 90 und die Zählerinformation 94.
Ein Herstellerschlüssel 106 korrespondiert
mit der Information, die in dem Speicherplatz 40 der 1 gehalten
wird, und ist auch in dem Speicher 84 für die Verwendung während der
Lernvorgänge
gespeichert.
-
Eine
alternative Ausführungsform
des Dekodierers kann auch eine Bereitstellung beinhalten, um den
Herstellerschlüssel 40 zu
vergrößern oder
zu modifizieren während
des Lernens mit einem Teil oder mit dem gesamten Schlüsselgenerierungs-Startparameter. Alternativ
kann der Dekodierer überhaupt
keinen Herstellerschlüssel
aufweisen und kann den Dekodierschlüssel einzig und allein von
der Schlüsselgenerierungsinformation,
die durch den Kodierer übertragen
wird, ableiten oder kann die Schlüsselgenerierungsinformation
direkt als einen Dekodierungsschlüssel verwenden.
-
Die
Schlüsseladressen-Managementeinheit 102 managt
den Durchlauf der Information zu und von dem nicht-flüchtigen
Speicher 84. Die Schlüsseladressen-Managementeinheit
kann in Hardware oder in Software oder in einer Kombination davon
implementiert sein. Diese Einheit wählt die Speicherbank, die verwendet
werden soll, aus, wobei jede Speicherbank in der Lage ist, einen
einzelnen Parametersatz zu speichern. Ein Zeiger wird auch in einem
Speichersegment 108 gehalten, der für die Lernvorgänge die
nächste
Speicherbank anzeigt.
-
Während der
Lernvorgänge
erzeugt eine Schlüsselgenerierungseinheit 42 einen
Dekodierungsschlüssel 82 für den neuen
Kodierer und überträgt diesen
auf den relevanten Speicherplatz für den entsprechenden Parametersatz 102.
Ein nicht-linearer kodierter Algorithmus eines ähnlichen Niveaus der Komplexität wie der
Kode-Hopping-Algorithmus wird verwendet, um sicherzustellen, dass
die Beziehung zwischen dem Schlüsselgenerierungs-Startparameter
und dem Kodierungs- oder Dekodierungsschlüssel 82 so unverständlich wie
möglich
ist.
-
5 enthält eine
Darstellung eines Kodierungsparametersatzes 56 und eines
Dekodierungsparametersatzes 102 und beinhaltet eine Zusammenfassung
des Inhalts von jedem Parametersatz.
-
Betriebliche
Beschreibung des Kodierers
-
Wenn
der Benutzer den Schalter 48 drückt, um den Kodierer 10 zu
aktivieren, bestimmt die Schalterkodierereinheit 14, welcher
Schalter oder Kombination von Schaltern gedrückt wurde, und erzeugt den
4-Bit-Funktionskode 52 zusammen mit einer Kombination der
Steuersignale. Die Steuersignale bestimmen von welchem Speicherblock
der relevante Parametersatz genommen wird und ob die Übertragung
einen Hopping-Kode oder einen Festkode umfassen soll.
-
Die
Schalter 48 können
durch ein System ersetzt werden, das den Kodierer elektrisch anweisen kann.
Das Kommando kann z. B. durch einen Computer oder durch ein anderes
Gerät unter
Verwendung einer speziellen Kommandoschnittstelle erzeugt werden.
Der Strom für
den Kodierer kann durch eine Kommandoschnittstelle versorgt werden.
-
In
einer anderen Anwendung kann die Kodierer- und Dekodiererkombination
zu Authentisierungs- und zu Zugriffsteuerungszwecken verwendet werden.
Der Kodierer kann in einem Token oder einer smart card untergebracht
sein, die eine Person tragen kann und als Zugriff z. B. auf einen
Sicherheitsbereich verwenden kann. Die Kommunikation wird über eine
elektrische Schnittstelle durchgeführt. In diesem Fall wird eine
bi-direktionale
Kommunikation verwendet, um die Informationen zwischen einem Kodierer
und einem Dekodierer auszutauschen. Die Seriennummer 62 des
Kodierers wird an den Dekodierer übertragen, um den Schüssel 82,
der in dem Dekodierungsprozess verwendet werden soll, zu bestimmen.
Ein Wert wird als ein Eingabewert an den Kodierer durch den Dekodierer
vorgestellt, der als eine Herausforderung bekannt ist. Der Kodierer
kodiert den Herausforderungswert und kehrt zu dem kodierten Wert
des Dekodierers zurück.
Der Dekodierer dekodiert nun den kodierten Wert und vergleicht ihn mit
dem Herausforderungswert, um die Authentizität des Kodierers festzustellen
und eine Ausgabe entsprechend zu aktivieren. Diese Technik ist allgemeine
als IFF (Identifizierung von Freund oder Feind) bekannt. In dieser
Anwendung kann der Startparameter 60 des Kodierers an den
Dekodierer in einem Lernmodus übertragen
werden. Der Schlüssel
(82) kann erzeugt und gespeichert werden in dem Dekodierer wie
hierin beschrieben.
-
Die
Fähigkeit
mehr als einen Parametersatz für
einen Kodierer anzuwenden, ermöglicht
dem Kodierer mehr als einen Dekodierer ohne Wechselwirkung, selbst
wenn eine einzige Betriebsfrequenz gemeinsam benutzt wird, zu adressieren.
Der Kodierer scheint ein ausgewählter
von mehreren unabhängigen
Kodierern zu sein, wobei jeder von ihnen für einen unabhängigen Vorgang
in der Lage ist auf Grund der Bezeichnung „virtueller Kodierer". Klarerweise sind
die Kodierer nicht in der Lage einen simultanen Vorgang durchzuführen. Für einen
Hopping-Kode-Vorgang
verwendet der nicht-lineare Kodierungsalgorithmus des Kodierers 18 den
entsprechenden Kodierungsschlüssel 64,
um die Zählerinformation 66 und
den Management-Kode 68 zusammen mit dem 4-Bit-Funktionskode 52 zu
kodieren. Der 32-Bit-Ausgabekode 70 wird dem seriellen
Kodegenerator 26 zugeführt.
Die Zählerinformation 66 wird
jedes Mal geändert,
wenn eine Übertragung
für den
entsprechenden virtuellen Kodierer durchgeführt wird. Der serielle Kodegenerator 26 komplementiert die
entsprechenden Kodierer-Seriennummer 62 in den kodierten
Teil, wodurch ein einziger Ausgabe-Kode 72 gebildet wird,
der der Eingabe der Datenübertragungsschnittstelle 11 in
PWM-serieller Form (in diesem Beispiel) präsentiert wird.
-
Für einen
Festkodebetrieb wird der Schlüsselgenerierungs-Startparameter 60 direkt
dem seriellen Kodegenerator 26 vorgestellt, welcher den
Kode präsentiert,
zusammen mit der Seriennummer 62 in einer PWM-seriellen
Form für
die Datentransferschnittstelle 11.
-
Es
können
auch Mittel eingeschlossen sein, die permanent die Übertragung
des Startparameters 60, nachdem das Lernen vollendet ist,
abschalten. Das Abschaltmittel kann automatisch (z. B. wenn der Kodierer
für eine
vorbestimmte Anzahl von Übertragungen
verwendet worden ist) oder durch eine bewusste Aktion des Benutzers
einschließlich,
aber nicht begrenzt auf eine spezielle Kombination der Eingaben,
abgeschal tet werden. Das Abschaltmittel kann jede geeignete Form
annehmen und kann ein Schalter 61 sein, der aktiviert wird
wie beschrieben, der den Datenstrom von dem Startparameter 60 zu dem
Generator 26 unterbricht. Alternativ kann die Steuerung 49 in
Reaktion auf eine Handhabung oder eine andre Eingabe verwendet werden,
um die Datenübertragung
von dem Startparameter zu dem Generator 26 zu verhindern.
Die Steuerung kann auch verwendet werden, um den Schalter 61 zu
aktivieren.
-
In
beiden Moden des Betriebes sendet die Datenübertragungsschnittstelle 11 Informationen
von dem seriellen Kodegenerator unter Verwendung elektromagnetischer
oder anderer Mittel.
-
Betriebliche
Beschreibung – Dekodierer
im Normalbetrieb
-
Signale,
die durch die Datenübertragungsschnittstelle 13 empfangen
werden, werden in das Logiksignal 78 noch in eine PWM-Form
konvertiert. Der Formatdetektor 32 überwacht das Logiksignal 78 und
wenn der Anfangsabschnitt von einem scheinbar gültigen Signal beobachtet wird,
kalibriert sich der Detektor selbst auf das hereinkommende Signal,
um Abweichungen von einer nominalen Zeitvorgabe zu kompensieren.
Der verbliebene Anteil des hereinkommenden Signals wird empfangen
und in eine Zahl konvertiert, die in diesem Beispiel eine 64-Bit-Binärzahl ist.
-
Die
ersten 32 Bits der Detektorausgabe, nämlich der Hopping-Kode, werden
mit 80 bezeichnet und werden dem Dekodieralgorithmus des
Dekodierers 34 zugeführt.
Die letzten 32 Bits, nämlich
die Seriennummer, wird der Schlüsseladressen-Managementeinheit 102 zugeführt. Diese
Einheit bestimmt den Speicherblock, der verwendet wird unter Vergleichen
der empfangenen Seriennummer mit den gespeicherten Seriennummern 104 bis
eine Übereinstimmung
gefunden ist. Der Dekodierungsalgo rithmus 34 verwendet
den Dekodierungsschlüssel 82 von
dem korrekten Speicherblock, nämlich
dem entsprechenden Parametersatz, um den Hopping-Kode 80 zu
dekodieren. Eine 32-Bit-Ausgabe 86 wird
der Integritätsprüfungseinheit 88 zugeführt. Dieser
32-Bit-String umfasst den ursprünglichen 4-Bit-Funktionenkode 52,
die 16 Bits der Zählerinformation 66 und
den 12-Bit-Management-Kode 68. Die Integritätsprüfungseinheit 35 überprüft auf eine
vorbestimmte Beziehung zwischen dem dekodierten Management-Kode 68 in
dem dekodierten Wort 86 und der gespeicherten Version 90.
Wenn eine definierte Beziehung besteht, wird die Dekodierung für gültig gehalten.
-
Der
dekodierte Zählerstand 66 wird
mit dem gespeicherten Zählerstand 94,
der in dem entsprechenden Parametersatz enthalten ist, verglichen. Wenn
die Synchronisation beweist, dass die Übertragung gültig ist,
wird der gespeicherte Wert aktualisiert und die Ausgabesteuerungsfunktionseinheit 38 wird entsprechend
angewiesen.
-
Die
Einheit 38 gibt die dekodierte Funktionsinformation 98 aus.
Die Einheit kann die Information in einem seriellen Format zugänglich machen
für eine Benutzung
durch eine externe Steuerung oder kann diskrete Ausgaben aufweisen,
um irgendeine Anzahl von unterschiedlichen Konditionen anzuzeigen.
Die Identität
des Kodierers, die dekodiert wurde, kann als Teil des Management-Kodes
einen gültigen
Signalzeiger und einen zweiten Funktionsmodus einschließen, wobei
alle Beispiele nützliche
Ausgabeinformationen 98 sind.
-
Betriebliche
Beschreibung – Dekodierer-Lernbetrieb
-
Der
Lernbetrieb wird durchgeführt,
wenn der Benutzer wünscht,
einen neuen Kodierer dem System hinzuzufügen. Die Lernsteuerungseinheit 100 empfängt dann
ein Eingangssignal, das sie auffordert in den Lernmodus überzugehen.
Das Signal kann in Form einer Instruktion von außen z. B. durch einen Schalter
erzeugt oder sie kann von der Ausgabefunktionssteuerungseinheit 38 nach
dem Empfang eines gültigen
Kodes ausgegeben sein, wie es vorher beschrieben wurde.
-
Der
Benutzer aktiviert nun den Kodierer 10 als einen Festkode-Kodierer
unter Verwendung einer speziellen Lernhardwarestrukturierung. Der
Schlüsselgenerierungs-Startparameter 60 ist
für den
variablen Kodeabschnitt der Übertragung
substituiert und die Seriennummer 42 wird als verbliebener
Teil des kodierten Kodes zurückgehalten.
-
Das
sich ergebende Signal, das durch die Datenübertragungsschnittstelle 11 gesendet
wird, wird von der Datenübertragungsschnittstelle 13 empfangen.
Der Formatdetektor 32 gibt die gesamte empfangene Übertragung 78 an
die Schlüsseladressen-Managementeinheit 102.
Somit ist das Signal, das der Einheit 102 zugeführt wird,
ein 64-Bit-String. Die Einheit 102 weicht von ihrer normalen
Funktion in dem Lernmodus ab und erzeugt einen Dekodierschlüssel 82 von
einem oder mehreren der Seriennummern, des empfangenen Schlüsselgenerierungs-Startparameters und
des Herstellerschlüssels 106.
Der Schlüsselgenerierungs-Startparameter oder
die Seriennummer können
verwendet werden, um den Herstellerschlüssel 106 zu variieren
bevor der Dekodierungsschlüssel
erzeugt wird. Der Herstellerschlüssel
kann modifiziert oder vergrößert werden
in jeder geeigneten Weise unter Verwendung des Startparameters oder
der Seriennummer oder beiden. Dieser Schlüssel wird in einem der Speicherblöcke in Abhängigkeit
von dem Wert eines Zeigers geschrieben, der speziell für diesen
Zweck verwendet wird, und in dem Speicherblock 108 vorgehalten wird.
Die empfangene Seriennummer 104 wird in dem relevanten
Speicherblock, der mit dem entsprechenden Parametersatz assoziiert
ist, gespeichert. Der nächste
Lernzeiger kann entsprechend gemanagt werden durch eine Vielfalt
von unterschiedlichen Schemata. Optionen schlie ßen unter anderem ein, ein
Kreislaufen des Zeigers durch die verfügbaren Speicherplätze und
ein Ermöglichen
des Benutzers den Zeiger von der Außenseite aus einzustellen.
-
Von
einem Sicherheitsgesichtspunkt aus sollte ein Schlüsselgenerierungsalgorithmus
der Art, wie er durch die Einheit 42 ausgeführt wird,
nur in einem anwendungsspezifischen integrierten Schaltkreis implementiert
werden; denn ein allgemeines logisches Bauteil, wie beispielsweise
ein Mikroprozessor, kann leicht nachgebaut werden, was den Algorithmus
für eine öffentliche
genaue Prüfung
preisgibt.
-
Der
Benutzer aktiviert nun den Kodierer zweimal in dem Kode-Hopping-Modus.
Während
der ersten Übertragung
wird der 64-Bit-Kode durch die Datenübertragungsschnittstelle 13 empfangen
und durch den Detektor 32 erfasst. Der Dekodierungsalgorithmus
des Dekodierers 34 dekodiert den 32-Bit-variablen Kode 80 unter
Verwendung des neuerlich erzeugten Dekodierschlüssels 82 und speichert
den dekodierten Management-Kode 90 in einem korrekten Platz.
Die dekodierte Zählerinformation 94 wird
auch in einem korrekten Platz gespeichert.
-
Während einer
zweiten Übertragung
wird das empfangene Signal durch den Detektor 32 erfasst
und die Seriennummer wird zu der Schlüsseladressen-Managementeinheit 102 übertragen,
wo sie mit der neuerlich gespeicherten Seriennummer 104 verglichen
wird. Zusätzlich
wird der 32-Bit-variable Kode 80 durch den Dekodierungsalgorithmus 34 dekodiert.
Die Integritätsprüfungseinheit 88 überprüft den dekodierten
Management-Kode gegenüber
der gespeicherten Version 90 und die Synchronisationsprüfungseinheit 36 überprüft die dekodierte
Zählerinformation
gegenüber
der gespeicherten Version 94. Wenn irgendeine dieser Überprüfungen nicht
erfolgreich ist, wird der Lernbetrieb zurückgewiesen. Wenn sie erfolgreich
sind, wird der nächste
Lernzeiger in dem Speicherplatz 108 geändert, um anzuzeigen, dass
der nächste
Speicherblock zum Lernen zur Verfügung steht.
-
Der
Lernprozess kann auch eine Routine einschließen, um eine spezielle Kombination
von Ausgaben zum Benutzen mit einem spezifischen Kodierer zu lernen.
Zum Beispiel kann ein spezieller Benutzer spezielle Prioritäten in einem
spezifischen System fordern und diese Priorität kann während einer derartigen Routine
festgelegt werden.
-
Wenn
der gesamte Lernvorgang erfolgreich abgeschlossen ist, sollte der
Benutzer den Kodierer erneut aktivieren, um zu verifizieren, dass
der Kodierer korrekt arbeitet.
-
Dekodiererbetrieb – Alternatives
Schlüsselmanagementschema
-
Das
System, wie es soweit beschrieben wurde, verwendet gespeicherte
Schlüssel 82 in
dem Dekodierer, um einkommende Übertragungen
zu dekodieren. Eine alternative Anordnung für Lernsysteme ist es, nur den
Schlüsselgenerierungs-Startparameter zu
speichern anstelle des vollständigen
Schlüssels
in dem Speicherplatz, der dem Schlüssel 82 zugeordnet
ist. Während
der Dekodierungsvorgänge wird
der korrekte Schlüssel
von dem zugehörigen Schlüsselgenerierungs-Startparameter und
dem Herstellerschlüssel 106 erzeugt.
Der Vorteil ist, dass weniger nicht-flüchtiger Speicherplatz erforderlich
ist, da der Schlüsselgenerierungsparameter
typischerweise weniger Speicherplatz erfordert als der Schlüssel selbst.
Der korrekte Schlüssel
wird wann immer erforderlich in einem RAM erzeugt.
-
Lernalgorithmus
-
Die 4a und 4b sind
Flussdiagramme des Lernalgorithmus, der in dem Dekoder eingebaut
ist. Unter Bezugnahme auf 4a werden, wenn
der Lernmodus etabliert worden ist, wie vorher beschrieben, der
Schlüsselgenerierungs- Startparameter (Stufe 150)
und der Hopping-Kode (Stufe 152) durch den Dekoder empfangen.
Bei einer Stufe 154 wird ein relationaler Zähler (in
der Schlüsselgenerierungseinheit 42)
initialisiert und auf Null gesetzt. Der relationale Zähler wird
verwendet um mehr als eine Beziehung zwischen dem Schlüsselgenerierungs-Startparameter,
der Kodierer-Seriennummer und dem Schlüssel für den Kodierer oder zwischen der
Kodierer-Seriennummer
und dem Schlüssel
für den
Kodierer zu ermöglichen.
-
Der
relationale Zähler 154 wird
bei einer Stufe 156 verwendet, um einen modifizierten Startparameter
für den
Schlüsselgenerierungsalgorithmus
zusammenzustellen, der ein nicht-linearer Algorithmus ist, unter
Verwendung von mindestens dem Schlüsselgenerierungs-Startparameter
als eine Eingabe. Der Schlüsselgenerierungs-Startparameter
kann zum Variieren verwendet werden, z. B. zum Modifizieren oder
Vergrößern des
Herstellerschlüssels 106 vor
jedem Lernvorgang (Stufe 157). Alternativ kann der einkommende
Startparameter verwendet werden in seiner ursprünglichen oder modifizierten
Form ausschließlich
als Dekodierungsschlüssel
(nämlich ohne
einen Herstellerschlüssel).
Somit wie in 1 gezeigt kann bezugnehmend
auf den Dekodierer ein Steuersignal von dem Formatdetektor 32 an
den Speicher 40 gelegt werden, um den Herstellerschlüssel zu
modifizieren, bevor der neue Dekodierschlüssel erzeugt ist. Andererseits
können
der Speicher 40 und die Schlüsselgenerierungseinheit 42 weggelassen
werden, so dass die einkommende Information an den Speicher 44 geliefert
wird, wie es durch eine gestrichelte Datenübertragungslinie gezeigt wird
und in dem Speicher 44 zur Verwendung als neuer Schlüssel beibehalten
wird. Es ist augenscheinlich, dass mit Bezugnahme auf 4a und
abhängig
von der Ausführungsform
der Erfindung die Stufe 157 optional ist. Auch wenn die
eingehende Information, die verwendet werden soll, direkt als neuer
Schlüs sel verwendet
wird, wird die Stufe 158 weggelassen. Diese Variation wird
auch in 3 gezeigt, wo eine optionale
Datenübertragungsverbindung
sich von dem Detektor 32 zu dem Zwischenspeicher für den Schlüssel 106 erstreckt.
Zusätzlich
wurde die Einheit 42 erläutert und der Zwischenspeicher
für den Schlüssel 106 kann
entfernt werden oder verhindert werden. In diesem Fall werden die
eingehenden Daten direkt von dem Detektor 32 zu dem Speicher
für den
Schlüssel 82 übertragen.
Die Integrität
für den Dekodierungsvorgang
wird bei einer Stufe 164 geprüft, um zu entscheiden, ob der
dekodierte Vorgang gültig
ist. Wenn er gültig
ist, setzt sich der Datenfluss zu der Stufe 170 fort. Wenn
er nicht gültig
ist, wird entschieden, ob der Vorgang mit der Stufe 166 weitergeführt wird
oder nicht. Wenn der Vorgang weitergeführt werden soll, wird der relationale
Zähler 154 erhöht (Stufe 168),
um eine neue Beziehung zu etablieren, die gültig sein kann.
-
Der
Lernprozess endet bei einer Stufe 172, wenn alle gültigen Beziehungen
zwischen dem Schlüsselgenerierungs-Startparameter und
der Seriennummer verwendet worden sind und eine gültige Beziehung
(Stufe 166) nicht gefunden wurde.
-
Die
Wahrscheinlichkeit eines zufälligen
Akzeptierens eines nicht gültigen
Kodierers während des
Lernens hängt
von der Anzahl der vordefinierten Bits innerhalb des kodierten Management-Kodes
ab. Da nicht mehr als 12 Bits in der unter Diskussion stehenden
Ausführungsform
zur Verfügung
stehen, liegt die beste Integrität
in der Größenordnung
von 1 bis 4000. Dieses Niveau ist für Sicherheitssysteme nicht adäquat. Die
Integrität
kann entweder durch Erhöhen der
Länge der
bekannten Komponenten des Management-Kodes oder durch Einfügen eines
Prüfungsalgorithmus
verbessert werden, der auf einer zweiten Übertragung (Stufe 176 in 4b)
von dem lernenden Kodierer basiert. Längere Kodelängen haben Nachteile wie höhere Implementierungskosten und
längere
Reaktionszeiten. Unter Verwen dung einer zweiten Übertragung wird die Sicherheit
der Integritätsprüfung um
mehrere Größenordnungen,
ohne die Systemkosten oder die Reaktionszeiten zu berühren, erhöht.
-
Der
zweite Teil des Flussdiagramms wendet diese Technik an, wie sie
mit Bezug auf 4b beschrieben wird. Wenn die
Dekodierungsfunktion durchgeführt
wird und als gültig
herausgefunden wird (Stufe 170) wird ein dekodierter Zählerwert
gespeichert (Stufe 174). Bei Stufe 176 wird ein
zweiter Hopping-Kode
empfangen. Der Kode ist dekodiert (Stufe 178) und der dekodierte
Management-Kode verifiziert (Stufe 180) zusammen mit dem
gespeicherten Management-Kode. Wenn die Werte nicht zusammenpassen
wird der Lernprozess als falsch und verwerflich bewertet. Als nächstes wird
der Zählerstandswert
verifiziert bei der Stufe 182 mit dem gespeicherten Wert.
Wenn der Wert nicht passt, die Übertragung
als ein ungültiger
und illegitimer Lernvorgang angenommen und verworfen. Wenn die Zählerwerte
passen, wird ein gültiger
Lernvorgang akzeptiert (Stufe 184). Wenn die Zähler nicht
passen, wie bei normalen Kode-Hopping-System-Vorgängen, können einige Aktionsfreiheiten
in der Zählersynchronisationsprüfung (Stufe 182)
für Zwischenübertragungen
ermöglicht
werden, die nicht durch den Dekodierer dekodiert sein können und
können
akzeptiert werden, als wenn sie passen und gültig sind.
-
Bei
der Stufe 184 wird angenommen, dass ein gültiger Lernprozess
vollendet worden ist. Der nächste
Lernzeiger (Referenz 108 in 3) wird
aktualisiert bei der Stufe 186, um die nächste verfügbare Lernposition
zu zeigen. Die Ausgabekonfiguration des Lernens, die mit einem bestimmten
Kodierer verbunden ist, kann eine Stufe 188 einschließen, wenn gefordert.
Bei der Stufe 190 ist der Lernzyklus vollendet.
-
Offensichtlich
sind vielfache Modifikationen und Variationen der vorliegenden Erfindung
möglich in
dem Licht der vorhergehenden Lehren. Zum Beispiel ist der Kodierungsteil 10 auf
einer anwenderspezifischen integrierten Schaltung (ASIC) ausgeführt. Teil
der Schaltung ist ein nicht-flüchtiger
Speicher, der verwendet wird, um die unterschiedlichen geänderten
und programmierbaren Werte, wie die Parametersätze 56 und die Optionen 76,
zu speichern. Obgleich diese Methode der Ausführung verwendet wird, um die
Sicherheit und die praktischen Aspekte des Systems sicherzustellen,
kann in der Software eine Computer oder eine Mikroprozessorsteuerung
ausgeführt
werden. Die gleiche Maßnahme
wird verwendet mit dem Dekodierer 12. Die Funktionen und
Speicherteile werden auf ASIC-Teilen realisiert, aber können auch
auf einem Computer oder einer Mikroprozessorsteuerung ausgeführt werden. Dies
Ausführungsform
kann vorzugsweise ein Dekodierer sein, wobei für den Dekodierer ein Speichern einer
großen
Menge von Informationen gefordert wird, um vielen Benutzern einen
Zugriff auf das System zu ermöglichen.
Deshalb ist es verständlich, dass
innerhalb des Rahmens der anliegenden Ansprüche die Erfindung anders ausgeführt werden kann
als sie hierin spezifischerweise beschrieben ist.