Kody kroczące wymagają kilku części do poprawnego działania. Tutaj opiszę ogólną implementację, która wykorzystuje wszystkie części w określony sposób. Inne systemy są odmianami tego tematu, ale generalnie stosują wiele takich samych technik w podobny sposób. Zamiast próbować opisać pełną implementację i sposób jej działania od razu, opiszę prosty system i dodam złożoność, dopóki nie osiągniemy systemu kryptograficznie bezpiecznego.
Niekryptograficzny zmienny kod to po prostu nadajnik i odbiornik, które używają tego samego generatora liczb pseudolosowych (PRNG). Ten generator zawiera dwie ważne informacje: obliczenia i poprzednio wygenerowaną liczbę. Obliczenie jest ogólnie równaniem liniowej informacji zwrotnej, które można przedstawić za pomocą pojedynczej liczby. Po zasileniu PRNG poprzednim numerem i utrzymaniu tego samego numeru sprzężenia zwrotnego generowana jest określona sekwencja liczb. Sekwencja nie ma powtarzanych sekwencji, dopóki nie przejdzie przez każdą liczbę, którą może wygenerować, a następnie zaczyna się od nowa z tą samą sekwencją.
Jeśli zarówno zdalny, jak i nadajnik znają numer zwrotny i bieżący numer, wówczas gdy pilot przesyła następny numer, odbiornik może przetestować go na własnym generatorze. Jeśli pasuje, aktywuje się. Jeśli nie, przewija sekwencję, aż znajdzie numer wysłany przez pilota. Jeśli ponownie naciśniesz pilota, powinien on pasować i uaktywni się, ponieważ poprzednia transmisja zsynchronizowała już generatory liczb. Dlatego czasami trzeba dwukrotnie nacisnąć przycisk odblokowania - odbiornik lub nadajnik nie są zsynchronizowane.
To krocząca część kodu. Jeśli PRNG jest wystarczająco długi, bardzo trudno jest znaleźć numer zwrotny bez wielu liczb w sekwencji z rzędu, co jest trudne do uzyskania w normalnym użyciu. Ale to nie jest kryptograficznie bezpieczne.
Ponadto dodajesz typowe szyfrowanie. Producent pojazdu używa specjalnego tajnego klucza do nadajnika i odbiornika. W zależności od producenta może się okazać, że każdy model i rok mają inny kod, lub mogą udostępniać kod kilku modelom pojazdów i przez kilka lat. Kompromis polega na tym, że każdy z nich wymaga zapasu innego pilota, ale problem z udostępnianiem kodu w wielu modelach polega na tym, że jeśli zostanie zepsuty, więcej samochodów będzie podatnych na atak.
Za szyfrowaniem masz informacje o przycisku, wygenerowany numer PRNG i trochę informacji o numerze zwrotnym. Nie wystarczy, aby PRNG od zera, ale wystarczy, że po pewnej liczbie naciśnięć przycisków i przy pewnych wewnętrznych informacjach o ograniczonej przestrzeni numer zwrotny może obejmować (ponownie, producent, specyficzny dla linii), wtedy odbiornik może po kilku szkoleniach transmisje, określ numer opinii i rozpocznij śledzenie PRNG dla tego pilota.
Kroczący kod ma jedynie na celu powstrzymanie ataków z powtórkami. Szyfrowanie ma na celu zabezpieczenie ruchomego kodu, aby uniknąć jego złamania. Z jednym lub drugim systemem byłoby zbyt łatwo złamać. Ponieważ producent kontroluje zarówno nadajnik, jak i odbiornik, szkolenie nie obejmuje kryptografii klucza publicznego ani niczego szczególnie zaangażowanego. Zapobiega również pracy breloków na rynku wtórnym w samochodach wyposażonych w tego typu systemy.
Jednak ciągły kod nie jest nieprzepuszczalny. Stary system keeloq został skutecznie zaatakowany zaledwie kilka lat temu (po dekadzie użytkowania), dzięki czemu można znaleźć kod szyfrujący producenta, a kody zmienne można łatwiej znaleźć. Wcześniej został zaatakowany w sposób, który pozwalał ludziom zabierać pojazdy bez faktycznego łamania kodu. W odpowiedzi nowy klucz szyfrowania ma 60 bitów. Nie tak bezpieczny, jak wiele nowoczesnych systemów szyfrowania, ale wystarczająco bezpieczny, aby prawdopodobnie trwał jeszcze wiele lat, zanim się zepsuje.