Перейти до публікації
0931454574

Алгоритм шифрования радиосигнала!

Рекомендовані повідомлення

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

 

А сейчас возможно у кого то припрятан материал в поддержку темы?

Если остались еще нераскрытые темы в данной нише , то пишите здесь, думаю ответы будут исчерпывающими, короче говоря пишите вопросы на которые пока не встречали ответы (конечно вопросы о сигнализации, а то... знаю)

Змінено користувачем 0931454574

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

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

Код «MSS» включает в себя следующие компоненты:

 

- Статическая часть (24 разряда)

- Динамическая часть (24 разряда)

- Код команды (8 разрядов)

- Код синхронизации (40 разрядов)

 

Статическая часть кода представляет собой фиксированный персональный код конкретного брелока-передатчика, присваиваемый ему посредством однократного программирования при производстве микросхем-кодеров. Тут нет никаких отличий от кода системы «KeeLoq».

Код команды – код, несущий информацию о том, какие кнопки брелока нажаты. Тут уже есть небольшие отличия от системы «KeeLoq», но они связаны исключительно с расширением возможностей по управлению. Код команды в системе кодирования «MSS» обеспечивает передачу информации о нажатии любой комбинации кнопок брелока, а также информации о трёх типах удержания кнопок брелока.

Динамическая часть кода являет собой результат работы 24-х разрядного двоичного счетчика, изменяющегося при каждом прохождении кода. В системе кодирования «KeeLoq» динамическая часть кода изменяется при каждом новом нажатии кнопок брелока, а в системе «MSS» динамическая часть кода непрерывно изменяется даже в течение одной короткой радиопосылки.

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

Код синхронизации системы кодирования «MSS» представляет собой совокупность контрольных битов преобразованных статической, динамической частей кода и кода команды. Порядок контроля определяется статической частью кода, то есть является индивидуальным для каждого брелока. А вот это – как раз та важная изюминка, которой в системах «KeeLoq» нет и быть не может.

Процесс генерации кода имеет некоторые специфические особенности.

Начало выдачи кода на модулятор брелока-передатчика подчиняется случайному закону и код начинается с любого из 96-ти разрядов.

После выдачи 96-го разряда кода изменяется его динамическая часть и, следовательно, код синхронизации. Непосредственно за 96-м разрядом «старого» кода следует 1-й разряд «нового».

Число выданных сплошным потоком кодов зависит от длительности удержания кнопки брелока.

Окончание выдачи кода – также процесс случайный – брелоки обеспечивают себе автоматическую поддержку питания для маскирования факта окончания выдачи последнего кода: кодовая посылка завершится произвольным образом на любом из 96-ти разрядов искусственно добавленного окончания кода.

Таким образом, физически код представляет собой сплошную, непрерывно изменяющуюся последовательность импульсов без фиксированного начала и окончания, не имеющую синхроимпульсов или синхропауз и не обладающую периодом повторения. К тому же в системе кодирования «MSS» не используется автоматическая синхронизация декодеров по двум, по трём или по какому-либо другому числу подряд перехваченных радиокоманд. Всё это делает принципиально невозможным анализ кода с использованием самых мощных сверхсовременных систем обработки сигналов.

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Технология кодирования KeeLoq

 

KeeLoq является блочным кодом с 64-разрядным ключом и размером блока 32 бита.

 

Зображення

 

Блок-схема кодирования состоит из регистра сдвига данных, формирователя нелинейной функции NLF, аргументами которой являются 5 бит регистра данных, логического элемента XOR (исключающее ИЛИ) и регистра сдвига ключа кодирования. Нелинейная обратная связь для регистра данных формируется из бита выхода NLF, двух бит данных и бита ключа кодирования.

Перед началом кодирования исходные данные (исходный текст) и ключ помещаются в соответствующие им регистры. В каждом цикле кодирования содержимое регистра ключа и содержимое регистра данных сдвигаются каждый в своем регистре на один бит вправо так, что новое значение функции XOR попадает на вход регистра данных. После выполнения 528-ти таких циклов кодирования, в регистре данных получается нужный код (шифрованный текст).

Процесс декодирования полностью аналогичен кодированию, за исключением направления сдвига и отводов регистра данных для функций NLF и XOR.

Нелинейная функция введена в алгоритм для устранения линейной связи между исходными и шифрованными текстами. В противном случае этот алгоритм кодирования действительно был бы совсем прост для "взлома". Как известно из школьной алгебры, функции второго (квадратный многочлен) и третьего порядка имеют в общем случае соответственно два и три корня (решения). Здесь используется NLF 32-го порядка и для каждой комбинации 5-ти аргументов эта функция имеет 32 корня.

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

Стандартный формат KeeLoq кода имеет следующий вид:

 

Зображення

 

Открыто передаются:

- 28 бит Серийного Номера передатчика, который должен быть уникальным для каждого выпускаемого производителем передатчика. Этот номер является первичной информацией для распознавания передатчика в приемнике устройства дистанционного управления. Как правило, этот номер используется при формировании ключа кодирования для данного передатчика. Кроме того, в более секретных устройствах управления этот номер может передаваться в закодированном виде (Envelope Code) для исключения возможности применения различных код-грабберов.

- 4 бита кода команды.

- 2 бита состояния источника питания передатчика и признака повтора посылки.

Собственно алгоритм KeeLoq используется для кодирования следующих 32 бит данных:

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

- 4 бита команды.

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

Исходные значения всех этих бит помещаются в регистр данных кодера в начале процесса кодирования и через 528 циклов в этом регистре получается набор бит шифра, передаваемго в изменяемой части стандартной посылки. Свойства алгоритма KeeLoq обеспечивают изменение как минимум половины бит этого набора при изменении только одного любого бита исходного набора. Это и обеспечивает неповторимость этой части посылки, препятствующей простому копированию кода из эфира для дальнейшего несанкционированного доступа к охраняемому объекту.

В KeeLoq технологии используется два типа ключей:

Ключ Производителя (Мастер Код) – 64-разрядное слово, уникальное для каждого производителя и используемое для формирования Индивидуальных Ключей для каждого устройства этого производителя.

Индивидуальный Ключ устройства – 64-разрядное слово уникальное для каждого устройства кодирования, формируемое по определенному алгоритму с использованием Ключа Производителя. Этот ключ одинаков для кодирования и декодирования информации.

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

Индивидуальный Ключ стандартных микросхем кодеров формируется в технологических программаторах во время производства конкретных устройств и хранится в EEPROM кодера. Ключ Производителя в памяти кодеров не хранится. В декодере Индивидуальные Ключи каждого передатчика формируются при его регистрации с использованием его же индивидуальных данных, например, Серийного Номера, и хранятся эти ключи в EEPROM декодера. Так как в формировании Индивидуальных Ключей устройств должен использоваться Ключ Производителя, то он всегда хранится в ROM памяти декодера.

Процедуры формирования Индивидуальных Ключей кодирования составляют главный секрет технологии KeeLoq. Некоторые процедуры защищены даже патентами и не могут быть использованы бесплатно другими производителями. Стандартные процедуры описаны в руководствах по применению микросхем компании Мicrochip, что послужило успешному "взлому" ключей некоторых производителей, использующих самые простые из них.

В общем, описание стандартных процедур формирования Индивидуальных Ключей выглядит следующим образом.

 

Зображення

 

Первая разновидность процедуры называется "Обычной" (Normal). Её смысл заключается в использовании 28-разрядного Серийного Номера конкретного устройства в качестве исходного текста для получения уникального для этого устройства Индивидуального Ключа. При этом функции F1 и F2 тем или иным способом преобразуют Серийный Номер в 32-разрядное исходное слово, а в качестве кодирующих алгоритмов могут использоваться либо сложный нелинейный алгоритм декодирования KeeLoq, либо простая логическая функция исключающего ИЛИ (XOR).

Вторая разновидность процедуры называется "Защищенной" (Secure). Её смысл заключается в использовании для формирования Индивидуального Ключа не открыто передаваемого Серийного Номера, а индивидуального для каждого кодера, так называемого "Зерна". Эта процедура обеспечивает достаточно мощную защиту от различных атак на KeeLoq, однако она практически н еиспользуется в коммерческих устройствах.

Третья разновидность процедуры называется "Простой" (Simple). Эта процедура редко упоминается в официальной документации Микрочип и в работах по "взлому" Ключей. Однако эта процедура имеется в технологических программаторах стандартных микросхем KeeLoq кодеров и Мicrochip предлагает пример исходного текста программной реализации соответствующего декодера. Смысл этой процедуры заключается в самой дешевой реализации программного декодера, код которого занимает всего 250 байт в программой памяти процессора, предоставляя большую часть этой памяти для реализации потребительских функций, например, в сигнализации. Достигается это тем, что во всех изделиях производителя просто используются одинаковые Индивидуальные Ключи и, как правило, им является Ключ Производителя. С коммерческой точки зрения это очень выгодно – по всем внешним признакам KeeLoq, а на самом деле "кукла".

Непосредственно в соответствие используемым процедурами формирования Индивидуальных Ключей применяются и процедуры регистрации передатчиков дистанционного управления (кодеров) в приемных устройствах (декодерах). В оригинальной литературе Мicrochip этот процесс называется "обучение" приемников передатчикам.

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

При использовании Простой процедуры, приемное устройство в процессе регистрации передатчика сразу использует фиксированный Ключ для декодирования Счетчика Синхронизации и Дискриминанта и записывает их в область EEPROM, соответствующую принятому Серийному Номеру для дальнейшей дешифрации сообщений данного передатчика.

В приведенном описании акцентируется внимание на широком применении стандартных микросхем кодеров серии HCS и широко известных примеров программного обеспечения для реализации декодеров на микропроцессорах фирмы Мicrochip. Применение этих стандартных и широко известных средств вызвало штормовую волну разнообразных и небезуспешных атак на применяемую практически во всем мире в промышленных масштабах технологию кодирования KeeLoq. Однако, даже из этого краткого описания очевидно, что в этой технологии возможно применение множества средств, обеспечивающих надежную защиту от любых атак.

 

Источник dedal.com" rel="external">Посилання

Змінено користувачем ajm

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Будь ласка, увійдіть для коментування

Ви зможете залишити коментар після входу



Увійти зараз

×