Защита информации в автотранспортных системах связи и мониторинга

Автор: Пестриков Виктор Михайлович, Маковецкая-Абрамова Ольга Валентиновна, Петров Геннадий Алексеевич

Журнал: Технико-технологические проблемы сервиса @ttps

Рубрика: Методические основы совершенствования проектирования и производства технических систем

Статья в выпуске: 2 (24), 2013 года.

Бесплатный доступ

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

Системы связи и мониторинга, сommunication and monitoring, конвейерный кодек, помехоустойчивый код, алгоритм кодирования, конвейерная обработка блоков, траектория пакета, потоковые функции

Короткий адрес: https://sciup.org/148186087

IDR: 148186087

Текст научной статьи Защита информации в автотранспортных системах связи и мониторинга

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

В системах передачи информации возможен ряд стратегий борьбы с ошибками, воз- никающими при передаче данных по каналам связи с различными помехами:

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

  •    обнаружение ошибок в блоках данных и отбрасывание повреждённых блоков – подход, применяемый в ряде случаев в потоковых мультимедийных системах, в которых отсутствует время на повторную передачу;

  •    исправление ошибок на физическом уровне с использованием помехоустойчивых кодов.

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

Предлагается алгоритм и структура кодирующих и декодирующих устройств c конвейерной обработкой блоков данных для обна- ружения и исправления пакетов ошибок, рассматриваются организация и проектирование микропроцессорных конвейерных структур помехоустойчивого кодирования информации для защиты передаваемых данных. Основы организации и проектирования микропроцессорных кодирующих и декодирующих устройств с обнаружением и исправлением ошибок для систем передачи информации рассмотрены в работах [1,2,3].

Организация параллельных кодеков с конвейерной обработкой блоков информации позволяет значительно повысить их производительность. Конвейерные кодеки (ККД) имеют следующие преимущества:

  •    простота оценки производительности и монотонный характер ее зависимости от числа процессоров;

  •    функциональная однородность системы и простота ее реконфигурации;

  •    неисправные процессоры легко исключаются из системы, а восстановление задачи сводится к возврату к контрольной точке программы;

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

Организация конвейерных кодеков

Для организации конвейерных кодеков, например для кода Рида-Соломона (РС), необходимо представить функцию декодирования в виде следующих потоковых функций [2]:

f ( x ) = f . ( f 2 ( f ,,4,5 ( f 5,7 ( f , ) f 9 ( x )))))), (1)

где:

f , ( x ) = R g ( x ) [ ^ ( x )] = S ( x ), обозначим [ F^(x )];

f 8 ( x ) = ( f , ( x )) = S j , x = a j , j = 1,..., 2 t , [ F ,1 ( x )];

f 7 ( x ) = f 7 ( f . ( x ) = Л ( x ), x a j , j = 1,...,2 1 , [ F 41 ( x );

f , ( x ) = f , ( f , ( x )) = Q ( x ), j = 1,...,2 1 [ F ^ ( x )];

f 5 ( x ) = f 5 ( f 7 ( x )) = л ( a j X j = X-, n ,[ F 3 1 ( x );

f 4 (x) = f 4(f - (x)) = л' (x‘X x = aj , j = 1,...21, l = 1,..., t [ F81)

f,(x) = f,(f,(x)) = Q(x ‘X x = a j, j = 1,...,21, l = 1,..., t [ F,1];

f ;( x ) = f , ( f , ( x )),[ F 1 ];

fx ( x ) = fx ( f ;( x )),[ F 71 ].

Каждая подфункция (1) в качестве входных данных использует результаты вычислений предыдущей подфункции, первоначальная подфункция f9(x) работает с входным набором данных принятого кодового блока u(x).Представление структурированных про- грамм декодирования в виде потоковой функции осуществляется следующим образом. Пусть Ф(x) - множество команд в F(x) от первой до некоторой промежуточной команды, ^(x) — множество команд от первой после Ф(x) до последней включительно, и если команды расположены в порядке выполнения, то:

F ( x ) = ^ ( Ф ( x ).

В ККД набор данных представляется в виде пакета ( i, x ), где: х - блок данных; i - номер ступени, равный индексу подфункции.

После i -й ступени ( i, х ) пакет преобразуется в новый пакет (( i -1), F i ( х )). (9, х ) и (0, f ( х )) обозначают соответственно входной и выходной пакеты системы в выражении (1). Схема j -го элемента конвейерного кодека приведена на рис. 1,а, на котором П j - процессор, БД j -буфер данных типа FIFO. Каждый процессор может выполнять любую подфункцию в потоковой функции f ( х ), для чего в его памяти хранятся соответствующие программы. Состояние буфера для j -го пакета определяется следующим образом: если q i = 1, то осуществляется пропуск пакета, а при q i =0 выполняется его обработка.

Алгоритм функционирования процессорного модуля представлен на рис. 1,б. Управляющая программа процессора считывает входной пакет ступени, анализирует состояние пакета q j , и если q j =1, то производится пропуск пакета, т. е. пакет без изменения записывается в буфер, а процессор считывает новый пакет. Если q j = 0 или данный процессор последний, то производится обработка пакета по программе j -й ступени. При этом j уменьшается на 1, результат обработки записывается в буфер и цикл работы повторяется.

Для оценки производительности конвейерных кодеков представим возможные траектории при движении пакета (рис. 2).

Фаза обработки в процессоре соответствует перемещению пакета по вертикали до ближайшего элемента, фаза пропуска - перемещению по горизонтали. Обозначим через т0 -среднее время выполнения программы в одной ступени конвейерного кодека, ть -среднее время ввода (вывода) пакета; ю - среднее время анализа условий. Пакет перемещается по вертикали через v ступеней обработки, на что требуется время v(t0 + ю), и по горизонтали через z процессоров за время z(Tb + ю) и zTb соответственно для ввода и вывода информации. Полное время t m перемещения пакета по некоторой траектории определяется следующим выражением:

tm = Z (2Т в +to) + ^(Т0 +®).

Время, затраченное процессорами за период Т для обработки пакетов определяется выражением:

T = N [ z (2 т B + to+у ( т 0 + to )] .       (2)

а)

б)

Рисунок1. Конвейерный кодек : а) структурная схема; б) алгоритм функционирования процессора

Рисунок 2. Траектория движения пакета в кон вейерном кодеке

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

P = N =-------1-------.

T (2т B +to+v(T0 +to)

Определим время отклика системы tc как средний интервал от входа пакета в систему до его выхода из нее:

t c = N '[ z (2 т B +to ) + у ( т 0 +to ),      (4)

где N - среднее число пакетов, хранящихся в буферах ККД при q = 0. Из (4) следует, что с ростом числа процессоров время отклика также увеличивается. Из (3) определим число процессоров, необходимых для обеспечения заданной производительности P :

Z = У Р (% + to) 1 - p (2т b + to)

Для оценки производительности и времени отклика конвейерного кодека рассмотрена задача декодирования кода РС. Конвейерный кодек кода РС обрабатывает информацию в виде пакетов, которые могут быть обработаны или пропущены различными процессорами ступеней конвейера в зависимости от наличия ошибок в принятом кодом блоке. Для организации кодека сформируем формат пакета, передаваемого через все ступени конвейера (см. рис. 3). Пакет D включает поле 1 для хранения n символов принятого кодового блока V ( х ), поле 2 для вектора ошибок е ( х ), поле 3 для 2 1 символов синдромов, поле 4 для хранения t значений локаторов ошибок и поле 5 для хранения символа q , определяющего состояние пакета. При этом, если q = 0, пакет проходит через ступень с обработкой, в противном случае пакет проходит без обработки.

Структурная схема конвейерного кодека, реализующего код РС, приведена на рис.4. Кодек состоит из шести процессорных ступеней (П1-П6) и функционирует следующим образом. Принятый вектор кодового блока V ( х ) записывается в поле 1 входного пакета 1 первой ступени конвейера, а остальные поля пакета пустые.

(1) V(x) 1,2,...,п

(2) е(х)

(3)

Sj

l,2,...,2t

(4)

l,2,...,t

(5) q i

Рисунок 3. Формат пакета

Процессор П1 выполняет вычисление синдромного полинома S ( x ), т. е. реализует функцию деления полиномов с недвоичными коэффициентами F 12 и также проверяет значение S ( x ) на нуль. Если S ( x )= 0, т. е. если в принятом векторе V (х) нет ошибок, то процессор П1 устанавливает q в 1 и пакет проходит через все ступени без обработки. Если S ( х ) ≠ 0, то П1

устанавливает q своего выходного пакета в 0. При этом в поле 3 пакета записываются 2 t коэффициентов синдромного полинома S ( x ). П2 ведет обработку входного пакета при q = 0 и вычисляет синдромы S j , j =1,…,2 t в соответствии с функцией F 13, а также вычисляет отношение S j /S j +1 , j =1,…,2 t -1.

Если это отношение для всех синдромов постоянно, то процессор П2 исправляет единичный пакет ошибок и устанавливает q своего выходного пакета в 1. При этом исправленный блок записывается в поле 1 пакета 3, а в поле 3 помещаются 2t значений синдромов. Если отношение S j /S j+ 1 для j =1,…,2t-1 не постоянно, то процессор П2 устанавливает q своего выходного пакета в 0. Тогда ПЗ ведет обработку пакета 3 и вычисляет функции ( x ) и Λ( x ), их коэффициенты записываются в поле 3 пакета 4, ПЗ устанавливает q пакета 4 в 0. Необходимо отметить, что если q пакета 3 равно 0, то это значение сохраняется до выхода пакета из системы. П4 вычисляет локаторы ошибок х e , е = 1, ..., t по процедуре Ченя (выполнение функции F 13), помещает значения х e в поле 4 пакета 5 и в поле 3 помещает ( t +1)/2 коэффициентов полинома производной Λ'(x) от Λ( x ) вместо коэффициентов Λ(x); коэффициенты Ω( х ) сохраняют свои места в пакете 3. В позициях поля 2 пакета 5, где произошли ошибки, ставятся единицы. Процессор П5 вычисляет значения Λ'(x) и Ω(х) при х=хe, е=1,...,t, и t значений ошибок и помещает их в единичных позициях поля 2, в результате чего формируется пакет 6. Процессор П6 выполняет сложение по модулю два двух векторов (массивов) V(x) и е(х) и передает исправленный блок в поле 1 пакета 7. Каждый из шести процессоров кодека может выполнять программу декодирования кода РС от начала до конца, что важно для повышения живучести системы.

В табл.1 приведен процент вычислений, выполняемых ступенями кодека. Из таблицы следует, что отсутствует сбалансированность по времени загрузки каждой из шести ступеней, поэтому можно объединить ступени (2, 3) и (4, 5, 6). Таким образом, время обработки в 3-й ступени будет определять производительность системы в целом, а кодек будет состоять из трех процессоров. При введении признака одной ошибки в V(х) процессор ступеней (2, 3)

частично обрабатывает пакет, в этом случае следует разделить эти ступени, и кодек будет состоять из четырех процессоров.

Таблица 1. Процент выполняемых вычислений ступенями кодека

Номер ступени

Процент выполняемых вычислений

1

33

2

9

3

18

4

37

5

2

6

1

Основные этапы проектирования кодеков. Из анализа разработок кодеков можно сделать следующие выводы:

  •    наиболее важным и определяющим этапом при разработке кодеков является этап системного проектирования;

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

  •    быстрый прогресс в технологии производства интегральных схем делает актуальной разработку методов распараллеливания и конвейеризации функций кодеков и построение функционально-распределенных кодеков.

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

Системный этап проектирования

На системном этапе анализируются требования к кодеку, которые задаются техническим заданием и включают:

  •    скорость передачи информации в канале;

  •    тип и число ошибок (одиночные, многократные одиночные, одиночные пакеты);

  •    длину кодового блока;

  •    вероятность ошибочного декодирования бита (не выше 10-9), повторение передачи не разрешается; отказ от декодирования и неправильное декодирование равноценны;

  •    необходимость работы в непрерывном режиме в темпе поступления информации из канала, однако иногда допускается постоянная задержка до десятков длин блоков.

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

Логический этап проектирования. На логическом этапе определяются особенности алгоритмов, реализуемых кодеком, и осуществляется их анализ и разработка. Алгоритмы кодирования и декодирования циклических кодов имеют ряд особенностей:

  •    работа в режиме реального времени;

  •    выполнение алгебраических операций в полях Галуа;

  •    представление информации в виде множества блоков, каждый из которых обрабатывается по одному и тому же алгоритму;

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

Разработка алгоритмов осуществляется на основе выделенных микроопераций, таких как сдвиг массива на один разряд или символ, умножение элементов в GF(2µ), сложение по модулю два двух массивов, вычисление обрат- ного элемента в GF(2µ), cброс и установка i-го разряда регистра. На этом этапе определяется полный набор функций кодеков циклических кодов и их декомпозиция.

Структурный этап проектирования

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

В качестве исходного варианта структуры, реализующей алгоритм выполнения функций кодеков, выбирается микропроцессорный кодек, который включает МП, входной и выходной регистры, ЗУ. Для этого выполняются следующие шаги:

  •    разработка функционально-временной диаграммы при реализации алгоритмов кодека;

  •    выбор типа МП по критериям, определяемым техническим заданием;

  •    разработка и отладка программ для МП кодека.

Если МП кодек не удовлетворяет техническому заданию по быстродействию, необходимо использовать методы распараллеливания и конвейеризации алгоритмов и переходить к организации параллельных кодеков. Когда параллельные кодеки на основе серийных МП не обеспечивают требуемое быстродействие, то осуществляется переход к организации структур с функциональными расширителями. Выделение аппаратно-реализуемых функций выполняется в соответствии с рекомендациями в [2]. Дальнейшее повышение быстродействия кодека связано с реализацией максимального параллелизма функции при обработке блока и использованием матричных структур.

Статья научная