В настоящее время алгоритм Keeloq принят во всем мире и положен в основу тестовых критериев для систем безопасности в Великобритании, адаптирован рядом европейских производителей и использован в собственных системах, разработанных "Форд" (для Escort) и "Ягуар" (для XJS).
В 1995 году фирма MICROCHIP приобрела отделение Keeloq у фирмы Nanoteq вместе с лицензионными правами. Теоретические разработки Nanoteq в сочетании с производственными мощностями и техническими возможностями MICROCHIP (работа изделий при низких напряжениях и высокая надежность EEPROM) позволили реализовать новый ряд компактных микросхем контроля доступа, простых для пользователя, но изощренных для взломщика.
Сканеры и грабберы. Необходимость разработки алгоритма Keeloq была вызвана растущими возможностями техники сканеров и грабберов при вскрытии объектов типа автомобилей и гаражей, охраняемых системами с фиксированным кодом.
Грабберы способны перехватывать фиксированное сообщение, передаваемое брелоком по радио, записывать и воспроизводить на той же частоте. В отличие от них сканеры передают последовательные или случайные коды со скоростью порядка 10 в секунду. Лучший способ защиты от сканера - отключение приемника на несколько минут после ряда попыток передачи ложных кодов, что значительно увеличивает время взлома. Другая мера - огромное количество кодовых комбинаций, требующее большого времени для перебора. Этот путь и использует Keeloq, имеющий 4,6 миллиарда кодовых комбинаций и требующий для перебора около 15 лет.
Алгоритм Keeloq. В основу алгоритма положен псевдослучайный "прыгающий" код, так что никто, кроме "своего" приемника, не может предсказать, какой код должен быть передан в следующий раз. "Прыгающий" код генерируется кодером по лицензированному алгоритму на основе 64-битного кода "ключа", 28-битного серийного номера и 16-битного счетчика синхронизации. Код "ключа" программируется пользователем в EEPROM кодера. Серийный номер уникален и задается в процессе производства. Приемники и передатчики Keeloq работают в последовательном коде с посылкой длиной 66 или 69 бит (рис.1), состоящей из кодированной "прыгающей" части в 32 бита, 28 бит серийного номера, 4 бит пользователя (состояние кнопок), 1 бита индикации разряда батареи и для ряда устройств - контрольной суммы CRC.
Состав семейства Keeloq. Семейство Keeloq состоит из ряда микросхем взаимно-совместимых кодеров (табл.1) и декодеров (табл.2), различающихся функциональными возможностями. Они разработаны для передачи защищенной информации по любому каналу связи: проводному, радиоканалу, ИК; с ШИМ или Манчестерской модуляцией. Кроме однонаправленной передачи пароля кодером декодеру возможен и двунаправленный обмен типа запрос - ответ типа IFF (Identification Friend or Foe). При таком типе обмена на каждый из нескольких последовательных запросов декодер должен получить отличные друг от друга, но правильные ответы кодера, что значительно повышает общую надежность системы безопасности. Двунаправленный обмен реализован в микросхеме кодера HCS410 при работе в режиме транспондера, то есть с питанием от энергии электромагнитного поля, наведенного генератором декодера (по принципу Proximity Card).
Рассинхронизация ключа и замка. Все системы дистанционного доступа, требующие синхронизации кодов приемника (кодера) и передатчика (декодера), имеют одно узкое место - часто возможна активация передатчика вне радиуса действия приемника. В этом случае синхронизация нарушается, так как все последующие принятые коды будут отличаться от ожидаемых декодером и устройство не сработает. Большинство подобных систем потребует специальной процедуры синхронизации, часто неудобной для пользователя.
У Keeloq эта проблема решена - процесс восстановления синхронизации автоматический и незаметен для пользователя. Достигнуто это двумя мерами: во-первых, декодер реагирует не только на первый ожидаемый код, но и на некоторое количество кодов, например 14, которые должны следовать далее. Таким образом, если передатчик 14 раз сработал вне зоны действия приемника, то на 15 раз, оказавшись уже в зоне приема, он вызовет правильное срабатывание устройства. Действующие коды называются "окном валидности". При ширине окна 15 кодов и общем количестве возможных комбинаций более 4,5 миллиарда риск случайного несанкционированного доступа возрастает очень незначительно. Ширина "окна валидности" - величина, программируемая пользователем и выбираемая оптимальной для конкретного канала связи и требований к безопасности.
Во-вторых, восстановление синхронизации в большем диапазоне кодов, достаточном для любых применений и без потери секретности, достигнуто следующим образом: декодер сравнивает два последовательных полученных кода, находящихся вне "окна валидности", с ожидаемыми, но в пределах большего окна - "окна ресинхронизации", и только если оба совпадут, устройство сработает. На практике это может выглядеть так: владелец машины с помощью радиобрелока безуспешно пытается снять ее с сигнализации на большом расстоянии или из-за преграды, пока чувствительности приемника еще не хватает; когда же очередная посылка оказывается принятой декодером, то она не вызывает его срабатывания из-за рассинхронизации. Однако уже следующая попытка владельца приводит к успеху, так как два последовательных кода оказались правильными. Восстановление синхронизации Keeloq требует только одной дополнительной попытки.
Удачи Вам! И чтоб не обстреляли!