Для правильного функціонування кодові коди вимагають декількох деталей. Тут я опишу загальну реалізацію, яка використовує всі частини певним чином. Інші системи є варіантами на цю тему, але зазвичай використовують багато однакових методик подібним чином. Замість того, щоб спробувати описати повну реалізацію та те, як вона працює одразу, я опишу просту систему та додаю складності, поки ми не досягнемо криптографічно захищеної системи.
Некриптографічний прокатний код - це просто передавач і приймач, які обидва використовують один і той же псевдогенератор випадкових чисел (PRNG). Цей генератор має дві важливі відомості: обчислення та попередньо створене число. Обчислення, як правило, є лінійним рівнянням зворотного зв'язку, яке може бути представлене одним числом. За допомогою подачі PRNG з попереднім номером та збереження номера зворотного зв'язку однаковим генерується певна послідовність чисел. У послідовності немає повторних послідовностей, поки вона не пройде через кожне число, яке вона може генерувати, а потім вона починається заново з тієї ж послідовності.
Якщо і дистанційний, і передавач знають номер зворотного зв'язку та поточне число, тоді, коли пульт передає наступне число, приймач може перевірити його на власному генераторі. Якщо він відповідає, він активується. Якщо цього не відбувається, він прокручує послідовність, поки не знайде номер, який віддалено надіслав. Якщо ви знову натиснете пульт, він повинен збігатися, і він активується, оскільки попередня передача вже синхронізувала генератори чисел. Ось чому іноді доводиться натискати кнопку розблокування двічі - ваш приймач або передавач не синхронізовані.
Ось така частина коду. Якщо PRNG досить довгий, дуже важко знайти номер зворотного зв’язку без багатьох цифр у послідовності підряд, що важко отримати при звичайному використанні. Але це не криптографічно безпечно.
Крім цього, ви додаєте типове шифрування. Виробник транспортного засобу використовує спеціальний секретний ключ для передавача та приймача. Залежно від виробника, ви можете виявити, що кожна модель та рік мають різний код, або вони можуть ділитися кодом між декількома моделями транспортних засобів та протягом кількох років. Вигода полягає в тому, що для кожного з них потрібен інший пульт дистанційного зберігання, але проблема спільного використання коду для багатьох моделей полягає в тому, що якщо його зламають, то більше автомобілів вразливі.
За шифруванням у вас є інформація про кнопки, номер, створений PRNG, і трохи інформації про номер відгуку. Не достатньо, щоб зробити PRNG з нуля, але достатньо, щоб після певної кількості натискання кнопок, а також з деякою внутрішньою інформацією про обмежений простір номер зворотного зв'язку може включати (знову ж, виробник, конкретний рядок), то приймач може після декількох тренувань передачі, визначте номер зворотного зв'язку та почніть відстежувати PRNG для цього пульта.
Код прокату призначений лише для зупинки атак повторного відтворення. Шифрування призначене для забезпечення коду, що прокручується, щоб уникнути його порушення. З одним або іншим систему зламати було б занадто просто. Оскільки виробник контролює і передавач, і приймач, навчання не включає криптографію з відкритим ключем або щось, що особливо стосується. Це також заважає людям післяпродажної торгівлі працювати в автомобілях із таким типом системи.
Ролінг-код, однак, не є непроникним. Стара система келока була успішно атакована лише кілька років тому (після десятиліття використання), тому код шифрування виробника можна знайти, а кодові коди можна знайти легше. Раніше це було здійснено напад, який дозволяв людям брати транспортні засоби, фактично не порушуючи код. У відповідь новий ключ шифрування - 60 біт. Не настільки безпечна, як багато сучасних систем шифрування, але достатньо безпечна, що вона, ймовірно, прослужить ще багато років, перш ніж її зруйнують.