Автор: Пользователь скрыл имя, 30 Апреля 2012 в 21:20, практическая работа
В представленном курсовом проекте дается общее описание систем авторизованного доступа, реализующих принцип «свой/чужой». Приводятся причины их возникновения, последовательность развития, основные алгоритмы работы. Выводятся основные критерии, которым должна удовлетворять современная система авторизованного доступа. Проводится сравнение алгоритмов двух конкурирующих фирм: Microchip и Holtec. Дается подробное описание алгоритма KeeLoq, его аппаратной реализации.
Введение
Обзор радиоохранных систем, методов нападения и защиты
Описание современных систем авторизованного доступа
Кодеры и декодеры фирмы Microchip
Кодеры и декодеры фирмы Holtec
Подробное описание технологии KeeLoq
Микросхемы KeeLoq с технологией "прыгающего кода"
Описание алгоритма Keeloq
Экспериментальная часть
Заключение.
Приложение 1 Семейство кодеров и декодеров Microchip
Кодеры: Кодеры KeeLoq фирмы Microchip
Декодеры: Декодеры KeeLoq фирмы Microchip
Приложение 2 Примеры практических схем
Схемы типичных кодовых брелоков
Автосигнализации с брелоками-передатчиками на ИК-лучах
5. И, наконец, производителям охранных систем необходимо помнить, что чем лучше хранится в тайне мануфактурный код, записываемый при изготовлении в чип кодера (брелка), тем меньше вероятность вскрытия злоумышленниками охранной системы.[4]
Вышеизложенные причины привели к появлению недорогих и удобных, но при этом достаточно сложных кодирующих/декодирующих систем. Наиболее интересной из них представляется аппаратура KeeLoq.
Keeloq - это система алгоритмов, разработанная и запатентованная Южно-Африканской компанией Nanoteq в середине 80-х. Nanoteq была основана экспертами по кодированию и электронике из университета Претории и занималась вопросами информационной безопасности.
В настоящее время алгоритм Keeloq принят во всем мире и положен в основу тестовых критериев для систем безопасности в Великобритании, адаптирован рядом европейских производителей и использован в собственных системах, разработанных "Форд" (для Escort) и "Ягуар" (для XJS).
В 1995 году фирма MICROCHIP приобрела отделение Keeloq у фирмы Nanoteq вместе с лицензионными правами. Теоретические разработки Nanoteq в сочетании с производственными мощностями и техническими возможностями MICROCHIP (работа изделий при низких напряжениях и высокая надежность EEPROM) позволили реализовать новый ряд компактных микросхем контроля доступа, простых для пользователя, но изощренных для взломщика.
Но кроме KeeLoq на сегодняшний день разработаны и другие алгоритмы, реализующие аналогичные возможности. Для сравнения в следующем разделе будет приведена общая характеристика систем, разработанных фирмами Microchip и Holtec.
Кодеры и декодеры используют технологию прыгающего кода KeeLoq и алгоритм шифрования KeeLoq. Дадим общую характеристику алгоритма и реализующих его устройств. Более подробно они будут рассмотрены в дальнейшем.
Код Изготовителя (Manufacturer's Code) — 64-битовое слово, уникальное для каждого изготовителя, используется, для того чтобы произвести уникальный кодирующий ключ в каждом передатчике.
Серийный номер - в каждый передатчик, при изготовлении, программируется 28 или 32 битный уникальный серийный номер.
Секретный ключ - это 64-битный код формируемый функцией генератора ключей из 28/32-битного серийного номера или 32/48-битного «кодового зерна» и 64-битного заводского номера. Секретный ключ не может быть считан, он никогда не передается.
«Кодовое зерно» - это 32/ 48-битное значение программируется в кодер передатчика. При этом половина кодового значения используется при генерации ключа. Значение "кодового зерна" передается передатчиком только после нажатия на нем определенной комбинации клавиш и может выключаться по окончании процесса обучения.
Заводской ключ - программируется в декодер при изготовлении устройства, и используется для генерации секретного ключа.
Прыгающий Код — метод, при которым код, переданный с передатчика на приемник является различным, при каждом нажатии кнопки. Этот метод, вместе с длиной передачи 66 битов, фактически делает невозможным перехват или подбор кода.
Генерация секретного ключа - используется для формирования уникального номера передатчика. При генерации используется серийный номер и «кодовое зерно». Генерация кода производиться по нелинейному закону производится программатором при программировании кодера.
Нормальный режим обучения - приемник использует информацию, полученную из обычной кодовой посылки для получения секретного ключа передатчика, определение величины различия и счетчика синхронизации. Вся информация, полученная от передатчика, сохраняется.
Безопасное обучение - передатчик активизируется через определенную комбинацию кнопок, после чего он передает 32- или 48-битную кодовую посылку ("кодовое зерно"), которая может использоваться при генерации ключа как его часть.
Величина дискриминации - величина дискриминации представляет собой 12-битную фиксированную часть зашифрованного слова. Данная величина используется приемником при расшифровке.
Счетчик синхронизации - 16-битный счетчик, который увеличивает свое значение на единицу всякий раз, когда происходит активизация передатчика. Приемник запоминает значение счетчика во внутренней памяти и сравнивает его со значением, полученным из предыдущей посылки. Если значение попадает в рабочее окно, то код принимается.
Кодирующие устройства серии HCS имеют небольшой массив EEPROM-памяти, который должен быть загружен несколькими параметрами перед использованием.
Наиболее важный из этих величин:
кодирующий ключ
16-битовое число в счетчике синхронизации
28-битовый серийный номер, который, как предполагается, является уникальным для каждого кодера.
Изготовитель программирует серийный номер для каждого кодера во время продукции, в то время как «Алгоритм генерирования ключа» генерирует кодирующий ключ.
Исходные данные к алгоритму генерирования ключа включают в себя серийный номер кодера и 64-битного код изготовителя, который создается во время изготовления.
Обратите внимание: код изготовителя — самая важная часть секретности системы. Следовательно по отношению к этому коду должны приниматься все возможные предосторожности.
Счетчик синхронизации с 16-битным основанием служит для модификации передаваемого кода, при каждой передаче и обновляется каждый раз по нажатию кнопки.
Благодаря сложности алгоритма шифрования KEELOQ, изменение в одном бите величины счетчика синхронизации приводит к большим изменениям в передаваемом коде.
Если только кодер обнаруживает, что кнопка была нажата, он считывает состояние входных сигналов и модифицирует счетчик синхронизации. Величина из счетчика синхронизации обрабатывается вместе с кодирующим ключом алгоритмом шифрования KEELOQ, в результате получаются 32 бита шифрованной информации. Эти данные изменятся с каждым нажатием кнопки. Это и упоминается как прыгающая часть кодового слова.
32-битовая часть с прыгающим кодом объединена с информацией о нажатой кнопке и серийным номером, чтобы формировать кодовое слово, передаваемое на приемник.
Прежде, чем передатчик и приемник смогут работать вместе, приемник должен сначала обучиться и сохранять некоторую информацию из передатчика.
Эта информация включает контрольную сумму серийного номера, ключ кодирования, и текущую величину счетчика синхронизации.
Когда сообщение верного формата обнаружено, приемник сначала сравнивает серийный номер. Если контрольная сумма серийного номера соответствует запомненному ранее передатчику, сообщение дешифруется. Затем, приемник проверяет расшифрованную величину счетчика синхронизации, сравнивая ее с тем, что сохранено в памяти. Если величина счетчика синхронизации удовлетворяет, то допустимое сообщение принимается.[2]
Кодер НТ6Р26 обеспечивает передачу 4 битов данных к декодерам НТ6Р36.
НТ6Р26 имеет внутренний 16-битовый случайный счетчик синхронизации. При передаче очередного кода величина случайного счетчика изменится, и величина изменения передается декодеру.
Передаваемое кодовое слово разделено на нечетное и четное окно. И нечетное, и четное окно включает в себя 8 пилотных битов, 1/3 стартовых биты, 24 катящихся бита, 16 битов индекса, 16 случайных битов и 4 бита данных (рис. 2).
«Катящиеся» биты и «случайные» биты генерируются различными алгоритмами шифрования (рис. 3). Биты данных устанавливаются по состоянию выводов данных.
Синхронизация системы с динамическим кодом
Для того чтобы обеспечить невозможность вскрытия сигнализации уже переданными ранее комбинациями в системах с динамическим кодом в кодовой посылке присутствует информация о том, сколько раз нажималась кнопка брелока с момента программирования микросхемы кодера изготовителем. При запоминании брелока микросхемой декодера (процедура learning) состояния счетчиков в кодере и декодере уравниваются.
Каждый раз при получении кода счетчик декодера следит за тем, чтобы счетчик кодера указывал на большее или равное значение. Только тогда принятый код считается верным. Разница между счетчиком декодера и счетчиком кодера при которой код все еще считается верным различна для устройств разных изготовителей и может составлять величину от единиц до сотен.
В начале использования декодера, необходимо выполнить операцию «обучения», чтобы сохранить шифрованный код-идентификатор и значение счетчика синхронизации в СППЗУ.
16-разрядный счетчик синхронизации хранится в СППЗУ. Декодер автоматический создает «окно синхронизации». Ширина «окна синхронизации» — 256. Начало — «текущее состояние счетчика», конец — «текущее состояние счетчика + 255».
Если декодер получает надлежащий катящийся код, и полученное значение счетчика синхронизации будет находиться в пределах окна синхронизации, декодер активизирует выход декодера и обновит положение «окна синхронизации».
С другой стороны, если полученный код индекса вне «окно синхронизации», система дистанционного управления не будет работать и ее придется заново синхронизировать.
Синхронизации кодера НТ6Р60 и НТ6Р50 фирмы Holtec
В режиме дистанционного управления, если rolling-код правильно получен, и полученный rolling-адрес не большие чем на 6 указателя адреса СППЗУ, кодер и декодер считаются синхронизированными.
Указатель адреса декодера модифицируется для согласования с полученным rolling-адресом. С другой стороны, если разница между полученным rolling-адресом и внутренним указателем адреса декодера больше чем 6, кодер и декодер считаются рассинхронизированными, и декодер блокируется.
Успешное распознавание кода возможно только при условии синхронизации кодера и декодера. Для этого необходимо передать декодеру два последовательных rolling-адреса, и никакие ошибки не должны быть обнаружены декодером внутри 3-секундного интервала.
То есть вход данных кодера должен быть активирован дважды последовательно в течении 3 секунд, чтобы повторно синхронизировать декодер с кодером.[3]
Микросхемы KeeLoq наиболее полно соответствуют требованиям безопасной системы авторизованного доступа, сформулированным в первой главе.
В технологии KeeLoq, кодовая последовательность может повториться более чем через 65 000 команд. Если пульт дистанционного управления использовать 8 раз в сутки, то пройдет 22 года, прежде чем та же самая кодовая комбинация повторится снова. При этом повторная передача кода (например при помощи устройства перехвата кода) не вызовет срабатывание системы.
Алгоритм KeeLoq использует особенную систему синхронизации. Принятая посылка декодируется и сохраняется в памяти. Последующие посылки считаются истинными, если они лежат в зоне 16 возможных следующих кодовых комбинаций. Это сделано для того, что бы не восстанавливать синхронизацию каждый раз после нажатия кнопки на пульте управления в не досягаемости для приемника. В случае выхода кодовой комбинации из зоны 16 вариантов, необходимо дважды нажать кнопку на пульте управления, и синхронизация будет восстановлена. Операция синхронизации полностью прозрачна - пользователь даже не будет знать о том, что синхронизация была потеряна и восстановлена.
Очевидны преимущества использования технологии KeeLoq, стоимость которой сопоставима с ценой систем на основе фиксированного кода. Применение заказных микросхем KeeLoq, с минимальным количеством внешних компонентов, позволяют строить конкурентно способные системы с высоким уровнем безопасности.
KeeLoq является блочным алгоритмом шифрования, использующий 32-битный блок и 64-битный ключ. При простой аппаратной реализации он имеет высокий уровень защиты сопоставимый с алгоритмом DES. Такой уровень защиты является подходящим для систем дистанционного управления с защитой от перехвата кода. Для кодирования и декодирования передаваемой информации используется 64-битный ключ. Подобрать ключ исходя из перехваченной информации невозможно. Существуют испытания систем, которые могут быть использованы для проверки характеристик безопасности алгоритма кодирования и также для предсказания следующего передаваемого кода. На данном алгоритме были проверены такие виды атаки как: "Эффект Лавины" (Avalanche Effect) и его подмножества. Результат проверки дал хороший показатель эффективности системы безопасности:
Эффект Лавины (АЕ). Блочный шифр удовлетворяет критериям АЕ, если при замене одного информационного бита, в среднем меняется половина передаваемых битов. Применительно к алгоритму KeeLoq, это подразумевает, что изменение одного бита в функции и/или информации синхронизации заставит в среднем измениться 16 из 32 битов в переданном коде.
Информация о работе Исследование систем авторизованного доступа