Rollende Codes erfordern mehrere Teile, um korrekt zu funktionieren. Hier beschreibe ich eine generische Implementierung, die alle Teile auf eine bestimmte Weise verwendet. Andere Systeme sind Variationen dieses Themas, verwenden jedoch im Allgemeinen viele der gleichen Techniken auf ähnliche Weise. Anstatt zu versuchen, die vollständige Implementierung und ihre Funktionsweise auf einmal zu beschreiben, beschreibe ich ein einfaches System und füge Komplexität hinzu, bis wir ein kryptografisch sicheres System erreichen.
Ein nicht kryptografischer Rolling Code ist einfach ein Sender und ein Empfänger, die denselben Pseudozufallszahlengenerator (PRNG) verwenden. Dieser Generator enthält zwei wichtige Informationen: eine Berechnung und die zuvor generierte Zahl. Die Berechnung ist im Allgemeinen eine lineare Rückkopplungsgleichung, die durch eine einzelne Zahl dargestellt werden kann. Indem der PRNG mit der vorherigen Nummer gespeist wird und die Rückmeldungsnummer gleich bleibt, wird eine bestimmte Folge von Nummern erzeugt. Die Sequenz hat keine wiederholten Sequenzen, bis alle von ihr generierten Zahlen durchlaufen wurden, und beginnt dann erneut mit derselben Sequenz.
Wenn sowohl die Fernbedienung als auch der Sender die Rückmeldungsnummer und die aktuelle Nummer kennen, kann der Empfänger diese beim Senden der nächsten Nummer an seinem eigenen Generator testen. Wenn es übereinstimmt, wird es aktiviert. Wenn dies nicht der Fall ist, wird die Sequenz durchlaufen, bis die von der Fernbedienung gesendete Nummer gefunden wurde. Wenn Sie die Fernbedienung erneut drücken, sollte sie übereinstimmen, und sie wird aktiviert, da die vorherigen Übertragungen die Nummerngeneratoren bereits synchronisiert haben. Aus diesem Grund müssen Sie die Entriegelungstaste manchmal zweimal drücken - Ihr Empfänger oder Ihr Sender sind nicht synchron.
Das ist der rollende Teil des Codes. Wenn der PRNG lang genug ist, ist es sehr schwierig, die Rückmeldungsnummer ohne viele Zahlen in der Sequenz in einer Reihe zu ermitteln, was bei normaler Verwendung schwierig ist. Aber es ist nicht kryptografisch sicher.
Darüber hinaus fügen Sie eine typische Verschlüsselung hinzu. Der Fahrzeughersteller verwendet einen bestimmten geheimen Schlüssel für Sender und Empfänger. Abhängig vom Hersteller kann es sein, dass jedes Modell und jedes Jahr einen anderen Code hat oder dass der Code für mehrere Fahrzeugmodelle und über mehrere Jahre hinweg gilt. Der Nachteil ist, dass für jede Fernbedienung ein anderer Vorrat benötigt wird. Das Problem beim Teilen eines Codes über viele Modelle besteht jedoch darin, dass bei einem Defekt mehr Autos anfällig sind.
Hinter der Verschlüsselung stehen Button-Informationen, die vom PRNG generierte Nummer und ein paar Informationen zur Rückmeldungsnummer. Nicht genug, um das PRNG von Grund auf neu zu erstellen, aber genug, um nach einer bestimmten Anzahl von Tastendrücken und mit einigen Insiderinformationen über den begrenzten Platz eine Rückmeldungsnummer zu erhalten (wiederum herstellerspezifisch, leitungsspezifisch), dann kann der Empfänger nach mehreren Schulungen Senden, ermitteln Sie die Rückmeldungsnummer und beginnen Sie mit der Verfolgung des PRNG für diese Fernbedienung.
Der fortlaufende Code soll nur Wiederholungsangriffe stoppen. Die Verschlüsselung soll den laufenden Code sichern, um zu verhindern, dass er beschädigt wird. Mit nur dem einen oder anderen wäre das System zu leicht zu brechen. Da der Hersteller sowohl den Sender als auch den Empfänger steuert, umfasst die Schulung keine Kryptografie mit öffentlichen Schlüsseln oder etwas Besonderes. Es verhindert auch, dass Aftermarket-Anhänger in Autos mit dieser Art von System arbeiten.
Rolling Code ist jedoch nicht undurchlässig. Das alte Keeloq-System wurde erst vor einigen Jahren (nach einem Jahrzehnt der Nutzung) erfolgreich angegriffen, sodass der Verschlüsselungscode des Herstellers und die fortlaufenden Codes leichter gefunden werden können. Früher wurde es auf eine Weise angegriffen, die es Menschen ermöglichte, Fahrzeuge zu nehmen, ohne den Code zu verletzen. Als Antwort lautet der neue Verschlüsselungsschlüssel 60 Bit. Nicht so sicher wie viele moderne Verschlüsselungssysteme, aber sicher genug, dass es wahrscheinlich noch viele Jahre dauern wird, bis es kaputt geht.