Модель и метод контроля целостности данных в каналах связи на основе стохастических вычислений тема диссертации и автореферата по ВАК РФ 00.00.00, кандидат наук Турдиев Одилжан Акрамович

  • Турдиев Одилжан Акрамович
  • кандидат науккандидат наук
  • 2023, ФГБОУ ВО «Петербургский государственный университет путей сообщения Императора Александра I»
  • Специальность ВАК РФ00.00.00
  • Количество страниц 155
Турдиев Одилжан Акрамович. Модель и метод контроля целостности данных в каналах связи на основе стохастических вычислений: дис. кандидат наук: 00.00.00 - Другие cпециальности. ФГБОУ ВО «Петербургский государственный университет путей сообщения Императора Александра I». 2023. 155 с.

Оглавление диссертации кандидат наук Турдиев Одилжан Акрамович

СПИСОК СОКРАЩЕНИЙ

ВВЕДЕНИЕ

1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ И ПОСТАНОВКА ЗАДАЧИ ИССЛЕДОВАНИЯ

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

1.2. LPWAN XNB и технологии в сфере Интернета вещей (IoT) для российской транспортно-логистической отрасли

1.3. Анализ алгоритмов помехоустойчивого кодирования

1.3.1. Анализ алгоритма ВСС

1.3.2. Анализ алгоритма CRC

1.4. Анализ путей снижения сложности и повышения достоверности алгоритмов проверки целостности данных на основе стохастических вычислений

1.5. Постановка и формализация научной задачи

Выводы по первой главе

2. МОДЕЛЬ КОНТРОЛЯ ЦЕЛОСТНОСТИ ДАННЫХ НА ОСНОВЕ СТОХАСТИЧЕСКИХ ВЫЧИСЛЕНИЙ

2.1. Обоснование последовательности решения научной задачи и общей схемы проведения исследования

2.2. Исследование способов генерации полиномов для формирования вероятных кодов чисел (PNC)

2.2.1. Генератор случайных чисел

2.2.2. Генератор псевдослучайных чисел

2.2.3. Параллельный генератор псевдослучайных чисел

2.3. Модель формирования контрольных сумм для проверки целостности данных на основе стохастических вычислений

Выводы по второй главе

3. МЕТОД ФОРМИРОВАНИЯ КОНТРОЛЬНЫХ СУММ ДЛЯ ПРОВЕРКИ ЦЕЛОСТНОСТИ ДАННЫХ НА ОСНОВЕ СТОХАСТИЧЕСКИХ ВЫЧИСЛЕНИЙ

3.1. Постановка задачи разработки метода

3.2. Метод формирования контрольной суммы для проверки целостности данных на основе стохастических вычислений

3.2.1. Обоснование логико-вероятностных соотношений, определяющих функционирование ЛПКВ

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

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

Выводы по третьей главе

4. КОМПЛЕКС ПРОГРАММ ДЛЯ МОДЕЛИРОВАНИЯ КОНТРОЛЬНОГО СУММИРОВАНИЯ И ОЦЕНКИ СЛОЖНОСТИ АЛГОРИТМОВ ПРОВЕРКИ ЦЕЛОСТНОСТИ ДАННЫХ

4.1. Общая характеристика комплекса программ

4.2. Программа сравнения методов контроля целостности передачи данных по алгоритмам PB, BCC и CRC

4.3. Программа оценки сложности алгоритма CRC по разрядностям полинома

4.4. Программа определения целостности передачи данных с использованием различных контрольных сумм вероятного кода числа по

алгоритму MNPC

4.5. Программа для моделирования формирования контрольных сумм PNC на основе стохастических вычислений

Выводы по третьей главе

5. РЕЗУЛЬТАТЫ ЭКСПЕРИМЕНТАЛЬНЫХ ИССЛЕДОВАНИЙ ФОРМИРОВАНИЯ КОНТРОЛЬНЫХ СУММ И ОЦЕНКИ СЛОЖНОСТИ АЛГОРИТМОВ

5.1. Анализ вероятностей не обнаружения ошибки при проверке целостности данных в зависимости от размера кадра

5.2. Сравнительный анализ вычислительной сложности алгоритмов проверки целостности данных CRC и PNC

5.3. Сравнительный анализ временных и энергетических затрат при использовании кодов PNC и CRC в технологии LPWAN

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

Выводы по четвёртой главе

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЕ

ПРИЛОЖЕНИЕ

ПРИЛОЖЕНИЕ

ПРИЛОЖЕНИЕ

ПРИЛОЖЕНИЕ

ПРИЛОЖЕНИЕ

СПИСОК СОКРАЩЕНИЙ

BCC - Block Check Character

CRC - Cyclic Redundancy Code

FCS - Frame Check Sequence

LPWAN - Low-power Wide-area Network

MPNC - Method Probable Number Code

PNC - Probable Number Code

XNB - Extended Narrowband

БПФ - быстрое преобразование Фурье

ВКЧ - вероятный код числа

ГПСЧ - генератор псевдослучайных чисел

ГСЧ - генератор случайных чисел

ГШ - генератор шума

ЛП - логический преобразователь

ЛПКВ - логический преобразователь код-вероятность

ПГПСЧ - параллельный генератор псевдослучайных чисел

ПГСЧ - параллельный генератор случайных чисел

ПЛК - программируемый логический контроллер

ППК - последовательность проверки кадра

ПЭ - пороговый элемент

Рекомендованный список диссертаций по специальности «Другие cпециальности», 00.00.00 шифр ВАК

Введение диссертации (часть автореферата) на тему «Модель и метод контроля целостности данных в каналах связи на основе стохастических вычислений»

ВВЕДЕНИЕ

Актуальность темы диссертационного исследования. В настоящее время в мире активно развиваются энергосберегающие технологии, существенно увеличивающие эффективность инновационных проектов. Поэтому при решении национальных задач по цифровизации, утвержденных постановлением правительства РФ от 1 июня 2010 г. N 391 в том числе указом Президента РФ от 13.05.2017 г. № 208 и от 07.05.2018 г. № 204, важнейшей проблемой становятся импортозамещение и обеспечение безопасности информационных энергосберегающих систем. Известно, что большой объем вычислений приводит к существенным затратам энергии, также становятся важными задачи уменьшения вычислительной сложности программных продуктов и автоматизации транспортно-логистических процессов. В результате актуальными являются исследования по снижению вычислительной сложности алгоритмов обработки данных.

Одной из основных проблем передачи данных с помощью низкочастотных энергосберегающих систем является создание высококачественных, быстродействующих и достаточно простых алгоритмов формирования контрольных сумм с помощью стохастического параллельного генератора псевдослучайных чисел (ПГПСЧ). От ее решения в конечном счете зависит успех построения эффективных корректирующих кодов контрольных сумм, так как характеристики ПГПСЧ во многом определяют параметры этих кодов. Одним из перспективных решений здесь является создание модели вероятного кода числа PNC (Probable number code).

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

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

Степень разработанности темы исследования. Проблеме появления ошибок при передаче данных и способам их исправления посвящены работы В.В. Золотарева, W. Peterson и D. Brown, E. Dubrova, M. Naslund, G. Selander, и F. Lindqvist. Работы С.А. Осмоловского, Р.Дж. Беннетса, Н.Дж.А.Слоана, Б. Элпаса являются одними из часто цитируемых стандартных справочных материалов для CRC. Вопросами разработки кодирующих и декодирующих устройств, обеспечивающих достоверность передачи данных, занимались Д.П. Зегжда и А.М. Ивашко, проблеме выявления шумов на основе теоремы о кодировании канала с шумами посвящены работы В.В. Мельникова, Ю.В. Романца, П.А. Тимофеева, В.Ф. Шаньгина, В.А. Ходаковского. Наиболее близкими вопросами, связанными с настоящим исследованием, занимались В.В. Яковлев, В.Н. Кустов, М.В. Гофман, Ф.И. Кушназаров. Однако, в исследованиях указанных авторов не рассматривались вопросы снижения сложности алгоритмов обеспечения целостности данных.

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

Для достижения поставленной цели в диссертационной работе поставлены и решены следующие задачи:

1. Анализ современных моделей формирования контрольных сумм.

2. Разработка модели контроля целостности данных на основе стохастических вычислений.

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

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

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

Научная новизна работы:

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

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

3. Впервые разработан комплекс программ для моделирования процесса формирования контрольных сумм на основе стохастических вычислений и сравнительной оценки алгоритмов контроля целостности данных по критериям сложности и достоверности, разработаны оригинальные классы объектов и процедуры для моделирования процессов формирования контрольных сумм BCC, CRC, PNC, MPNC и передачи данных в сетях.

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

1. Установлена аналитическая зависимость между вероятностным кодом числа и формируемой контрольной суммой.

2. Доказана возможность использования ЛПКВ в качестве средства реализации стохастических вычислений при формировании контрольных сумм.

3. Расширен класс методов контроля целостности данных в части ис-

пользования ЛПКВ для формирования контрольных сумм.

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

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

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

3. Разработанный комплекс программ может использоваться администраторами и разработчиками вычислительных сетей при настройке протоколов канального уровня с заданной достоверностью.

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

5. Предложенные модель и метод формирования контрольных сумм могут быть использованы в учебном процессе для ознакомления обучающихся с современными методами контроля целостности данных.

Методология и методы исследования: работа выполнена на основе теории кодирования сигналов, методов контроля целостности данных в сетях передачи данных, методов стохастических вычислений, методов построения аналитических и имитационных моделей сложных систем.

Объект исследования: алгоритмы контроля целостности данных.

Предмет исследования: сложность процедур контроля целостности данных и достоверность передачи данных в каналах связи.

Положения, выносимые на защиту

1. Модель формирования контрольных сумм для контроля целостности данных на основе вероятного кода числа.

2. Метод формирования контрольных сумм для контроля целостности данных на основе вероятного кода числа.

3. Комплекс программ для моделирования формирования контрольных сумм и оценки сложности алгоритмов контроля целостности данных на основе вероятного кода числа.

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

Внедрение результатов работы. Полученные научные результаты внедрены и применены:

1. В главном управлении развития логистики и цифровизации АО «Уз-бекистон темир йуллари». Социальный и научно технический эффект: снижена вычислительная сложность для формирования контрольных сумм передачи данных; повышена эффективность устройств, выполняющих расчет контрольных сумм; разработанная модель адресована администраторам и разработчикам вычислительных сетей при настройках протоколов канального уровня заданной производительности АО «Узбекистон темир йуллари»;

2. В учебном процесс кафедры «Информационные и вычислительные системы» ПГУПС при проведении лекционных занятий и практических работ по дисциплинам: «Сети и телекоммуникации» и «Сети ЭВМ и телекоммуникации»:

1) модель формирования контрольных сумм для контроля целостности данных на основе вероятного кода числа;

2) метод формирования контрольных сумм для контроля целостности данных на основе вероятного кода числа;

3) программа для моделирования формирования контрольных сумм и оценки сложности алгоритмов контроля целостности данных на основе вероятного кода числа (Свидетельство о государственной регистрации программы для ЭВМ № 2019616896. Программа сравнения методов определения целостности передаваемых данных в сетях: № 2019615322: заявл. 13.05.2019).

Код программной реализации моделей представлен в Приложении 1, 2, 3 и Приложении 4. Акты об использовании и внедрении результатов работы представлены в Приложении 5. Свидетельства о регистрации программ для ЭВМ представлены в Приложении 6.

Апробация. Результаты диссертационного исследования докладывались и обсуждались на 3 международных конференциях. Десятый международный симпозиум «ELTRANS 10.0» // СПб - 2019. Международная научно-методическая конференция. Models and Methods for Researching Information Systems in Transport // СПб - 2020. Международная научно-методическая конференция. Models of Information Systems in Transport and Methods for Their Solution // СПб - 2021.

Публикации. По результатам диссертационного исследования опубликованы 11 работ в научных журналах и сборниках материалов международных конференций, из них 3 публикации в изданиях, включенных в Перечень изданий ВАК РФ, и 1 публикация, индексированная в международной базе SCOPUS, 4 публикации в изданиях, входящих в перечень РИНЦ, а также 1 тезис доклада, 2 свидетельства о регистрации программ для ЭВМ.

Структура и объем работы. Диссертация состоит из списка сокращений, введения, пяти глав, заключения, списка литературы и приложений. Работа содержит 155 страниц, 51 рисунков, 6 таблиц. Библиографический список включает 78 наименований.

Содержание работы:

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

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

Во втором разделе приведены исследования способов генерации полиномов для формирования вероятных кодов чисел и модель формирования контрольных сумм вероятного кода числа PNC (Probable number code).

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

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

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

1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ И ПОСТАНОВКА ЗАДАЧИ ИССЛЕДОВАНИЯ

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

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

Под помехоустойчивым кодированием понимается добавление к исходной информации дополнительной проверочной информации [2, 3, 18]. Для кодирования на передающей стороне используется кодер (рис.1.1), а на принимающей стороне - декодер для получения исходного сообщения [6-10].

Шумы

Кодер

/

Канал

Декодер

Приемник

Рис. 1.1. Прохождение сигнала по каналу связи

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

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

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

При блочном кодировании последовательность ккод информационных символов принимается за блок «сообщение». Особенность блочных кодов в том, что проверочные символы образуются как линейные комбинации информационных символов.

Циклический код — линейный код, обладающий свойством цикличности, то есть каждая циклическая перестановка кодового слова также является кодовым словом. Соответственно, коды, не имеющие свойства цикличности, являются нециклическими кодами.

Рис. 1.2. Классификация избыточных кодов

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

Коды с проверкой на четность (PB)

Бит четности (англ. Parity bit - бит паритета) - контрольный бит, используемый в вычислительной технике и сетях передачи данных для обнаружения ошибок в передаваемом пакете данных. Позволяет обнаружить одиночную ошибку, без возможности восстановить данные [10, 21].

Этот бит рассчитывается и устанавливается во время отправки данных кодером (рис. 1.3). После получения данных декодером (рис. 1.4) он рассчитывается заново и сравнивается с полученным. Для расчета бита четности используется булева функция - сумма по модулю 2 (исключающее "ИЛИ") для всех бит данных. Изменение значения этого бита с 0 на 1 или с 1 на 0 свидетельствует о наличии ошибки [15].

> г А8 (проверочный бит)

Рис. 1.3. Структурная схема работы кодера

Рис. 1.4. Структурная схема работы декодера

Многие реализации UART (Universal Asynchronous Receiver-Transmitter, универсальный асинхронный приёмопередатчик) имеют возможность автоматически контролировать целостность данных методом контроля битовой чётности. Когда эта функция включена, последний бит данных в минимальной посылке ("бит чётности") контролируется логикой UART и содержит информацию о чётности количества единичных битов в этой минимальной посылке.

Коды Хэмминга

Коды Хэмминга — наиболее известные из семейства самокорректирующихся кодов. Построены они применительно к двоичной системе счисления [5, 58]. Позволяют закодировать какое-либо информационное сообщение на основе алгоритма, представленного на рис. 1.5, и после передачи определить, появилась ли какая-то ошибка в этом сообщении (ввиду помех, неисправности оборудования и пр.) и, при возможности, восстановить это сообщение.

Для каждого числа проверочных символов используется специальная маркировка вида (k, i), где k — количество символов в сообщении, i — количество информационных символов в сообщении. Например, существуют ко-

ды (7, 4) (рис. 1.5). Каждый проверочный символ в коде Хэмминга представляет сумму по модулю 2 некоторой подпоследовательности данных.

На рис.1.5 (б) е0,е1,е2 определяются как функции, зависящие от принятых декодером битов к1 —к7\

е0 = к1 + к3 + к5 + к7 mod 2;

el = к2 + к3 + кв + к7 mod 2;

е2 = к4 + к5 + кв + к7 mod 2.

k4

(а)

(б)

Рис. 1.5. Структурная схема работы кодера (а) и декодера (б)

Набор значений е2е1е0 есть двоичная запись позиции, где произошла ошибка при передаче данных. Декодер эти значения вычисляет, и если они все не равны 0, то исправляет ошибку [29, 73].

Код Хэмминга используется в некоторых прикладных программах в области хранения данных, например в RAID-2; кроме того, метод Хэмминга давно применяется в ECC-памяти (error-correcting code memory, память с коррекцией ошибок) и позволяет «на лету» исправлять однократные и обнаруживать двукратные ошибки.

Полиномиальные циклические коды

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

1.2.LPWAN XNB и технологии в сфере Интернета вещей (IoT) для российской транспортно-логистической отрасли

Между компаниями «РЖД-технологии» (проектный офис цифровой трансформации РЖД) и «РТ-Инвест», являющейся дочерней структурой Госкорпорации Ростех, был подписан меморандум о планах по созданию объединённой компании - Центра по разработкам устройств сети LPWAN XNB, а также технологий в сфере Интернета вещей (IoT), предназначенной для отечественной транспортно-логистической сферы.

Данный вопрос является актуальным в связи с проводимой политикой импортозамещения, что дает возможность обеспечить транспортную безопасность объектов транспортной инфраструктуры и транспортных средств. Данная сфера деятельности дает возможность обновить - цифровизовать и автоматизировать транспортно-логистический процесс [27].

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

Компанией «Современные радио технологии» был создан протокол отечественной беспроводной сети LPWAN XNB. На сегодняшний день в мире известны протоколы — NB-IoT и LoRa. Явным отличием отечественного протокола от зарубежного является его частотный диапазон, который составляет 863-865/874-876 МГц. Известно, что дальность передачи данных у зарубежного протокола составляет 2-4 км, тогда как дальность отечественного аналога 10 км внутри города, на открытой местности данный показатель достигает 50 км. Еще одной немаловажной отличительной характеристикой сигнала XNB является его высокая проницаемость через бетонные, металлические преграды и подвальные помещения.

В связи с тем, что шифрование выполнено в соответствии с ГОСТом, протоколу открывается дорога к объектам критической инфраструктуры [1].

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

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

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

Существует 2 широко применяющихся типа сетей - WNB (LoRaWAN) и UNB LPWAN (SigFox, Стриж и ВАВИОТ).

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

Сети SigFox, Стриж и ВАВИОТ, в отличие от LoRaWAN, используют сужение полосы спектра сигнала (Ultra Narrow Band) с целью увеличения соотношения сигнал/шум на приемнике и увеличения дальности. В таких сетях основной проблемой является сложность с реализацией обратного канала связи, так как симметричный по дальности обратный канал требует многократно повышенной мощности передатчика базовой станции (сетевого шлюза). Дополнительным недостатком UNB является высокая чувствительность узкополосной фазовой модуляции к многолучевому распространению, что проявляется в значительном снижении дальности работы на движущихся объектах.

Сравнение LPWAN и NBIoT: МБ-1оТ является расширением широко распространенного стандарта передачи данных в сети сотовой связи для устройств 1оТ и использует существующую инфраструктуру сетей сотовой связи. Особенностями МБ-1оТ являются: большая емкость сети, высокая пропускная способность, работа в лицензируемом диапазоне радиочастот.

Преимущества LPWAN технологий - это использование безлицензионного диапазона радиочастот, большая площадь покрытия одной базовой станцией (сетевым шлюзом), меньшая стоимость конечного устройства 1оТ, больший срок работы на одном элементе электропитания, простота и невысокая стоимость разворачивания 1оТ сети. Сравнение технических характеристик приводится в таблице 1.1.

Таблица 1.1 - Сравнение технологий радиодоступа LPWAN для соединения устройств 1оТ/М2М

Техническое характеристики хга / СТРИЖ LoRa SIGFOX NB-IoT

Метод модуляции DBPSK CDMA. TDMA2 - OFDMA/DSSS

Диапазон Нелицензированный ISM ISM Лицензированный

Скорость 50 бит/сек 0.3-50 кбит/сек 100 бит/сек UL: 1-144 кбит/сек DL: 1-200 кбит/сек

Полоса Узкполос 500 кГц Широкополое до 500 кГц Узкполос 100 кГц Узкполос 200 кГц

Время автономии 10 лет 10 лет - До 10 лет

Частота 868,8 МГц (не требует лицензирования) 868.8 МГц (Европа), 915 МГц (США), 433 МГц (Азия) 868.8 МГц (Европа), 915 МГц (США) 700 / 800 / 900 МГц

Безопасность ХТЕА или AES AES-64 и 128 бит AES с HMACs -

Дальность До 10 км в городе, до 40 км вне города До 2.5 км в городе, до 45 км вне города До 10 км в городе, до 50 км вне города

Техническое характеристики XNB / СТРИЖ LoRa SIGFOX NB-IoT

Поддержка МТС, ZTE, МегаФон LoRa Alliance, IBM, Cisco, Actili-ty, Semtech SigFox, Samsung 3GPP, Ericson, Nokia, Huawei, Intel

Технология LoRaWAN в структуре своих передаваемых пакетов применяет двуцикличные коды проверки избыточности (CRC). CRC используется для обнаружения ошибочных пакетов, что дает возможность передавать данные с наименьшей долей ошибок. Для верхней линии передачи, т.е. Uplink, используется режим передачи пакета LoRa, который включает в себя физический заголовок LoRa (PHDR) и CRC заголовок (PHDR_CRC). Таким образом, передаваемые данные защищены циклическими кодами проверки избыточности CRC. Радиопередатчиком внедряются поля полезной нагрузки и PHDR_CRC. На рис. 1.6 показан пакет передаваемых данных в сети технологии LoRaWAN.

Preamble PHDR PHDR-CRC PHY Payload CRC

Рис.1.6. Пакет передаваемых данных в сети технологии LoRaWAN

Отдельный пакет данных в линии вниз Updown передается сетевым сервером исключительно на одно конечное устройство LoRa и ретранслируется одним сетевым сервером. Также в составе пакетов данных в линии Updown задействован режим передачи радио пакета, который отчасти состоит от физического заголовка LoRa (PHDR) и циклического кода проверки избыточности заголовка (PHDR_CRC). Этот пакет в линии вниз отправления сетевым сервером приведен на рис.1.7.

Preamble PHDR PHDR-CRC PHY Payload

Рис. 1.7. Пакет передаваемых данных в линии вниз отправления сетевым сервером сети технологии LoRaWAN

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

1.3. Анализ алгоритмов помехоустойчивого кодирования

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

Методы обнаружения ошибок предназначены для выявления искажений в сообщениях при их передаче по зашумленным каналам. Основная идея, заложенная в них, это передача избыточной служебной информации, по которой можно судить с некоторой степенью вероятности о достоверности принятых данных. В анализе алгоритмов помехоустойчивого кодирования рассматривается применение метода блочного контроля четности (Block Check Character, BCC) для блока данных и метода циклического контрольного суммирования (Cyclic redundancy code, CRC) для данных. Это коды обнаружения ошибок, используемые для определения того, был ли поврежден блок данных при передаче по каналам связи.

Похожие диссертационные работы по специальности «Другие cпециальности», 00.00.00 шифр ВАК

Список литературы диссертационного исследования кандидат наук Турдиев Одилжан Акрамович, 2023 год

СПИСОК ЛИТЕРАТУРЫ

1. ГОСТ Р МЭК 61508-4-2007. Группа Т51. Функциональная безопасность систем электрических, электронных, программируемых электронных, связанных с безопасностью.

2. Абашев А.А., Жуков И.Ю., Иванов М.А., Тетерин И.И. Ассемблер в задачах защиты информации. М.: КУДИЦ- ОБРАЗ, 2004.

3. Анин Б.Ю. Защита компьютерной информации. - СПб: БХВ -Санкт- Петербург, 2000.

4. Беннетс Р.Дж. Проектирование тесто пригодных логических схем. -М.: радио и связь, 1990.

5. Герасименко В.А., Малюк А.А. Основы защиты информации. - М.: МИФИ, 1997.

6. Гук М. Аппаратные средства локальных сетей. СПб.: Питер-Пресс, 2001. -740 с.

7. Гук М. Локальные сети Novell. СПб.: Питер-Пресс, 1996. 584 с.

8. Гук М. Сети NetWare 3.12-4.1: книга ответов. СПб.: Питер-Пресс, 1997. 662 с.

9. Егоров В.В., Лобов С.А., Ходаковский В.А. / Синтез последовательностей с идеальными автокорреляционными свойствами. // Автоматика на транспорте. 2022. Т. 8. № 1. С. 78-89.

10. Зегжда Д.П., Ивашко А.М. Как защищенную информационную систему. Часть 1. / Под научн. Ред. Зегжды П.Д. и Платонова В.В. -СПб.: Мир и семья - 95,1997.

11. Зегжда Д.П., Ивашко А.М. Как построить защищенную информационную систему. Технология создания безопасных систем. Часть 2. / Под научн. Ред. П.Д. Зегжды и В.В. Платонова. - СПб.: НПО «Мир и семья -95», ООО «Интерлайн», 1998.

12. Золотарев В.В., Овечкин Г.В. Помехоустойчивое кодирование. Методы и алгоритмы: Справочник. Издательство: Горячая линия-Телеком.

13. Иванов М.А., Зиборова М.Э., Тышкевич В.Г. Техническое диагностирование цифровых устройств с использованием сигнатурного анализа. -М.: МИФИ, 1989.

14. Клименко С.В., Яковлев В.В., Благовещенская Е.А. / Исследование реализаций алгоритмов контрольной суммы crc32. // Известия Петербургского университета путей сообщения. 2018. Т. 15. № 3. С. 471-477.

15. Клименко, С.В., Яковлев, В.В., Турдиев, О.А. Программа оприделения целостности передаваемых данных с использованием различных контрольных сумм. // Свидетельство о регистрации программы для ЭВМ RU 2019616686, 28.05.2019. Заявка № 2019615635 от 13.05.2019.

16. Кузнецов В. Помехоустойчивое кодирование с использованием различных кодов // Хабр [Электронный ресурс]. - URL: https://habr.eom/ru/post/111336/ (дата обращения: 20.03.2022)

17. Кушназаров Ф.И./ Оптимальное управление процессами информационного обмена в зашумленных каналах // Информатизация образования и науки. 2017. № 1 (33). С. 175-185.

18. Кушназаров Ф.И. Разработка и исследование моделей оценки производительности коммуникационных протоколов для каналов с помехами: дис. ... канд.тех. наук. Санкт-Петербург 2015 9,10 с

19. Макуильямс Ф.Дж, Слоан Н.Дж.А. Псевдослучайные последовательности и таблицы // ТИИЭР. 1976. №12. С.80-95.

20. Мельников В.В. Защита информации в компьютерных системах. -М.: Финансы и статистика; Электроинформ, 1997.

21. Олифер В. Г. Компьютерные сети. Принципы, технологии, протоколы / В. Г. Олифер, Н. А. Олифер. - СПб.: Питер, 2008. - 958 с.

22. Осмоловский С.А. Стохастические методы защиты информации. М.: Радио и связь, 2003.

23. Осмоловский С.А. Стохастические методы передачи данных. М.: Радио и связь, 1991.

24. Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях. М.: Радио и связь. 2001

25. Ромащенко А., А. Румянцев, А. Шень. Заметки по теории кодирования. / 2-е изд., испр. и доп. / М.: МЦНМО, 2017. // 88 с. ISBN 978-5-44390689-8.

26. Слоан Н.Дж.А. Коды, исправляющие ошибки и криптография. В кн.: Математический цветник / Сост. и ред. Д.А.Кларнер; Пер. с англ. Данилова Ю.А.; Под.ред. И.М. Яглома. М.: Мир, 1983

27. Турдиев, О.А. Модель формирования вероятного кода числа на основе стохастических вычисленй. // Интеллектуальные технологии на транспорте. — 2021. — №4. — с. 28 — 33.

28. Турдиев О.А. Оценки эффективности обнаружения ошибок контрольного суммирования при передаваемых данных в системах LPWAN. // Десятый международный симпозиум «ELTRANS 10.0». — 2019.

29. Турдиев, О.А., Клименко, С.В., Тухтаходжаев, А.Б. Оценки эффективности обнаружения ошибок контрольного суммирования (CRC) передаваемых данных. // Известия СПбГЭТУ ЛЭТИ. — 2019. — №8. — с. 54 — 58.

30. Турдиев, О.А., Сейтманбитов, Д.А., Кадирова, Ш.Ш. Методика снижения вычислительной сложности формирования контрольных сумм вероятного кода числа на основе стохастических вычислений. // Вестник Российского нового университета. Серия «Сложные системы: модели, анализ и управление». — 2021. — №4/1. — с. 106 — 118.

31. Турдиев, О.А., Хомоненко, А.Д., Гофман, М.В. Сравнение моделей вероятного кода числа PNC и циклического избыточного кода CRC. // Вестник Российского нового университета. Серия «Сложные системы: модели, анализ и управление». — 2021. — №4. — с. 119 — 131.

32. Турдиев, О.А., Яковлев, В.В., Клименко, С.В. Обзор кодов для помехоустойчивого кодирования. // Интеллектуальные технологии на транспорте. — 2019. — №2 (18). — с. 21 —24.

33. Турдиев, О.А., Яковлев, В.В., Клименко, С.В., Болтаев А.Х. Исследование формирования блоковой контрольный суммы (BCC) передаваемых данных. // Известия СПбГЭТУ ЛЭТИ. — 2019. — №6. — с. 67 — 71.

34. Турдиев, О.А., Яковлев, В.В., Клименко, С.В. Программа сравнения методов оприделения целостности передаваемых данных в сетях // Свидетельство о регистрации программы для ЭВМ RU 2019616896, 30.05.2019. Заявка № 2019615322 от 13.05.2019.

35. Турдиев, О.А. Исследование вычислительной сложности формирования контрольных сумм для алгоритма CRC в зависимости от разрядности порождающего полинома. // Журнал «Современная наука: актуальные проблемы теории и практики». Серия «Естественные и технические науки». — 2022. — №1-2. — с. 52 —58.

36. Федоров Р.Ф., Яковлев В.В., Добрис Г.В. Стохастические преобразователи информации. Л., «Машиностроение», 1978.

37. Фараджев Р.Г. Линейные последовательностью машины. М.: Сов.радио, 1975- 248с.

38. Ходаковский В.А., Лобов С.А./ Об одном способе подавления боковых лепестков функции автокорреляции. // Интеллектуальные технологии на транспорте. 2020. № 4 (24). С. 46-50.

39. Щербаков А.Ю. Введение в теорию и практику компьютерной безопасности. - М.: Изд. Молгачева С.В., 2001.

40. Элпас Б. Теория автономных линейных последовательных сетей. Кибернетический сборник. Вып.7,1993, с.90-128.

41. Яковлев В. В., Кушназаров Ф. И. Оценка влияния помех на производительность протоколов канального уровня // Изв. Петерб. гос. ун-та путей сообщения. - СПб.: ПГУПС, 2015. - Вып. 1 (42). - С. 133-138.

42. Яковлев В.В., Федоров Р.Ф. Стохастические вычислительные машины. Л., «Машиностроение», 1974.

43. Ярмолик В.Н., Демиденко С.Н. Генерирование и применение псевдослучайных сигналов и систем испытаний и контроля/ Под.ред. Чеголина П.М. Минск: Наука и техника,1986.

44. Ярмолин В.Н. Контроль и диагностика цифровых узлов ЭВМ. Минск: Наука и техника,1988.

45. Ященко В.В. Введение в криптографию. М.: МЦНМО, «ЧеРо», 1998.

46. Albeitazzi G. C., Ernst H., Gappmair W., Liva G., & Papaharalabos S. Digitalsignal communications. New York City: Springer Publishing. 2007.

47. Ana Chriz. "CRC and how to Reverse it". Online essay with example x86 assembly code. Retrieved 21 January 2010.

48. Blahut R. E. / Algebraic Codes for Data Transmission 2003.

49. Baicheva T.S.: Determination of the Best CRC Codes with up to 10-Bit Redundancy. IEEE Transactions on Communications, 1214-1220 (2008).

50. Campobello G., Patane G., Russo M.: Parallel CRC Realization. IEEE Transactions on Computers, 10 (2003).

51. Castagnoli G., Brauer S., Herrmann M.: Optimization of cyclic redundancy-check codes with 24 and 32 parity bits. IEEE Transactions on Communications (6), 883-892 (1993).

52. Cam-Winget N. Nancy, Housley R. Russ, Wagner D. David, Walker J. Jesse. "Security Flaws in 802.11 Data Link Protocols". Communications of the ACM (5): 35-39 (May 2003).

53. Gad V.R., Gad R.S., Naik G.M.: Gigabit Ethernet Implementation of CRC-32 in noisy channels. International Journal of VLSI Design, Serial Publications, 22-32 (2011).

54. Gallo M., & Hancock W. Computer communications and networking technologies. Pacific Grove, CA: Brooks / Cole Publishing Co. (2002).

55. Durrett R. Stochastic calculus: a practical introduction. 2018.

56. Dubrova E., Naslund M., Selander G. and F. Lindqvist, "Message authentication based on cryptographically secure CRC without polynomial irreduci-bility test," Cryptography and Communications, pp. 1-17, 2017. [Online]. Available: http://dx.doi.org/10.1007/s12095-017-0227-8.

57. Grymel M., Furber S.B.: A Novel Programmable Parallel CRC Circuit. IEEE Transactions on Very Large Scale Integration (VLSI) Systems (10), 18981902 (2011).

58. Halsall F. Fifth edition, computer networks and the Internet / F. Halsall. - Addison-Wesley: Pearson Education, 2005. - 803 р.

59. Ji H.M., Killian E. Fast parallel CRC algorithm and implementation on a configurable processor. In: IEEE International Conference on Communications, ICC 2002, vol. 3, pp. 1813-1817 (2002).

60. Koopman P., Chakravarty T.: Cyclic Redundancy Code (CRC) polynomial selection for embedded networks. In: The International Conference on Dependable Systems and Networks, DSN 2004.

61. Koopman P. 32-Bit Cyclic Redundancy Codes for Internet Applications // The International Conference on Dependable Systems and Networks. — июнь 2002. — С. 459. — DOI: 10.1109/DSN.2002.102893

62. Kounavis M.E., Berry F.L.: Novel Table Lookup-Based Algorithms for High-Performance CRC Generation. IEEE Transactions on Computers (11), 15501560 (2008).

63. Lin S., Costello D. J. Jr. Error Control Coding: Fundamentals and Applications. New Jersey, Englewood Cliffs: Prentice-Hall, Inc., 1983.

64. Menezes A., van Orshot P., Vanstone S. Handbook of applied cryptography. -CRC Press, 1997.

65. Nguyen G.D.: Fast CRC s. IEEE Transactions on Computers (10), 13211331 (2009).

66. Nordqvist U., Henriksson T., Liu D.: CRC generation for protocol processing. In: Norchip Turku, Finland, pp. 288-293(2000).

67. Peterson W., Weldon E.: Error-Correcting Codes, 2nd edn. MIT Press (1972).

68. Prévost R., Coulon M., Bonacci D., LeMaitre J., Jean-Pierre M., JeanYves T.: Cyclic redundancy check-based detection algorithms for automatic identification system signals received by satellite. International Journal of Satellite Communications and Networking,157-176 (2013).

69. Ross N. Williams Элементарное руководство по CRC - алгоритмам обнаружения ошибок. Copyright (C) Ross Williams, 1993.

70. Richmond Hill, Ontario. The iSCSI CRC32C Digest and the Simultaneous Multiply and Divide Algorithm Luben Tuikovplentec Ltd. Canada Vicente Cavannay Agilent Technologies Roseville, California, USA (January 30, 2002).

71. Shieh M.-D., Sheu M.-H., Chen C.-H., Lo H.-F.: A Systematic Approach for Parallel CRC Computations. Journal of Information Science and Engineering, 445-461 (2001).

72. Shi-Yi C., Yu-Bai L.: Error correcting cyclic redundancy checks based on confidence declaration. Proc. ITS Telecommunications, 511-514 (2006).

73. Turdiev, O.A., Smagin, V.A., Kustov, V.N. Investigation of the computational complexity of the formation of checksums for the Cyclic Redundancy Code algorithm depending on the width of the generating polynomial. // CEUR Workshop Proceedings. Proceedings of Models and Methods of Information Systems Research Workshop 2020. — St. Petersburg, 2020. — c. 129 — 135.

74. Tanenbaum A.S.: Computer Networks, 2nd edn. Prentice Hall (1988).

75. Toal C., McLaughlin K., Sezer S., Yang X.: Design and Implementation of a Field Programmable CRC Circuit Architecture. IEEE Transactions on Very Large Scale Integration (VLSI) Systems (8), 1142-1147 (2009).

76. Wang R., Zhao W., Giannakis G.B.: CRC-assisted error correction in a convolutionally coded system. IEEE Trans. Comm. (11), 1807-1815 (2008).

77. Williams D. / Stochastic Calculus—A Practical Introduction. // Bulletin of the London Mathematical Society, 1998.

78. Zhang Y., Yuan Q.: A multiple bit's error correction method based on cyclic redundancy check codes. ICSP Signal Processing, 1808-1810 (2008).

Листинг программы PNC Класс: TablePnc.java

package uz.ivc.pnc.model; public class TablePnc { private String a0; private String xAy; private String pnc; private String kAy; public String getkAy() { return kAy;

}

public void setkAy(String kAy) { this.kAy = kAy;

}

public String getPnc() { return pnc;

}

public void setPnc(String pnc) { this.pnc = pnc;

}

public String getxAy() { return xAy;

}

public void setxAy(String xAy) { this.xAy = xAy;

}

public String getA0() {

return a0;

public void setA0(String a0) { this.a0 = a0;

}

@Override

public String toString() { return "TablePnc{" + "a0=" + a0 + ", xAy=" + xAy + ", pnc=" + pnc + '}';

}

}

Класс: PNCServlet.java

package uz.ivc.pnc.controller; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; import j ava. util .Random;

import j ava. util .concurrent.ThreadLocalRandom; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import uz.ivc.pnc.model .CheckTable; import uz.ivc.pnc.model.TablePnc; public class PNCServlet extends HttpServlet { String xay = "";

protected void processRequest(HttpServletRequest request, HttpS-ervletResponse response)

throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8");

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException { processRequest(request, response);

}

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException { // processRequest(request, response); String path = request.getServletPath(); if (path.equals('7pnc")) {

String bayt = request.getParameter("byte"); // String size = request.getParameter("size");

String vkch = request.getParameter("vkch");

Random random = new Random();

int maxRange = 0; // if (size.equals("Mb")) { // maxRange = (int) Math.pow(2, 23); // } else if (size.equals("Kb")) { // } else if (size.equals("B")) { // } else if (size.equals("Bit")) { // }

List<TablePnc> pncs = getListPnc(bayt, vkch);

String a0 = ""; String pncStr = ""; for (int i = 0; i < pncs.size(); i++) { TablePnc pnc = pncs.get(i); a0 = pnc.getA0(); pncStr = pncStr + pnc.getPnc();

}

requestgetServletContext0.setAttribute("xay", xay); requestgetServletContext0.setAttribute("vkch", vkch); requestsetAttribute("sAy", a0 + pncStr); requestsetAttribute("pncs", pncs); request.getRequestDispatcher('7WEB-INF/pages/table.jsp").forward(request, response); } else if (path.equals('7check")) {

String kolvo = request.getParameter("kolvo");

String kolOsh = request.getParameter("kolOsh");

String readyPocket = request.getParameter("readyPocket");

String xay = request.getServletContext().getAttribute("xay").toString();

String vkch = request.getServletContext().getAttribute("vkch").toString();

int xAyLen = xay.length();

int vkchInt = Integer.parseInt(vkch);

int kolInt = Integer.parseInt(kolvo);

int rdyLen = readyPocket.length();

List<CheckTable> cts = new ArrayList<CheckTable>();

while (kolInt > 0) {

CheckTable ct = new CheckTable();

String globPnc = "";

int vkchIntTemp = vkchInt;

String sAyStr = getMistakePackage(readyPocket, Inte-ger.parseInt(kolOsh));

String a0Str = sAyStr.substring(0, sAyStr.length() - vkchInt); String vkchTemp = sAyStr.substring(sAyStr.length() - vkchInt, sAyStr.length());

vkchIntTemp = vkchIntTemp - 1; String xAyRepeat = xay;

long xAyLong = Long.parseLong(xAyRepeat, 2); int bitCHet = 0;

for (int i = 0; i < a0Str.length(); i++) { if (a0Str.charAt(i) == '1') { bitCHet++;

}

}

if (bitCHet % 2 == 0) {

globPnc = "0"; } else { globPnc = "1";

}

while (vkchIntTemp > 0) { String kAy = "";

for (int j = 0; j < a0Str.length(); j++) { if (a0Str.charAt(j) == '0' && xAyRepeat.charAt(j) == '0') {

kAy = kAy + "0"; } else if (a0Str.charAt(j) == '1' && xAyRepeat.charAt(j) == '0') {

kAy = kAy + "0"; } else if (a0Str.charAt(j) == '0' && xAyRepeat.charAt(j) == '1') { kAy = kAy + "0";

} else if (a0Str.charAt(j) == '1' && xAyRepeat.charAt(j) == '1') { kAy = kAy + "1";

}

}

xAyLong++;

xAyRepeat = Long.toBinaryString(xAyLong); if (xAyRepeat.length() < xAyLen) { xAyRepeat = String.join("", Collections.nCopies(

xAyLen - xAyRepeat.length(), "0")) + xAyRepeat; } else if (xAyRepeat.length() > xAyLen) { xAyLong = 1;

xAyRepeat = Long.toBinaryString(xAyLong); xAyRepeat = String.join("", Collections.nCopies(

xAyLen - xAyRepeat.length(), "0")) + xAyRepeat;

}

int chetPnc = 0;

for (int k = 0; k < kAy.length(); k++) { if (kAy.charAt(k) == '1') { chetPnc++;

}

}

if (chetPnc % 2 == 0) {

globPnc = globPnc + "0"; } else { globPnc = globPnc + "1";

}

vkchIntTemp--;

}

String newtwicePock = ""; for (int i = 0; i < readyPocket.length(); i++) { if (readyPocket.charAt(i) == sAyStr.charAt(i)) {

newtwicePock = newtwicePock + sAyStr.charAt(i); } else {

newtwicePock = newtwicePock + "<text style=\"color:red;\">" +

sAyStr.charAt(i) + "</text>"; }

}

ct.setPaket(newtwicePock); if (vkchTemp.equals(globPnc)) {

ct.setCheckBool(true); } else { ct.setCheckBool(false);

}

cts.add(ct); kolInt-- ;

}

int kolTrue = 0;

for (int i = 0; i < cts.size(); i++) { CheckTable ct = cts.get(i); if (ct.isCheckBool()) { kolTrue++;

}

}

request.setAttribute("cts", cts); request.setAttribute("kolTrue", kolTrue); request.setAttribute("cts Size", cts .size());

request.getRequestDispatcher("AWEB-

INF/pages/check.jsp").forward(request, response); }

}

private String getMistakePackage(String pocket, int kolMists) { int lenPocket = pocket.length(); Random r = new Random(); String newPocket = pocket; while (kolMists > 0) {

int randomNumber = r.nextInt(lenPocket); if (newPocket.charAt(randomNumber) == '1') {

newPocket = newPocket.substring(0, randomNumber) + "0" + newPock-et.substring(randomNumber + 1); } else {

newPocket = newPocket.substring(0, randomNumber) + "1" + newPock-

et.substring(randomNumber + 1);

}

// newPocket =pocket.substring(lenPocket, lenPocket) kolMists-- ;

}

return newPocket;

}

private List<TablePnc> getListPnc(String bayt, String vkch) { List<TablePnc> pncs = new ArrayList<TablePnc>(); String a0 = getA0(Integer.parseInt(bayt)); int vkchInt = Integer.parseInt(vkch) - 1; xay = getA0(Integer.parseInt(bayt)); String xAyRepeat = xay;

long xAyLong = Long.parseLong(xAyRepeat, 2); int bitCHet = 0;

TablePnc pnc1 = new TablePnc(); pnc1.setA0(a0);

pnc1 .setxAy(String.join("", Collections.nCopies(Integer.parseInt(bayt),

1")));

pnc1.setkAy(a0);

for (int i = 0; i < a0.length(); i++) { if (a0.charAt(i) == '1') { bitCHet++;

}

}

if (bitCHet % 2 == 0) {

pnc1.setPnc("0"); } else { pnc1.setPnc("1");

}

pncs.add(pnc1); while (vkchInt > 0) {

TablePnc pnc = new TablePnc();

pnc.setA0(a0);

pnc.setxAy(xAyRepeat);

xAyLong++;

xAyRepeat = Long.toBinaryString(xAyLong); if (xAyRepeat.length() < Integer.parseInt(bayt)) { xAyRepeat = String.join("", Collections.nCopies(

Integer.parseInt(bayt) - xAyRepeat.length(), "0")) + xAyRepeat;

} else if (xAyRepeat.length() > Integer.parseInt(bayt)) { xAyLong = 1;

xAyRepeat = Long.toBinaryString(xAyLong); xAyRepeat = String.join("", Collections.nCopies(

Integer.parseInt(bayt) - xAyRepeat.length(), "0")) + xAyRepeat;

}

vkchInt-- ; pncs.add(pnc);

}

for (int i = 1; i < pncs.size(); i++) { TablePnc pnc = pncs.get(i); String anull = pnc.getA0(); String xay = pnc.getxAy(); String kAy = "";

for (int j = 0; j < anull.length(); j++) {

if (anull.charAt(j) == '0' && xay.charAt(j) == '0') {

kAy = kAy + "0"; } else if (anull.charAt(j) == '1' && xay.charAt(j) == '0') {

kAy = kAy + "0"; } else if (anull.charAt(j) == '0' && xay.charAt(j) == '1') {

kAy = kAy + "0"; } else if (anull.charAt(j) == '1' && xay.charAt(j) == '1') { kAy = kAy + "1";

}

}

int chetPnc = 0; pnc.setkAy(kAy);

for (int k = 0; k < kAy.length(); k++) {

if (kAy.charAt(k) == '1') {

chetPnc++;

}

}

if (chetPnc % 2 == 0) {

pnc.setPnc("0"); } else { pnc.setPnc("1");

}

}

return pncs;

}

private String getA0(int bayt) {

String bin = Stringjoin("", Collections.nCopies(bayt, "1")); long decimal = Long.parseLong(bin, 2);

long a0long = ThreadLocalRandom.current().nextLong(decimal + 1); String a0Str = Long.toBinaryString(a0long); if (a0Str.length() < bayt) { a0Str = Stringjoin("", Collections.nCopies(bayt - a0Str.length(), "0")) +

a0Str; }

return a0Str;

}

}

Листинг программы MPNC

Класс: Vkch.java

public class Vkch {

public static String getStringEncode(byte b) { String res = ""; return res;

}

public static String encode(byte... bytes) { String res = ""; //try {

//byte crc = 0;

//if (bytes != null & bytes.length > 0) {

//// for (byte b : bytes) {

// crc = CRC8_TABLE[(crc л b) & 0xff];

// }

//}

//String s = Integer.toBinaryString(crc);

//while (s.length() < len) {

// s = "0" + s;

//}

//res = bytesToString(bytes) + s; //} catch (Exception ex) { } return res;

}

public static String bytesToString(byte... bytes) { String code = ""; try {

if (bytes != null & bytes.length > 0) { for (byte b : bytes) {

String s = Integer.toBinaryStrmg(b); while (s.length() < 7) {

s = "0" + s;

}

code += s;

}

}

} catch (Exception ex) { }

return code;

}

public static boolean test(String old_vkch) { return true;

}

}

Листинг программы CRC calculationc Класс: CRC.java package ru.project;

import javafx.collections.FXCollections; import j avafx.collections .ObservableList; import j avafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.ComboBox; import j avafx. scene.control.TableColumn; import j avafx. scene.control.TableView; import javafx.scene.control.cell.PropertyValueFactory; import j ava. util .Random; public class CRC { @FXML

private ComboBox<String> poly; @FXML

private TableView<TableData> table; @FXML

private ComboBox<String> data; @FXML

private TableColumn<?, ?> information; @FXML

private TableColumn<?, ?> parameters; @FXML

private Button result; int m = 0, n = 0, msb, i, j, k;

int[] g, d, z, r;

String resl = " "; String res2 = " "; int count = 0; int countForm2 = 0; Random random;

ObservableList<String> dataOptions, polyOptions; ObservableList<TableData> resultOptions = FXCollec-tions.observableArrayList(); String crc4 = "1100"; String crc8 = "10101011"; String crc16 = "1010000000000001"; String crc32 = "11101101101110001000001100100000"; String crc64 =

"1100100101101100010101111001010111010111100001110000111101000010"; @FXML void initialize() {

information.setCellValueFactory(new PropertyValueFacto-ry<>("information"));

parameters.setCellValueFactory(new PropertyValueFacto-ry<>("parameters"));

random = new Random();

dataOptions = FXCollections.observableArrayList("4 бит", "8 бит", "16 бит", "32 бит", "48 бит");

data.setltems(dataOptions); data.setOnAction(event -> {

if(data.getValue().equals("4 бит")){ n = 4;

d = new int[n+m];

for(i = 0; i < n; i++){ d[i] = random.nextInt(2);

}

}

if(data.getValue().equals(" S бит")) { n = S;

d = new int[n+m]; for(i = 0; i < n; i++){ d[i] = random.nextInt(2);

}

}

if(data.getValue().equals("16 бит")){ n = 16;

d = new int[n+m]; for(i = 0; i < n; i++){ d[i] = random.nextInt(2);

}

}

if(data.getValue().equals("32 бит")){ n = 32;

d = new int[n+m]; for(i = 0; i < n; i++){ d[i] = random.nextInt(2);

}

}

if(data.getValue().equals("4S бит")){ n = 4S;

d = new int[n+m];

for(i = 0; i < n; i++){ d[i] = random.nextInt(2);

}

}

});

polyOptions = FXCollections.observableArrayList("4 бит", "S бит", "1б бит", "32 бит", "б4 бит");

poly.setltems(polyOptions); poly.setOnAction(event -> {

if(poly.getValue().equals("4 бит")){ m = 4;

g = new int[m]; for(int i = 0; i < m; i++){ g[i] = Character.digit(crc4.charAt(i), 3);

}

}

if(poly.getValue().equals("S бит")){ m = S;

g = new int[m]; for(int i = 0; i < m; i++){ g[i] = Character.digit(crcS.charAt(i), 2);

}

}

if(poly.getValue().equals("1б бит")){ m = 1б;

g = new int[m]; for(int i = 0; i < m; i++){ g[i] = Character.digi^crc^.charA^i), 2);

}

if(poly.getValue().equals("32 бит")){ m = 32;

g = new int[m]; for(int i = 0; i < m; i++){ g[i] = Character.digit(crc32.charAt(i), 2);

}

}

if(poly.getValue().equals("64 бит")){ m = 64;

g = new int[m]; for(int i = 0; i < m; i++){ g[i] = Character.digit(crc64.charAt(i), 2);

}

}

});

table.setltems(resultOptions); result.setOnAction(event -> { calculation();

resultOptions.add(new TableData(res1, "CRC остаток")); resultOptions.add(new TableData(res2, "Передаваемый кадр")); resultOptions.add(new TableData(String.valueOf(count), "Количество делений"));

resultOptions.add(new TableData(String.valueOf(countForm2), "Количество сложений по модулю 2")); });

}

void calculation(){

for(i = 0; i < m-1; i++){ d[n+i] = 0;

}

r = new int[m+n]; for(i = 0; i < m; i++){

r[i] = d[i];

}

z = new int[m]; for(i = 0; i < m; i++){ z[i] = 0;

}

for(i = 0; i < n; i++){ k = 0; msb = r[i];

for(j = i; j < m+i; j++) {

if(msb == 0){ r[j] = xor(r[j],z[k]); countForm2++;

}

else{ r[j] = xor(r[j],g[k]); countForm2++;

}

k++;

}

r[m+i] = d[m+i];

count++;

for(i = n; i < n+m-1; i++){ d[i] = r[i]; resl += d[i];

}

for(i = 0; i < n+m-1; i++){ res2 += d[i];

}

}

public static int xor(int x,int y){ if(x == y)

return(0); else

return(l);

}

Листинг программы BCC и CRC

Класс: BCC для расчета блокового бита чётности.

package javaodil; public class BCC { String binartext; byte[] data;

static final int mask = 0xf;

public BCC() { }

public BCC(String binartext) { try {

while (binartext.length() % 8 != 0) { binartext = "0" + binartext;

}

this.binartext = binartext;

} catch (Exception ex) { }

}

public BCC(byte... data) { this.data = data;

this.binartext = bytesToString(data);

}

public String encode() { String s = encode(binartext); //System.out.println(s); return s;

}

public static boolean test(String bit14) { //System.out.println(bit 14); StringBuilder sb = new StringBuilder();

try {

int n = bit14.length() / 14; for (int k = 0; k < n; k += 1) {

String bits14 = bit14.substring(k * 14, (k + 1) * 14); String bits = bits14.substring(0, 8); String bcc = encode(bits); sb.append(bcc);

}

//System.out.println(sb.toString()); return bit14.equals(sb.toString());

} catch (Exception ex) { }

return false;

}

public static String encode(byte... data) { StringBuilder sb = new StringBuilder(); try {

String binartext = bytesToString(data); sb.append(encode(binartext));

} catch (Exception ex) { }

return sb.toString();

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