-
Diese
Patentanmeldung ist eine Teilungsanmeldung der europäischen Patentanmeldung 94923275.5,
die folgende Verfahren bzw. Systeme beansprucht: ein Verfahren zur
kryptographischen Authentisierung der Übertragung von einer Übertragungseinheit
zu einem Empfangsmodul, ein Verfahren zur Übertragung von irgendeiner
aus einer Mehrzahl von Fernsteuerbefehlsübertragungseinheiten zu einem
befehlsausführenden
Empfangsmodul, ein Verfahren zur synchronisierten kryptographischen Authentisierung
von Übertragungen
von einer Fernsteuerbefehlsübertragungseinheit
zu einem befehlsausführenden
Empfangsmodul, das selektiv auf diese anspricht, und ein kryptographisch
authentisiertes Fernsteuersystem, in dem eine Befehlsübertragungseinheit
selektiv einen physikalischen Effekt in einem Befehlsempfangsmodul
verursachen kann, dessen selektives Ansprechen auf diese bewirkt
wurde, wie hierin beschrieben.
-
Technisches
Gebiet
-
Diese
Erfindung betrifft Pseudozufallszahlen und kryptographisch kodierte Übertragungen,
wie der Art, die bei einem Transmitter in einen Autoschlüsselkettenanhänger involviert
ist, der die Autotürschlösser oder
den Kofferraum in Response auf Übertragungen
vom Schlüsselanhänger öffnet.
-
Stand der
Technik
-
Die
Technik des Dekodierens von Übertragungen,
damit die Übertragungen
an einem Empfangsmodul authentisiert werden können, muss Kriterien hinsichtlich
technischer Entwicklungsfähigkeit (Sicherheit)
sowie niedriger Kosten und Zweckmäßigkeit erfüllen. Die Kosten- und Zweckmäßigkeitskriterien
führen
dazu, dass es unmöglich
ist, ein Kodieren mit Polynomen übermäßigen Grads
(wie Binärzahlen
mit Hunderten von Bits) zu verwenden. Außerdem muss die kryptographische
Verarbeitung weniger als eine Sekunde dauern, damit sie für den Benutzer
akzeptabel wird. Kosten- und Gewichtsbegrenzungen können die
Größe und die
Ausgeklügeltheit
eines Mikroprozessors oder anderer signalverarbeitender Elemente
begrenzen, die im System verwendet werden.
-
Ein
Beispiel für
solch ein System ist im US Patent 5,191,610 von Hill und Finn offenbart,
das in gemeinsamem Besitz ist. Dieses System verwendet Linearrückkopplungsschieberegisterpseudozufallszahlserzeugung,
die im Empfänger
und im Transmitter die gleiche Saatzahl und die selbe festgelegte Rückkopplungsmaske
aufweist. Die Anzahl der Iterationen der Linearrückkopplungsschieberegisterpseudozufallszahlserzeugung
werden im Empfänger
und im Transmitter gezählt,
wobei jedes Mal eine zusätzliche
Iteration erfolgt, wenn ein Befehl gesendet wird. Sollte der Empfänger keine
der Übertragungen
erkennen (weil der Transmitter unbeabsichtigt in einem großen Abstand
vom Empfänger
aktiviert wurde, oder aus einem anderen Grund), so werden dem Empfänger eine
moderate Zahl von „Aufhol-"Iterationen erlaubt,
in denen er eine Übereinstimmung
mit der empfangenen Übertragung
versucht. Sollte dies nicht gelingen, so erklärt der Transmitter dem Empfänger, wie
viele Iterationen er von der Saatzahl aus durchführen soll, um eine neue aktuelle
Pseudozufallszahl neu zu erstellen, um den Empfänger mit dem Pseudozufallszahltransmitter
zu synchronisieren.
-
Das
oben erwähnte
System erfordert, dass ein Empfänger
und ein Transmitter in der Fabrik verdrahtet oder mit einer binären Rückkopplungsmaske ausgestattet
werden und als Paar verkauft werden. Es schließt auch aus, dass ein Ersatztransmitter
an einen vorhandenen Empfänger
ohne die Miteinbeziehung des Vertriebspersonals angepasst werden kann,
was die Sicherheit in Frage stellen könnte. Die Pseudozufallszahlgeneratoren
des Patents von Hill und Finn verwenden eine Iteration pro verschlüsselter
Botschaft. Dies spart Zeit, führt
aber zu einem bestimmten Niveau von Korrelation zwischen aufeinanderfolgenden
Durchgängen,
so dass die Durchgänge weniger
zufallsartig sind. In anderen Pseudozufallszahlanwendungen konnte
der Geschwindigkeitsvorteil des oben erwähnten Systems aber für die inhärente Korrelation
nützlich
sein.
-
Jedes
solches System mit Ausnahme eines solchen, das eine wirklich zufällige Zahl
unendlicher Ordnung verwendet, kann entweder durch Analyse einer
Reihenfolge von aufgefangenen Signalen oder durch einen erschöpfenden,
mit „schierer
Gewalt" durchgeführten numerischen
Ansatz, bei dem schlicht und einfach jede als Authentisierungswort mögliche Zahl
(der Code oder Schlüssel)
durchprobiert wird, geknackt werden.
-
Kodierte
Tastenfelder, die für
das Aufschließen
der Fahrzeuge benutzt werden, haben inhärente Sicherheitseigenschaften.
Das Erzeugen des Codewortes durch Betätigen des Schlüssel kann
gegenüber
Blicken abgeschirmt werden und kann zweifellos nicht außerhalb
einer Sichtlinie festgestellt werden. Weiterhin wäre es ein
großes
Risiko für
einen Eindringling, jede mögliche
Zahl in ein Tastenfeld einzugeben, um den Code zu replizieren (es
sei denn, das Auto wäre
in einem unbeobachtbaren Bereich, wie einer privaten Garage oder
anderen leeren Garage geparkt). So kann das Tastenfeld nicht durch
Analyse geknackt werden und es ist nicht wahrscheinlich, dass es
durch numerische Versuche geknackt wird. Demgegenüber sind
Verschlusssysteme, die Fernübertragung
verwenden, enorm abhängig
gegenüber Angriffen
auf die Sicherheit, weil die Überwachung der Übertragung
in einem anderen Fahrzeug durchgeführt werden kann, was keinerlei
Aufmerksamkeit erregt. Folglich es ist möglich, viele Übertragungen zu
einem gegebenen Fahrzeug, wie auf einem reservierten Firmenparkplatz
(der i. a. viele teure Autos enthält), aufzuzeichnen, sowie eine
unbeobachtbare Gelegenheit zur Verfügung zu stellen, das Knacken eines
Sicherheitssystems (oder sogar mehrerer Systeme auf einmal) zu versuchen,
indem eine riesige Anzahl von Zufallszahlen in Parkanlagen, in denen Fahrzeuge
für lange
Zeitabschnitte bleiben, wie an Flughäfen, übertragen wird.
-
Wenn
immer ein Transmitter zur Verwendung mit einem vorhandenen Empfänger neu
zugewiesen wird, reicht es nicht aus, dass dem neuen Schlüsselanhänger erlaubt
wird, sich selbst zu identifizieren und autorisiert zu werden, ohne
diese Tätigkeit
auf eine Zeit zu begrenzen, zu der es autorisierten Zugang zum Empfänger auch
durch andere als den Transmitter selbst gibt (das heißt, innerhalb
des Fahrzeuges selbst). Somit sichert der Zugang zum Fahrzeuge mittels
eines traditionellen Schlüssels oder
dergleichen die Sicherheit des Anpassens eines neu zugewiesenen
Transmitters an einen vorhandenen Empfänger. Im Fall des Verlusts
der Synchronisierung zwischen dem Transmitter und dem Empfänger macht
es die Erlaubnis an den Empfänger,
sich an eine bestimmte Pseudozufallszahl, die ihm durch den Transmitter
bereitgestellt wird, zu synchronisieren, zu leicht, die Sicherheit
basierend auf der Analyse einiger Übertragungen zu verletzen,
und das darauffolgende Synchronisieren an ein der vorhergehenden Übertragungen,
indem Zahlen verwendet werden, die auf Grundlage der Analyse vielversprechend
zu sein scheinen. Bloße
Verschleierung des Resynchronisiercodes könnte durch Analyse der erfolgreichen
Resynchronisationen und Ermittlung der Verschleierungsfunktion umgangen
werden. Die Gefahr besteht nicht nur darin, dass ein einzelnes Auto geknackt werden
könnte,
sondern dass eine hoch entwickelte Fähigkeit entwickelt und danach
verwendet werden könnte,
um die Sicherheit vieler Autos eines ähnlichen Typs zu knacken.
-
Die
europäische
Patentanmeldung Nr. 0283758 offenbart einen automatischen Pseudozufallsbitsequenzgenerator,
der auf einer Startzahl eine variable Anzahl von Iterationen durchführt.
-
Beschreibung
der Erfindung
-
Diese
Erfindung stellt ein Verfahren bereit, das im nachfolgenden Anspruch
1 definiert ist.
-
Das
Verfahren kann die Merkmale von einem oder mehreren der abhängigen Ansprüche 2 bis
10 umfassen.
-
Ein
Vorteil der Erfindung kann sein, dass eine schnelle Pseudozufallszahlerzeugung
mit minimaler Korrelation bereitgestellt wird.
-
Diese
Erfindung gründet
auf unserer Beobachtung, dass es das Einführen von Nichtlinearitäten in die
Galoisfeld-Operation von Linearrückkopplungsschieberegisterpseudozufallszahlen
sehr schwierig machen kann, einen Code durch numerische Analyse
oder mit Hilfe numerischer Analyse zu knacken. Die Erfindung gründet weiter
auf der Tatsache, dass Zeitbegrenzungen für die Authentisierung den numerischen
Lösungsansatz
im Wesentlichen nutzlos machen können.
Die Erfindung gründet
teilweise auf der Reversibilitätseigenschaft
der wohlbekannten Exklusiv-OR-Operation (Exklusiv-ODER-Operation) und auf
der Reversibilität
von Verschlüsselungen
wie der Verschlüsselung,
die Linearrückkopplungsschieberegisteroparationen
umfasst.
-
Entsprechend
der Erfindung, die in der entsprechenden Stammanmeldung beansprucht
wird, wird eine Verschlüsselung,
wie eine Linearrückkopplungsschieberegisterpseudozufallszahloparation,
auf einem Wort durchgeführt,
das ein Paar von verknüpften,
unabhängig
erzeugten Zahlen enthält,
die selbst verschlüsselt
sein können
(wie Pseudozufallszahlen) und das Resultat einem Empfangsmodul übermittelt, wo
eine Dekodierung, wie eine Umkehrung der Pseudozufallszahlerzeugungsoperation,
wieder die verknüpften
Zahlen für
kryptographische Authentisierung ergibt. Weiter werden gemäß der Erfindung
die Verschlüsselung
(Kodierung) und die Entschlüsselung
(Dekodierung) mit einer geheimen Maske durchgeführt, die im Wesentlichen einzigartig
für den Transmitter
ist. Weiter enthält
erfindungsgemäß eine verschlüsselte Zahl,
wie eine Pseudozufallszahl, die zur kryptographischen Authentisierung
verwendet wird, Befehlsbits, die wenigstens in einen Teil davon Exklusiv-OR-verarbeitet
werden.
-
Entsprechend
der Erfndung wird eine Zahl, die bei der Authentisierung von Befehlsübertragungen
verwendet werden kann, durch den iterativen Verschlüsselungsprozess,
wie einer Linearrückkopplungsschieberegisterpseudozufallszahloperation,
die eine variable Anzahl von Iterationen pro Authentisierung hat,
erzeugt, wobei die Zahl in Response auf ein Pseudozufallsereignis
variiert. Weiter werden gemäß der Erfindung
ein Paar von Pseudozufallszahlen iterativ verschlüsselt, z.
B. durch Linearrückkopplungsschieberegisterpseudozufallszahloperationen,
indem bei jeder aufeinanderfolgenden Verschlüsselung eine andere Anzahl
von Iterationen verwendet wird, wobei die Reihenfolge der Anzahl
der Iterationen von einer von ihnen unterschiedlich zu der Reihenfolge
der Anzahl von Iterationen von der anderen von ihnen ist, wobei
die Anzahl der Iterationen auf den jeweils unterschiedlichen Pseudozufallsereignissen
gegründet ist,
die mit den jeweiligen Wörtern
zusammen hängen.
-
Entsprechend
der Erfindung der Stammanmeldung sind eine Mehrzahl von Transmittern
mit einem einzigen Empfänger
verwendbar, und zwar mittels geheimer Zahlen (wie Ausgangswerten
und Rückkopplungsmasken
für Schieberegisterverschlüsselung),
die im Wesentlichen einzigartig für jeden Transmitter sind, die
in jedem möglichem
Empfänger,
der mit dem Transmitter verwendet werden soll, repliziert werden,
wobei der Empfänger
in der Lage ist, zu ermitteln, ob jede empfangene Übertragung
unter Verwendung der Ausgangswerte und der Masken eines beliebigen
seiner zugewiesenen Transmitter authentisiert werden kann.
-
In Übereinstimmung
mit der Erfindung der Stammanmeldung werden die initialen geheimen Werte
und die Rückkopplungsmasken
der Transmitter, die mit einem gegebenen Empfänger verbunden sind, gespeichert
(z. B. in einem löschbaren Read-Only-Speicher), indem
die Geheimzahlen eines Transmitters in einen Empfänger herunterge laden
werden, wodurch das Hinzufügen
eines Transmitters zur Familie der Transmitter, auf die ein Empfänger reagieren
kann, ermöglicht
wird. Obgleich dieses bei einem Händler durchgeführt werden
kann, ist menschliche Kenntnis der exakten Zahlen weder erforderlich
noch zugelassen; folglich ist die Möglichkeit des betrügerischen
Zuganges fast ausgeschlossen. Weiter sind gemäß der Erfindung mit den Geheimzahlen
jedes Transmitters Kennnummern verbunden, die Übertragungen vor Authentisierungen überprüfen, wodurch
Betriebsbeeinträchtigungen durch ähnliche,
nicht autorisierte Transmitter verringert werden, und die Zeit,
die für
mehrere Authentisierungsversuche erforderlich ist, verringert wird.
-
Entsprechend
der Erfindung gemäß der Stammanmeldung
veranlasst der Empfang jedes Wortes den Empfänger eines Fernsteuersystems,
für weitere Übertragungen
für eine
Zeitdauer von ungefähr
einer halben Sekunde oder mehr unempfänglich zu werden, wodurch die
Möglichkeit,
die Sicherheit durch umfassende numerische Versuche zu verletzen,
signifikant eingeschränkt
wird.
-
Entsprechend
der Erfindung der Stammanmeldung umfasst kryptographische Authentisierung der Übertragung
von einem Fernsteuertransmitter zu einem Empfängermodul Verschlüsselung,
wie durch Linearrückkopplungsschieberegisterpseudozufallszahloperationen,
welche geheime Rückkopplungsmasken
verwendet, die im Wesentlichen für
jeden Transmitter einzigartig sind, und nur in einem Empfänger repliziert
wird, der auf den zugehörigen
Transmitter reagieren soll.
-
Zufällige Iterationen
verringern Korrelation zwischen nacheinander erzeugten Pseudozufallszahlen.
Das gemeinsame Verwenden aller vorher erwähnten Eigenschaften in einem
Fernsteuersystem macht es extrem schwierig, das System durch Analyse
zu knacken; und die Verwendung einer z. B. halbsekündigen Verzögerung bewirkt
eine statistische Wahrscheinlichkeit von 50%, dass das Entschlüsseln eines
verschlüsselten
39-Bit-Schlüsselwortes
durch umfassende numerische Versuche mehr als einen Monat erfordert.
-
Die
Erfindung kann neben Autoschlosssystemen auch in anderen Fernsteuersystemen
verwendet werden.
-
Andere
Aufgaben, Eigenschaften und Vorteile der vorliegenden Erfindung
werden angesichts der folgenden ausführlichen Beschreibung ihrer
beispielhaften Ausführungsformen
offensichtlicher, die in den beigefügten Zeichnungen veranschaulicht
sind.
-
Kurzbeschreibung
der Zeichnungen
-
1 ist ein stilisiertes,
vereinfachtes schematisches Blockdiagramm eines Transmitters entsprechend
der Erfindung der Stammanmeldung, bei dem die Verfahren der vorliegenden
Erfindung verwendet werden können.
-
2 ist ein stilisiertes,
vereinfachtes schematisches Blockdiagramm eines Empfängers entsprechend
der Erfindung der Stammanmeldung.
-
3 ist ein logisches Flussdiagramm
einer Transmitterverschlüsselungsroutine.
-
4 ist ein logisches Flussdiagramm
einer Schaltunterbrechungsunterroutine.
-
5 ist ein logisches Flussdiagramm
eines ersten Teils einer Empfängerentschlüsselungsroutine entsprechend
der Erfindung der Stammanmeldung.
-
6 ist ein logisches Flussdiagramm
eines Panikbefehls- oder Resynchbefehlsteils einer Entschlüsselungsroutine
entsprechend der Erfindung der Stammanmeldung.
-
7 ist ein logisches Flussdiagramm
eines normalen Befehlsauthentisierungsabschnitts einer Entschlüsselungsroutine
entsprechend der Erfindung der Stammanmeldung.
-
8 und 9 sind logische Flussdiagramme von alternativen
Routinen für
zufällige
Pseudoiterationen.
-
Bester Modus für das Durchführen der
Erfindung
-
Ein
Beispiel der vorliegenden Erfindung kann bei einem ferngesteuerten
verschlüsselten
Autotür- und
Kofferraumschloss-Schließ-
und -Öffnungssystem
verwendet werden. Der Befehl, eine bestimmte Aufgabe auszuführen, wie
einen zu einem Schloss zugehörigen
Befehl durchzuführen
(Schließen
oder Öffnen
der Türen, Öffnen des
Kofferraums), oder im Falle einer Paniksituation die Lichter und
die Hupe oder eine andere Warnung am Auto zu aktivieren, oder eine
kryptographische Synchronisierung oder Resynchronisierung zwischen
dem Transmitter und dem Empfängermodul
im Auto zu bewirken, befinden sich unter der Kontrolle einer Mehrzahl
von Tasten 12–15,
die an einem Schlüsselkettenanhänger oder einer
anderen tragbaren Transmittereinheit, die in 1 gezeigt wird, vorgesehen sind. Die
Schalter 12–15 können vom
Tast- oder Berührungstyp
sein und einen Mikroprozessor 17 ansteuern, der mit einem
PROM 19, einem RAM 20 und einem ROM 21 verknüpft ist.
Das PROM 19 ist nur einmal programmierbar und kann einen
eingebrannten Satz von Output/Input (Ausgabe/Eingabe)-Beziehungen
aufweisen, wie in der Technik wohlbekannt ist. Typischerweise hat
jeder Schlüsselanhänger 16 hat
sein PROM so eingebrannt, dass eine Kennnummer mit 16 Bits festgelegt
ist, die nicht als geheime Informationen geschützt ist, wie detaillierter
nachfolgend beschrieben wird; zwei geheime Ausgangs-(Samen-)Werte,
auf Grundlage derer verschlüsselte
Mitteilungen erstellt werden; und drei geheime Rückkopplungsmasken, die Polynome
definieren, die zum Rückkoppeln
von Exklusiv-OR-Verarbeitungen in den Verschlüsselungsprozess verwendbar
sind, für die
gesamte Lebensdauer des Schlüsselanhängers, was
alles nachfolgend beschrieben wird. Das RAM 20 wird in
der üblichen
Weise als Zwischenregisterspeicher benutzt und enthält veränderliche
Werte der Schieberegister und Befehle, wie im folgenden beschrieben.
Die Routine für
den Mikroprozessor 17 ist im ROM 21 enthalten.
-
Es
wird angenommen, dass der Mikroprozessor 17 die Art ist,
die einen Stoppmodus hat, in dem der Taktgeber nicht läuft, und
die einzige Funktion, die der Mikroprozessor durchführen kann,
ist, auf einen externen Interrupt (Unterbrechung) zu reagieren,
die in diesem Fall dem Schließen
eines der Schalter 12–15 entsprechen
würde.
Dies hält
die Leistungsaufnahme extrem niedrig und eine geeignete Batterie 24 könnte ungefähr fünf Jahre
halten. Der Mikroprozessor 17 erstellt ein 64-Bit-Befehlsanfragewort 25,
das seriell über
eine Leitung 26 an einen geeigneten Transmitter 27 (z.
B. RF- oder Infrarot-) ausgegeben wird, der die Befehlsanfrage als
digitale Bits oder anders seriell über einen geeigneten Abstand,
wie nicht mehr als 10 Meter, überträgt. Der Schlüsselanhänger 16 wird,
bevor er sein nützliches Leben
beginnt, zusammen mit bis zu drei weiteren Schlüsselanhängern (bei diesem Beispiel)
einen Satz von bis zu vier Schlüsselanhän gern bilden,
der einem bestimmten Auto zugeordnet ist, von denen jeder die Schlösser oder
die Panikwarnung eines zugehörigen
Empfängermoduls 30 in
einem Auto oder in einem anderen gesicherten Gehäuse betätigen kann. Das Empfängermodul 30 im
Auto schließt
einen Empfänger 31 mit
ein, der die seriellen Bits empfängt und
sie über
eine Leitung 32 an einen Mikroprozessor 33 anlegt,
wo das 64-Bit-Wort 25 in einem 64-Bit-Wort 38 repliziert wird. Der
Mikroprozessor 33 wird von der Autobatterieanlage 39 mit
Strom versorgt. Der Mikroprozessor 33 hat ein elektrisch
löschbares
PROM 40, ein RAM 41 und ein ROM 42, die
zu diesem gehören.
Jeder Schlüsselanhänger 16 gehört zu einem
Modul 30 bei einem Händler,
damit verlorene Schlüsselanhänger jederzeit
ersetzt und auf das Modul 30 eingestellt werden können. Ein
64-Bit-Wort 25 (1)
wird mit der ID, geheimen Anfangswerten und Masken jedes Schlüsselanhängers formuliert und
durch Fabrikpersonal auf einer Leitung 49 auf irgendeine
Art und Weise ein Download-Signal
bereit gestellt. Dies kann durch einen Jumper oder auf eine irgendeine
andere Art erreicht werden, da dies keine Beeinträchtigung
der Sicherheit darstellt, außer
es wird gleichzeitig am Empfänger 30 hantiert,
was, wie unten beschrieben, vermieden werden kann. Das 64-Bit-Wort 25,
das während
eines Downloads (Herunterladens) an das Empfängermodul 30 gesendet wird,
weist ein Bit auf, das die Downloadoperation bezeichnet. Das Vorhandensein
des Downloadbits im 64-Bit-Wort 38 (2) kann zu einem Downloadsignal auf einer
Leitung 50 führen,
vorausgesetzt, dass der Autoempfänger 30 in
einen Downloadzustand gebracht wurde, zum Beispiel durch die Installation eines
Downloadjumpers 51 oder einer anderen Sicherheitsmaßnahme.
Wenn der Download geeignet angezeigt ist, werden die ID des Schlüsselanhängers und
zwei Anfangswerte von 19 im elektrisch löschbaren PROM 40 gespeichert.
Daraufhin werden zwei geheime Rückkopplungsmasken
mit gleicher Bitlänge
wie die Anfangswerte mit der ID auf eine ähnliche Weise gesendet; und
schließlich
wird eine Rückkopplungsmaske,
die solange wie die Verkettung der zwei Anfangswerte ist, vom PROM 19 zum
EE PROM 40 im Autoempfänger 30 gesendet.
Auf eine ähnliche Weise
werden die Anfangswerte, Rückkopplungsmasken
und IDs der anderen drei Schlüsselanhänger (in
diesem Beispiel) während
gültiger
Downloadoperationen in den Autoempfänger 30 geladen.
-
In 1 scheint das Wort 25 innerhalb
eines speziellen 64-Bit-Registers zu sein. Allerdings erscheint
das Wort 25 tatsächlich
in verschiedenen Teilen des RAMs 20, in Adressen, die dazu
vorgesehen sind, um die Teile des ausgehenden, seriell übertragenen
Wortes zwischenzuspeichern. Auf ähnliche Weise
ist die gesamte dargestellte Hardware innerhalb des Mikroprozessors 17 lediglich
zur Illustration der Verfahren und Beziehungen vorgesehen, welche in
der Tat durch Hardware durchgeführt
werden kann, die der ähnelt,
die in 1 dargestellt
ist, oder die dadurch implementiert werden kann, wie bevorzugt wird,
indem Bits unter Verwendung des RAMs 20 als Notizblockspeicher
verarbeitet werden mit Hilfe von Software, die im Lichte der nachfolgenden
Lehre innerhalb des Bereichs des technischen Könnens auf diesem Gebiet liegt.
-
Der
Mikroprozessor 33 besitzt Funktionen und Prozesse, die
hierin dargestellt sind, die entweder Hardware oder Software sein
können,
wie bezüglich
der zuvor genannten 1 beschrieben
wird.
-
Die
Erzählung
bezüglich 1 weist eine Form auf, die
die Hardware beschreibt: Die Implementierung von Software wird unter
Bezugnahme auf die 3 bis 7 später beschrieben.
-
Das
Empfängermodul 30 ist
mit den Schlössern 43 des
Automobils verbunden, ebenso wie mit der Hupe und den Lichtern 44 des
Automobils oder anderen geeigneten Alarmanordnungen an dem Automobil.
-
Bevor
ein Schlüsselanhänger verwendet werden
kann, um die Schlösser
oder Alarmanlagen an einem Automobil zu betreiben, muss eine Synchronisation
erfolgen. Dies wird hier auch als Resynchronisation bezeichnet,
da es zu unterschiedlichen Zeitpunkten während der Lebenszeit des Systems verwendet
wird, wie nachfolgend beschrieben wird. Dieser Resynchronisationsprozess
wird nachfolgend beschrieben; zu diesem Zeitpunkt genügt es zu
erwähnen,
dass der Prozess mit zwei geheimen Anfangswerten (Saatwerten) für den Schlüsselanhänger 16 beginnt,
die sich in einem 20-Bit-Linear-Rückkopplungsschieberegister
(LFSR) 53 befinden und in einem 19-Bit-LFSR 54 und
geeigneten Rückkopplungsmasken
für jeden
der LFSRs 53, 54, die am Eingang der entsprechenden
Rückkopplungs-Exklusiv-OR-Elemente 55, 56 verfügbar sind.
Die ursprüngliche
Synchronisation (ein anfänglicher
Resynchronisationsbefehl) umfasst 20 Iterationen des Schieberegisters 534 und
wenigstens 19 Iterationen des Schieberegisters 50, um eine
vollständige
bitweise Faltung bereitzustellen. Zur Vereinfachung der Programmierung
können
beide Schieberegister mit 20 Iterationen während der Initialisierung vorgesehen sein
(was hierin angenommen wird). Bei jedem Zyklus wird das Bit vor
Ordnung über
eine Leitung 61, 61 zu dem Bit niedriger Ordnung übertragen
und wird auch mit jenen Bits des Schieberegisters 53, 54 exklusiv-OR-verarbeitet,
die durch Bits in den Rückkopplungsmasken
identifiziert werden, um die Bits der nächsthöheren Ordnung innerhalb der
Schieberegister 53, 54 zu bilden. Dies ist die
wohlbekannte Funktion von Linearrückkopplungsschieberegistern beim
Prozess des Herstellens von Pseudozufallszahlen maximaler Länge, wie
in Numerical Recipes, Press, Flannery, Teukolsky und Vetterling;
Cambridge University Press; Cambridge, MA (1986) beschrieben wird.
Die Rückkopplungsmaske
muss ein geeignetes Polynom repräsentieren,
um einen Code maximaler Länge
bereitzustellen, welches einen Grad N aufweist und sich nur nach
2N – 1
Iterationen wiederholt. Dies wird ausführlicher auf den Seiten 108
bis 109 von Error Correcting Techniques for Digital Communication,
Michelson and Levesque, John Wiley & Sons, New York, NY (1985) und in
Appendix C von Error Correcting Codes, Pederson and Weldon, MIT
Press, Cambridge, MA (1972) beschrieben.
-
Eine
hierin beschriebene Ausführungsform verwendet
lineare Rückkopplungsschieberegister, die
in einigen Fällen
so modifiziert sind, dass sie nicht-lineare Rückkopplungsschieberegistersysteme sind,
indem eine Pseudozufallszahl von Iterationen verschoben wird, wie
nachfolgend beschrieben wird. Jedoch können auch andere wohlbekannte
Pseudozufallszahlerzeugungstechniken verwendet werden, wie zum Beispiel
Linearkongruenzpseudozufallszahlgeneratoren oder Nichtlinearkongruenzpseudozufallszahlgeneratoren,
die ausführlicher
in Kapitel 3 in The Art of Computer Programming, Volume 2/Seminumerical
Algorithms, ed. 2, Knuth, Addison Wesley, Reading, MA (1981) beschrieben
werden; oder Inverskongruenzpseudozufallszahlgeneratoren oder verallgemeinerte
Rückkopplungsschieberegisterpseudozufallszahlgeneratoren,
die ausführlicher
in den Kapiteln 7, 8 und 9 von Random Number Generation and Quasi-Monte
Carlo Methods, Niederreiter, SIAM, Capitol City Press, Montpelier,
VT (1992) beschrieben werden; oder multiplikative, I/P-, Leistungs-,
diskret exponentielle, Knetkarten-, Schieberegister- oder zellulare
automatische Pseudozufallszahlgeneratoren, die ausführlicher
in "Pseudo random
Number Generators in Cryptography and Number Theory", J. C. Lagarias,
Seiten 115 bis 143 in Cryptology and Computational Number Theory,
Pomerance, ed., Volume 42, Proc, SIAM (1990) beschrieben werden.
-
Im
Allgemeinen muss der Pseudozufallszahlgenerator nicht reversibel
sein. Ein reversibler Generator ist ein Generator, bei dem, wenn
die aktuelle Pseudozufallszahl und das Generationsverfahren vollständig bekannt
sind, die vorangegangene Pseudozufallszahl ermittelt werden kann.
Zum Beispiel ist ein Linearrückkopplungsschieberegisterpseudozufallszahlgenerator
reversibel.
-
Die
Art und Weise, in der das System ursprünglich synchronisiert wird
und die Register zum Betrieb vorbereitet werden, wird nachfolgend
beschrieben, da zuerst ein Verständnis
der allgemeinen Betriebsweise erreicht werden sollte.
-
Im
Normalfall, wenn alles eingerichtet wurde und das System normal
arbeitet, sei angenommen, dass ein Schließ-Öffnen- oder Kofferraum-Öffnen-Befehl
durch Pressen einer der Tasten 12 bis 15 bereit
gestellt wurde. Dies bewirkt das Aufwachen des Mikroprozessors 17 und
einen Betriebszyklus durchzuführen.
Beim Betriebszyklus stellt das RAM 20 die Werte bereit,
die zuvor in den Schieberegistern 53, 54 zurückgelassen
wurden, und das PROM 19 stellt Masken für die Schieberegister 55, 56 bereit. Abhängig von
einem Pseudozufallsereignis, wie zum Beispiel dem Status von einem
oder mehr Bits der Schieberegister 53, 54 werden
danach jedes der Schieberegister mit einer oder zwei Iterationen
oder zwei oder drei Iterationen von Linearrückkopplungsverschiebungen aufgrund
des Effekts von Taktgeber-Gates 64 auf den Ausgang eines
Taktgebers 65 versehen. Dies ist ein erster Aspekt der
vorliegenden Erfindung: anstelle des Schiebens um eine Anzahl gleich
der Anzahl von Bits (was zu viele Zyklen erfordert, um 256 Versuche
bei der Entschlüsselung
zu erlauben), werden die Schieberegister nach der Initialisierung
nur durch einige wenige Iterationen geschickt. Da dies eine geringere
Verschlüsselung
der Rückkopplungsbits
liefert, wird die Schwierigkeit erhöht, mathematisch festzustellen,
welches der Code sein könnte,
indem bewirkt wird, dass die LFSRs jeweils eine unterschiedliche,
variable Anzahl von Iterationen aufeinanderfolgender Zyklen in einer
pseudozufallsartigen Art und Weise durchlaufen. Die Pseudozufallszahl,
die durch Iterationen des Schieberegisters 53 bereit gestellt
wird, wird über
einen Strang von 20 Leitungen 68 an ein 39-Bit-Schieberegister 69 ausgegeben.
Das Schieberegister 69 ist mit einer Rückkopplung 70 auf
die gleiche Weise wie die LFSRs 53, 54 verknüpft, mit
der Ausnahme, dass das Schieberegister 69 vor jedem Zyklus
von Schieberückkopplungsiterationen
mit neuen Zahlen geladen wird. Auf diese Art und Weise arbeitet
das Schieberegister 89 und die Rückkopplung mehr als ein zyklischer
Redundanzcodegenerator. Der andere Eingang an das 39-Bit-Schieberegister 69 ist
ein Strang von 19 Leitungen 73 von einem Gate 74,
das bewirkt, dass die fünf
Bits niedriger Ordnung der 19 Bit LFSR 54 an einem Strang
von Leitungen 75 exklusiv-OR-verarbeitet mit 5 Bits an
einem Strang von fünf
Leitungen 76 von einem Befehlsregister 77 sind. Das
Befehlsregister 77 registriert einfach bis zu 32 Befehle,
die durch das Betätigen
von einem der Schalter 12 bis 15 (oder wenigen
Befehlen, wenn einige Bits auf diskrete Art verwendet werden) dekodiert
werden. Somit werden in jedem Zyklus dem 39-Bit-Schieberegister 69 die
Ausgänge
der LFSRs mit einem Befehl, der in den Bits niedriger Ordnung von
einem von ihnen exklusiv-OR-verarbeitet wird, repräsentiert.
Dann durchläuft
das Schieberegister 69 39 Iterationen einer LFSR-Typ-Rückkopplung über einen
exklusiven OR Prozess 70, welcher eine geheime Rückkopplungsmaske
verwendet, die durch das PROM 19 bereit gestellt wird.
Dies sorgt für
eine vollständige
bitweise Faltung der zwei Wörter
aus den Schieberegister 53, 54, was eine kryptographische
Notwendigkeit ist. Das Verwenden des Schieberegister 69 kann
in Systemen aus dem Stand der Technik, wie zum Beispiel der Zweigeneratorausführungsform
des Patents von Hill und Finn, verwendet werden. Wenn die 39 Iterationen
vollständig
sind, ist das Ergebnis ein verschlüsseltes Schlüsselwort,
das auf einem Strang von 39 Leitungen 80 dem 64-Bitwort 25 bereit
gestellt wird, gemeinsam mit 16 Schlüsselanhänger-ID-Bits vom PROM 19,
einem Downloadbit 49, falls geeignet, und einer Befehlsflagge,
wie einem Panik/Resynch-Bit, das über eine Leitung 81 vom
Befehlsregister 77 bereit gestellt wird, wenn dies angebracht
ist. Im gewöhnlichen
Fall der Authentisierung sind sowohl die Download- als auch die
Panik/Resynch-Bits Nullen. Dann werden alle diese Bits auf einem
Strang von 57 Leitungen 82 durch einen Fehlerkorrekturcodeschaltkreis 83 abgebildet,
um eine 7-Bit-Fehlerkorrekturcodekomponente auf einen Strang von
7 Leitungen 84 für
das 64-Bit-Wort 25 zu erzeugen. Typischerweise wird ein Einzelfehlerkorrektur-,
Multifehlerkorrekturcode (wie ein Hamming-Code) verwendet. Die dargestellte Ausführungsform
verwendet einen Linearrückkopplungsschieberegister
als einen zyklischen Redundanzcodegenerator zum Verschlüsseln der
Eingabe in ein Schlüsselwort.
Allerdings kann jede der bekannten reversiblen Verschlüsselungstechniken
verwendet werden. Zum Beispiel: Die McEliece Fehlerkorrekturcodeverschlüsselung;
das RSA Kryptosystem; das Discrete-Exponentiation-Cryptosystem;
lineare oder nicht-lineare, Kongruenzkryptosysteme voller Länge oder
gekürzt;
oder das DES-Kryptosystem, welche ausführlicher in Kapitel 10 von
Contemporary Cryptology The Science of Information Integrity, Simmons,
ed., IEEE Press New York, NY (1992) beschrieben werden.
-
Wenn
das 64-Bit-Wort vollständig
erstellt ist, wird es seriell (Bit für Bit) oder auf andere Art
und Weise über
irgendeine wohlbekannte Technik über den
Transmitter 24 zum Empfänger 31 des
Empfängermoduls 30 übertragen,
um darin das 64-Bit-Wort 38 zu werden. Alle Bits des Worts 38 werden über Stränge von
57 Leitungen 90 und 7 Leitungen 91 an einen
Fehlerkorrektur- und Nachweisprozess 92 ausgegeben. Falls
ein Einzelfehler aufgetaucht ist, korrigiert ein Signal auf einer
(geeigneten) Leitung 93 das Bit, das fehlerhaft ist. Falls
mehrere Bitfehler detektiert werden, wird der Prozess vollständig ungültig gemacht
und das Empfängermodul 30 geht
einfach in einen halbsekündigen
Wartezustand, was auf einfach Weise jedwede Versuche bremst, den
Code, der verwendet wird, zu knacken, wie ausführlicher nachfolgend beschrieben
wird. Falls ein mehrfacher Bitfehler aufgetreten ist, aber nicht
erkannt wird, schlägt der
kryptographische Authentisierungsprozess mit nahezu absoluter Sicherheit
fehl. Wenn auf der anderen Seite das 64-Bit-Wort 38 keine
Fehler aufweist, dann wird ein erstes OK-Signal über eine Signalleitung 94 bereit
gestellt.
-
Wenn
angenommen wird, dass das 64-Bit-Wort 38 keine Fehler aufweist,
ist es angemessen zu ermitteln, ob das nicht-geheime 16-Bit-Identifikationswort
zu irgendeinem der Schlüsselanhänger passt,
die in das Empfängermodul 30 geladen
wurden. Die ID des Schlüsselanhängers verringert
die Wahrscheinlichkeit, dass ein Befehl von einem falschen Schlüsselanhänger kryptographisch akzeptabel
wird; sie reduziert ferner die erforderliche Zeit, die es braucht,
um die Codewörter
im Empfängermodul
zum Erreichen der Authentisierung (eine Anpassung) zu iterieren.
Jedoch besteht bei dieser Ausführungsform
keine Einschränkung,
nach der Schlüsselanhänger zu
einer Gruppe an einem Automobil zugeordnet sind, und es wird angenommen, dass
ungefähr
eine Wahrscheinlichkeit von 1 zu 11.000 besteht, dass zwei Schlüsselanhänger, die
einem bestimmten Automobil zugeordnet sind, die gleiche ID-Zahl
haben. Ein Merkmal der Erfindung ist, dass, falls ein Schlüsselanhänger mit
passender ID nicht authentifiziert wird, das Empfängermodul 30 versucht,
zu erkennen, ob ein weiterer zugeordneter Schlüsselanhänger der gleichen ID-Zahl vorhanden ist
und, falls dies der Fall ist, Authentisierung versucht.
-
Die
16-Bit-ID im 64-Bitwort 38 wird über einen Strang von 16 Leitungen 97 ausgegeben
an eine 16-Bit-Vergleichsschaltung 98, deren andere Eingänge auf
einem Strang von 16 Leitungen 99 durch das ID-Register 100 bereit
gestellt werden, welches tatsächlich
vier unterschiedliche Stellen im EE-PROM 40 repräsentiert,
eine für
jeden zugehörigen Schlüsselanhänger. Falls
die Nachricht in der Tat von einem der vier zugehörigen Schlüsselanhänger gekommen ist,
erscheint ein zweites OK-Signal auf einer Leitung 101,
und die Identifikationsnummer des Schlüsselanhängers, der die Nachricht gesendet
hat, wird auf einem Strang von vier Leitungen 102 an den
PROM 40 und die RAM 41 ausgegeben, um so im folgenden Entschlüsselungsprozess
die geheime Maske für den
ausgewählten
Schlüsselanhänger und
die zwei LFSR-Werte, die zuvor für
diesen Schüsselanhänger erzeugt
wurden, zu verwenden. Die vorherigen LFSR-Werte werden anstelle
der ursprünglichen
Geheimwerte verwendet, da gemäß der Erfindung
die LFSR-Werte darauf aufgebaut sind, mit nur einer, zwei oder drei
Iterationen für
jeden Befehl, der durch das Empfängermodul 30 empfangen
wird.
-
In
diesem Stadium kann der normale Entschlüsselungsprozess beginnen. Das
entschlüsselte 39-Bit-Wort
wird über
einen Strang von 39 Leitungen 107 an ein 39-Bit-Schieberegister 108 ausgegeben, das
entweder in der Struktur oder Funktion identisch zum 39-Bitschieberegister 69 im
Schlüsselanhänger sein
kann, mit der Ausnahme, dass es in einem Umkehrprozess iteriert
wird. Der Umkehrprozess kann einfach verstanden werden, Bit für Bit, indem
betrachtet wird, wie die empfangenen 39 Bits wurden, was sie sind.
Falls bei der letzten Iteration zwischen dem Schieberegister 69 und
dem Exklusiv-OR-Schaltkreis 70 (1) das Bit höherer Ordnung
(äußerst linkes
Bit in 1) eine 1 war,
dann wird gegen jedes Bit einer gegebenen Ordnung im 39-Bit-Schieberegister
eine Exklusiv-OR-Verarbeitung gemäß der geheimen Maske durchgeführt, um zu
ermitteln, welches die Ordnung des nächsten Bits am Ende der Iteration
sein würde.
Das heißt,
das neunte Bit wird das zehnte Bit (0 oder 1, je nach Sachlage),
außer
es wird durch das exklusiven OR-Element invertiert. Um durch das
exklusive OR-Element invertiert zu werden, müsste das neunte Bit der geheimen
Maske eine 1 sein und das signifikanteste Bit am Beginn der Iteration
müsste
auch 1 sein; und das signifikanteste Bit geht weiter in einem Übertrag
auf die nächste
Zeile zu der am wenigsten signifikanten Stufe. Falls entweder das
signifikanteste Bit eine 0 ist oder das entsprechende Bit in der
geheimen Maske eine 0 ist, so würde
das neunte Bit einfach zur zehnten Stufe weiterschreiten. Da das, was
das signifikanteste Bit war, das am wenigstens signifikante Bit
wird, ergibt die Inspektion des am wenigsten signifikanten Bits,
ob eine exklusive OR-Verarbeitung
aufgetreten ist oder nicht. Falls das am wenigstens signifikante
Bit im Schieberegister 108 eine Eins ist, wird es für die exklusive
OR-Verarbeitung der Bits jeder Ordnung mit derselben geheimen Maske
verwendet, die für
diesen Schlüsselan hänger ursprünglich herunter
geladen wurde. Für
jedes Bit (wie zum Beispiel das neunte Bit), für das ein entsprechendes Bit
in der geheimen Maske vorliegt, wird dieses Bit immer dann von einer
1 in eine 0 oder von einer 0 in eine 1 invertiert, wenn das Bit
niedrigster Ordnung am Beginn der Iteration eine 1 ist. Wenn sich
aber kein entsprechendes Bit in der geheimen Maske befindet, so
wird das in Frage stehende Bit einfach zur Stufe nächst niedriger
Ordnung (im Beispiel wird aus Bit 10 Bit 9) weiter bewegt, ohne
dass eine Inversion erfolgt. Oder, falls das am wenigstens signifikante
Bit (das äußerst rechte
Bit in 2) eine 0 ist,
so wird keines der Bits invertiert, wenn sie von einer Stufe zur
nächst
niedrigen Stufe im Schieberegister 108 weiter bewegt werden.
Indem dies genauso oft durchgeführt
wird (39 Iterationen im hierin beschriebenen Beispiel), wird das
ursprüngliche
Wort im 39-Bit-Schieberegister rekonstruiert. Der Betrieb der 39-Bit-Schieberegister ähnelt sehr
stark den zyklischen Redundanz-Code (CRC) Generatoren, die für Fehlererkennung
und Korrektur verwendet werden. Das hierin folgende Verfahren in
den 39-Bit-Schieberegistern ist das gleiche wie bei den LFSRs, mit
Ausnahme der Tatsache, dass die Schieberegister hierin vor den Iterationen
jedes Zyklus ein vollständig
neues Startwort erhalten. Mehr über CRCs,
Galois-Feld-Arithmetik und das Erzeugen und Verwenden von Pseudozufallsbinärzahlen
kann den folgenden Schriften entnommen werden: Theory and Practice
of Error Control Codes, Blahut, Addisson Wesley Pub. Company, Reading,
MA (1984); An Introduction to Error-Correcting Codes, Shu Lin, Prentice
Hall, Englewood Cliffs, NJ (1070); und Error-Control Techniques
for Digital Communication, Michaelson and Levesque, John Wiley & Sons, New York,
NY (1985).
-
Bei
der Entschlüsselung
wird ein Teil des Prozesses umgekehrt und ein Teil davon angepasst. Somit
wird das 39-Bit-verschlüsselte
Codewort durch 39 Umkehr-Iterationen umgekehrt und die entsprechenden
Ergebnisse verglichen mit dem, was die identischen Ergebnisse von
den LFSRs sein sollten.
-
Wenn
einmal ein Schlüsselanhänger im 16-Bit-Vergleichsschaltkreis 98 identifiziert
ist, werden seine zwei geheimen Rückkopplungsmasken (aus dem
RAM 41) geladen, um in den entsprechenden Exklusiv-OR-Elementen 113, 114 Verwendung zu
finden, und sein zuvor erreichter 20 Bit LFSR-Wert wird in einen
20 Bit LFSR 115 geladen, während sein zuvor erreichter
19 Bit LFSR-Wert in den 19 Bit LFSR 116 geladen wird. Abhängig von
einem gegebenen Bit jedes der LFSRs wird der LFSR verschoben (mit oder
ohne Exklusiv-OR-Verarbeitung, wie vorher beschrieben), entweder
einmal oder zweimal im Fal le des LFSRs 115, oder zwei-
oder dreimal im Fall des LFSRs 116, in Abhängigkeit
von einem Paar von entsprechenden Gates 117, die die Anwendung
des Taktgebers 118 hieran steuern auf die gleiche Weise, wie
unter Bezugnahme auf 1 zuvor
beschrieben wurde. Die so erzeugten 20 Bits des 20-Bit-LFSR 115 werden über einen
Strang von 20 Leitungen 123 an eine Vergleichsschaltung 124 ausgegeben,
wo sie mit 20 Bits verglichen werden, die durch das 39-Bit-Schieberegister 108 über einen
Strang von 20 Leitungen 125 bereit gestellt wurden. Auf ähnliche Weise
werden die 14 Bits höherer
Ordnung, die im 19-Bit-LFSR 116 erzeugt wurden, über einen
Strang von 14 Leitungen 127 an die Vergleichsschaltung 124 zum
Vergleich mit 14 Bits des 39-Bit-Schieberegisters 108,
welche über
einen Strang von 14 Leitungen 128 bereit gestellt wurden,
ausgegeben. Unter der Annahme, dass sowohl die 20 Bit als auch die 14-Bit-Wörter dem Vergleich Stand halten,
so signalisiert dies eine erfolgreiche Authentisierung über eine
Leitung 129, und es wird dem Empfängermodul 30 erlaubt,
den Befehl vom Schlüsselanhänger zu empfangen
und darauf zu reagieren.
-
Wenn
man sich in Erinnerung ruft, dass der 5-Bit-Befehl mit den 5-Bit-Positionen
niedrigerer Ordnung exklusiv-OR-verknüpft wird, welche vom 19-Bit-LFSR 54 bereit
gestellt werden, so ist der einzige Weg, diese Bits wieder herzustellen,
die 5-Bit-Positionen niedrigerer Ordnung vom 19-Bit-LFSR 116 mit
den 5 Bit-Positionen niedrigerer Ordnung des rekonstituierten Wortes
im 39-Bit-Schieberegister 108 über eine exklusive OR-Verarbeitung zu verarbeiten.
Daher werden die 5 Bit-Positionen niedrigerer Ordnung, die durch
den 19-Bit-LFSR 116 erzeugt wurden, über einen Strang von fünf Leitungen 130 an
einen Fünf-Bit-Exklusiv-OR-Schaltkreis 131 ausgegeben,
dessen gegenüberliegende
Eingänge
aus den 5 Bit-Positionen niedrigster Ordnung vom 39-Bit-Schieberegister 108 über einen
Strang von fünf
Leitungen 132 bestehen. Das Ergebnis der Exklusiv-OR-Verarbeitung auf
einem Strang von fünf
Leitungen 137 umfasst den Befehl, der in einem Befehlsregister 138 gespeichert wird.
Die typischen Befehle, die auf einem Strang von Leitungen 139 an
die Schlösser 43 ausgegeben
werden, umfassen „Tür öffnen", „Tür schließen" und „Kofferraum öffnen". Ein weiterer Befehl,
der durch ein Signal auf einer Leitung 140 angezeigt werden kann,
kann ein Panikbefehl sein, der bewirkt, dass Hupe und Lichter 44 (oder
andere Alarme) am Wagen einen Gauner verscheuchen, wenn sich der
Fahrer dem Fahrzeug mit dem Schlüsselanhänger nähert (wie
nachfolgend detaillierter beschrieben).
-
Falls
der erste Versuch, die Ausgänge
der LFSR 115, 116 mit entsprechenden 34 Bits der 19-Bit-Schieberegister 108 in Übereinstimmung
zu bringen, fehlschlägt,
dann werden die LFSRs 115, 166 nochmals durchlaufen.
In jedem Zyklus wird das LFSR 115 einmal oder zweimal verschoben,
in Abhängigkeit
von dem Zufallsbit, das als eine Kontrolle über sein Gate 117 verwendet
wird, und das LFSR 116 wird zwei- oder dreimal verschoben
in Abhängigkeit
vom Zufallsbit, das zur Kontrolle seines Taktgates 117 verwendet
wird. Dies dient dazu, dem Empfängermodul 30 zu
erlauben, in Zyklen, und daher auch in Iterationen, zum Status der
LFSRs 53, 54 im Schlüsselanhänger 16 aufzuholen.
-
Jedes
Mal, wenn eine der Tasten 12 bis 15 am Schlüsselanhänger gedrückt wird,
durchläuft
der Schlüsselanhänger einen
Zyklus, und die Schieberegister 53, 54 durchlaufen
einen oder zwei bzw. zwei oder drei Iterationen. Das Pressen der
Tasten 12 bis 15 kann einfach durch Quetschen
in einem Geldbeutel, mit dem Schlüsselanhänger spielende Kinder oder
anders erfolgen. Da jeder Schlüsselanhänger seine
eigenen LFSR-erzeugten
Zahlen erhält
und das Empfängermodul 30 auf ähnliche
Weise separate LFSR-erzeugte Zahlen für jede Schlüsselanhänger behält, ist jeder Schlüsselanhänger im
Allgemeinen in der Lage, auf Kurs mit dem Empfängermodul zu bleiben, mit Ausnahme
von unabsichtlichem Drücken
der Schalter 12 bis 14. Jedes Mal, wenn die Schalter 12 bis 15 einen
Zyklus verursachen, der nicht durch das Empfängermodul 30 beantwortet wird,
so wird beim ersten Mal, wenn die Schalter gedrückt werden und das Empfängermodul
nicht antwortet, der Inhalt der LFSRs 115, 166 nicht
mit den entsprechenden Bits des 39-Bit-Schieberegisters 108 verglichen.
Jedoch wird Vorsorge getroffen, dass gemäß der Erfindung erlaubt wird,
zusätzliche
Zyklen des Empfängermoduls
und die zusätzliche
ein oder zwei Iterationen für
den LFSR 115 und zwei oder drei Iterationen für den LFSR 116 zu
initiieren, um so den Schlüsselanhänger wieder
aufzuholen. Dabei erlaubt ein 8 Bit-Zähler 143 dem Empfängermodul 30 zu
versuchen, an dem der in Frage stehenden Schlüsselanhänger Anschluss zu finden, indem
automatisch bis zu 256 Zyklen wiederholt werden. In einem normalen Fall
findet das Empfängermodul 30 in
nur ein paar Sekunden Anschluss an den Schlüsselanhänger. Wenn aber das Empfängermodul
mehr als 256 Zyklen hinterher hängt,
was zum Beispiel passieren kann, wenn einer der Schalter 12 bis 15 wiederholt
in einer Akten- oder Handtasche gedrückt wird, dann finden die LFSRs 115, 116 keinen
Anschluss an das 39 Bit-Schieberegister 108. Das Empfängermodul 30 reagiert
dann auf eingehende Signale nicht, während es die Authentisierung
eines vorangegangenen Signals versucht; die 256 Versuche, um Anschluss
zu finden, erfordern nur etwa eine halbe Sekunde oder weniger; dadurch
wird die Authentisierung nicht durch wiederholtes Pressen der Taste 13 zum Öffnen aufgrund
von Ungeduld beeinträchtigt.
Unter Umständen
begreift die Bedienperson, dass das Empfängermodul nicht mehr synchronisiert
(kryptographisch synchronisiert) ist und presst zwei Tasten gleichzeitig
(wie zum Beispiel Schließen
und Öffnen) oder
eine andere Kombination, wie im Schlüsselanhänger als ein Befehl erkannt
wird, eine kryptographische Resynchronisation zwischen dem Empfängermodul 30 und
dem Schlüsselanhänger 16 zu
bewirken, sowie das Reinitialisieren nach einem Verschwinden von
Batterieleistung (leer oder ausgewechselt), was einen Zerfall der
RAM-Daten ermöglicht.
-
Ein
erkannter Befehl im Befehlsgenerator 77 (1) zum Synchronisieren (nachfolgend:
Resynchbefehl) erzeugt das Panik/Resynch-Bit auf der Leitung 81.
Der Resynchronisationsprozess gemäß der vorliegenden Erfindung
beinhaltet das Zurückkehren zum
Anfang, das heißt
Zurückkehren
zum Verwenden der geheimen Anfangswerte und Neustart des ganzen
Verfahrens. Wie zuvor beschrieben wurde, wird der Resynchbefehl
in erster Linie dazu verwendet, die Einheiten zu initialisieren
und, wenn sie nicht mehr synchronisiert sind (out-of-synch), so
werden sie in einem Sinne reinitialisiert, als ob sie neu wären. Dabei
bewirkt das Panik/Resynch-Bit auf der Leitung 81, dass
zwei ursprüngliche
Geheimwerte aus dem ROM 19 in die LFSRs 53, 54 geladen
werden und die zwei anfänglichen
geheimen Rückkopplungsmasken für die Exklusiv-OR-Elemente 55, 56 verfügbar sind und
die 39-Bit-Geheim Feedback-Maske für das Exklusiv-OR-Element 70 verfügbar ist.
Der Panik/Resynch-Befehl auf der Leitung 145 bewirkt, dass
die Takt-Gates 64 20
Iterationen bewirken für
jeden der LFSRs 53, 54. Die Absicht dahinter ist,
dass das Verwenden von genauso viel Iterationen wie es Bits im Wort
gibt, das maximale Mischen der Rückkopplung bewirkt,
unabhängig
davon, was die Maske ist, um eine vollständige bitweise Faltung sicherzustellen.
In diesem Fall können
jedoch zusätzliche Änderungen gegenüber dem
Normalzustand auftreten: die 8-Bit-Positionen niedriger Ordnung
des Schieberegisters 53 werden von einem 8-Bit-Zähler 145 über einen
Strang von acht Leitungen 146 mit einer wirklich zufälligen Zahl
versorgt, wobei der 8 Bit-Zähler 145 auf
den Taktgeber 65 in einer Art und Weise antwortet, die
mit dem Pressen der Tasten 12 bis 15 zusammenhängt, wie
unter Bezugnahme auf 3 nachfolgend
beschrieben wird. Dass es für
Personen unmöglich
ist, Tasten vorsichtig genug zu drücken, um zu erreichen, dass
etwas anderes als eine zufällige
Zahl bei Computertaktfre quenzen (500 KHz oder mehr) erreicht wird,
ist die Wahrscheinlichkeit, dass diese Zahl exakt die gleiche bei
aufeinanderfolgenden Resynch-Prozessen ist, extrem klein. Nach 20 Iterationen
von Rückkopplungsverschiebung,
wobei die 8-Bit-Position niedriger Ordnung des LFSR jene vom Zähler 145 umfassen,
werden Ausgänge
der 20-Bit-LFSR 53 und der 19-Bit-LFSR 54 an das 39-Bit-Schieberegister 69 geliefert.
Das Schieberegister 69 untergeht daraufhin 39 Rückkopplungsschiebe-Iterationen
vom Typ, der oben beschrieben wurde, um das verschlüsselte 39-Bit-Wort
im 64-Bit-Wort 25 zu erzeugen. Wie zuvor wird die 16-Bit-ID
für den
Schlüsselanhänger für das Wort 25 bereit
gestellt, gemeinsam mit einem Panik/Resynch-Bit (oben beschrieben),
um anzuzeigen, dass dies eine Panik- oder Resynch-Anfrage ist, und
der Fehlerkorrekturcode wird berechnet und die Codebits zum Wort 25 hinzugefügt, wie
oben beschrieben. Das 20-Bit-LFSR und das 19-Bit-LFSR resultieren,
nach 20 Iterationen, aus den Pseudozufallsstartwörtern, die zur Authentisierung
von zukünftigen
Transmissionen zu verwenden sind.
-
Beim
Receivermodul 30 sind die ersten zwei Schritte dieselben
wie bei einem normalen Befehl. Fehlerkorrektur wird vorgesehen,
falls möglich,
und, wenn das Wort richtig ist, erscheint das erste OK-Signal auf
der Leitung 94. Dann werden die vier möglichen IDs mit der eingehenden
ID im Wort 38 verglichen und, falls eine Übereinstimmung
vorliegt, erscheint das zweite OK-Signal auf Leitung 101,
und die Signale auf dem Strang aus vier Leitungen 102 teilen
dem EE-PROM 40 mit, mit welchem Schlüsselanhänger gearbeitet wird und daher,
welcher der Sätze
von zwei geheimen Anfangswerten und drei geheimen Rückkopplungsmasken
verwendet werden sollte. Die geeigneten geheimen Anfangswerte und drei
Rückkopplungsmasken
werden in die LFSRs 115, 116 und die exklusiven
OR-Elemente 113, 114 und 109 geladen.
Der Inhalt des 39 Bit-Schieberegisters 108 wird
durch 39 Rückiterationen
rekonstruiert, wie oben beschrieben, um so das Wort im 39-Bit-Schieberegister 69 wiederherzustellen.
Da aber der Ausgang des 20-Bit-LFSR 53 nicht 20 Schiebeiterationen
allein des geheimen Anfangswerts, der darin vorgesehen wird, wiederspiegelt, sondern
vielmehr 20 Iterationen von 12 höher
geordneten Bits des geheimen Anfangswerts und acht zufällige Bits
niedriger Ordnung repräsentiert,
können Vergleiche
mit den Bits höherer
Ordnung des 39 Schieberegisters 108 im Empfängermodul 30 nicht durchgeführt werden.
Stattdessen muss der 20-Bit LFSR-Wert auf die gleiche Art wiederhergestellt
werden, in der der Wert im 39-Bit-Schieberegister wiederhergestellt
wird. Das heißt,
eine umgekehrte Linearrückkopplungsschiebeoperation,
die die exklusive OR-Maske mit dem am wenigsten be deutsamen Bit beinhaltet,
wird in einem 20-Bit-LFSR 151 (2) erreicht, das mit einem 20 Bit exklusiven
OR zusammenhängt.
Dies stellt die entschlüsselte
Zahl wieder her, bei der die 12-Bit-Positionen hoher Ordnung des LFSR 151 dieselben
sein sollten, wie die 12-Bit-Positionen hoher Ordnung des geheimen
Anfangswerts im 20-Bit-LFSR 115, und die 8-Bit-Positionen
niedriger Ordnung des 20-Bit-LFSR 151 eine beliebige Zahl
sind (die durch den Zähler 145 erzeugt
wird).
-
Der
nächste
Schritt beim Resynch-Prozess besteht darin, die 12 Bit-Positionen
hoher Ordnung des wiederhergestellten Wortes im LFSR 151 mit
den 12 Bit des geheimen Anfangswerts des 20-Bit-LFSR 115 zu
vergleichen. Somit werden die 12 Bits auf dem Strang der 12 Leitungen 160 mit
den 12 Bits auf dem Strang der 12 Leitungen 161 verglichen,
welche allein in Erwiderung auf den anfänglichen geheimen Wert erzeugt
werden. Ebenso werden die 14 Bits auf dem Strang von Leitungen 127 mit
den 14 Bits auf dem Strang von Leitungen 128 verglichen;
diese sollten ebenfalls Übereinstimmung
zeigen, da das 19-Bit-LFSR 116 als Response zu seinem geheimen Anfangswert 20 Iterationen
durchlaufen hat, so, dass es mit dem Ergebnis im 19-Bit LFSR 54 übereinstimmen
sollte, dessen 14-Bit-Position hoher Ordnung in den 14 Bits des
39-Bit-Schieberegisters 108 wiederhergestellt
wurden, auf die der Strang der Leitungen 128 antwortet.
-
Wenn
sowohl der 12 Bit- als auch der 14-Bit-Vergleich erfolgreich ist,
wird ermittelt, ob das Panik/Resynch, das auf einer Leitung 51 vom 64-Bit-Wort 38 bereit
gestellt wird, durch einen Panikbefehl oder Resynchbefehl verursacht
wurde. Falls ein Resynch- oder Panikbefehl ausgesendet wurde, würde der
Resynch- oder Panikbefehl über
einen Exklusiv-OR-Schaltkreis in die fünf Bits niedriger Ordnung des
19-Bit-Schieberegisters 54 verarbeitet, wie bezüglich anderer
Befehle oben beschrieben wurde. Daher wird der Befehl durch den
Fünf-Bit-Exklusiv-OR-Schaltkreis 131 extrahiert
und über
den Strang von Leitungen 137 an das Befehlsregister 138 ausgegeben.
Da das Ausführen
des Panikbefehls die Sicherheit des Fahrzeugs nicht beeinträchtigen
kann, wird er als der voreingestellte Befehl (Default-Befehl) verwendet.
Falls der Resynch-Befehl auf der Leitung 140 nicht vorliegt,
so kann davon ausgegangen werden, dass der Panik/Resynchbefehl auf
der Leitung 51 ein Panikbefehl ist, falls erwünscht, selbst
wenn er nicht dekodiert wird. Bis zu diesem Punkt sind der Panik-
und der Resynchbefehl identisch.
-
Der
nächste
Schritt beim Resynch-Prozess besteht darin, die 8-Bit-Zufallszahl
in den Bit-Positionen niedriger Ordnung des 20-Bit-Registers 151 mit den
letzten vier früheren
8-Bit-Zufallszahlen niedriger Ordnung zu vergleichen, die während des
Resynchronisierens empfangen wurden. Bei der vorliegenden Erfindung
wird die Zufallszahl mit den letzten vier dieser Zufallszahlen verglichen,
die zuvor durch das Bereitstellen der acht Positionen niedriger
Ordnung des 20-Bit-LFSR 151 auf einem Strang von acht Leitungen 153 an
8 Bits des Vergleichsschaltkreises 124 ausgegeben wurden,
welche auch auf einen Strang von 8 Leitungen 154 von einem „First
In, First Out"-Stack 155 (der
tatsächlich
im EE-PROM-40 ausgebildet ist), welcher die letzten 8-Bit-Zufallszahlen,
die während
der Resynchronisationsoperationen empfangen wurden, überwacht.
Falls während
der Synchronisation die 8 mittleren Bits des Vergleichsschaltkreises 124 mit
irgendwelchen der vier 8-Bit-Worte „First In, First Out"-Stack (FIFO) 155 übereinstimmen,
so ist die Operation fehl geschlagen, und das Empfängermodul 30 geht
in die Warteperiode von einer halben Sekunde über, bevor es auf den nächsten Befehl
reagiert (wie nachfolgend beschrieben), und das übereinstimmende Wort geht zum
Kopf des Stacks und übrigbleibende
Worte im FIFO werden entsprechend angepasst. Falls auf der anderen
Seite das 8-Bit-Wort auf dem Strang von Leitungen 153 mit
keinem der Bits im Stack 155 übereinstimmt, ist der Vergleich
ein Erfolg und die Operation kann weiterlaufen. Zusätzlich wird
das 8-Bit-Wort auf dem Strang von acht Leitungen 153 über den Strang
von Leitungen 154 an den FIFO-Stack 155 ausgegeben,
um während
nachfolgender Resynchronisationsoperationen Vergleiche mit nachfolgenden
zufälligen
8-Bit-Worten durchzuführen.
In einem solchen Fall geht das neue Wort in den FIFO und das älteste Wort
wird aus dem FIFO fallen gelassen.
-
Angenommen,
dass keine Übereinstimmung des
8-Bit-Zufallswortes vorliegt, so ist die Resynchronisationoperation
vollständig.
Wenn Resynchronisation befohlen wird, nach erfolgreichem Vergleich
der 12 Bits höherer
Ordnung und der 14 Bits, wie oben beschrieben, und keinem Vergleich
mit dem FIFO, bleiben die Werte, die in den Schieberegistern 53, 54, 115, 116 erstellt
wurden, wie sie sind, um sie bei der Authentisierung des nächsten normalen
Befehlszyklus zu verwenden.
-
Der
Panikbefehl ist deshalb derselbe, wie er bereits bezüglich des
Resynch-Befehls beschrieben wurde, mit der Ausnahme, dass, falls
das Befehlsregister 138 das Panikbefehlssignal auf der
Leitung 140 erzeugt, die Lichter und die Hupe 44 (oder
ein anderer Alarm) aktiviert werden und jeder der LFSRs 53, 54, 114, 116 auf
die Einstellung zurückgebracht wird,
die sie unmittelbar vor dem Senden und Empfangen des Panikbefehls
hatten. Der Panikbefehl arbeitet anders als der Schließ-, Öffnen- und
Kofferraumöffnen-Befehl,
so dass eine Response vorhanden ist, selbst bei totaler Befehlssynchronisation
zwischen dem Schlüsselanhänger und
dem Empfängermodul.
Im Falle des Panikbefehls stellt das Starten mit den geheimen Anfangswerten
sicher, dass Authentisierung (um störende Antworten zu vermeiden) beim
ersten Versuch erfolgreich ist. Daher bewirkt der Panikbefehl im
Schlüsselanhänger (1), dass die LFSR mit den
Anfangswert im PROM 19 geladen werden, statt mit den Schieberegisterwerten,
die bislang durch Iterationen im RAM erreicht wurden, und der soeben
beschriebene Panik/Resynchprozess wird durchgeführt, um sicherzustellen, dass
eine Authentisierung zum Durchführen
des Panikbefehls vorliegt.
-
Die
vorangehende Beschreibung wurde präsentiert, als wäre sie Hardware,
und in der Tat kann die Erfindung in Form von Hardware gemäß den obigen
Prinzipien implementier werden. Allerdings wurde die Erfindung in
geeignet programmierten Mikroprozessoren implementiert, welche als
am geeignetsten erachtet werden. In den nachfolgend beschriebenen
Flussdiagrammen sind beispielhafte Softwareroutinen zur Veranschaulichung
des Ablaufs der Erfindung gegeben, stellen aber nicht notwendigerweise
die einzelnen Schritte des Programms in jeder beliebigen Ausführungsform
der Erfindung dar.
-
Der
Prozess der Verschlüsselung
im Schlüsselanhänger wird
in 3 veranschaulicht.
Es wird angenommen, dass der Schlüsselanhänger einen Mikroprozessor umfasst,
wie zum Beispiel einen 68HC11, der einen Stoppmodus aufweist, bei
dem die Uhr angehalten wird, der Energieverbrauch vernachlässigbar
ist und das Einzige, was der Prozessor durchführen kann, das Antworten auf
einen externen Interrupt ist, um wieder gestartet zu werden. Bei
einem solchen Prozessor würde
das Anlegen von Batterieleistung das Erreichen des Programms über einen
Energieeintrittspunkt 170 bewirken, und der Prozessor würde sofort
bei einem Schritt 151 stoppen, wobei die einzige Funktion
ist, einen Test 172 durchzuführen, um zu ermitteln, ob irgendeine
der Tasten 12 bis 15 gepresst wurde oder nicht.
Solange keine Taste gedrückt
wurde, wartet der Prozessor in einem Niederenergiestoppmodus in
der Schleife 171, 172. Sobald eine Taste gedrückt wurde,
erreicht ein positives Ergebnis von Test 172 Schritte 173,
in welchen ein Schaltwort im RAM 20 einen OR-Prozess mit demjenigen
der Schalter durchläuft,
der gedrückt wurde.
-
Im
Allgemeinen können
zwei Schalter nicht innerhalb einiger weniger Computertaktintervalle
gedrückt
werden, so dass der erste nachgewiesen wird. Wie nachfolgend beschrieben,
falls ein zweiter innerhalb etwa einer halben bis einer Sekunde
gedrückt wird,
wird er als gepaart mit dem ersten behandelt; wenn die zwei korrekt
sind (zum Beispiel Schließen und Öffnen),
wird ein Resynchbefehl verkündet.
Ein Schalterinterrupt, der wahlweise nur während normaler Befehlszyklen
aktiviert ist, erlaubt das Wahrnehmen des zweiten Schalters eines
Resynchs.
-
In 3 aktivieren die Schritte 173 auch
den Schalterinterrupt und starten den Zufallszähler. Dann wird eine Entschlüsselbefehlsubroutine 179 durchgeführt, und
ein Test 180 bestimmt, ob der Befehl entweder Panik oder
Resynch bedeutet. Falls dem so ist, erreicht ein positives Ergebnis
des Testes 180 eine Reihe von Schritten 181, in
denen die Schieberegisterinhalte in Puffern gespeichert werden,
das Panik/Resynch (P/R) Bit auf der Leitung 81 auf 1 gesetzt
wird; ein Arbeitsregister, das nachfolgend als "Schieberegister" (SR) bezeichnet wird, wird so eingestellt,
dass der Zufallszähler
in seinen 8 Bit-Positionen
niedrigerer Ordnung ist und die Bit-Position höherer Ordnung gleich einem
geheimen 12 Bit Anfangswert für
das 20 Bit LFSR sind, die Maske, die mit dem SR zusammenhängt, wird
gleich der geheimen 20 Bit Rückkopplungsmaske
vom PROM 19 gesetzt und ein Zykluszähler C wird auf 20 Iterationen gesetzt.
Dann wird eine bitweise lineare Rückkopplungsschieberegisteriterationssubroutine 182 durchgeführt, bei
der jedes Bit zur Position nächsthöherer Ordnung
verschoben wird, mit oder ohne Version, abhängig von der geheimen Maske
und/oder, ob das Bit niedriger Ordnung eine 1 aufweist, wie oben
beschrieben wurde. Dann wird der Zähler C in einem Schritt 183 herunter
gezählt
und ein Test 184 ermittelt, ob bereits ein vollständiger 20
Iterations-LFSR-Zyklus
aufgetreten ist. Falls dem nicht so ist, wird eine weitere Iteration
durch die Subroutine 182 durchgeführt und der C-Zähler wird
weiter herunter gezählt.
Nach 20 Iterationen erreicht ein positives Ergebnis des
Testes 184 einen Schritt 185, indem die 20-Bit-Schieberegisterspeicherörtlichkeit
im RAM 20 gleich dem Inhalt des Arbeitsschieberegisters
gesetzt wird. Die Schritte und der Test 182 bis 185 umfassen
einen LFSR-Zyklus 186.
-
Dann
wird das 19-Bit-Schieberegister 54 in einer Reihe von Schritten 190 vorbereitet,
in denen der Inhalt des Schieberegisters gleich dem Inhalt des geheimen
19 Bit Anfangswertes im PROM 19 gesetzt wird, die zum Schieberegister
gehörende
Maske der ge heimen 19 Bit Rückkopplungsmaske
im PROM 19 und der C-Zähler
gleich 19 gesetzt wird. Dann wird eine LFSR-Zyklus-Subroutine 191 (ähnlich zur
Subroutine 186) durchgeführt. Dann wird das 39-Bit-Schieberegister 69 für seinen
LFSR-Zyklus in einer Reihe von Schritten 192 vorbereitet.
Speziell sind die fünf
Bit-Positionen niedriger Ordnung die Exklusiv-OR-Schaltkreise des
Befehls mit den fünf
niedrigen Stufen des 19-Bit-Schieberegisters 54;
die hohen 14 Bits des 19-Bit-Schieberegisters 54 werden direkt
in das 39-Bit-Schieberegister platziert, und die 20-Bit-Position
höchster
Ordnung werden gleich den 20-Bit-Positionen des 29-Bit-Schieberegisters 53 gesetzt.
Die Maske wird gleich der geheimen Rückkopplungsmaske für das 39-Bit-Schieberegister
gesetzt, welche im PROM 19 gefunden wird, und der C-Zähler wird
auf 39 gesetzt. Dann wird eine LFSR-Zyklus-Subroutine 193 durchgeführt, dieses Mal
mit 39 Iterationen und das Ergebnis im 39 Bit-Schieberegister wiederhergestellt,
welches im Notizblockspeicher 20 ausgebildet ist. In einer
Routine 194 werden die 16 Bits des Schlüsselanhänger IDs vom PROM 19,
die 39 verschlüsselten
Bits, die nun im 39-Bit-Schieberegister sind, das P/R-Bit und das Download-Bit
alle seriell übertragen,
während die
Berechnung für
Fehlerkorrekturcode-Bits durchgeführt wird. Diese werden berechnet
und übertragen,
um den Prozess einer Panik- oder Resynchbefehlsübertragung zu vervollständigen.
Ob es eine Panik oder ein Resynch ist, wird durch den Status der fünf Befehlsbits
ermittelt. Wenn ein Resynch durchgeführt wurde, werden die neuen
Werte des 20-Bit-Schieberegisters und 19-Bit-Schieberegisters als
die Pseudozufallstartwörter
beibehalten, die zur zukünftigen
Authentisierung von Übertragungen
an das Empfangsmodul verwendet werden. Wenn es aber ein Panikbefehl
ist, werden diese neue Wörter nur
verwendet, um die synchronisierte Antwort sicherzustellen, einmal,
und ein Test 195 bewirkt, dass die früheren Werte der 20 Bit- und
19 Bit-Schieberegister von den Puffern in einem Schritt 196 wiederhergestellt
werden.
-
Angenommen,
dass ein normaler Befehl gegeben wurde, so erreicht ein negatives
Ergebnis des Testes 180 eine Reihe von Schritten 199,
in denen das Arbeitsschieberegister gleich dem 20-Bit-Schieberegister
im RAM 20 (nicht der geheime Anfangswert) gesetzt wird,
um so Vorteil aus der Pseudozufallszahl zu ziehen, die durch alle
vorangegangenen Iterationen erzeugt wurde. Gemäß der Erfindung wird die Maske
für das
Schieberegister gleich der 20-Bit-Schieberegister-Geheime-Rückkopplungsmaske
vom PROM 19 gesetzt und ein Satz von Zufallsbits (der bestimmt,
wie viele Iterationen durchzuführen
sind, vergleichbar mit den Gates 64 von 1) wird gleich den Zufallsbits gesetzt,
welche auch immer ausgewählt
wurden, um die Iterationen für
das 20-Bit-Schieberegister
zu steuern. Dies könnte
zum Beispiel das dritte und neunte Bit des 20-Bit-Schieberegisters sein oder, in einem
allgemeinen Fall, alles sein, was deterministisch berechenbar, aber
schwierig vorherzusagen ist. Dann bestimmt ein Testpaar 200,
welches die Zufallsbits sind: wenn beide eine 1 sind, so stellt
ein Schritt 201 den C-Zähler auf
1 ein; wenn beide eine 0 sind, so stellt ein Test 202 den
C-Zähler
auf 2 ein. Wenn sie aber verschieden sind, so stellt ein Schritt 201a den C-Zähler auf
3 ein. Dann wird entweder eine 1-Iteration-, eine 2-Iteration- oder
eine 3-Iteration-LFSR-Zyklus-Subroutine 203 durchgeführt. Das
Verfahren der Erfindung kann in Systemen aus dem Stand der Technik
verwendet werden, wie zum Beispiel im Patent von Hill et al. Danach
wird die gleiche Art von Operation mit dem 19-Bit-Schieberegister
durchgeführt;
eine Reihe von Schritten 204 stellen das Arbeitsschieberegister
gleich dem Inhalt des 19-Bit-Schieberegisters
im RAM 20 ein, die Maske für das Arbeitsschieberegister
wird gleich der geheimen Rückkopplungsmaske
für das
19-Bit-Schieberegister im PROM 19 eingestellt, und das
Zufallsbit wird gleich dem Bit eingestellt, das zufällig für das 19-Bit-Schieberegister gewählt wurde.
Dann ermittelt ein Test 205, ob das Zufallsbit 1 ist oder
nicht. Falls dem so ist, stellt ein Schritt 206 in den
C-Zähler
auf 3 ein, und andernfalls stellt ein Schritt 207 den C-Zähler auf
2 ein. Dies liefert vier Iterationen (201, 206; 202, 207),
unabhängig
davon, ob das Zufallsbit 1 oder 0 ist. Aber es kann auch auf andere
Arten eingestellt werden, falls erwünscht. Dann wird eine Zwei- oder
Drei-Iterations-LFSR-Zyklus-Subroutine 191 durchgeführt. Dann
stellt die Reihe von Schritten 192 die Dinge so ein, dass
das 39-Bit-verschlüsselte
Wort gebildet wird, eine 39-Iterations-LFSR-Zyklus-Subroutine 193 durchgeführt wird,
um das 39-Bit-verschlüsselte
Wort zu erzeugen und die Subroutine 194 alle Bits zusammen
mit einem berechneten Fehlerkorrekturcode übertragen wird. Somit sind
die Unterschiede zwischen dem Verschlüsseln und Übertragen normaler Befehle
und des Panik/Resynchbefehls, das Einstellen des P/R-Bits, das Verwenden des
Zufallszählers 145,
das Verwenden der geheimen Anfangswerte und der spezielle Code,
welcher Exklusiv-OR-Schaltkreis in das 19-Bit-Schieberegister 54 verarbeitet
wird.
-
Wenn
ein Befehlswort durch die Subroutine 194 übertragen
wurde, und falls ein Panikbefehl vorhanden ist, die Schieberegister
vom Puffer wiederhergestellt wurden, so geht das Programm in einem Schritt 208 in
eine halbsekündige
Wartepause. Dies dient dazu, um sicherzustellen, dass aufeinander
folgende Tastenbetätigungen,
die unabhängig voneinander
sind, nicht zeitlich näher
beabstandet auftreten als eine halbe Sekunde auseinander. Während der Zeit,
von der der Computer durch einen Befehlsinterrupt (beim Test 172 bis
zum Ende der halbsekündigen
Warteperiode beim Schritt 208 aufgeweckt wurde, könnte ein
Schalterinterrupt als ein Ergebnis eines zweiten Drückens eines
der Schalter 12 bis 15 aufgetreten sein. Wie oben
beschrieben, ist dies höchstwahrscheinlich
der Fall eines Versuches, zwei Tasten gleichzeitig zu drücken (wie
zum Beispiel Schließen
und Öffnen),
wodurch ein Resynch verursacht wird. Immer, wenn der Tasteninterrupt
aktiviert ist, führt
das Schließen
einer der Schalter 12 bis 15 über einen Eingangspunkt 209 zur
Interruptroutine von 4.
In einer Reihe von Schritten 210 wird der spezielle Schalter,
der den aktuellen Interrupt verursacht hat, in Erinnerung dadurch
gehalten, dass er in das Schalterwort im RAM 20 OR-verarbeitet
wird; und da diese eine Aufforderung zur Resynchronisation sein
kann, wird eine interne Resynchflagge gesetzt. Der Zufallszähler wird
angehalten, um die Zufallszahl bereit zu stellen, die zur Resynchronisation verwendet
wird, und dann wird zu dem Teil des Programms von 3 übergegangen,
das gerade aktiv war, wenn der Interrupt nachgewiesen wurde. Dieser Übergang
kann zu jedem der funktionalen Schritte vor dem Warteschritt 108 sein
oder kann innerhalb des Warteschritts 208 erfolgen. Falls
der Warteschritt 208 durch einen Interrupt unterbrochen
wurde, so wird es tatsächlich
selbstverständlich
länger
als eine halbe Sekunde dauern, wenn das Zählen dafür beendet wird; dies ist ohne
Bedeutung.
-
Nachdem
die Wartedauer vorbei ist, ermittelt in 3 ein Test 211, ob die Resynchflagge
gesetzt wurde. Wenn dies der Fall ist, so erreicht ein positives Ergebnis
des Testes 211 einen Schritt 212, der die Resynchflagge
zurücksetzt,
und dann geht das Programm weiter zur Dekodierbefehlssubroutine 179. Wenn
beim Einschalten des Computers der erste Schalter, der gedrückt wurde,
entweder Schließen oder Öffnen war,
und der zweite Schalter, der gedrückt wurde und der den Schalterinterrupt
bewirkt, entweder Öffnen
oder Schließen
war, dann wird die Dekodierbefehlssubroutine tatsächlich einen
Resynchbefehl dekodieren, um eine Resynchoperation des oben beschriebenen
Typs zu bewirken. Falls nicht, kann irgendeine andere zweite Tastenfolge
in einen Sicherheitsschließbefehl
dekodiert werden oder in einen Panikbefehl, da der Panikbefehl die
Sicherheit nicht beeinträchtigt
oder sie könnte
die Rückkehr
in die halbsekündige
Warteperiode bewirken beim Schritt 208 oder auf andere
Art, wie es für
eine spezielle Implementierung der Erfindung geeignet ist. Falls
zwei Tasten, die einen Resynchbefehl bewirken können, im Wesentlichen gleichzeitig
gedrückt
werden, so dekodiert die Deko dierbefehlssubroutine selbstverständlich einen
Resynchbefehl ohne die Hilfe von 4 und
der Resynchflagge. Falls Schalter wiederholt in Intervallen von
weniger als einer halben Sekunde gedrückt werden, so enthält das Schalterwort
entweder Kauderwelsch oder wiederholt einfach den Resynchbefehl.
-
Nach
dem halbsekündigen
Warten beim Schritt 108, falls die Resynchflagge nicht
gesetzt wurde, bewirkt ein negatives Ergebnis des Tests 211 ein Schrittepaar 213,
um das Schalterwort ganz auf Null zurückzusetzen und um den Schaltinterrupt
zu deaktivieren, so dass alle zukünftigen Betätigungen der Schalter den Computer
nur aus seinem Anhaltezustand einschalten können, beim Test 172.
Es sollte betont werden, dass der Befehlsinterrupt und der Schalterinterrupt
auf die gleiche Sache antworten: das Betätigen irgendeines Schalters;
der Unterschied ist das Antwortverhalten des Mikroprozessors auf
diese, wie in der Technik wohl bekannt ist.
-
Es
wird angenommen, dass die Entschlüsselung von 5 in einem Mikroprozessor vom gleichen
allgemeinen Typ ausgeführt
wird, wie er im Schlüsselanhänger verwendet
wird. Beim Verbinden mit einer Batterie beginnt die Routine durch
einen Leistungs-Ein-Transferpunkt 214,
und der Prozessor geht sofort beim Schritt 215 in einen
Stoppmodus über,
in dem die Uhr aus ist und die einzige Funktion darin besteht, bei
einem Test 216 auf einen Empfängerinterrupt zu antworten.
Zwischen zwei Verwendungen bleibt der Prozessor im Automobil im
Stoppmodus in den Schleifen 215, 216. Wenn eine
eingehende Nachricht empfangen wird, erreicht ein positives Ergebnis
des Testes 216 eine Subroutine 217, welche das
Empfangen aller 64 Bits des vom Schlüsselanhänger übertragenen Wortes, das Berechnen des
Fehlerkorrekturcodes und das Festlegen jedes einzelnen Fehlers,
der festgelegt werden kann, handhabt. Dann bestimmt ein Test 218,
ob der Fehlerkorrekturcode korrekte Daten anzeigt. Falls dem nicht
so ist, erreicht ein negatives Ergebnis des Testes 218 einen
Transferpunkt 219 und dann einen Schritt 20, indem
das Programm gerade für
eine halbe Sekunde anhält.
Dies dient dem Zweck, alle Versuche, den Code durch wiederholte
Anwendung von Zahlen, mit oder ohne berechneten wahrscheinlichen
Kandidaten, zu knacken, stark zu erschweren. Nach dem halbsekündigen Warten
kehrt der Prozessor in der Schleife 215, 216 in
den Stoppmodus zurück.
-
Wenn
das eingehende Wort OK ist, gelangt ein positives Ergebnis des Testes 218 zu
einem Schritt 221, indem eine Arbeitszahl n gleich 4 gesetzt wird
(oder gleich einer anderen Zahl, als der Zahl der Schlüsselanhänger, die
mit dem Automobil in Zusammenhang stehen). Dann vergleicht eine
Subroutine 223 alle Bits der eingehenden ID-Zahl mit allen
Bits der ID-Zahl für
den Schlüsselanhänger 4.
Wenn sie nicht identisch sind, erreicht ein negatives Ergebnis eines
Testes 224 einen Schritt 225, indem n verringert
ist und ein Test 226 ermittelt, ob alle Schlüsselanhänger überprüft wurden
oder nicht. Falls sie überprüft wurden,
bedeutet dies, dass zufällig
ein Signal von einem Schlüsselanhänger eines
anderen Automobils empfangen wurde oder von irgendeiner anderen
nicht-autorisierten Quelle. Daher wird das positive Ergebnis des
Testes 226 als ein Fehlschlag angesehen und der Warteschritt 220 wird über den Wartetransferpunkt 219 erreicht.
Andernfalls wird die ID eines anderen Schlüsselanhängers in der Subroutine 222 überprüft. Angenommen,
dass die ID-Zahl für
einen der Schlüsselanhänger passt,
wird eine andere Arbeitszahl N gleich n gesetzt, um die Worte im PROM
und im RAM, die zur Entschlüsselung
benötigt werden,
in einem Schritt 227 zu identifizieren. Da das empfangene
Wort zu einem anderen Schlüsselanhänger als
dem Schlüsselanhänger N gehören kann, aber
dieselbe ID-Zahl haben kann, werden die Schieberegisterwerte für den Schlüsselanhänger N in
einem Puffer gespeichert, in einem Schrittepaar 228, so
dass sie wiederhergestellt werden können, falls die Authentisierung
fehl schlägt.
Dies ist auch deshalb notwendig, da, falls eine Panikoperation befohlen
wurde, die Iterationen der Schieberegister auf normale Weise fortlaufen,
nachdem der Panikbefehl gegeben wurde. Dann ermittelt ein Test 229,
ob das P/R im eingehenden Wort vorhanden war oder nicht. Wenn es
im eingehenden Wort vorhanden ist, so wird die Panik/Resynchentschlüsselungsroutine
von 6 über einen
Transferpunkt 213 erreicht.
-
In 6 stellen die ersten Schritte 232 ein Hauptarbeitsschieberegister
(SR) und seine Maske gleich dem geheimen Anfangswert bzw. der geheimen
Rückkopplungsmaske
für den
10-Bit-LFSR vom PROM 40 für den ausgewählten Schlüsselanhänger N und
ein C-Zähler wird
gleich 20 gesetzt, um 20 Iterationen zu bewirken. Dann wird eine
20-Iterations-LFSR-Subroutine 233 auf
dem 19-Bit-Schieberegister durchgeführt. Es wird angenommen, dass der
39-Bit-Abschnitt des verschlüsselten
Wortes des empfangenen 64-Bit-Wortes 38 sofort an einem 39-Bit-Schieberegisterplatz
innerhalb des RAMs 41 gespeichert wird, welche da ist,
wo es nun gefunden werden kann. Dann werden das verschlüsselte 39-Bit-Wort
im 64-Bit-Wort 38 und die geheime 39-Bit-Maske für den Schlüsselanhänger N an
das Schieberegister ausgegeben, und der C-Zähler wird für 39 Iterationen eingestellt
in einem Schritt 234. Dann wird eine bitweise Umkehr-LFSR-Iterations-Subroutine
durchgeführt,
welche beim Bit niedriger Ordnung nachsieht, um zu ermitteln, ob
die Bits, die der Maske entsprechen, geflippt werden sollten, bevor
sie zur nächsten
Position niedriger Ordnung im Schieberegister verschoben werden,
um das ursprüngliche
Wort vor der Entschlüsselung
wiederherzustellen. Nach jeder Iteration wird der C-Zähler in
einem Schritt 236 herabgesetzt und, wenn alle 39 Iterationen
durchgeführt
wurden, erreicht ein positives Ergebnis eines Testes 237 einen
Schritt 238, bei dem der Inhalt des Arbeitsschieberegisters
im 39 Bit-Schieberegister im RAM 41 gespeichert wird. Die Schritte
und Tests 235 bis 238 umfassen eine Umkehrzyklussubroutine 239,
welche den ursprünglichen,
nicht entschlüsselten
Wert der Konkatenation im 39 Bit-Schieberegister 69 im
Schlüsselanhänger wieder
herstellt.
-
Die
Bits 19 bis 38 des entschlüsselten
39 Bit-Schieberegisters werden nun in Schritten 242 in das
Arbeitsschieberegister geladen, die Maske für das Schieberegister wird
gleich der geheimen 20-Bit-Feedback-Maske für den Schlüsselanhänger N vom EE-PROM-40 gesetzt,
und C wird gleich 20 gesetzt, und eine 20 Iteration, Umkehr-LFSR-Zyklus-Subroutine 243 wird
durchgeführt,
um das zusammengesetzte Wort (ursprünglicher Wert plus Zufall)
wieder herzustellen. In einer Subroutine 244 erfolgt ein
bitweiser Vergleich der 30-Bit-Schieberegisterbits 37 bis 38 mit
den 12 Bits des geheimen 20-Bit-Anfangswerts
für Schlüsselanhänger N vom EE-PROM-40 und
der Bits 5 bis 18 des 39-Bit-Schieberegisters
mit den Bits 5 bis 18 des 19-Bit-Schieberegisters für Schlüsselanhänger N,
welche im RAM 41 aufgefunden werden. Dies entspricht dem
Vergleich der 12 Bits höherer
Ordnung auf den Strang von Leitungen 160 mit denjenigen
auf Leitung 161 und der 14 Bit auf der Leitung 128 mit
den 14 Bits auf den Leitungen 129 in 2. Wenn diese nicht identisch sind, ist
die Entschlüsselung
nicht erfolgreich, der versuchte Zugang ist fehlgeschlagen und ein
negatives Ergebnis eines Tests 246 erreicht einen Test 247,
um festzustellen, ob ein anderer Schlüsselanhänger eine Übereinstimmung mit der ID erreichen konnte;
wenn dies der Fall ist, wird über
einen Transferpunkt 248 auf 5 zurückgegriffen,
die Schieberegister für
den Schlüsselanhänger N werden
von den Puffern in den Schritten 249 (5) wiederhergestellt, und der Prozess
wird für
einen anderen Schlüsselanhänger wiederholt.
Wenn die IDs aller Schlüsselanhänger überprüft wurden,
so erreicht die Routine ein Schrittepaar 250, indem die
Schieberegister für
Schlüsselanhänger N auf
ihre früheren
Werte zurückgesetzt
werden und das Pro gramm über den
Transferpunkt 219 in die halbsekündige Wartepause bei Schritt 220 eintritt.
-
Falls
der Vergleich erfolgreich ist, was eine teilweise Authentisierung
anzeigt, erreicht ein positives Ergebnis des Testes 246 eine
Subroutine 252, in der der Wert im Befehlsregister 138 gleich
den Exklusiv-OR-verarbeiteten Bits niedriger Ordnung des 39-Bit-Schieberegisters
und der Bits niedriger Ordnung des 39-Bit-Schieberegisters gesetzt
wird, die beide vom RAM 41 entnommen werden. Dann ermittelt
ein Test 253, ob das Panik/Resynchbit in Antwort auf einen
Resynchbefehl erstellt wurde. Falls dem nicht so ist, wird ein Panikbefehl
durchgeführt,
indem die Lichter, die Hupe oder ein anderer Alarm des Automobils
in einem Schritt 254 eingeschaltet wird. Danach werden
die Schieberegister für
den Schlüsselanhänger N in
den Schritten 250 wiederhergestellt und über den
Transferpunkt 219 der Warteschritt 220 erreicht.
-
Falls
der Befehl ein Resynch wäre,
erreicht ein positives Ergebnis des Testes 253 eine Subroutine 255,
die Bits 19 bis 36 des 39-Bit-Schieberegisters (die wieder erzeugte
Zufallszahl) mit einer Reihe von zuvor verwendeten Zufallszahlen
im „First
in-/First out"-Stack (FIFO) 155 im
EE-PROM-40 vergleicht. Falls das Zufallswort eine Übereinstimmung
mit irgendeinem der letzten vier (oder beliebiger Größe je nach
Wahl des FIFO) Zufallswörtern
in der Reihe, die zur Resynchronisation verwendet wurden, zeigt,
so wird die Resynchronisation als nicht erfolgreich eingestuft,
da angenommen wird, dass es sich um eine verborgene Wiedergabe eines
kopierten Zufallswortes handelt. In solch einem Fall erreicht ein
positives Ergebnis eines Testes 256 eine Subroutine 257,
die den FIFO-Stack umordnet, indem das Zufallswort aus seiner Position
in der Reihe im FIFO-Stack
an dessen erste Position bewegt wird und die Position der anderen
Wörter
in der Reihe angepasst wird, ohne dass eines verloren geht. Und
da dies als ein nicht erfolgreicher Versuch zum Resynchronisieren der
Einheit angesehen wird, werden die alten Werte in den 19-Bit- und
20-Bit-Schieberegistern für
den Schlüsselanhänger N in
den Schritten 250 wiederhergestellt. Dann wird über den
Transferpunkt 219 der Warteschritt 220 erreicht.
-
Falls
das Zufallswort mit keinem Wort im FIFO eine Übereinstimmung zeigte, so liegt
eine vollständige
Authentisierung vor und ein negatives Ergebnis des Testes 256 erreicht
eine Subroutine 258, die den FIFO für den Schlüsselanhänger N einfach durch Addieren
der Bits 19 bis 26 des 39-Bit-Schieberegisters an die erste Stelle
in der Reihe umorientiert und alle anderen Worte darin nach unten
verschiebt, was bewirkt, dass das älteste Wort herausfällt. In
diesem Fall ist die Resynchoperation erfolgreich, so dass die Schritte 250 umgangen
werden und die Einstellung des 19-Bit-Schieberegisters für den Schlüsselanhänger N im
RAM so gelassen wird, wie sie bei der Subroutine 233 durch
die Resynchronisationsoperation eingestellt wurde. Das in der Subroutine 243 erzeugte
20-Bit-LSFR-Wort wird in das RAM für den Schlüsselanhänger N (Schritt 259)
für weitere
Verwendung platziert.
-
Resynchronisation
erfolgt nur nach: 20 Iterationen der 19- und 20-Bit-Schieberegister
aus ihren geheimen Anfangswerten und der Zufallszahl; Durchführen von
39 Iterationen im 39-Bit-Schieberegister mit diesen Werten und des
exklusiven ORs des Befehls; Rückiterationen
des verschlüsselten
39 Bit-Wortes im Empfängermodul,
Umkehr-Iteration der
20 Bits, die den geheimen Anfangswert des 20-Bit-Schieberegisters
und des Zufallszählers
beinhalten; Erzeugen und erfolgreicher Vergleich der Bits hoher
Ordnung des 19-Bit-Schieberegisters; und eines Fehlschlags des Vergleichs
des Zufallworts mit irgendeinem der letzten vier Zufallsworte, die
zur Resynchronisation des Systems verwendet wurden. Dies ist relativ
sicher.
-
Angenommen,
dass im 64-Bit-Wort, das empfangen wird, kein P/R-Bit 81 vorhanden
ist, so erreicht ein negatives Ergebnis des Testes 229 in 5 die normale Befehlsentschlüsselungsroutine
von 7 über einen
Transferpunkt 261. Im normalen Befehlsentschlüsselungsprozess
werden die iterierten 19- und 20-Bit-Wörter im RAM 20 ein
bis drei zusätzlichen
Iterationen unterzogen und mit den umkehrverarbeiteten Bits des
verschlüsselten 39-Bit-Wortes
verglichen. Da die Tasten des Schlüsselanhängers gedrückt sein können, wenn das Auto nicht darauf
antworten kann, können
sie unsynchronisiert werden, wie oben beschrieben wurde. Jedes Mal,
wenn ein Befehl im Empfängermodul 30 empfangen
wird, werden ihm 256 Versuchszyklen erlaubt, um auf ein korrektes
Wortpaar zu iterieren, das mit jenen übereinstimmt, welche zu ihm übertragen worden
sind. Wenn dies der Fall ist, dann wird dem Befehl geantwortet und
die iterierten Werte werden zur Authentisierung des nächsten Befehls
gespeichert. Wenn nicht, ist Resynchronisation erforderlich, wie
oben beschrieben. Um auf dem Laufenden zu bleiben, wie viele Versuche
gemacht wurden, wird der Versuchszähler 143 auf seinen
Maximalwert in einer ersten einer Reihe von Schritten 262 gesetzt. Dann
wird das Arbeitsschiebere gister SR gleich dem 39-Bit-Schieberegister
im RAM 20 gesetzt, welches das verschlüsselte 39-Bit-Wort beinhaltet.
Die Maske für
das Schieberegister wird gleich der geheimen 39-Bit-Rückkopplungsmaske
im EE-PROM-40 gesetzt, der C-Zähler wird gleich 29 gesetzt
und eine Umkehr-LFSR-Zyklus-Subroutine 267 wird durchgeführt. Dann
bewirkt eine Reihe von Schritten 271, dass der Inhalt des
20-Bit-Schieberegisters für
den Schlüsselanhänger N aus
dem RAM 41 in das Arbeitsschieberegister (SR) geladen wird,
die Maske für
das Schieberegister gleich der geheimen Rückkopplungsmaske für den Schlüsselanhänger im EE-PROM-40 gesetzt
wird und ein Zufallsbit gleich dem Bit oder den Bits gesetzt wird,
welche auch immer für
das 20-Bit-Schieberegister gewählt
wurden (wie unter Bezugnahme auf die Fig. 199 in 3 beschrieben wurde). Dann
werden die Zufallsbits in einem Schrittepaar 262 getestet
und, falls beide eine 1 sind, wird der C-Zähler
gleich 1 gesetzt (Schritt 273), falls beide eine 1 sind,
wird der C-Zähler
gleich 2 gesetzt (Schritt 274), und andernfalls wird der
C-Zähler gleich
3 gesetzt (Schritt 274a). Dann wird eine LFSR-Zyklus-Subroutine 275 durchgeführt. Dann
bereiten eine Reihe von Schritten und Tests 276 bis 279 vor,
dass eine LFSR-Zyklus-Subroutine 280 für das 19-Bit-Schieberegister
auf ähnliche
Weise läuft. Dann
macht eine Subroutine 284 Bit für Bit Vergleiche zwischen dem
39 Bit-Schieberegister und dem 20-Bit-Schieberegister und den Bit-Positionen
höherer
Ordnung des 19-Bit-Schieberegisters für Schlüsselanhänger N. Wenn alle diese Bits
gleich sind, bewirkt ein positives Ergebnis eines Testes 285,
dass der spezielle Befehl, der durch Exklusiv-OR-Verarbeiten der
fünf Bits
niedriger Ordnung in einer Subroutine 286 gefunden wird,
und der Befehl wird in einem Schritt 287 durchgeführt, wie
zum Beispiel Schließen
oder Öffnen
der Tür
oder Öffnen
des Kofferraumdeckels. Wenn aber die Bits nicht übereinstimmen, so erreicht
ein negatives Ergebnis des Testes 285 einen Schritt 288,
in dem der Versuchszähler herabgesetzt
ist und eine Test 289 durchgeführt wird, um zu ermitteln,
ob bereits 256 Versuche durchgeführt
wurden. Falls nicht, wird ein weiteres Iterationspaar 275, 280 durchgeführt und
verglichen. Dies geht so lange, bis das Empfängermodul 30 den Schlüsselanhänger 16 einholt
(falls es das kann). Falls nach 256 Versuchen keine Übereinstimmung
erreicht wurde, erreicht ein positives Ergebnis des Testes 289 einen
Test 290, um zu überprüfen, ob
alle Schlüsselanhänger berücksichtigt
wurden. Falls nicht, werden die Wiederherstellungsschritte 249 (5) über den Transferpunkt 248 erreicht.
Andernfalls werden die Schieberegister für den Schlüsselanhänger N in den Schritt 292 auf
ihre Startwert wiederhergestellt und das Programm kehrt über den
Transferpunkt 219 in den Warteschritt 220 (5) zurück.
-
In 8 verwendet eine alternative
Zufallsiteration ein Paar von Bits aus dem Zufallszähler, um die
Anzahl von Iterationen der 20 Bit-Schieberegisteroperation zu bestimmen
und eines dieser Bits, um die Anzahl von Iterationen bei der 19
Bit-Schieberegisteroperation
zu bestimmen. In einem Satz von Schritten 199 (anstelle
der Schritte und Tests 199 bis 202a von 3 werden die zwei Bit-Positionen
(0, 1) niedriger Ordnung des Zykluszählers C gleich den ausgewählten Bits
(3 und 6 bei diesem Beispiel) des Zufallzählers gesetzt und der Zähler erhöht, um sicher
zu stellen, dass nullwertige Bitpaare zu keiner Iteration führen. Auf ähnliche
Weise ersetzen Schritte 204a Schritte und Tests 204 bis 207,
um eine oder zwei Iterationen bei der 19 Bit-Operation bereit zu stellen.
In 9 findet sich die
Zufallszahl am Kopf der Reihe im FIFO-Speicher (40) des Schlüsselanhängers N.
Schritte 271a ersetzen Schritte und Tests 271 bis 274a und
Schritte 276a ersetzen Schritte und Tests 276 bis 279.
Bei dieser Ausführungsform
ist die Anzahl von Iterationen in jedem Fall um 1 höher (1 bis
4; 1 oder 2) als der Wert des Bits oder der Bits (die zusammen als
Bits niedriger Ordnung gelten), die aus dem Zufallszähler ausgewählt werden.
Jedoch können
auch weniger Wahlmöglichkeiten
der Anzahl von Iterationen als des Bands auf Zufallszählerbits verwendet
werden, so wie bei Tests 200 und 272 oder mittels
irgendeines anderen Dekodierens. Selbstverständlich können mehr Bits und höhere Zahlen
verwendet werden.
-
Bei
einem System, das nur ein oder zwei Schlüsselanhänger verwendet oder bei dem
die Geschwindigkeit der Antwort nicht wichtig ist, kann das System
ohne die Verwendung von ID-Zahlen verwendet werden, indem einfach
alle Sätze
von gespeicherten Schieberegisterworten und Masken durchprobiert
werden; dies würde
das System mehr störenden
Iterationen unterwerfen, da die ID-Zahl nicht länger viele Transmissionen von ähnlichen,
nicht autorisierten Systemen ausblendet. Und es muss eine Art von
Kennzeichnung vorhanden sein, um die erzeugten Pseudozufallsworte
mit den korrekten Rückkopplungsmasken
für nachfolgende
Iterationen zu korrelieren, sowie mit dem korrekten Anfangswert. Dies
kann durch willkürliches
Zählen
der verschiedenen Sätze
von Anfangswerten und Masken und entsprechenden Registern zum Speichern
der iterierten Worte erreicht werden.
-
Die
unterschiedliche Anzahl von Iterationen, die während der Synchronisation verwendet
werden, kann dieselbe sein (zum Beispiel 20 oder mehr) für beide
Zufallswörter,
die aus Anfangswerten erzeugt wurden oder können unterschiedlich sein (zum
Beispiel 20 und 19 oder mehr).
-
Der
Ausdruck "Verschlüsselung", so wie er hier
verwendet wird, definiert inhärent
einen Prozess, der zur Entschlüsselung
in der Lage ist. Wenn daher der Prozess des Verschlüsselns eine
Pseudozufallszahl einer Erzeugungsoperation irgendeines Typs verwendet,
so muss diese Erzeugungsoperation so ausgebildet sein, dass sie
in umgekehrter Richtung durchgeführt
werden kann, so wie die Umkehr-LFSR-Operation, die hierin verwendet
wird. Die Verschlüsselungsprozesse
und Operationen, die hierin verwendet werden, können solche sein, die zuvor
beispielhaft beschrieben wurden und auch andere. Allerdings ist
die LFSR-Pseudozufallszahlerzeugungsoperation eine derjenigen, die
einfacher zu verstehen ist und wahrscheinlich diejenige, die in
zweckbestimmter oder quasi-zweckbestimmter Hardware am einfachsten
zu implementieren ist. Das heißt,
falls die Signalverarbeitungseinrichtung der Erfindung zweckbestimmte
Schieberegister und ähnliches
als durch 1 und 2 implementiert sein kann,
kann die LFSR-Form der Verschlüsselung
bevorzugt sein. Falls ähnlich
die Signalverarbeitungseinheit der vorliegenden Erfindung mit Mikroprozessoren
implementiert ist, die geeignete Programmroutinen aufweisen, wie
hier in 3 bis 7 offenbart ist, so kann
der Vorteil von LFSR-Operationen über andere
Formen der Verschlüsselung
weniger ausgeprägt
sein. Der Ausdruck "Verschlüsselung" wird somit hier
in seiner breitesten Bedeutung verwendet, solange das Wort, das
verschlüsselt
wird, durch Entschlüsselung
wiederhergestellt werden kann.
-
Bei
den vorangehenden Ausführungsformen sind
die geheimen Anfangswerte und geheimen Rückkopplungsmasken zum Erzeugen
von Sequenzen von Pseudozufallszahlen mit maximaler Länge im Wesentlichen
einzigartig für
jeden Transmitter, aber nicht notwendigerweise absolut einzigartig.
Damit ist gemeint, dass die Sätze
von zwei geheimen Anfangswerten und drei geheimen Rückkopplungsmasken,
zusammen genommen, in der Lage sind, mehr Fahrzeuge zu unterscheiden
als während
eines Lebens hergestellt werden; allerdings kann das Verfahren der
Zuordnung oder menschlicher Fehler oder dies sein, zu einigen wenigen
gleichen Sätzen
von Zahlen führen.
Mit dieser Definition ist es aber gut möglich, dass einige Transmitter
denselben geheimen 19-Bit-Anfangswert
und/oder dieselbe geheime 20-Bit-Maske haben oder vergleichbare
Kombinationen. Im Gegensatz dazu bedeutet das Verwenden einer 16-Bit- Identifikationsnummer,
dass es jedes Jahr einige Schlüsselanhänger gibt,
die möglicherweise dieselbe
Identifikationsnummer (aber nicht dieselben Geheimwerte) aufweisen,
so dass dies im Laufe der Zeit viele Schlüsselanhänger sein können (zum Beispiel etwa 5000
Schlüsselanhänger in
den Vereinigten Staaten über
einen 10-Jahres-Zeitraum
für jede mögliche Identifikationsnummer.
Im Rahmen statistischer Wahrscheinlichkeit ist es möglich, dass
bis zu eines von 10000 Autos mit vier Schlüsselanhängern jedes zwei Schlüsselanhänger mit
derselben Identifikationsnummer haben kann. Es ist ein wichtiger
Aspekt der vorliegenden Erfindung, dass, selbst wenn ein Schlüsselanhänger eine
korrekte Identifikationsnummer aufweist und nicht innerhalb von
256 Versuchen (oder welche Grenze auch immer verwendet wird) authentisiert
ist, nichtsdestotrotz irgendein anderer Schlüsselanhänger mit derselben ID-Nummer zugelassen
wird. Falls das Probieren von drei oder vier Schlüsselanhängern zu
zu großer
Verzögerung führt, so
wird der zuletzt ausprobierte Schlüsselanhänger als fehlerhaft berichtet
und ein neuer Schlüsselanhänger ausgegeben,
mit sehr geringer Wahrscheinlichkeit, dass der neue Schlüsselanhänger dieselbe
Identifikationsnummer wie die verbleibenden Schlüsselanhänger im Satz aufweisen wird.
-
Bei
der vorliegenden Ausführungsform
ist jede Verschlüsselung
(wie zum Beispiel die 19-Bit-, die 20 Bit- und die 39 Bit-Schieberegisterverschlüsselung)
dieselbe (Linearrückkopplungsschieberegisterpseudozufallszahlerzeugung).
Jedoch müssen nicht
alle identisch sein und tatsächlich
können
unterschiedliche Algorithmen verwendet werden, um jeden Versuch
einer Analyse weiter zu erschweren. Ähnlich kann die Anzahl von
Bits in den Schieberegistern jeden erwünschten beliebigen Wert annehmen.
In allen Fällen
gilt: je größer die
Anzahl von Bits, desto schwerer wird das Knacken des Codes durch Analyse.
Die Zahlen, die hier verwendet werden, sorgen für ein sicheres System, aber,
falls erwünscht, können höhere oder
geringere Anzahlen von Bits gewählt
werden, um die Erfindung in die Praxis umzusetzen. Auf ähnliche
Weise können
die Wörter
als einzelne Wörter
angesehen werden oder als doppelte Wörter in dem Sinne, dass das
19-Bit-Schieberegister
einen Teil von 14 Bits erzeugt, die zur kryptographischen Authentisierung
verwendet werden und ein anderer Teil, der den Befehl trägt, aber
nicht beim kryptographischen Vergleich zur Authentisierung verwendet
wird. Diese Teile können
als zwei unterschiedliche Wörter
angesehen werden, abgesehen von der Tatsache, dass sie bei der hierin
beschriebenen Ausführungsform
beim selben Prozess erzeugt werden. Selbstverständlich könnten separate Prozesse verwendet
werden oder zwei Prozesse mit einer unterschiedlichen Aufteilung
von Zahlen von Bits könnten
verwendet werden, um zu verschlüsseln
und die Verschlüsselung
des Wortes zu iterieren, in welcher die Befehlbits gefunden werden.
Zum Beispiel könnte
anstelle einer einzigen 19-Bit-Schieberegisteroperation
eine 10-Bit-Schieberegisteroperation und eine 9-Bit-Schieberegisteroperation
verwendet werden, deren Ergebnisse verknüpft werden, und 5 Befehlbits
in einen Teil von einen von ihnen Exklusiv-OR-verarbeitet werden
können,
bevor sie zur endgültigen
Verschlüsselung
verarbeitet werden können.
-
Bei
den offenbarten Ausführungsformen kann
die 20-Bit-Schieberegisteroperation eine bis fünf Iterationen durchführen, abhängig vom
zufälligen
Auftreten eines Bitpaars innerhalb des Registers oder eines Paares
von zufälligen
Bits. Auf ähnliche Weise
kann die 19 Bit-Schieberegisteroperation eine bis drei Iterationen
verwenden, abhängig
von einem seiner Bits oder einem Zufallsbit. Im allgemeinen Fall können diese
Zahlen auch umgekehrt sein, identisch sein, voneinander abhängig sein
oder irgendwelche Pseudozufallsereignisse sein, die im Empfänger dupliziert
werden können,
und/oder jeder von ihnen kann größer sein,
vorausgesetzt, dass Zeiteinschränkungen
nicht eine größere Zahl
von Iterationen verbieten und dass jede mögliche Bedingung zu wenigstens
einer Iteration führt.
Es sollte angemerkt werden, dass die geringe Zahl von Iterationen
nicht wichtig wäre,
wäre es
nicht wegen der Tatsache, dass bei jeder gegebenen Transmission
der Empfänger
256 Versuche durchführen
darf, um iterativ den Verschlüsselungsprozess
für einen
gegebenen Transmitter (oder für
einige Transmitter) aufzuholen. Es wird sogar mehr Flexibilität erreicht,
wenn die variablen Iterationen im Pseudozufallsgenerator in anderen Umgebungen
als in Transmitter/Empfängerumgebungen
(wie zum Beispiel Computerprozessen) verwendet werden.
-
Somit
sollte für
Fachleute auf dem Gebiet der Technik klar sein, dass, obwohl die
Erfindung bezüglich
exemplarischer Ausführungsformen
dargestellt und beschrieben wurde, die vorangehenden und verschiedene
andere Änderungen,
Auslassungen und Hinzufügungen
gemacht werden können,
ohne vom Umfang der Erfindung abzuweichen, wie sie in den nachfolgenden
Patentansprüchen
beansprucht wird.
-
Wir
beanspruchen: