Keeloq-кодер HCS200

Дмитрий Денисов | Электроника

Как я уже писал ранее, практически все существующие системы безопасности с дистанционным управлением (преимущественно это касается систем с односторонним управлением) используют для передачи команд управления алгоритм Keeloq. Очень много систем и сейчас используют в радиобрелках готовые кодеры, такие как HCS200 или его последующие модификации – HCS300, HCS301. Суть всех этих кодеров одна – они при каждом нажатии на кнопку формируют уникальный динамический код. В этом посте я более подробно опишу работу кодера HCS200. Это позволит, на мой взгляд, более полно понять, как все это работает.

Итак, кодер HCS200, компании Microchip Technology Inc., является кодером с динамическим (прыгающим) кодом, разработанный для систем Remote Keyless Entry (RKE). HCS200 использует Keeloq® код (технология динамического кода), которая включает высокую защиту, простую иерархическую структуру пакета и  низкую стоимость, делает это устройство совершенным решением для замены фиксированных кодирующих устройств в однонаправленных дистанционных безключевых системах входа и системах управления доступом. Ключ шифрования, серийный номер и данные конфигурации сохранены в EEPROM, которая не доступна через любое внешнее подключение – это делает HCS200 очень безопасным модулем. HCS200 обеспечивает легкий в использовании последовательный интерфейс для программирования необходимых ключей защиты, параметров системы и данных конфигурации.  Все запрограммированные ключи шифрования и кодовые комбинации защищены от чтения. Ключи могут быть проверены только после автоматического стирания и операции программирования, что эффективно защищает против попыток получить доступ к ключам и управлять значениями синхронизации. Зашифрованная или динамическая часть кода передачи изменяется каждый раз, даже если та же самая кнопка нажата снова. Код, который был передан, не будет передаваться снова для более чем  64КБ передач. Это обеспечивает более 18 лет использования прежде, чем код будет повторен, из расчета на 10 передач в день.

Использованная терминология:

  1. Ключ производителя – это уникальный 64-х битный ключ, который используется при генерации уникального ключа шифрования для каждого кодера. Код производителя – это основная часть полной защиты системы.
  2. Ключ шифрования – это уникальный 64-х битный ключ, сгенерированный и запрограммированный в кодер на этапе процесса производства. Ключ шифрования используется в алгоритме шифрования, и сохранен в EEPROM кодера.

Перед использованием кодера HCS200, он должен быть предварительно запрограммирован. Вся запрограммированная информации сохраняется во встроенном EEPROM (энергонезависимая память), это:

  • 28-битный серийный номер, который должен быть уникальным для каждого кодера;
  • 16-битное значение слова конфигурации (определяет режим работы кодера);
  • уникальный ключ шифрования, который сгенерирован во время изготовления;
  • 16-битное значение счетчика синхронизации

Уникальный ключ шифрования для каждого кодера генерируется по специальному алгоритму шифрования из ключа производителя и серийного номера кодера. Значение 16-битного счетчика синхронизации – основа передаваемого кода, изменяющегося  после каждого нажатия кнопки. Поскольку алгоритм динамического кода очень сложный, изменение в одном бите счетчика синхронизации приводит к большим изменениям в фактическом коде передачи. К слову сказать, с помощью этого алгоритма я успешно генерировал выборки для белого шума.  При нажатии любой кнопки, кодер читает кнопку и модифицирует счетчик синхронизаций. Затем значение счетчика синхронизации объединяется с ключом шифрования в алгоритме шифрования, и в результате получается 32-бит  зашифрованной информации. Эти данные изменяются каждый раз после нажатия кнопки, поэтому эта часть кодовой комбинации называется динамическим кодом. 32-битный динамический код комбинируется с  информацией о нажатой кнопки и серийным номером для формирования передаваемой на приемник кодовой комбинации.

2 комменатриев »

  1. Здравструйте! Очень полезная статья, спасибо) У меня вопрос на который ни где не могу получить внятного ответа, может быть вы поможете. Можно ли считать EEPROM из работающего кодера с целью его записи на такой же кодер, но в брелок другого производителя? По сути просто клонировать брелок. Можно ли как-то по-другому узнать код производителя и подшить его в новый брелок?

    Комментарий от Taras88 — 24.05.2015 @ 16:10

  2. Приветствую!
    Клонировать брелок на базе HCS200, HCS300 и их модификации не возможно. Согласно спецификацией на эти кодеки, считать данные из их еепром для верификации можно только один раз через несколько десятков миллисекунд после программирования.

    Комментарий от Дмитрий Денисов — 25.05.2015 @ 19:07

RSS-канал комментариев этого поста.

Оставить комментарий

Необходимо авторизоваться, чтобы комментировать.

Материалы сайта являются авторскими. Копирование и публикация материалов без активной ссылки на первоисточник запрещено.