Материал: Программно-аппаратная защита речевой информации от утечки по виброакустическому каналу. Гончаров И.В., Мешкова А.Ф

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Из таблицы 2.2 видно, что два младших бита идентификатора определяют груп­пу, к которой он принадлежит:

- 00 — специальный пакет;

- 01 — маркер-пакет;

- 10 — пакет подтверждение;

- 11 — пакет данных.

Структура данных пакета зависит от группы, к которой он относится.

2.2. Алгоритм работы устройства защиты информации

На рис. 2.9 изображена структурная схема предлагаемого устройства защиты информации (ЗИ).

Рис. 2.9. Структурная схема устройства

Программная часть подробно описана в подразделе 2.4, аппаратная – в подразделе 2.3.

2.3. Аппаратная часть устройства

В качестве аппаратного устройства управления потоком данных предлагается использование контроллера фирмы Atmel.

ATMEL содержит полноскоростной USB-модуль, совместимый с техническими требованиями USB версий 1.1 и 2.0. Данный модуль интегрирует USB-трансиверы со стабилизатором напряжения 3,3 В и процессор последовательного интерфейса (SIE) с цифровой схемой ФАПЧ для синтеза частоты 48 МГц. Модуль USB также содержит логику определения USB-события (сброс и приостановка/возобновление), а также буферы FIFO, поддерживающие принудительное управление конечной точкой (EP0) и до 6 универсальными конечными точками (EP1/EP2/EP3/EP4/EP5/EP6) при минимальном программном описании [36].

ATMEL поддерживает функции младших версий и отличается расширением объема флэш-памяти до 32 кБ, внутреннего ОЗУ до 256 байт, 4-уровневой системой прерываний, двумя 16-разрядными таймерами-счетчиками (T0/T1), полнодуплексным УАПП и встроенным генератором.

Кроме того, ATMEL содержит встроенное расширенное ОЗУ размером 1024 байт, двойной указатель данных, 16-разрядный реверсивный таймер (T2), программируемый счетный массив (PCA), до 4 программируемых источников тока для управления светодиодами, программируемый аппаратный сторожевой таймер и схема сброса при подаче питания.

ATMEL имеет два программно выбираемых режима для снижения потребляемой мощности. В режиме холостого хода (idle) работа ЦПУ приостанавливается, но таймеры, последовательные порты и система прерываний остаются в работе. В режиме выключения (power-down) сохраняется содержимое ОЗУ, останавливается синхронизация периферийных устройств, но микроконтроллер сохраняет возможность пробуждения через событие USB или по внешнему прерыванию [36].

Отличительными особенностями данного контроллера являются его следующие характеристики:

1. Ядро (6 тактов на инструкцию):

  • максимальная частота ядра 40 МГц в режиме X1;

  • двойной указатель данных;

  • полнодуплексный улучшенный УАПП( УУАПП);

  • три 16-разрядных таймера-счетчика: T0, T1 и T2;

  • 256 байт сверхоперативной памяти.

2. 32-кБ встроенной флэш-памяти с внутрисхемным программированием через USB или УАПП

3. 4 кБ ЭППЗУ для загрузочного сектора (3 кБ) и данных (1 кБ)

4. Встроенное расширенное ОЗУ (XRAM): 1024 байт

5. Модуль USB с прерыванием на завершение передачи:

  • Конечная точка 0 для управления передачей : 32 байтный буфер FIFO;

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

6. Конечные точки 1, 2, 3: 32-байтный буфер FIFO

7. Конечные точки 4, 5: размер буфера FIFO 2 x 64-байта с двойной буферизацией (режим Ping-pong)

8. Конечная точка 6: 2 x 512-байтный буфер FIFO с двойной буферизацией ( режим Ping-pong):

  • Прерывания по приостановке/возобновлению;

  • Сброс при подаче питания и сброс USB шины;

  • Генерация 48 МГц схемой ФАПЧ для полноскоростного функционирования шины;

  • Разъединение USB шины по запросу микроконтроллера.

9. 5 канальный программируемый счетный массив (PCA) с 16-разрядным счетчиком, быстродействующим выходом, сравнением/захватом фронтов, функциями ШИМ и сторожевого таймера

10. Программируемый сторожевой таймер (однократно разрешает после сброса): от 50 мс 6 с при 4 МГц

11. Интерфейс подключения клавиатуры с генерацией прерывания на порте P1 (8 разрядов)

12. SPI интерфейс (режим главный/подчиненный)

13. 34 линии ввода-вывода

14. 4 вывода для подключения светодиода с программируемым источником тока : 2-6-10 мА типично

15. 4-уровневая система прерываний с приоритетами (11 источников)

16. Режимы холостого хода и экономичный

17. Встроенный генератор 0…32 МГц с аналоговой схемой ФАПЧ для синтеза 48 МГц

18. Стабилизатор напряжения и выход опорного источника : 3.3В/4 мА

19. Низкий диапазон напряжения источника питания:

  • 3.0В…3.6В;

  • Максимальный рабочий ток 30 мА (при 40 МГц);

  • В экономичном режиме потребление 100 мкА.

20. Коммерческий и промышленный температурные диапазоны

21. Корпуса: PLCC52, VQFP64, MLF48, SO28

Структура микроконтроллера представлена на рис. 2.10. Структурная схема USB-модуля в микроконтроллере ATMEL представлена на рис. 2.11. Расположение выводов контроллера показана на рис. 2.12.

SHAPE \* MERGEFORMAT

Р ис. 2.11. Структурная схема USB-модуля в микроконтроллере ATMEL

Рис. 2.12. Расположение выводов ATMEL

ATMEL содержит специальный аппаратный модуль, который позволяет ему обеспечивать обмен данными по USB. Для этого необходимы опорные синхроимпульсы с частотой 48 МГц, которые вырабатываются контроллером синхронизации. Эти синхроимпульсы используются для формирования тактовых импульсов с частотой 12 МГц из принятого дифференциального потока данных USB и передачи данных на высокой скорости, соответствующей требованиям к USB устройствам. Формирование синхроимпульсов выполняется цифровой системой ФАПЧ [36].

Блок автоматов последовательного интерфейса (SIE) выполняет NRZI кодирование и декодирование, вставку бита, формирование битов проверки на четность (CRC кодирование и декодирование) и последовательно-параллельное преобразование данных.

Описание светодиодов, перемычек и кнопок

Светодиод VD1 показывает подключен ли интерфейс RS232, VD3 и VD4 служат для индикации обмена данными по линиям Rx и Tx RS232 интерфейса, VD5 – индикатор питания. Перемычка P1 соединяет кнопку с линией PSEN либо с линией KINO, P2 – отключает сигнал VREF от USB – это необходимо для того, чтобы при подключенном USB кабеля к плате, отключить постоянное напряжение 3,3В, тогда операционная система воспримет это действие как отключение устройства от USB. Кнопка К1 - кнопка сигнала внешнего прерывания INT0, К2 – нажимается перед подключением платы к USB порту компьютера, позволяет войти в режим In-System программирование, К3 - кнопка сброса.

Для обеспечения необходимого для зашумления значения напряжения сигнала на выходе микроконтроллера требуется подключить усилитель сигнала. Используется традиционная схема усилителя на биполярном транзисторе, работающем в ключевом режиме, включенным по схеме с общим эмиттером. Напряжение, подаваемое на базу транзистора, определяется стабилитроном VD1. Резисторы R1, R2, R3 ограничивают ток через стабилитрон VD1 и транзистор VT1.

2.4. Программное обеспечение и драйвер устройства

2.4.1. Система Plug and Play

Каждое USB-устройство, спроектированное по спецификации Plug and Play (PnP), должно иметь идентификатор, который однозначно определяет модель данного уст­ройства. Этот идентификатор должен быть предоставлен шинному аппарат­ному обеспечению и, соответственно, шинному драйверу при поступлении запроса [23]. Секция описания модели содержит поле hwid, играющее роль идентификатора модели.

Идентификатор устройства должен иметь строго определенный для данного класса устройств формат. Для USB-устройств идентификатор имеет сле­дующий формат:

USB\Vid_ww&Pid_ddddSRev_rr

Здесь ww — идентификатор поставщика (поле idvendor дескриптора уст­ройства, зарегистрированный в Комитете USB-производителей; dddd — идентификатор, присвоенный производителем данный моде­ли USB-устройства (поле idProduct); rr — номер версии разработки. Все эти поля вводятся как шестнадцатеричные числа.

В INF-файле допустимо указывать усеченные варианты идентификаторов, например:

USB\Vid_ww&Pid_dddd

USB\Class_cc&SubClass_ss_Prot_pp

USB\Class_cc&SubClass_ss USB\Class_cc

Здесь ее — код базового класса из полученного дескриптора устройства или дескриптора интерфейса данного USВ-устройства; ss — код подкласса; рр — идентификатор протокола.

Примеры USB-идентификаторов:

  • usb\vid_040a&pid_oioo — цифровая USB-камера Kodak;

  • usb\root_hub20 — USB-хаб;

- usb\vid_067bspid_2303 — USB-мобильный телефон.

2.4.2. Модель wdm

WDM (Windows Driver Model, драйверная модель Windows) — новая модель архитектуры драйверов, предложенная Microsoft для Windows 2000. Конечно, эта архитектура развивалась начиная с Windows 3.11, продолжала развивать­ся в Windows 98 и Windows NT, но по-настоящему полной она стала только в Windows 2000.

Архитектура WDM позволяет распределить процесс передачи данных (рис. 2.13).

С точки зрения WDM, существуют три типа драйверов.

  • Драйвер шины (bus driver), обслуживающий контроллер шины, адаптер, мост или любые другие устройства, имеющие дочерние устройства. Драй­веры шин нужны для работы системы и в общем случае поставляются Microsoft. Для каждого типа шины (PCI, PCMCIA и USB) в системе име­ется свой драйвер. Сторонние разработчики создают драйверы для под­держки новых шин, например, для VMEbus, Multibus или Futurebus.

  • Функциональный драйвер (function driver) — основной драйвер устройства, предоставляющий его функциональный интерфейс. Обязателен кроме тех случаев, когда устройство используется без драйверов (т. е. ввод/вывод осуществляется драйвером шины или драйвером фильтров шины). Функциональный драйвер по определению обладает наиболее полной инфор­мацией о своем устройстве. Обычно только этот драйвер имеет доступ к специфическим регистрам устройства.

Рис. 2.13. WDM-модель для USB-интерфейса

  • Драйвер фильтра (filter driver), поддерживающий дополнительную функ­циональность устройства (или существующего драйвера) или изменяю­щий запросы на ввод/вывод и ответы на них от других драйверов (это часто используется для коррекции устройств, предоставляющих неверную информацию о своих требованиях к аппаратным ресурсам). Такие драй­веры не обязательны и их может быть несколько. Они могут работать как на более высоком уровне, чем функциональный драйвер или драйвер шины, так и на более низком. Обычно эти драйверы предоставляются производителями или независимыми поставщиками оборудования.

Согласно типам драйверов, существуют три типа объектов:

  • объекты физических устройств (PDO, Physical Device Object);

  • объекты функциональных устройств (FDO, Functional Device Object);

  • объекты фильтров устройств (FiDO, Filter Device Object).

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

В среде WDM один драйвер не может контролировать все аспекты устрой­ства: драйвер шины информирует диспетчер РпР об устройствах, подключенных к шине, в то время как функциональный драйвер управляет устрой­ством. Драйверы фильтров низкого уровня позволяют исправлять информа­цию о требованиях устройства к системным ресурсам, а драйверы фильтров высокого уровня добавляют устройству дополнительную функциональность (например, производят дополнительную защиту клавиатуры).

В поставку Windows входят два низкоуровневых драйвера, избавляя про­граммиста от множества рутинной работы:

  • драйвер хоста отвечает за обмен данными с аппаратурой;

  • драйвер шины USB отвечает за управление транзакциями, питанием и распознавание устройств.

С точки зрения прикладного программиста, наибольший интерес представ­ляют драйвер класса (class driver) и интерфейс обращения к этому драйверу. Здесь операционная система Windows делает еще один шаг на пути унифи­кации интерфейсов. Все USB-устройства делятся на группы, согласно об­щим свойствам, выполняемым функциям и требованиям к ресурсам [23,24,25].

Источник: https://studfile.net/preview/16566504/