Шифрование данных

Управляющий код автосигнализации может быть нескольких типов: статический, динамический и диалоговый. Для двухвейных сигнализаций и пейджеров имеет значение еще и кодирование извещения о состоянии автомобиля, находящегося на охране.

Статический код

С ним все просто. Он может быть любой длины, от 2-4 до 100 и более бит, но главное - он постоянен. А команда в изменяемой части 2-8 бит, что говорит лишь о коде нажатой кнопки. Короче, подарок для угонщика!

Динамический код

Самый распространенный вид кодов. Каждое нажатие на кнопку брелока приводит к генерации нового кода, учитывая длину которого, понять закон изменения весьма сложно.

Однако при всем многообразии и индивидуальности все они подчиняются некому закону, который гарантирует их синхронизацию в случае случайных нажатий на кнопки брелока вне зоны связи с автомобилем. Синхронизация брелока и основного модуля жизненно необходима, иначе сигнализация забудет свой брелок и перестанет его слушаться.

Любой алгоритм динамического кода имеет вводимый закон изменения при следующей генерации, - дескриптор, который у всех сигнализаций модельного ряда постоянен, - иначе невозможно будет "приживить" брелок от своей модели сигнализации в случае утери.

Т.е., чем индивидуальнее, малосерийнее, новее изделие, - тем ниже вероятность "вскрытия" дескриптора от этого модельного ряда. Устройство самого кода не гарантирует неприступности, поскольку либо утечкой информации от разработчика, либо гениальным анализом он в конечном итоге будет "взломан". Так было со всеми известными на рынке алгоритмами, и свежепоявляющиеся ждет та же участь.

Диалоговые коды

Появляющиеся последнее время на рынке двухсторонние автосигнализации предоставили разработчикам новые возможности кодировать передачу данных. Запросы типа "свой-чужой" с динамическими паролями представляют из себя в настоящее время самые стойкие к взлому решения, существующие на рынке автосигнализаций.

Работает это, например, так:
--> брелок при нажатии кнопки выбрасывает только свой ID номер, базовый блок принимает ID брелока, и проверяет, прописан ли он как "свой"
<= в случае, если брелок прописан, базовый блок выбрасывает код, сгенерированный по динамическому закону, которым нужно кодировать передачу команды
=> брелок принимает код, кодирует им команду (нажатую кнопку), и отправляет на базовый блок, базовый блок декодирует принятую команду исполняет ее.
<= базовый блок посылает подтверждение исполнения команды на брелок.